概要
Python を用いてラインを頂点で分割し、別のフィーチャクラスとして出力する方法をご紹介します。
Python サンプル コード
変数 inLineFC、outFC に代入する入力データと出力データのパスは適宜変更してください。
# coding:cp932
#
#-------------------------------------------------------------------------------
# Name: SplitLine_Vertex
# Purpose: 頂点でラインを分割します。
#
# Author: ESRI Japan
#-------------------------------------------------------------------------------
# ArcPy、os.path モジュールのインポート
import arcpy,os.path
# 入力、出力データの設定
inLineFC = r"D:DatatmpinLine.shp"
outFC = r"D:DatatmpoutLine.shp"
desc = arcpy.Describe(inLineFC)
sr = desc.spatialReference
arcpy.CreateFeatureclass_management(os.path.dirname(outFC),os.path.basename(outFC),"POLYLINE",inLineFC,"","",sr)
SearchCur = arcpy.SearchCursor(inLineFC)
InseartCur = arcpy.InsertCursor(outFC)
for row in SearchCur:
i = 0
geom = row.shape
while i < geom.partCount:
part = geom.getPart(i)
j = 0
pointCount = part.count
while j < pointCount-1:
point1 = part.getObject(j)
point2 = part.getObject(j + 1)
newAry = arcpy.Array()
newAry.add(point1)
newAry.add(point2)
new_polyLine = arcpy.Polyline(newAry,sr)
newRow = InseartCur.newRow()
newRow.shape = new_polyLine
InseartCur.insertRow(newRow)
j += 1
i += 1
del row,SearchCur,newRow,InseartCur
こちらのサンプルはあくまでもコーディングの見本であり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。なお、コードを実行して生じたいかなる損害についても弊社では責任を負いかねます。
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!