40 votos

¿Crear un shapefile que muestre las huellas de los Rasters?

Tengo alrededor de 1.000 imágenes de satélite en formato tiff, y quiero crear un shapefile que sirva de índice a los rasters. Se trata de algo parecido a un catálogo raster, pero no quiero construir un catálogo raster.

Algunos obstáculos que puedo prever, es que la imagen está georreferenciada, por lo que no tienen forma rectangular (me refiero al área de datos).

Para aclarar, requiero que el polígono cubra sólo los píxeles no nódicos del raster, y no todo el raster rectangular. La mayoría de las respuestas hasta ahora, dan un polígono rectangular, que cubre los datos, así como los píxeles no datos.

Mi imagen A sample Satellite Image


Resultado dado por las herramientas que he examinado (como raster catlog, varios Arcscripts, script Python personalizado dado en una de las respuestas): Result


Resultado que quiero: enter image description here

4voto

Eric Jorgensen Puntos 316

He probado la herramienta "Image Boundary" en QGIS pero falla con algunos rásters.

Otra opción que me ha funcionado es:

  1. Convierte la trama de entrada en un único número digital utilizando la utilidad de línea de comandos gdal_translate.

gdal_translate -co compress=lzw -b 1 -ot byte -scale 1 1 inp.tif out.tif

Esto creará una trama con valores de 1 en todos los lugares donde inp.tif tenía valores distintos de cero.

  1. A continuación, en ArcMap puede utilizar la herramienta "raster to polygon" para obtener un polígono (shapefile).

El shapefile de salida tendrá límites no cuadriláteros, con múltiples vértices poligonales, siguiendo el límite real de la imagen.

3voto

Michal Stefanow Puntos 106

Si está interesado en una solución con script, pruebe el comando gdal casi negro . También puede utilizar el indicador -white para recuperar datos delimitados por espacios en blanco. Puede poligonizar la salida para generar una huella no rectangular de los datos ráster.

##run nearblack
shellcmds = "nearblack -white -o " + outpath + " " + inpath
os.system(shellcmds)

##run polygonize
shellcmds = "gdal_polygonize.py " + outpath + " -f" + """ "ESRI Shapefile"  """ + outpath2 + " nearblack"
os.system(shellcmds)

1voto

John Douthat Puntos 421

Podría crear un catálogo raster con una referencia espacial asignada, añadir el catálogo raster a ArcMap y luego "Exportar huella". Recuerde que existe la opción de crear un catálogo ráster "NO ADMINISTRADO" para que no esté haciendo un duplicado de cada conjunto de datos ráster.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X