Daugiau

„ArcGIS“ lauko skaičiuoklės „Python“ analizatoriaus naudojimas naudojant įdėtą If teiginį?


Bandau naudoti lauko skaičiuotuvą, kad priskirtu vertes naujam mano sukurtam laukui. Aš nenoriu priskirti vertės iš pirmojo lauko, nebent tas laukas yra tuščias, jei jis tuščias, naudokite 2 lauką, jei tai tuščias naudojimo laukas 3. Štai ką aš turiu iki šiol. Jaučiu, kad tai toli, bet nežinau, kur eiti.

New_Size: mano naujas laukas

„wmDeviceEq“: pirmasis laukas, skirtas patikrinti naujo lauko pavadinimą

wmDevice_4: antras ""

wmDevice_5: trečias ""


Kodo bloke galite naudoti tik parametrus, o ne laukų pavadinimus. Turėsite sukurti kiekvieno lauko pavadinimo parametrus, pavyzdžiui:

def Reclass (f1, f2, f3): New_size = f1 # tai iš tikrųjų nieko nedaro, jei f1 == ": return f2 elif f2 ==" return f3 else: # ar tai riba? return f1 # Naujas_dydis gal?

ir tada

Perklasuoti (! WmDeviceEq !,! WmDevice_4 !,! WmDevice_5!)

Kas, jeiguf3(wmDevice_5) Yra tuščias? Nežinote, ar jūsų paveikslėlyje rodomas nukrypimasKitaspareiškimas.

Ar laukų reikšmės iš tikrųjų yra tuščios eilutės? „Shapefiles“ saugo vieną erdvę" "ir geoduomenų bazės funkcijų klases, kurias paprastai naudoja, kas būtų „Python“Nė vienas.

Jei laukai iš tikrųjų yra tuščios eilutės ir tik vienas laukas kada nors turės duomenų, kodo bloko visai nereikia.

"". prisijungti ((! wmDeviceEq !,! wmDevice_4 !,! wmDevice_5!))

Kaip nuošalyje, įdėtasjeipareiškimas būtų maždaug toks:

jei rezultatas> 10: spausdinti („daugiau nei 10“), jei rezultatas <100: spausdinti („ir mažiau nei 100“) else: print („tai didelis ...“) else: print („per mažas!“)

@Paulas

Redagavau kodą ir sugalvojau

def Reclass (ph1, ph2, ph3): New_Size = ph1, jei ph1 == ": grąžinti ph2 elif ph2 ==": grąžinti ph3 elif ph3 == ": spausdinti (" NULL ")

ir tada

Perklasuoti (! WmDeviceEq !,! WmDevice_4 !,! WmDevice_5!)

Kai jis veikia, mano naujas laukas traukia reikšmes tik iš ph2 ... Taip pat nesu tikras dėl to galutinio elito. jis turi užpildyti erdvę, kuri neturi jokios vertės traukti, su „nuliu“.

Išbandžiau funkciją "" .join (), bet ji kiekvieną kartą perkelia į kitą lauką, pvz.

Neveiks, nebent yra būdas pašalinti šias tarpus prieš reikšmes lauke New_Size.


Žiūrėti video įrašą: Editing Attribute Tables (Rugsėjis 2021).