What's New in ArcGIS 10<\/A> behandelt veel onderwerpen, er is voor iedereen wel iets bij. Hoe beperkt of smal je gebruik van ArcGIS Desktop ook is, één verandering kon je niet missen: de gebruikersinterface, die vrij constant was gebleven tijdens de ArcGIS 8.x en 9.x periodes.<\/P><\/P>
Ik was geïnteresseerd in veel veranderingen met ArcGIS 10.0, zoveel dat ik ze hier niet eens allemaal hoef op te sommen. Hoewel veel veranderingen mijn aandacht trokken, vielen de veranderingen aan geoprocessing echt op: achtergrondverwerking werd geïntroduceerd, het Python-venster verving het Command Line-venster, ArcPy tilde Python-ondersteuning naar een hoger niveau, en meer. Door al deze nieuwe functies te combineren met één van mijn favoriete bestaande functies, de in-memory workspace, was ik eigenlijk best enthousiast om ermee aan de slag te gaan en te zien hoe geweldig deze volgende versie zou zijn.<\/P>
<\/P>
In tegenstelling tot ArcGIS 9.2 waar ik het Wayback Data Center moest gebruiken, is ArcGIS 10.0 nog steeds in gebruik binnen delen van mijn organisatie, wat het gemakkelijk maakt om een stap terug in de tijd te doen en toch nieuwe screenshots te maken.<\/P>
<\/P>
Voor consistentie en eenvoud zal ik gewoon de voorbeelden uit het eerste bericht in deze serie (
Wat zit er in een Naam: Wanneer in_memory = In-memory<\/A>) hergebruiken om vertrouwd te raken met het Python-venster in ArcGIS 10.0. Laten we eens kijken naar de resultaten van het maken van een tabel in de in-memory workspace:<\/P>
<\/P>
Succes, of niet? De opdracht lijkt succesvol voltooid, maar tmpTable lijkt niet aanwezig te zijn in de GPInMemoryWorkspace. Ik ga die opdracht nogmaals uitvoeren.<\/P>
<\/P>
Huh. De opdracht werd succesvol voltooid; maar opnieuw lijkt tmpTable niet aanwezig te zijn in de GPInMemoryWorkspace. In feite heb ik nu twee tmpTables, en elk lijkt zijn eigen cryptische geodatabase te hebben in mijn Temp-map. In tegenstelling tot ArcGIS 9.2 waar de opdracht faalde omdat tmpTable al bestond, doet ArcGIS 10.0 je een plezier, als je het zo kunt noemen, door gewoon nog een aan te maken in een andere cryptische geodatabase.<\/P>
<\/P>
Ik weet niet wat hier aan de hand is. Ik verwijder deze tabellen maar beter en ruim deze rommel op.<\/P>
<\/P>
Wacht, ik kan tmpTable niet verwijderen met dezelfde syntaxis die werkte in ArcGIS 9.2? Ik denk dat als tabellen niet echt in-memory worden gemaakt, het logisch is dat Delete_management ze daar niet kan vinden. De autocomplete in het Python-venster wil "tmpTable" verwijderen zonder verwijzing naar "in_memory." Ik ga dat proberen:<\/P>
<\/P>
Nou ja, dat werkte tenminste, maar ik weet niet welke tmpTable de autocomplete bedoelde. Gelukkig ruimde het opnieuw uitvoeren van de opdracht wel de andere tmpTable op.<\/P>
<\/P>
Het maken van feature classes in-memory gedraagt zich hetzelfde. Ook tonen de bijbehorende tools in Toolbox voor het maken van tabellen en feature classes hetzelfde gedrag. Er is hier zeker genoeg consistentie om niet zomaar te spreken van een bug in een specifieke tool of functie. Wie weet, misschien betekent in_memory op-schijf zijn in ArcGIS 10.0.<\/P>
<\/P>
Het eerste deel in deze serie had een voorbeeld waarbij daadwerkelijk data werd verplaatst naar een in-memory workspace. Het kan geen kwaad dat hier nog eens te herhalen voordat we conclusies trekken. Laad eerst die grenzen van Amerikaanse staten weer.<\/P>
<\p>
Nou daar zijn we weer, een kopie van features geladen in een in-memory workspace. Wat? GPInMemoryWorkspace? Ik kan niet zeggen of ik dit resultaat verwachtte of niet. Betekent in_memory nu echt in-memory of op-schijf? Er is duidelijk iets veranderd tussen ArcGIS 9.2 en ArcGIS 10.0, maar wat? <\p>
Het korte antwoord is Achtergrondverwerking.<\p>
<\p >
Niet alleen werd Achtergrondverwerking geïntroduceerd in ArcGIS 10.0 , maar het stond ook standaard aan .& nbsp ; Ik kan me vandaag niet herinneren waarom , maar jaren geleden had ik ooit behoefte om Achtergrondverwerking uit te schakelen .& nbsp ; Toen realiseerde ik me dat het uitschakelen , of niet inschakelen , van Achtergrondverwerking bijna < /SPAN > ervoor zorgt dat in_memory bijna terugkeert naar hoe het zich gedroeg in ArcGIS 9.2 en 9.3 / 9.3.1 .<\p > < /p > Interessant genoeg blijken alle bovenstaande voorbeelden zeer vergelijkbaar te zijn in ArcGIS 10.2.2 .& nbsp ; Ik zou zeggen dat de situatie in ArcGIS 10.2.2 iets erger is dan destijds bij ArcGIS 10.0 .& nbsp ; Bijvoorbeeld , twee keer achter elkaar CreateTable_management uitvoeren en vervolgens proberen tmpTable te verwijderen met een volledig gespecificeerd pad naar in_memory geeft ons :<\p >
<\p > In ArcGIS 10.0 mislukte Delete_management omdat tmpTable eigenlijk niet bestond in-memory , wat logisch lijkt .& nbsp ; In ArcGIS 10.2.2 slaagt Delete_management , maar verwijdert niets !& nbsp ; Het gaf weliswaar een waarschuwing dat tmpTable niet bestaat in-memory , maar gaat dan door zonder iets te verwijderen en geeft toch een succesvol resultaat terug .& nbsp ; Ik kan alleen voor mezelf spreken , maar als ik een functie aanroep om een object te verwijderen en dat object bestaat niet , verwacht ik meestal dat er een foutmelding wordt geretourneerd .<\p > < /p > Beter nog , kijk wat er gebeurt als je Achtergrondverwerking uitschakelt , een tabel maakt in-memory en probeert deze te verwijderen met een volledig gespecificeerd pad naar in_memory :<\p >
<\p > Je kunt schijnbaar drie keer succesvol verwijderen terwijl hij toch blijft bestaan !& nbsp ; En dit nadat hij je gewaarschuwd heeft dat hij niet bestaat terwijl hij duidelijk wel bestaat , en dan ook nog eens in-memory .<\p > < /p > Het is duidelijk dat er dingen veranderden bij ArcGIS 10.0 met betrekking tot de in-memory workspace , vooral met het gebruik van 'in_memory'.& nbsp ; Ik weet niet precies wat er allemaal veranderde , maar er is zeker een verband met Achtergrondverwerking .& nbsp ; Bovendien zijn deze veranderingen doorgezet gedurende de hele ArcGIS 10.x productserie .& nbsp ; Ik denk dat het tijd is om even RT(?)M te doen en te kijken wat de documentatie hierover zegt .<\body >