กำลังดึงพิกัดจุดเริ่มต้นและจุดสิ้นสุดด้วย ArcPy? [ปิด]


9

ฉันจะดึงข้อมูลพิกัดเริ่มต้นและจุดสิ้นสุดด้วย ArcPy สำหรับคลาสคุณลักษณะ polyline ได้อย่างไร

ฉันคาดหวังว่าจะส่งตัวระบุกลุ่มไปยังรูทีนย่อยและให้ส่งผ่านพิกัดเริ่มต้นและสิ้นสุด วิธีการคำนวณฟิลด์ไม่ทำงานสำหรับฉันเพราะฉันต้องการค่าสำหรับการคำนวณอื่น ๆ ที่ไม่สามารถทำได้ภายใน (ฉันยังไม่ต้องการเปลี่ยนข้อมูลเพื่อจัดเก็บพิกัดเหล่านี้เป็นคุณลักษณะ) ฉันพยายามคำนวณที่อยู่สำหรับรูปแบบการกำหนดที่อยู่ "กึ่งกลาง" ค่าที่อยู่ขึ้นอยู่กับระยะทางไปยัง "เคาน์ตีเคาน์ตี"

คำตอบ:


15

กระบวนการนี้ดูเหมือนว่าจะมีการเปลี่ยนแปลงระหว่าง ArcGIS 10.0 และ 10.1 ฉันจะรวมตัวอย่างสำหรับทั้งสอง

นี่คือเอกสารความช่วยเหลือเกี่ยวกับการอ่านรูปทรงเรขาคณิตใน 10.1 โดยใช้อาร์คปี: การ อ่านรูปทรงเรขาคณิต 10.1
เอกสารนี้อธิบายพารามิเตอร์สำหรับประเภทรูปทรงเรขาคณิตของPolyline : Polyline (arcpy)

10.1

import arcpy

infc = arcpy.GetParameterAsText(0)

# Enter for loop for each feature
#
for row in arcpy.da.SearchCursor(infc, ["OID@", "SHAPE@"]):
    # Print the current line ID

    print("Feature {0}:".format(row[0]))

    #Set start point
    startpt = row[1].firstPoint

    #Set Start coordinates
    startx = startpt.X
    starty = startpt.Y

    #Set end point
    endpt = row[1].lastPoint

    #Set End coordinates
    endx = endpt.X
    endy = endpt.Y

10.0

นี่คือเอกสารช่วยเหลือในการอ่านรูปทรงเรขาคณิตใน 10.0 โดยใช้ arcpy: รูป ทรงเรขาคณิตของการอ่าน 10.0
เอกสารนี้อธิบายพารามิเตอร์สำหรับวัตถุรูปทรงเรขาคณิต : เรขาคณิต

import arcpy

infc = arcpy.GetParameterAsText(0)

# Identify the geometry field
#
desc = arcpy.Describe(infc)
shapefieldname = desc.ShapeFieldName

# Create search cursor
#
rows = arcpy.SearchCursor(infc)

# Enter for loop for each feature/row
#
for row in rows:
    # Create the geometry object
    #
    feat = row.getValue(shapefieldname)

    # Print the current line ID
    #
    print "Feature %i:" % row.getValue(desc.OIDFieldName)

    #Set start point
    startpt = feat.firstPoint

    #Set Start coordinates
    startx = startpt.X
    starty = startpt.Y

    #Set end point
    endpt = feat.lastPoint

    #Set End coordinates
    endx = endpt.X
    endy = endpt.Y

ความแตกต่างระหว่างทั้งสองนั้นอยู่ที่วิธีการเข้าถึงรูปทรงเรขาคณิตของคุณลักษณะ มีการเพิ่มทางลัดใน10.1เพื่อให้ง่ายต่อการเข้าถึงวัตถุรูปทรงเรขาคณิต


6

ฉันเคยทำสิ่งนี้มาก่อนและต้องการใช้ Cursor การค้นหาและอ่านเรขาคณิต มันสร้างวงและช่วยให้คุณทำ calcs ในแต่ละรูปร่าง

inFeatures = "Feature"
shapeName = arcpy.Describe (inFeatures).shapeFieldName
rows = arcpy.SearchCursor(inFeatures)
for row in rows:
    feat = row.getValue(shapeName)
    xy1 = feat.firstPoint
    xy2 = feat.lastPoint

การวนซ้ำนั้นช่วยให้คุณสามารถเพิ่มการคำนวณบางอย่างด้วยมันและไปตามรูปร่าง

มีความช่วยเหลือเพิ่มเติมในวิธีใช้: การทำงานกับรูปทรงเรขาคณิตใน Python


1

คุณควรใช้คุณสมบัติ firstPoint และ lastPoint ของวัตถุPolyline

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.