आरकेपी के साथ प्रारंभ और अंत बिंदु निर्देशांक प्राप्त करना? [बन्द है]


9

मैं पॉलीलाइन फीचर क्लास के लिए आर्कपी के साथ आरंभ और अंत बिंदु निर्देशांक कैसे प्राप्त करूं?

मैं एक उप-पहचानकर्ता को एक खंड पहचानकर्ता को पास करने की उम्मीद करता हूं और इसके पास निर्देशांक और अंत निर्देशांक को वापस करना है। फ़ील्ड कैलकुलेटर विधि मेरे लिए काम नहीं करती है, क्योंकि मुझे अन्य गणनाओं के लिए मूल्य की आवश्यकता है जो इसके भीतर प्रदर्शन नहीं कर सकते हैं। (मैं इन निर्देशांक को विशेषताओं के रूप में संग्रहीत करने के लिए डेटा में बदलाव नहीं करना भी पसंद करता हूं।) मैं "सेंटर आउट" एड्रेसिंग योजना के लिए पते की गणना करने का प्रयास कर रहा हूं। पता मूल्य "काउंटी केंद्र" की दूरी पर निर्भर करता है।

जवाबों:


15

ऐसा लगता है कि इसके लिए प्रक्रिया ArcGIS 10.0 और 10.1 के बीच बदल गई है। मैं दोनों के लिए एक नमूना शामिल करूंगा।

10.1 में ज्यामितीय पढ़ने पर हेल्प डॉक्यूमेंट है। आर्कियो: रीडिंग जियोमेट्री 10.1 का उपयोग करते हुए।
यह दस्तावेज पॉलीलाइन ज्यामिति प्रकार के मापदंडों पर चर्चा करता है: पॉलीलाइन (आर्कपी)

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 में ज्यामितीय पढ़ने पर सहायता दस्तावेज यहां है। आर्कियो का उपयोग करते हुए: ज्यामितीय पढ़ना। 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

मैंने पहले भी ऐसा किया है और एक खोज कर्सर का उपयोग करना पसंद करते हैं और ज्यामिति पढ़ते हैं। यह एक लूप बनाता है और आपको प्रत्येक आकृति पर बछड़े करने की अनुमति देता है।

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

वह लूप आपको इसके साथ कुछ गणनाओं को जोड़ने और आकार के आधार पर जाने की अनुमति देता है।

सहायता में कुछ अतिरिक्त मदद है: पायथन में ज्यामिति के साथ काम करना


1

आप की firstPoint और lastPoint गुण का उपयोग करने में सक्षम होना चाहिए पॉलीलाइन वस्तु।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.