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

Ответить
Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

Как правильно из скрипта на 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);

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

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

Сообщение Максим Дубинин » 11 сен 2009, 05:09

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

так как ты написала получается?
пристегивайтесь, турбулентность прямо по курсу

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

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

Сообщение Анна » 11 сен 2009, 09:06

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

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

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";
}
если есть программисты на сайте - откомментируйте плиз, правильно или нет?
а так все работает.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

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

Сообщение Voltron » 11 сен 2009, 16:10

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

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

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

Сообщение KolesovDmitry » 12 сен 2009, 06:53

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

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

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

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

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

Анна
Завсегдатай
Сообщения: 386
Зарегистрирован: 07 фев 2004, 14:31
Репутация: 7
Откуда: Лозанна
Контактная информация:

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

Сообщение Анна » 12 сен 2009, 13:53

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

Ответить

Вернуться в «GDAL/OGR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей