ฉันก็รักพจนานุกรม - ใช้พวกมันตลอดเวลา วิธีการนี้จะได้รับคุณสมบัติการอ้างอิงเชิงพื้นที่และเก็บมันทั้งหมดใน 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 คืออะไร ดังนั้นฉันใช้รายการและพจนานุกรมจำนวนมากสำหรับสิ่งนี้