2 votos

Exportar RAT (controlador KEA) a Shapefile

Tengo un conjunto de datos de rásteres (conductor kea ) que tiene, digamos, 20-30 atributos en su RAT. Me estoy dando cuenta de cómo tener estos atributos en shapefiles (sin usar software propietario). He leído muchas cosas en GDAL y Python, pero no he sido capaz de resolverlo. Ya que no puedo convertir mis rasters a shapefiles a través de gdal_polygonize.py (No trata con RATs), estoy tratando de encontrar una alternativa para convertir los RATs a CSV o cualquier formato que me permita hacer un join, después de todo.

No consigo identificar una solución adecuada. ¿Alguien podría indicarme alguna pista? ¿Cómo puedo convertir los rasters (formato kea, en este caso) a shape para poder tener toda la tabla de atributos? ¿O puedo exportar el RAT para poder unirlo a un shapefile?

EDITAR

Hace poco hice un progreso. Soy capaz de almacenar los nombres de las columnas (y eventualmente los valores de las columnas en python. Pero cómo exportar/guardarlas en un formato manejable (cvs,txt,ascii) sigue sin solución.

>#!/usr/bin/env python 
># Import python modules 
>from rsgislib import rastergis 
>from osgeo import gdal 
># The output segments (clumps) image 
>seg = "cur_segs_50_1000_UTM.kea" 
>outfile = "test.txt" 
>img= gdal.Open(seg) 
>band=img.GetRasterBand(1) 
>rat=band.GetDefaultRAT() 
>icolcount=rat.GetColumnCount() 
>cols=[] 
>for icol in range(icolcount): 
>cols.append(rat.GetNameOfCol(icol))

3voto

Knoothe Puntos 307

Puedes usar el módulo rios (raster input/output simplification) para leer las columnas de la RAT, dándote un array numpy que puede ser escrito en un csv

col_names = rios.rat.getColumnNames(img)
rat_values = []
for col in col_names:
    rat_values.append(rios.rat.readCoumn(img, col)

Como alternativa, posiblemente sea más fácil crear una imagen gdal directamente desde la RAT:

rsgislib.rastergis.exportCols2GDALImage

Permite utilizar gdal_polygonize.py, ver aquí la documentación: http://www.rsgislib.org/rsgislib_rastergis.html

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