Več

Gnezdite dva iteratorja za izračun stroškovne razdalje v ModelBuilderju?


Poskušam iterativno izračunati stroškovne razdalje za vsak element točke v različnih naborih podatkov.

Ustvaril sem model, ki opravi delo za en sam nabor podatkov, vendar ko ga poskušam paketno prikazati, dobim naslednjo napako"NAPAKA 000865: Vnesite rastrske ali izvorne podatke funkcije: I_atlanta_OBJECTID ne obstaja".

To pomeni, da izhodna plast, ustvarjena v podmodelu "izberite funkcijo", ni veljaven vnos v stroškovno razdaljo ali kateri koli drug postopek, ki sem ga postavil za iteratorjem.

Ta napaka se pojavi le, ko model ugnezdim, da ga zaženem v različnih naborih podatkov, in ne, ko zaženem model samo v enem naboru podatkov.

Ali moram upoštevati nekaj, kar moram upoštevati pri gnezdenju modelov?

Dokumente, ki so na voljo, sem prebral brez sreče.


Na strani za pomoč ArcGIS za iteratorje v graditelju modelov je zapisano, da imate lahko samo en iterator na model. (To je prva opomba, pod tabelo vrst iteratorjev.) Morda imate zato težave pri poskusu uporabe dveh v istem modelu.

Verjamem, da če želite uporabiti več iteratorjev v modelarju, morate zgraditi model za vsakega in nato te modele ugnezditi v drugega.


To težavo lahko rešite na več načinov:

  • skript ugnezdene zanke v skriptu python
  • integrirati podmodel v model s predpogojem
  • uporabite paketno funkcijo modela inorder, da jo uporabite za več datotek (vnosno in izhodno datoteko modela nastavite kot parameter, nato z desno tipko miške kliknite model> paket)

MGR