Arcpyを使用して既存のラスターデータセットの範囲までベクターフィーチャをクリップする方法


9

(等高線ツールからの)ポリラインがオーバーレイされたクリップされたラスターデータセットがあります(添付を参照)。ポリラインをラスターデータセットの範囲までクリップしようとしています。これは非常に単純なように見えますが、複数のことを試しましたが、機能しないようです。最終的には、arcpyを使用してこれをコーディングする必要がありますが、今のところ、どのツールがこれを達成するかについて正しい方向に少し進むと、今のところ役立ちます。

ありがとう。

PS ArcInfo 10.0を使用しています

clipPolylinesToRasterExtent

回答:


12

ジオプロセシングツールでジオメトリを使用する例のように、データセットの範囲をクリップツールでポリゴンジオメトリとして使用できます。

import arcpy

pnt_array = arcpy.Array()
extent = arcpy.Raster(in_raster).extent
pnt_array.add(extent.lowerLeft)
pnt_array.add(extent.lowerRight)
pnt_array.add(extent.upperRight)
pnt_array.add(extent.upperLeft)

poly = arcpy.Polygon(pnt_array)

arcpy.Clip_analysis(in_lines, poly, "out_dataset")

ありがとうございました!!この投稿を見る前に、少なくともArc内で手動でそれを行うことができましたが、私のやり方は少し複雑に思えます。ダミーのシェープファイルを作成してから、ラスターデータの境界の輪郭を描くエディターツールでポリゴンを作成しました。次に、このダミーシェープファイルを使用して、ポリライン上でクリップツールを実行しました。エラーが発生しましたが、フィーチャをポリゴンに使用し、その結果を、ポリラインをクリップするシェイプファイルとして使用しました。私はarcpyが必要になるので、それをありがとう!! :-)
niklas24 2012年

2

これを行う簡単な方法があります。

まず、ラスターイメージの範囲を取得します。

環境範囲プロパティとして設定します

次に、クリップ分析の代わりにコピー機能を使用します。たとえば、

arcpy.env.extent = arcpy.Extent(-107.0, 38.0, -104.0, 40.0)
...some code here to ...
arcpy.CopyFeatures_management(shapefile,outFeatureClass)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.