Tengo un directorio con varios archivos de forma.
¿Cómo puede convertir todos estos archivos de forma a MapInfo con ogr2ogr?
Sé cómo puedo convertir un archivo. Y puedo hacer un script por lotes escribiendo una línea para cada archivo. Pero, ¿no hay una manera más fácil de convertir todos los archivos en un directorio (y subdirectorio)?
Respuestas:
En Windows, para los directorios actuales y secundarios bajo el actual, intente este comando:
Para explicar brevemente el truco de lo que está sucediendo aquí ,
%~dpnf.tab
utiliza la variable % f , con la cual agrega la letra d river, el nombre p ath (es decir, la carpeta o el directorio) y extrae el archivo n AME (sin la.shp
extensión de archivo) . Por último,.tab
se agrega inmediatamente después de los modificadores de variables compuestas para la nueva extensión.Entonces, si está en el directorio
C:\MyData
, y tiene datos en este directorio, y subdirectoriosC:\MyData\Region1
yC:\MyData\Region1\City1
,.shp
se procesará cualquier Shapefile (con extensión), y.tab
se creará un archivo con un nombre similar en el mismo directorio.fuente
%f
a%%f
. Consulte ss64.com/nt/for.html para obtener más detalles.Para unix bash:
Si está trabajando en un sistema operativo basado en * nix (es decir, Linux u OS X), hay algunos scripts de shell por lotes que Clhenrik desarrolló aquí (en los que se basa lo anterior).
Estoy trabajando en una bifurcación que hace que algunos de los scripts sean un poco más genéricos y proporciona un poco más de descripción sobre el uso.
fuente
Como dijo Alex Markov , la mejor manera sería utilizar OGR .
Tendrá que hacer un script, pero muy simple. Básicamente, si está utilizando Windows, todo lo que tiene que hacer es ejecutar el siguiente código en la línea de comando (dentro de la carpeta deseada):
Consulte este sitio, todo se explica aquí:
http://www.processamentodigital.com.br/?p=2511
fuente
con pitón:
puede cambiar
os.getcwd()
a su ruta donde se encuentran sus archivos ...Espero que te ayude
fuente
for a in *.shp:
es un error de sintaxis; estás pensandofrom glob import glob; for a in glob('*.shp'):
No necesita un bucle, simplemente puede nombrar un directorio como fuente y destino y ogr2ogr convertirá cualquier archivo en el directorio fuente. Ver aquí: Convertir TAB a MIF / MIF a TAB
fuente
Parece que necesita un bucle for: consulte http://www.robvanderwoude.com/for.php para obtener una explicación de cómo funcionan.
fuente
Universal Translator en Mapinfo puede manejar múltiples archivos. Vaya a la carpeta de destino, seleccione todos los archivos de forma, defina CRS para entrada y salida. Debería estar hecho.
fuente
Este es el refinamiento de la respuesta de Aragón anterior. Solo ejecutará ogr2ogr en archivos .TAB o .tab e ignorará otros tipos de archivos en la carpeta.
fuente