Daha çox

Sahə kalkulyatoru ArcGIS 10.3.1 daxilində python simli vəhşi kartlardan istifadə


İki sahəm var. Bir sahənin şəxsiyyət vəsiqəsi var. Digər sahədə şəxsiyyət vəsiqələrinin siyahısı var. İstifadə Sahə Kalkulyatoru Mən hesablamaq üçün 1 və ya 0 əgər ya sahə eyni şəxsiyyət nömrəsini ehtiva edir. Bir sıra sorğusu ilə bir arppy sıra yazmaqda müvəffəq oldum, amma milyonlarla qeyd və sətirlərin xətti sınağı səmərəli deyil. Bir vuruşda hesablamalıyam.

Bir sahə götürüb dəyərini vəhşi bir kart halına gətirməli və digər sahəni bu dəyər üçün sınamalıyam. "*" Və "in" metodlarını sınadım. Ancaq doğru dəyəri qaytarmaq deyil.

Kimsə bunun niyə səhv olduğuna kömək edə bilər?

Birinci kod:

def myCal (reportnumber, spatialjoin): reportnumbercheck = ('*' + (str (reportnumber)) + '*') if (spatialjoin-də reportnumbercheck): return 1 else: return 0

Bu yalnız normal bir simli kimi işləməlidirinyoxlayın

def myCal (reportnumber, spatialjoin): spatialjoin-də reportnumber varsa: return 1 else: return 0

və ya hətta biri:

def myCal (reportnumber, spatialjoin): spatialjoin daxilində reportnumber varsa 1-i qaytarın

test etməmişəm, amma joker işarələrə ümumiyyətlə ehtiyacınız olmaya bilər - məkan qoşulma sahəsindəki dəyəri bir siyahıya çevirsəniz - kimi bir şey

def myCal (reportnumber, spatialjoin): #spatialjoin = spatialjoin.split (';') əgər spatialjoin içindəki reportnumber: return (1) else: return (0)

heck, məkan qoşulmasını bir siyahıya çevirməyə ehtiyac olmaya bilər ... həqiqətən, heç bir siyahıya çevrilməyə ehtiyac yoxdur - o hissəni şərh edəcəm ...