[Spanish] Unir shapefiles

Iván Sánchez Ortega ivan at sanchezortega.es
Fri Jun 4 04:04:38 EDT 2010


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


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.


P.D.: El WMS shootout de este FOSS4G va a ser la leche :-D


Un saludo,
-- 
Iván Sánchez Ortega <ivan en sanchezortega.es>


More information about the Spanish mailing list