J'ai un répertoire avec plusieurs fichiers de formes.
Comment convertir tous ces fichiers de formes en MapInfo avec ogr2ogr?
Je sais comment convertir un fichier. Et je peux faire un script batch en écrivant une ligne pour chaque fichier. Mais n'y a-t-il pas un moyen plus simple de convertir tous les fichiers d'un répertoire (et d'un sous-répertoire).
Réponses:
Sous Windows, pour les sous-répertoires actuels et sous le courant, essayez cette commande:
Pour expliquer brièvement la ruse de ce qui se passe ici ,
%~dpnf.tab
utilise la variable % f , avec laquelle il ajoute la lettre d river, le nom p ath (ie, dossier ou répertoire), et extrait le fichier n ame (sans l'.shp
extension de fichier) . Enfin,.tab
est ajouté immédiatement après les modificateurs de variables composées pour la nouvelle extension.Donc, si vous êtes dans le répertoire
C:\MyData
, et que vous avez des données dans ce répertoire, et des sous-répertoiresC:\MyData\Region1
etC:\MyData\Region1\City1
, tout Shapefile (avec.shp
extension) sera traité, et un fichier nommé similaire avec.tab
sera créé dans le même répertoire.la source
%f
à%%f
. Voir ss64.com/nt/for.html pour plus de détails.Pour unix bash:
Si vous travaillez dans un système d'exploitation basé sur * nix (c'est-à-dire Linux ou OS X), il existe des scripts shell par lots que clhenrik a développés ici (sur lesquels est basé ci-dessus).
Je travaille sur un fork qui rend certains scripts un peu plus génériques et fournit un peu plus de description sur l'utilisation.
la source
Comme l'a dit Alex Markov , la meilleure façon serait d'utiliser OGR .
Vous devrez faire un script, mais très simple. Fondamentalement, si vous utilisez Windows, tout ce que vous avez à faire est d'exécuter le code suivant dans la ligne de commande (à l'intérieur du dossier souhaité):
Consultez ce site, tout est expliqué ici:
http://www.processamentodigital.com.br/?p=2511
la source
avec python:
vous pouvez modifier
os.getcwd()
votre chemin d'accès où se trouvent vos fichiers ...J'espère que ça t'aide
la source
for a in *.shp:
est une erreur de syntaxe; vous pensezfrom glob import glob; for a in glob('*.shp'):
Vous n'avez pas besoin d'une boucle, vous pouvez simplement nommer un répertoire comme source et destination et ogr2ogr convertira tous les fichiers du répertoire source. Voir ici: Conversion de TAB en MIF / MIF en TAB
la source
sonne comme si vous aviez besoin d'une boucle for - voir http://www.robvanderwoude.com/for.php pour une explication de leur fonctionnement.
la source
Universal Translator dans Mapinfo peut gérer plusieurs fichiers. Accédez au dossier de destination, sélectionnez tous les fichiers de formes, définissez CRS pour l'entrée et la sortie. Ca devrait être fait.
la source
C'est le raffinement de la réponse d'Aragon ci-dessus. Il exécutera uniquement ogr2ogr sur les fichiers .TAB ou .tab et ignorera les autres types de fichiers du dossier.
la source