Страница 1 из 1

Как правильно из скрипта на perl'е вызывать ogr2ogr?

Добавлено: 10 сен 2009, 15:16
Анна
а можно из скрипта на perl'е вызывать ogr2ogr? и если да, то каков синтаксис?

вообще, нет ли примера батч-файла ogr2ogr? это просто текстовый файл по типу бат файла для командной строки?

заранее спасибо!

PS. пока что мне пришло в голову следующее :

Код: Выделить всё

my $ogrcmd="c:\\Progra~1\\FWTool~1\.2\\bin\\ogr2ogr.exe $line $line.vrt";
exec($ogrcmd);

Re: Примеры использования ogr2ogr

Добавлено: 11 сен 2009, 05:09
Максим Дубинин
вызвать можно, синтаксис зависит от того, что нужно выполнить, это обычный бат-файл. Использовать лучше через osgeo4w, а не fwtools.

так как ты написала получается?

Re: Примеры использования ogr2ogr

Добавлено: 11 сен 2009, 09:06
Анна
не очень поняла в чем отличие osgeo4w от fwtools. но вообще я ставила gdal на suse - правда пока не проверила как оно работает, сегодня займусь. ogr2ogr запускается. расскажу как будет дальше идти дело.

Re: Примеры использования ogr2ogr

Добавлено: 11 сен 2009, 12:43
Анна
обращение к исполняемым файлам из перла я сделал вот так:

Код: Выделить всё

my $ogrcmd="/usr/bin/ogr2ogr $line $line.vrt"; 

if(my $pid = fork){
}
elsif (defined $pid){
        close(STDOUT);
        exec($ogrcmd);
        exit(0);
} else{
        die "Fork Error";
}
если есть программисты на сайте - откомментируйте плиз, правильно или нет?
а так все работает.

Re: Примеры использования ogr2ogr

Добавлено: 11 сен 2009, 16:10
Voltron
Анна писал(а):не очень поняла в чем отличие osgeo4w от fwtools
osgeo4w - онлайн-инсталлятор для кучи ГИСовского софта. Работает под Windows. fwtools - набор ГИС-программ для разных ОС, но перечень этих программ гораздо меньше.
Анна писал(а):если есть программисты на сайте
Вообще есть :-), но не все знают перл. Лично я - пас

Re: Как правильно из скрипта на perl'е вызывать ogr2ogr?

Добавлено: 12 сен 2009, 06:53
KolesovDmitry
Анна писал(а): вообще, нет ли примера батч-файла ogr2ogr? это просто текстовый файл по типу бат файла для командной строки?
Если нужно решить именно на перле - то я тоже пас. Но, если задача не завязана на перл, а нужно попросту зациклить выполнение команды (к примеру) над всеми файлами в каталоге, то это легко делается средствами операционой системы.

Для *nix это может выглядеть, например, так:

Код: Выделить всё

for file in *.shp
do
  команды, которые нужно выполнить, например:
  ogrinfo $file
done
В windows есть аналогичный цикл for, правда я его синтаксис уже не помню - но можно посмотреть по справке.

Если нет желания разбираться с организацией циклов в командной строке, можно поступить так: создать текстовый файл (средствами любого знакомого языка программирования), содержащий необходимые команды, сделать его исполняемым и запустить.

Re: Как правильно из скрипта на perl'е вызывать ogr2ogr?

Добавлено: 12 сен 2009, 13:53
Анна
Добрый день!
спасибо Дмитрий и Voltron,
я почему задала такой вопрос - про "правильность" - потому что с таким вызовом все работает без ошибок, но мне было интересно узнать насколько такой код не только работающий, но и грамотный? не знаю как это правильно называется - техника программирования?
а так, да, вот здесь выложила полный код на перле для автоматической обработки всех файлов в директории какой-либо командой ogr2ogr. там это на напримере конвертации csv в шейп, но в принципе пойдет и для других команд как шаблон