[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