Mai mult

Folosiți instrumentul Less Than pentru a genera mai multe ieșiri raster dintr-o singură intrare raster în ArcGIS Desktop?

Folosiți instrumentul Less Than pentru a genera mai multe ieșiri raster dintr-o singură intrare raster în ArcGIS Desktop?


Încerc să creez un model care utilizează ca intrare o serie de rasteruri create din valorile de înălțime într-un strat raster original. Pentru a face acest lucru, am nevoie de ajutor pentru a afla cum să generez aceste raster-uri.

Am un singur raster cu valori ale cotei pe care vreau să îl folosesc pentru a genera un raster pentru fiecare valoare a cotei (intervalul de cote este de la 0 la 140) din intrarea originală. Pot face acest lucru manual (cum ar fi tastarea „raster = Mai puțin de 15 ft”), dar din moment ce intervalul meu maxim-minim al valorilor de înălțime este un număr destul de mare, ar fi mai ușor să găsesc o modalitate de a o face ca lot , dacă este posibil, și le trimiteți într-o geodatabase sau folder.

Deoarece rezultatele mele vor ajunge într-un model, aș dori să fac acest lucru în constructorul de modele, dacă este posibil.
Există o modalitate de a face acest lucru folosind ceva de genul unui iterator pe instrumentul „mai puțin decât” sau chiar calculatorul raster? Ajutorul pe care l-am putut găsi până acum pe iteratori se bazează pe deja existența mai multor raster-uri.


Ceea ce doriți să iterați este o listă a valorilor altitudinii pentru a compara DEM-urile dvs. pentru că sunt mai mici de.

Acest lucru este destul de simplu în Python; Consider că abilitățile de iterație ale ModelBuilder sunt, în cel mai bun caz, obtuze (în opinia mea).

Cu o mică editare a căilor de fișier și a valorilor de înălțime și presupunând că valorile de înălțime sunt în numere întregi, următoarele ar trebui să funcționeze în fereastra ArcMap Python.

import arcpy din arcpy.sa import * import os arcpy.CheckOutExtension ("Spatial") # folderul spațiului dvs. de lucru inDIR = "C:  Users  Me  Somewhere" # DEM în folderul spațiului dvs. de lucru inDEM = os.path. join ("C:  Users  Me  Somewhere", "someDEM.tif") myElevations = [10, 20, 30] # trei exemple de elevări în acest caz, pot fi mult mai multe. for elev in myElevations: # Mai jos, ieșiți fișiere numite, de exemplu, lessthan10.tif, în folderul spațiului de lucru. outDEM = os.path.join (inDIR, "lessthan" + str (elev) + ".tif") outLessThan = LessThan (inDEM, elev) outLessThan.save (outDEM) # Pentru a vedea progresul în fereastra Python: tipăriți "Finalizat „+ outDEM

Dacă rasterele dvs. nu sunt fișiere GeoTiff, editați biții .tif sau ștergeți-i cu totul dacă sunt fișiere Esri GRID (împreună cu „+” dinaintea acestuia în a doua instanță).


Sunt de acord cu Paulo că iterația în python este mai ușoară. Cu toate acestea, există un instrument Model Builder numit Iterate MultiValue. Se pare că îl puteți conecta la orice instrument de care aveți nevoie și funcția sa este de a itera prin valorile pe care le dați.


Priveste filmarea: A Complete Beginners Guide to ArcGIS Desktop Part 1