Cómo recortar una entidad vectorial en la medida de un dataset ráster existente usando arcpy

9

Tengo un dataset ráster recortado con polilíneas (de la herramienta de contorno) superpuesto (ver adjunto). Estoy tratando de recortar las polilíneas en la medida del dataset ráster, lo que parece bastante simple, pero he intentado varias cosas y parece que no puedo hacer que funcione. Eventualmente necesitaré codificar esto usando arcpy, pero creo que por ahora, solo un empujón en la dirección correcta sobre qué herramienta logrará esto me ayudará por ahora.

Gracias.

PD: estoy usando ArcInfo 10.0

clipPolylinesToRasterExtent

niklas24
fuente

Respuestas:

12

Puede usar la extensión del conjunto de datos como una geometría de polígono con la herramienta de recorte, como en el ejemplo Usar geometrías en herramientas de geoprocesamiento .

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
fuente
¡¡Gracias!! Antes de ver esta publicación, pude al menos hacerlo manualmente dentro de Arc, pero parece que mi camino es un poco complicado. Creé un archivo de forma ficticio y luego construí un polígono con las herramientas del editor que describían el límite de los datos ráster. Luego ejecuté la herramienta de recorte en las polilíneas usando este archivo de forma ficticio como lo que también debería recortarlos. ¡Obtuve un error, pero luego utilicé la función de polígono y utilicé el resultado de esto como el archivo de forma para que se recortaran las polilíneas y funcionó! Necesitaré arcpy así que gracias por eso !! :-)
niklas24
2

Hay una manera simple de hacer esto.

Primero obtenga la extensión de la imagen de trama.

establecerlo como propiedad de extensión de entorno

Luego use la función de copia en lugar del análisis de clip, por ejemplo

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