[Spanish] Unir shapefiles

Jorge Gaspar Sanz Salinas jsanz at osgeo.org
Fri Jun 4 04:31:24 EDT 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El 04/06/10 10:04, Iván Sánchez Ortega escribió:
> El 04/06/2010 8:54, OLLER GARCIA, Joan Marc escribió:
>> Se puede utilitzar OGR combinado con el interfaz de usuario de la
>> línea de comandos MS-DOS (cmd) de Windows
> 
> El fallo de Joan ha sido suponer que yo uso windows. Como ha dicho
> Matoses, mi shell-fu es poderoso:
> 
> 
> #!/bin/bash
> for i in *.shp; do
>     if [ -f destino.shp ]; then
>         ogr2ogr -f "ESRI Shapefile" -update -append \
>         destino.shp $i
>     else
>         cp $i destino.shp
> 

con un find lo haces recursivo :-)

#!/bin/bash

allfiles=`find . -name "*.shp" -type f`
for i in allfiles; do
...


Eso suponiendo que tus shapefiles no tienen espacios en el nombre,
claro...

:P

> 
> Luego estaría la opción en python+ogr:
> 
> #!/usr/bin/python
> from osgeo import ogr
> import glob
> driver = ogr.GetDriverByName('ESRI Shapefile')
> writer = driver.Open('destino.shp',1)
> writerlayer=writer.GetLayer(0)
> for infile in  glob.glob('*.shp') ):
>     reader = driver.Open(infile,0)
>     readerlayer = reader.GetLayer(0)
>     for i in range(readerlayer.GetFeatureCount()):
>         feat = readerlayer.GetNextFeature()
>         writerlayer.CreateFeature(feat)
>        
> 
> *Debería* funcionar. Luego lo pruebo en casa.
> 
> 
> El 04/06/2010 8:47, Jorge Gaspar Sanz Salinas escribió:
>> Yo me los llevaría a una base de datos y luego intentaría
>> exportarlos a shapefile.
> 
> Ahora es cuando me pongo el gorro de pensar y pregunto: ¿Qué ventaja
> tiene con respecto al código de python que he puesto arriba?
> 
> Porque abro el shape de salida una sola vez, y lo único que hago es
> iterar sobre todas las features existentes (cosa que también se haría al
> exportar BDD -> shp). No sé, lo veo como la mejor manera de hacerlo.

Efectivamente la segunda opción sólo abre el shape de salida una vez,
mientras que el segundo hace adiciones sobre un shapefile cada vez más
grande.

No sé cual es el método acaba siendo más rápido o seguro, pero como
seguro que vas a probar los dos, pues ya nos dirás cual va mejor :-)

Saludos!

- -- 
Jorge Gaspar Sanz Salinas
Ingeniero en Geodesia y Cartografía
http://es.osgeo.org
http://jorgesanz.net
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJMCLncAAoJEAOYD75lvHdBsEYIAKwOWR1FMmGcwYRSFdJmPmmi
zg8XK+6fN3LW9wbsFQalWwKCYwImkmlB3pQ/H2wuth6O+/EldBHdyQMqwuhH+kFe
0gJlkCMWZenE11bUK7ajfwWsiOKWbrEI2Hxmt0MwgS6pqfkCqLMiup9cGSlqg6VG
qABRn96cnbH3mj7cyukTc7/tHW26/cQH985DpADTZlcf8r1fLtubPYnnEovjtnGM
8vjKYNgLKcuxYh3APas/xuq5B/WiJgMG6F9Abyg5FPaEKAJNaQBksJhUOmzn8beX
7wFdcTWA9J2ofh57+9pPsxfI/+cwB3fODbfA/lC0Z4uh7UOv8s8V1LaorkmSmKw=
=umA5
-----END PGP SIGNATURE-----


More information about the Spanish mailing list