나도 사전을 좋아 합니다-항상 사용하십시오. 이 메소드는 일부 공간 참조 특성을 가져 와서이를 모두 dict에 저장합니다.
def get_coord_sys(self, in_dataset):
"""Get and return info on dataset coord sys/projection"""
spatial_ref = arcpy.Describe(in_dataset).spatialReference
# Get spatial ref props and put in dictionary
spat_ref_dict = {}
spat_ref_dict["name"] = spatial_ref.name
spat_ref_dict["type"] = spatial_ref.type
spat_ref_dict["gcs_code"] = spatial_ref.GCSCode
spat_ref_dict["gcs_name"] = spatial_ref.GCSName
spat_ref_dict["pcs_code"] = spatial_ref.PCSCode
spat_ref_dict["pcs_name"] = spatial_ref.PCSName
return spat_ref_dict
이 메소드 스 니펫은 두 피쳐 클래스에서 포인트 형상을 추출한 다음 나중에 형상을 사용하여 일부 삼각법을 수행합니다.
def build_fields_of_view(self):
"""For all KOPs in a study area, build left, right, center FoV triangles"""
try:
fcs = {os.path.join(self.gdb, "WindFarmArray"):[], os.path.join(self.gdb, "KOPs"):[]}
# Build a dict of WTG and KOP array geometries, looks like:
# {'KOPs': [[1, -10049.2697098718, 10856.699451165374],
# [2, 6690.4377855260946, 15602.12386816188]],
# 'WindFarmArray': [[1, 5834.9321158060666, 7909.3822339441513],
# [2, 6111.1759513214511, 7316.9684107396561]]}
for k, v in fcs.iteritems():
rows = arcpy.SearchCursor(k, "", self.sr)
for row in rows:
geom = row.shape
point = geom.getPart()
id = row.getValue("OBJECTID")
v.append([id, point.X, point.Y])
kops = fcs[os.path.join(self.gdb, "KOPs")] # KOP array
wtgs = fcs[os.path.join(self.gdb, "WindFarmArray")] # WTG array
현재 작업중인 많은 부분은 벡터 피쳐 클래스 및 래스터에서 좌표 및 속성을 추출하여 GIS 데이터가 무엇인지 모르는 다른 소프트웨어로 데이터를 푸시 할 수 있습니다. 그래서 나는 이것을 위해 목록과 사전을 많이 사용합니다.