2 votos

ogr2ogr: problema con el recorte por lotes de archivos shape con el archivo kml convertido como fuente de recorte

He escrito este script que (ejecutado en MSYS) convierte un kml a shp y le aplica una reproyección. El shp resultante tiene entonces el mismo SRS que los shps que quiero recortar con él. Utilizo un bucle for para buscar los archivos shp en una determinada carpeta y luego quiero aplicar el recorte. La conversión arroja algunas advertencias despreciables (?) y produce un archivo shp que funciona.

Warning 6: Normalized/laundered field name: 'description' to 'descriptio'
Warning 6: Field timestamp create as date field, though DateTime requested.
Warning 6: Field begin create as date field, though DateTime requested.
Warning 6: Field end create as date field, though DateTime requested.
Warning 6: Normalized/laundered field name: 'altitudeMode' to 'altitudeMo'

Sin embargo, la segunda parte no funciona (no hay errores, sólo la información de uso de ogr2ogr como aparece si hay errores sintácticos)

cd D:/GIS_DataBase/GIS_Tirol/Scharnitz

outdir=D:/GIS_DataBase/GIS_Tirol/Scharnitz/Data
indir=D:/GIS_DataBase/GIS_Tirol/Tirol_Verbreitungskarten/Verbreitungs_Daten

mkdir outdir

# reproject and convert clipsource to desired SRS and shpfile-format
ogr2ogr -overwrite -skipfailures -append -f "ESRI Shapefile" -t_srs EPSG:31254 clpsrcfile.shp scharnitz_gem_grenze.kml

# clip all files in indir and save to outdir
for x in $indir/*.shp
  do ogrinfo -al $x | grep Extent
  ls $x
  ogr2ogr -clpsrc clpsrcfile.shp $outdir $x
done

3voto

trshiv Puntos 1163

En el primer script, varias de las advertencias están relacionadas con el número máximo de caracteres (10) permitidos en un shapefile dbf . Esto no es un problema en sí, pero hay que tener cuidado con los nombres de atributos grandes que se truncarán y será difícil saber lo que significan.

En la segunda parte, estás llamando incorrectamente a ogr2ogr para recortar. Es necesario especificar el shapefile de salida que se va a crear (puntos recortados en mi caso), seguido de la entrada que se va a recortar. la característica de recorte se especifica con -clipsrc. Echa un vistazo a la documento ogr2ogr aquí , tenga en cuenta el "dst_datasource_name src_datasource_name".

La llamada debería ser así para un solo clip:

ogr2ogr clipped_2.shp points.shp -clipsrc region.shp

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