У меня есть каталог с несколькими шейп-файлами.
Как можно преобразовать все эти шейп-файлы в MapInfo с помощью ogr2ogr?
Я знаю, как я могу конвертировать один файл. И я могу сделать пакетный скрипт, записывающий строку для каждого файла. Но разве нет более простого способа конвертировать все файлы в каталоге (и подкаталоге).
Ответы:
В Windows, для текущего и подкаталогов в текущем, попробуйте эту команду:
Чтобы кратко объяснить хитрость происходящего здесь ,
%~dpnf.tab
используется переменная % f , с помощью которой она добавляет букву d river, имя p ath (т.е. папку или каталог) и извлекает файл n ame (без.shp
расширения файла) , Наконец,.tab
добавляется сразу после модификатора составной переменной для нового расширения.Так что, если вы находитесь в каталоге
C:\MyData
, и у вас есть данные в этом каталоге, а также в подкаталогахC:\MyData\Region1
иC:\MyData\Region1\City1
любом, любой Shapefile (с.shp
расширением) будет обработан, и аналогичный именованный файл.tab
будет создан в том же каталоге.источник
%f
до%%f
. См. Ss64.com/nt/for.html для деталей.Для Unix Bash:
Если вы работаете в ОС * nix (то есть в Linux или OS X), есть несколько сценариев пакетной оболочки, которые были разработаны здесь clhenrik (на которых основано вышеизложенное).
Я работаю над форком, который делает некоторые из сценариев немного более общими и предоставляет немного больше описания по использованию.
источник
Как сказал Алексей Марков , для вас лучше всего использовать OGR .
Вам нужно будет сделать сценарий, но очень простой. В основном, если вы используете Windows, все, что вам нужно сделать, это запустить следующий код в командной строке (внутри нужной папки):
Проверьте этот сайт, все объясняется здесь:
http://www.processamentodigital.com.br/?p=2511
источник
с питоном:
Вы можете изменить
os.getcwd()
свой путь, где ваши файлы находятся ...я надеюсь, что это поможет вам
источник
for a in *.shp:
это синтаксическая ошибка; ты думаешьfrom glob import glob; for a in glob('*.shp'):
Вам не нужен цикл, вы можете просто назвать каталог как источник и место назначения, и ogr2ogr преобразует любые файлы в исходном каталоге. Смотрите здесь: Преобразование TAB в MIF / MIF в TAB
источник
Похоже, вам нужен цикл for - см. http://www.robvanderwoude.com/for.php для объяснения того, как они работают.
источник
Универсальный переводчик в Mapinfo может обрабатывать несколько файлов. Перейдите в папку назначения, выберите все шейп-файлы, определите CRS для ввода и вывода. Это должно быть сделано.
источник
Это уточнение ответа Арагона выше. Он будет запускать ogr2ogr только для файлов .TAB или .tab и игнорировать другие типы файлов в папке.
источник