7 votos

fusionar shapefile usando ogr2ogr y recuperar el atributo de ambos

Ciao,

Tengo dos archivos de forma que quiero fusionar (superponer/intersectar) teniendo en el destino los atributos de los dos archivos de origen.

ogr2ogr file_merged.shp tl_2010_us_uac10_conus_albersUA.shp
ogr2ogr -update -append file_merged.shp tabblock2010_10_pophu.shp -nln file_merged

De esta manera obtengo los polígonos de las dos formas, pero pierdo los atributos de la tabblock2010_10_pophu.shp .

Mi objetivo final es entonces hacer una declaración cuadrada donde pueda recuperar el polígono en común en las dos formas.

¿Alguna sugerencia?

Gracias de antemano.

11voto

Nikola Puntos 21

Usando GDAL >= 1.10.0 y su Formato virtual de la OGR podemos escribir un VRT archivo llamado, por ejemplo, merge.vrt (ver Ejemplo: Capa de unión (GDAL >= 1.10.0) ):

<OGRVRTDataSource>
    <OGRVRTUnionLayer name="unionLayer">
        <OGRVRTLayer name="source1">
            <SrcDataSource>source1.shp</SrcDataSource>
        </OGRVRTLayer>
        <OGRVRTLayer name="source2">
            <SrcDataSource>source2.shp</SrcDataSource>
        </OGRVRTLayer>
    </OGRVRTUnionLayer>
</OGRVRTDataSource>

y simplemente ejecutar con el fin de simplemente preservar los atributos de ambos SHP:

ogr2ogr merge.shp merge.vrt

En cambio, si quieres también excluye las geometrías duplicadas del resultado:

ogr2ogr merge_distinct.shp merge.vrt -dialect sqlite -sql "SELECT DISTINCT geometry, * FROM merge"

5voto

Max Lybbert Puntos 11822

Escribí un código descargable para eso. Un simple programa pitón para combinar archivos de forma de muchas maneras: http://gistncase.blogspot.com.au/2012/05/python-shapefile-merger-utility.html

Por defecto realiza la unión de esquemas dbf y añade un atributo rellenado con el nombre del archivo shapefile de la fuente para que puedas reconocer los registros.

Esta es la línea de mando para sus necesidades:

python shapemerger.py -o file_merged.shp tl_2010_us_uac10_conus_albersUA.shp tabblock2010_10_pophu.shp

(tienes que ejecutarlo en un entorno de pitón con paquetes ogr/gdal disponibles. Escribí una nota sobre esto encima del código)

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