Viac

Formátujete výraz SQL pre nástroj na výpočet poľa (správu)?


Snažím sa prevziať sčítanie ľudu a vypočítať percento obyvateľstva podľa jednotlivých sčítaní obyvateľstva v teréne (Populati_2). Za týmto účelom vytváram nové pole s celkovým súčtom populácie (pop).

Na získanie percenta používam nasledujúci výraz na arcgis[Populati_2] / [Pop] * 100. V arcgis to funguje dobre, ale keď ho používam na výpočet správy poľa alebo pythonu, jednoducho to nefunguje.

Nie som si istý, ako mám formátovať výraz, vyskúšal som každú jednu kombináciu a jednoducho to nefunguje.

Tu je časť skriptu:

arcpy.AddField_management (r "Výsledky  popjoin.dbf", "Pop", "LONG", "", "", "5") arcpy.AddField_management (r "Výsledky  popjoin.dbf", "Pop2", "DVOJNÁSOBNÝ "," "," "," 5 ") arcpy.CalculateField_management (r" Výsledky  popjoin.dbf "," Pop ", summed_total) arcpy.CalculateField_management (r" Výsledky  popjoin.dbf "," Pop2 "," Populati_2 ] / [Pop] * 100 ")

Tento mi dáva chyby, ale nasledujúce mi nerobí žiadne chyby, ale namiesto výpočtu dostanem v každom riadku 0.

expression = "! Populati_2! /! Pop! * 100"

arcpy.CalculateField_management (r "Výsledky  popjoin.dbf", "Pop2", výraz, "PYTHON_9.3")

Ako si môžete prečítať v príkazoch, buďte opatrní, čo je to VBS a čo a Python príkaz / výraz.

fc = "názov_súboru" # http://gis.stackexchange.com/a/82251/53268 summed_total = 0 s arcpy.da.SearchCursor (fc, "Populati_2") ako kurzor: pre riadok v kurzore: summed_total = summed_total + riadok [0] arcpy.AddField_management (fc, "Pop", "LONG", "", "", "5") arcpy.CalculateField_management (fc, "Pop", summed_total) arcpy.AddField_management (fc, "Pop2", " DOUBLE "," "," "," 5 ") arcpy.CalculateField_management (fc," Pop2 ","! Populati_2! /! Pop! * 100 "," PYTHON "," # ")

Ak máte problémy s výrazom, na zostavenie výrazu môžete kedykoľvek použiť Panel s nástrojmi na výpočet poľa. Pozri svoj starý výsledok podGeografické spracovanie -> Výsledky

S dvojitým kliknutím na Vypočítať pole môžete otvoriť panel s nástrojmi. Tu môžete použiť nástroj na tvorbu výrazov (nezabudnite nastaviť Python ako analyzátor):


Ak si nie ste istí syntaxou výrazu, vyskúšajte nasledujúci postup:

  1. Vytvorte modul v ModuleBuilder, pridajte nástroj Vypočítať pole, definujte všetky parametre a spustite model.
  2. Ak beží úspešne, exportujte model Súbor> Exportovať do skriptu python
  3. Použite syntax výrazu python z exportovaného súboru .py z kroku 2 do príkazu Calculate Field v pythone