ArcPyで始点と終点の座標を取得しますか?[閉まっている]


9

ポリラインフィーチャクラスのArcPyで始点と終点の座標を取得するにはどうすればよいですか?

セグメント識別子をサブルーチンに渡し、開始座標と終了座標を返すように期待しています。Field Calculatorメソッドは機能しません。その中で実行できない他の計算の値が必要だからです。(また、これらの座標を属性として格納するためにデータを変更しないことを好みます。)「センターアウト」アドレス指定スキームのアドレス範囲を計算しようとしています。住所の値は、「郡の中心」までの距離によって異なります。

回答:


15

このプロセスは、ArcGIS 10.0と10.1の間で変更されたようです。両方のサンプルを含めます。

以下は、arcpyを使用した10.1でのジオメトリの読み取りに関するヘルプドキュメントです。 ジオメトリの読み取り10.1
このドキュメントでは、ポリラインジオメトリタイプのパラメータについて説明します。 ポリライン(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

ここでは、ヘルプドキュメントには、arcpyを使用して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

2つの違いは、基本的にはフィーチャジオメトリへのアクセス方法にあります。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

このループを使用すると、いくつかの計算を追加して、シェイプごとに処理を進めることができます。

ヘルプには追加のヘルプがいくつかあります:Pythonでのジオメトリの操作


1

ポリラインオブジェクトのfirstPointプロパティとlastPointプロパティを使用できるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.