Como recortar um recurso de vetor na extensão de um conjunto de dados de varredura existente usando arcpy

9

Eu tenho um conjunto de dados de varredura cortada com polilinhas (da ferramenta de contorno) sobrepostas (ver anexo). Estou tentando recortar as polilinhas na extensão do conjunto de dados raster, o que parece bastante simples, mas tentei várias coisas e não consigo fazê-la funcionar. Acabarei precisando codificar isso usando o arcpy, mas acho que, por enquanto, apenas uma cutucada na direção certa sobre qual ferramenta realizará isso, me ajudará por enquanto.

Obrigado.

PS Estou usando o ArcInfo 10.0

clipPolylinesToRasterExtent

niklas24
fonte

Respostas:

12

Você pode usar a extensão do conjunto de dados como uma geometria de polígono com a ferramenta clipe, como no exemplo Usando geometrias em ferramentas de geoprocessamento .

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")
om_henners
fonte
Obrigado!! Antes de ver este post, eu era capaz de fazê-lo pelo menos manualmente no Arc, mas com certeza parece que meu caminho é um pouco complicado. Criei um shapefile fictício e, em seguida, construí um polígono com as ferramentas do editor que delineiam o limite dos dados rasterizados. Depois, executei a ferramenta de clipe nas polilinhas usando esse shapefile fictício como o que também deveria cortá-los. Eu recebi um erro, mas depois usei o recurso para polígono e usei o resultado disso como o shapefile para as polilinhas a serem cortadas e funcionou !! Vou precisar de arcpy, obrigado por isso !! :-)
niklas24
2

Existe uma maneira simples de fazer isso.

Primeiro, obtenha a extensão da imagem rasterizada.

configurá-lo como propriedade da extensão do ambiente

Em seguida, use o recurso de cópia em vez da análise de clipe, por exemplo

arcpy.env.extent = arcpy.Extent(-107.0, 38.0, -104.0, 40.0)
...some code here to ...
arcpy.CopyFeatures_management(shapefile,outFeatureClass)
Shabeerali
fonte