Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.
17.24. Iterativt utförande av algoritmer
Observera
Den här lektionen visar ett annat sätt att exekvera algoritmer som använder vektorlager, genom att köra dem upprepade gånger och iterera över funktionerna i ett ingångsvektorlager
Vi känner redan till modelldesignern, som är ett sätt att automatisera bearbetningsuppgifter. Men i vissa situationer är det inte säkert att modelleraren är vad vi behöver för att automatisera en viss uppgift. Låt oss se en av dessa situationer och hur man enkelt kan lösa den med hjälp av en annan funktionalitet: iterativ exekvering av algoritmer.
Öppna de data som hör till detta kapitel. Det bör se ut så här.

Du känner säkert igen vår välkända DEM från tidigare kapitel och en uppsättning vattendelare som extraherats från den. Tänk dig att du behöver dela upp DEM i flera mindre lager, där vart och ett av dem bara innehåller höjddata som motsvarar en enda vattendelare. Det kommer att vara användbart om du senare vill beräkna vissa parametrar som är relaterade till varje vattendelare, t.ex. dess medelhöjd eller dess hypsografiska kurva.
Detta kan vara en långdragen och tråkig uppgift, särskilt om antalet vattendelare är stort. Det är dock en uppgift som enkelt kan automatiseras, som vi kommer att se.
Den algoritm som ska användas för att klippa ett rasterlager med ett polygonlager heter Clip raster with polygons och har följande parameterdialog.

Du kan köra den med vattendelningsskiktet och DEM som indata och du får följande resultat.

Som du kan se används det område som täcks av alla polygoner i vattendelaren.
Du kan få DEM klippt med bara en enda vattendelare genom att välja önskad vattendelare och sedan köra algoritmen som vi gjorde tidigare.

Eftersom endast valda objekt används kommer endast den valda polygonen att användas för att beskära rasterlagret.

Om vi gör detta för alla vattendelarområden får vi det resultat vi är ute efter, men det ser inte ut som ett särskilt praktiskt sätt att göra det på. Låt oss istället se hur vi kan automatisera den där select and crop-rutinen.
Först och främst tar du bort det tidigare urvalet, så att alla polygoner kommer att användas igen. Öppna nu algoritmen Clip raster with polygon och välj samma ingångar som tidigare, men klicka den här gången på knappen som du hittar till höger om ingången för vektorskiktet där du har valt vattendelningsskiktet.

Den här knappen gör att det valda inmatningslagret delas upp i lika många lager som det finns funktioner i, där vart och ett av dem innehåller en enda polygon. Därmed kommer algoritmen att anropas upprepade gånger, en för vart och ett av dessa enpolygonlager. Resultatet, istället för bara ett rasterlager i fallet med denna algoritm, blir en uppsättning rasterlager, där vart och ett av dem motsvarar en av exekveringarna av algoritmen.
Här är resultatet som du får om du kör klippningsalgoritmen enligt förklaringen.

För varje lager justeras den svartvita färgpaletten (eller den palett du använder) på olika sätt, från lägsta till högsta värde. Det är anledningen till att du kan se de olika delarna och att färgerna inte verkar matcha i gränsen mellan lagren. Värdena matchar dock.
Om du anger ett filnamn för utdata kommer de resulterande filerna att namnges med det filnamnet och ett nummer som motsvarar varje iteration som suffix.