Lagi

Mengembalikan kelas fitur dari kotak alat Python

Mengembalikan kelas fitur dari kotak alat Python


Saya mencoba mengembalikan kelas fitur (data sampel saya adalah poligon fc) dari kotak alat Python dan tidak dapat menemukan informasi apa pun tentang apa yang harus saya atur agar berfungsi. Ini berjalan dengan sukses dan memberi saya jumlah rekor 917 tetapi di ArcCatalog di jendela hasilkeluar: (dan ikonnya terlihat seperti tabel bukan kelas fitur poligon).

import arcpy class Toolbox(object): def __init__(self): self.label='BasicOutput' self.alias='BasicOutput' self.description='BasicOutput' self.summary=self.description # Daftar kelas alat yang terkait dengan ini toolbox self.tools=[BasicOutput] class BasicOutput(objek): def __init__(self): """Tentukan alat (nama alat adalah nama kelas).""" self.label='BasicOutput' self.description ='BasicOutput' self.summary=self.description def getParameterInfo(self): ps=[ arcpy.Parameter( displayName="out", name="out", datatype="GPFeatureRecordSetLayer", parameterType="Derived", direction= "Output"), ] return ps def updateParameters(self,parameters): return def updateMessages(self,parameters): return def execute(self,parameters,messages): fs=arcpy.FeatureSet() fs.load(r'D :customAppsPaddockGRASPBasicOutput.gdb/Cadastre') arcpy.AddMessage('record count: %s'%arcpy.GetCount_management(fs)) parameter[0].value=fs

Saya kemudian akan menerbitkannya sebagai layanan GP di server ArcGis, tetapi bahkan tidak bisa membuatnya bekerja di ArcCatalog! Menggunakan ArcGis 10.2.1.


TLDR: Ubahparameter[0].nilai=fskearcpy.SetParameterAsText(0,fs)

EDIT: setelah beberapa pengujian kecil, sepertinyaarcpy.SetParameterjuga bekerja.

EDIT2: Ups, baru perhatikan bahwa saya juga mengubah tipe data menjadiDEFeatureClass.

Oke, setelah berjam-jam mencoba berbagai hal dan menjelajahi forum tentang masalah yang tidak sama dengan masalah saya atau tentang mendapatkan fitur sebagai input alih-alih output, saya menemukan solusi sederhana (namun sama sekali tidak intuitif bagi saya). Terlepas dari nama fungsinyaSetParameterAsText, itu benar-benar menetapkan nilai pengembalian ke kelas fitur saya - mengembalikan jalur di ArcCatalog tempat saya dapat menyalin fitur dan mengembalikan JSON ketika diterbitkan sebagai GPService.


Tonton videonya: iOS App Development with Swift by Dan Armendariz