Daha çox

ArcGIS Sahə Kalkulyatorunda ədədi sahədən ədədi dəyərə əsaslanan sətir sahəsi doldurulur?


Python üçün yeniyəm və ArcGIS 10.2.2-də Field Calculator-da dəyərləri ədədi bir sahədən götürüb simli sahəyə əlavə edəcək bir sadə if ifadəsini yazmağa çalışıram. Hansı piton funksiyasından istifadə edəcəyimi anlaya bilmirəm. Bu kodu sınadığımda işləyir, ancaq mətn sahəmdəki bütün dəyərlər "Yox" olaraq çevrilir.

Pre-logic Script Koduna qoyduğum budur:

def dəyişiklik (Dəyər): əgər Dəyər == 1: "inkişaf etdirilmiş" elif Dəyəri == 2: "Kənd təsərrüfatı" elif Dəyəri == 3: "Meşəli" elif Dəyəri == 4: Doldurma "Su" elif Dəyəri == 5: "Sulak ərazilər" i geri qaytarın: "Yox" kimi qayıdın


Probleminiz sadəcə funksiyanıza səhv sahə ötürməyiniz idi. Bu şəkildə düşünün:

Sahə kalkulyatoru, hər bir satır üçün verilmiş bir sahəyə (ifadəyə əsasən "Type =" yazıldığı ifadənin üstündə göstərilən sahə) yeni bir dəyər yaradır. İfadədə istifadə edərək digər sahələrə istinad edə bilərsiniz! Sahə_adı!. Kod blokundan istifadə edərək funksiyalar yarada bilərsiniz. Bu funksiyaları ifadə blokunda yaza bildiyiniz funksiyalara digər sahələrdən dəyərlər ötürmə imkanı verən ifadədə müraciət edə bilərsiniz.


Kod məntiqiniz yaxşı görünür, yalnız alt ssenarini dəyişdirməlisiniz:

Növ = dəyişiklik (dəyər)

Bütün sütunlarınızda bir dəyər olaraq "Yox" yazısını alırsınız, çünki onu bu funksiyanı yerinə yetirmək əvəzinə dəyərlərin heç biri gözlədiyiniz kimi 1-5 olmadığı məlumatların [Tür] sütununda işlədirsiniz. bu rəqəmlərin olduğu (dəyər götürürəm) olduğu [dəyər] sütununda.


Videoya baxın: Basic Field Calculator (Oktyabr 2021).