Dit is het derde bericht in een driedelige serie over het maken van geoprocessingmodellen in ArcGIS.<\/EM><\/P><\/P>Als je de vorige berichten in deze serie hebt gelezen, beheers je de basisprincipes van modelleren en weet je hoe je modelparameters toevoegt om eenvoudig hergebruik en scenario testen te ondersteunen. In dit bericht leer je enkele technieken om meer te doen met minder017 inspanning, dat wil zeggen. <\/P><\/P>Lijstvariabelen<\/STRONG><\/P><\/P>In het laatste bericht<\/A> heb je geleerd hoe je een toolparameter een variabele maakt en een variabele verandert in een modelparameter. Standaard slaat een variabele één waarde op. Het is echter mogelijk om meerdere waarden in een variabele op te slaan. Wanneer je dat doet, wordt de variabele een lijstvariabele genoemd.<\/P><\/P>Wanneer een lijstvariabele is verbonden met een geoprocessingtool, zal die tool en alle downstreamprocessen (alle processen die afhankelijk zijn van de output van de tool) automatisch eenmaal worden uitgevoerd voor elke waarde in de lijst. Dat klopt: wanneer je een lijstvariabele definieert, weten modeltools automatisch dat ze elk lijstitem moeten verwerken.<\/P><\/P>Het gebruik van lijstvariabelen is als het uitvoeren van geoprocessingtools in batchmodus017 met het grote voordeel dat je de lijst met waarden slechts één keer hoeft in te voeren om multi-toolverwerking te bereiken.<\/P><\/P>Overweeg het onderstaande model, dat een typische workflow voor gegevensbeheer automatiseert.<\/P><\/P><\/A><\/P>Dit model maakt een file geodatabase aan, converteert een shapefile naar een geodatabase feature class, verwijdert dubbele features, definieert het cordinaatsysteem voor de feature class en levert een laag met geselecteerde features. Merk op dat het model zelfs twee parameters heeft. Het is een complete workflow die uitstekend werkt wanneer er slechts een enkele shapefile verwerkt moet worden.<\/P><\/P>Het schiet echter tekort wanneer meerdere shapefiles verwerkt moeten worden. Het model zou handmatig meerdere keren moeten worden uitgevoerd om alle shapefiles te verwerken. Is het niet beter om het model eenmaal uit te voeren en al het werk gedaan te hebben? <\/P><\/P>Het maken van een lijstvariabele zal dit bereiken. Om voor dit voorbeeld een lijstvariabele te maken:<\/P><\/P><\/P>Klik met de rechtermuisknop op de Feature Class to Feature Class tool input <\/SPAN>variabele en klik op Eigenschappen, klik vervolgens op "Een lijst met waarden." Klik op OK.<\/LI>Dubbelklik op de variabele om deze te openen en voer elke waarde in.<\/LI><\/OL><\/DIV>Meer over lijstvariabelen<\/A><\/LI><\/UL><\/P>Inline variabelensubstitutie<\/STRONG><\/P><\/P>Met lijstvariabelen worden tools meerdere keren uitgevoerd om elke invoer te verwerken. Standaard zullen echter de namen van de tooloutputs hetzelfde zijn017 wat betekent dat alle outputs behalve die van het laatste lijstitem worden overschreven. Om dit te voorkomen, gebruik inline variabelensubstitutie<\/A>.<\/P><\/P>Er zijn twee soorten variabelen die kunnen worden vervangen in processen: modelvariabelen en systeemvariabelen. Om een modelvariabele te gebruiken voor inline variabelensubstitutie, voer je gewoon de variabelenaam in tussen procenttekens.<\/P>De systeemvariabele %i% wordt vaak gebruikt om een uniek, opeenvolgend nummer toe te voegen aan het einde van outputnamen. Nummering van lijstitems begint bij 0 (de outputnaam van het eerste item krijgt dus een 0 toegevoegd).<\/P>Voor dit voorbeeld zou je de Feature Class to Feature Class tool openen en een kleine letter i tussen procenttekens toevoegen aan het einde van de naam van de output feature class (in dit geval ASAM).<\/P><\/P><\/P><\\/p\>\nHet gebruik van de systeemvariabele zorgt ervoor dat het model correct wordt verwerkt en de drie benodigde outputs worden gemaakt. De outputnamen zijn echter niet beschrijvend. Je zou ze later kunnen hernoemen, maar waarom die taak nu niet automatiseren? <\\/p\>\n\n\n\n\n\n\n\n\n\n\n\n workflows, het automatiseren van tijdrovende taken en het ondersteunen van snelle "wat als" scenario testen, zijn modellen een waardevol hulpmiddel om GIS-professionals efficiënter en samenwerkender te laten werken. Met een solide begrip van de basisprincipes van modelleren en een paar geavanceerde technieken in je achterzak, zul je jezelf misschien betrapen op het grijpen van kansen om modellen te bouwen in ArcGIS. Want naast dat ze geoprocessing werkpaarden zijn, zijn modellen...leuk.<\/P><\/P>Gerelateerde berichten:<\/STRONG><\/P>ModelBuilder 101<\/A><\/LI>ModelBuilder 220: Voeg flexibiliteit toe<\/A><\/LI><\/UL>Voor praktische oefening met ModelBuilder wordt deze e-learning cursus<\/A> aanbevolen.<\/P><\/BODY><\/HTML>
<\/P>
Wanneer een lijstvariabele is verbonden met een geoprocessingtool, zal die tool en alle downstreamprocessen (alle processen die afhankelijk zijn van de output van de tool) automatisch eenmaal worden uitgevoerd voor elke waarde in de lijst. Dat klopt: wanneer je een lijstvariabele definieert, weten modeltools automatisch dat ze elk lijstitem moeten verwerken.<\/P>
Het gebruik van lijstvariabelen is als het uitvoeren van geoprocessingtools in batchmodus017 met het grote voordeel dat je de lijst met waarden slechts één keer hoeft in te voeren om multi-toolverwerking te bereiken.<\/P>
Overweeg het onderstaande model, dat een typische workflow voor gegevensbeheer automatiseert.<\/P>
Dit model maakt een file geodatabase aan, converteert een shapefile naar een geodatabase feature class, verwijdert dubbele features, definieert het cordinaatsysteem voor de feature class en levert een laag met geselecteerde features. Merk op dat het model zelfs twee parameters heeft. Het is een complete workflow die uitstekend werkt wanneer er slechts een enkele shapefile verwerkt moet worden.<\/P>
Het schiet echter tekort wanneer meerdere shapefiles verwerkt moeten worden. Het model zou handmatig meerdere keren moeten worden uitgevoerd om alle shapefiles te verwerken. Is het niet beter om het model eenmaal uit te voeren en al het werk gedaan te hebben? <\/P>
Het maken van een lijstvariabele zal dit bereiken. Om voor dit voorbeeld een lijstvariabele te maken:<\/P>
Inline variabelensubstitutie<\/STRONG><\/P><\/P>Met lijstvariabelen worden tools meerdere keren uitgevoerd om elke invoer te verwerken. Standaard zullen echter de namen van de tooloutputs hetzelfde zijn017 wat betekent dat alle outputs behalve die van het laatste lijstitem worden overschreven. Om dit te voorkomen, gebruik
Er zijn twee soorten variabelen die kunnen worden vervangen in processen: modelvariabelen en systeemvariabelen. Om een modelvariabele te gebruiken voor inline variabelensubstitutie, voer je gewoon de variabelenaam in tussen procenttekens.<\/P>
De systeemvariabele %i% wordt vaak gebruikt om een uniek, opeenvolgend nummer toe te voegen aan het einde van outputnamen. Nummering van lijstitems begint bij 0 (de outputnaam van het eerste item krijgt dus een 0 toegevoegd).<\/P>
Voor dit voorbeeld zou je de Feature Class to Feature Class tool openen en een kleine letter i tussen procenttekens toevoegen aan het einde van de naam van de output feature class (in dit geval ASAM).<\/P>
Voor praktische oefening met ModelBuilder wordt deze
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.