ArcGIS

ArcPy(ArcGIS10)に関する覚書

ワイルドカードを用いて複数ファイルを指定する

マージなどの複数のデータを入力する処理を行う際に ワイルドカードを用いてファイルを指定する手順

# globモジュールをインポートする

import glob

# 出力ファイルのパスと名前を指定

outputdata = "C:\\temp\\ps_merge_all.shp"

# ワイルドカードを使用して入力データリストを指定

files = glob.glob('C:\\temp\\*.shp')

# Process: マージ (Merge)

arcpy.Merge_management(files, outputdata)

河口から流路延長1kmごとにポイントを発生させる処理

あまり美しくないですが・・ あとお金がないと(=arcinfoがないと)できません

# Set the necessary product code
# import arcinfo

# Import arcpy module
import arcpy

# 必要なエクステンションの指定
arcpy.CheckOutExtension("Network")

# 河口のポイントデータ(test_shisetsu)とネットワークデータセット(test02_ND)を指定する
# Local variables:
test_shisetsu = "C:\\temp\\test.mdb\\test_shisetsu"
test02_ND = "C\\temp\\test.mdb\\test02\\test02_ND"

# ワークスペースの指定
tempWorkspace = "C:\\temp\\temp"
outputWorkspace = "C:\\temp\\fin"

try:

for x in range(1000, 101000, 1000):

#変数の宣言

#ネットワーク解析レイヤの名前

fc = "reach" + str(x)[:-3]

#河口からの距離の変数

mkyori = str(x)

#ネットワーク解析レイヤからラインデータを抽出

line_l = "reach" + str(x)[:-3] + "\\ライン"

#ポイントデータのファイル名

output1 = tempWorkspace + "\\p_" + str(x)[:-3] + ".shp"

#ポイントデータをレイヤに変換する際の名前

layer1 = str(x)[:-3] + "L"

#ポイントデータからデータを抽出する際の条件式

formula1 = "\"ToCumul_k\" =" + str(x)

#最終的なポイントデータのファイル名

output2 = outputWorkspace + "\\ps_" + str(x)[:-3] + ".shp"

# Process: 到達圏レイヤの作成 (Make Service Area Layer)

arcpy.MakeServiceAreaLayer_na(test02_ND, fc, "k", "TRAVEL_FROM", mkyori, "NO_POLYS", "NO_MERGE", "RINGS", "TRUE_LINES", "OVERLAP", "NO_SPLIT", "", "k", "ALLOW_UTURNS", "", "TRIM_POLYS", "100 Meters", "NO_LINES_SOURCE_FIELDS")

# Process: ロケーションの追加 (Add Locations)

arcpy.AddLocations_na(fc, "施設", test_shisetsu, "Name # #;CurbApproach # 0;Attr_k # 0;Breaks_k # #", "5000 Meters", "", "a SHAPE;test02_ND_Junctions NONE", "MATCH_TO_CLOSEST", "APPEND", "NO_SNAP", "5 Meters", "INCLUDE", "a #;test02_ND_Junctions #")

# Process: 解析の実行 (Solve)

arcpy.Solve_na(fc, "SKIP", "TERMINATE")

# Process: フィーチャの頂点 → ポイント (Feature Vertices To Points)

arcpy.FeatureVerticesToPoints_management(line_l, output1, "DANGLE")

# Process: フィーチャ レイヤの作成 (Make Feature Layer)

arcpy.MakeFeatureLayer_management(output1, layer1, formula1, "", "FID FID VISIBLE NONE;Shape Shape VISIBLE NONE;FacilityID FacilityID VISIBLE NONE;FromCumul_ FromCumul_ VISIBLE NONE;ToCumul_k ToCumul_k VISIBLE NONE;ORIG_FID ORIG_FID VISIBLE NONE;DANGLE_LEN DANGLE_LEN VISIBLE NONE")

# Process: フィーチャのコピー (Copy Features)

arcpy.CopyFeatures_management(layer1, output2, "", "0", "0", "0")

print mkyori

except:

print "error"


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS