シェープ ファイルのすべてのポリラインを取得するために arcpy を使用しています。SearchCursor
カーソルを返すので、シェープ ファイルのすべての機能を反復処理できます。問題は、後で使用するために、カーソルによって返されたすべてのオブジェクトを保存したいことです。
import arcpy
from arcpy import env
env.workspace = r"C:\GIS Data\GIS data"
desc = arcpy.Describe("River.shp")
shapefieldname = desc.ShapeFieldName
rows = arcpy.SearchCursor("River.shp")
featureList = ()
for row in rows:
feat = row.getValue(shapefieldname)
featureList = featureList + (feat, )
print "%i %i" % (featureList[-1].firstPoint.X, featureList[-1].firstPoint.Y)
print "%i %i" % (featureList[-1].lastPoint.X, featureList[-1].lastPoint.Y)
print
print "---------------------------------------------------------------"
for feat in featureList:
print "%i %i" % (feat.firstPoint.X, feat.firstPoint.Y)
print "%i %i" % (feat.lastPoint.X, feat.lastPoint.Y)
print
カーソルによって返されるすべてのオブジェクトを含むはずのタプル。size
ただし、タプル回数の最後の要素のみが繰り返されます。
3610930 2135882 3611593 2134453
3611806 2134981 3611593 2134453
3614160 2136164 3617432 2131734
3611593 2134453 3617432 2131734
3617432 2131734 3620568 2127591
3620568 2127591 3620785 2127423
3617980 2126657 3620568 2127591
3616768 2129454 3617948 2126649
3617948 2126649 3617980 2126657
3615102 2128889 3617587 2126510
3617587 2126510 3617948 2126649
3617624 2126416 3617980 2126657
3613129 2128176 3615155 2125617
3615155 2125617 3617587 2126510
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
3615086 2125515 3615155 2125617
最初に、リストを使用してこれを試しました。「append()」メソッドを使用した場合、リストにも同じ出力が見つかりました。タプルは不変のデータ構造であるため+
、タプルの以前のすべての要素をどのように上書きできますか。このコードはarcpy用に書かれていますが、問題はarcgis固有ではないと思います.