Daugiau

Rūšiuokite ir padalykite funkcijų klases naudodami „Python“ scenarijų


Štai tokia mano situacija: turiu keletą naudingumo funkcijų klasių, o kiekvienas fc yra subtipuojamas pagal vieną iš pagrindinių atributų, tai yra eilutė. Kiekviename fc yra mažiausiai 12 atributų laukų, o kiekvienas atributas yra suformatuotas kaip „String“. Mano tikslas yra parašyti „Python“ scenarijų, kuris rūšiuos, atskirs ir eksportuos funkcijų klases kiekvienam duomenų potipiui. Ar kas nors turi gerą vietą pradėti ar idėją, kaip sukonstruoti Py skeletą, kad mano scenarijus vyktų? Kaip pavyzdį (ar nuorodą) norėčiau iš komunalinių duomenų kratinio ištraukti visus „Watermain, 8in, PVC, Owner“.


Yra keli būdai, kuriais galėtumėte tai padaryti, ir aš nesu 100% tikras, kuris jūsų situacijai būtų geriausias. Galite pabandyti naudoti arcpy.Select_analysis (http://resources.arcgis.com/EN/HELP/MAIN/10.2/index.html#//000800000005000000), kad sukurtumėte funkcijų klasę iš pasirinkimo. Jūsų sąlyga tikriausiai atrodytų „Tipas =„ Vandens pagrindas “ir„ Matavimas “=„ 8 coliai “, o„ PVC “ir„ Savininkas “=„ Džo “ar kažkas panašaus, dabar tai parinks visus atributų stulpelius, todėl jums gali prireikti apkarpyti nenorimus stulpelius.

Kita galimybė yra naudoti arcpy.da.SearchCursor (http://resources.arcgis.com/en/help/main/10.2/index.html#//018w00000011000000). Tokiu būdu galėtumėte konkrečiai nustatyti norimus laukus ir tada naudodamiesi žymekliu, galite eiti eilutę po rezultatus ir padaryti kažką panašaus, kaip sukurti funkcijų klasę, pridedant kiekvieną eilutę.

Taip pat rekomenduoju naudoti „in_memory“ darbo sritį. Tai galite naudoti norėdami sukurti tam tikrą laikiną funkcijų klasę, kad ji atrodytų, kaip norite, tada nukopijuokite ją į savo failą „gdb“ arba kur bet kada. (http://resources.arcgis.com/en/help/main/10.2/index.html#//002w0000005s000000)

Jei skelbtumėte duomenų pavyzdžius, galėčiau parašyti ką nors konkretesnio, bet čia yra bendras metodas, kaip aš išspręsiu problemą. Pirmiausia sukurčiau tuščią funkcijų klasę arba klases „in_memory“ darbo srityje. Su laukais įvardijamais, kokie jie yra, ir tik tais, kurių aš noriu. Tada norėčiau naudoti paieškos žymeklį su sąlyga, žyminčia tai, ką bandau atskirti, pridėti rezultatus prie „in_memory featureclass“ in_memory / target_waterlinefc “. tada nukopijuokite tai į failą gdb arba duomenų bazės ryšį, kai baigsiu. Tikiuosi, kad tai padės jums judėti.