Daugiau

Valymas Apskaičiuokite vertę prieš paleidžiant modelį „ArcGIS ModelBuilder“?

Valymas Apskaičiuokite vertę prieš paleidžiant modelį „ArcGIS ModelBuilder“?


„Desktop“ naudoju „ArcGIS 10.2“.

Turiu modelį, kuriame yra kelios šakos, kuri šaka turėtų būti vykdoma remiantis ankstesnio modelio etapo rezultatais. Jei pirmasis modelio etapas pateikia Null rezultatą, A filialas turėtų veikti, kitaip B filialas. Rezultatą „Null“ patikrinu naudodamas „Get Raster Properties“ įrankį ALLNODATA type.

Kiekvieno filialo pradžioje aš sukūriau įrankį „Apskaičiuoti vertę“, kuris patikrina „Get Raster“ ypatybes ir pateikia 1 arba 0, atsižvelgdamas į tai, ar tas filialas turėtų veikti, o tada išvestį naudoju kaip išankstinę sąlygą likusiai šakai.

Tai veikia, bet kai įrankis paleidžiamas, kai iš anksto nustatomi įvairūs išėjimai, o užuot paleidus įrankius „Gauti rastro ypatybes“ ir „Apskaičiuokite vertę“, „ModelBuilder“ vėl peršoka norėdamas paleisti jų prielaidas atitinkančias šakas.

Ar yra būdas nustatyti visus skaičiavimo vertės rezultatus iki 0 prieš kiekvieną modelio paleidimą, kad šakos nebūtų vykdomos tol, kol nebus paleistas įrankis „Apskaičiuoti vertę“?


Galiausiai tai išsprendžiau parašydamas pitono scenarijų ir importuodamas jį į modelį.

# Importuoti „ArcPy“ modulį importuoti „arcpy“ # Nustatyti parametrus checkB = arcpy.GetParameter (0) checkDB = arcpy.GetParameter (1) PosYes = arcpy.GetParameter (2) PosNo = arcpy.GetParameter (3) NegYes = arcpy.GetParameter (4) NegNo = arcpy.GetParameter (5) # Vykdyti patikrinimus, jei checkB == 1: PosYes = 0 PosNo = 1 kitas: PosYes = 1 PosNo = 0, jei checkDB == 1: NegYes = 0 NegNo = 1 kitas: NegYes = 1 NegNo = 0 # Išvesties rezultatai arcpy.SetParameter (2, PosYes) arcpy.SetParameter (3, PosNo) arcpy.SetParameter (4, NegYes) arcpy.SetParameter (5, NegNo)

Žiūrėti video įrašą: Ξύδι - το πολυεργαλείο με τις άπειρες χρήσεις