Перечь примеров для справки
С библиотекой gdal поставляется утилита ogr2ogr, предназначнная для конвертации векторных данных. В данной статье приводятся примеры использования этой утилиты.
GDAL/OGR - библиотека для работы с географическими форматами данных. GDAL представляет собой набор утилит для обработки растровых данных, в то время, как OGR предназначена для работы с векторными форматами. В статье рассматриваются некоторые практические примеры применения одной из утилит этой библиотеки: программы ogr2ogr.
Оглавление
Программа ogr2ogr предназначена для конвертации векторных данных из одного формата в другой. Поддерживаемые форматы и используемые ключи можно узнать просто набрав в коммандной строке
ogr2ogr
В результате будет получена справка по использованию этой программы:
ogr2ogr [--help-general] [-skipfailures] [-append] [-update] [-gt n]
[-select field_list] [-where restricted_where]
[-sql ]
[-spat xmin ymin xmax ymax] [-preserve_fid] [-fid FID]
[-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def]
[-f format_name] [-overwrite] [[-dsco NAME=VALUE] ...]
[-segmentize max_dist]
dst_datasource_name src_datasource_name
[-lco NAME=VALUE] [-nln name] [-nlt type] [layer [layer ...]]
А также список поддерживаемых форматов (список может отличаться как в большую, так и в меньшую сторону, поскольку зависит от того, были ли подключены/отключены соответствующие модули при компиляции программы):
Конвертировать ESRI Shapefile в MapInfo tab можно следующим образом:
ogr2ogr -f "MapInfo File" topo2km-rus.tab topo2km-rus.shp
В результате в текущем каталоге появится 4 файла topo2km-rus.* - результат конвертации.
Теперь конвертируем только некоторые объекты из файла topo2km-rus (в поле ZONE которых содержится строка "s"):
ogr2ogr -f "MapInfo File" -where "ZONE=s" topo2km-rus.tab topo2km-rus.shp
Можно построить и более сложное условие, для этого нужно использовать параметр -sql. При помощи этого параметра можно задать выражение sql, которое необходимо выполнить для того, чтобы произвести выборку данных:
ogr2ogr -f "MapInfo File" -sql "SELECT * FROM topo2km-rus WHERE ZONE='PERVOMAYSK'" topo2km-rus.tab topo2km-rus.shp
Аналогично можно воспользоваться параметрами:
Конвертация из CSV в shape-файл и обратно подробно рассмотрена в отдельной статье.
Программа ogr2ogr позволяет не только конвертировать данные из одного формата в другой, но и одновременно произветси перепроецирование данных из одной системы координат в другую. Для этого используются параметры:
Например, мы знаем, что файл topo2km-rus.shp содержит данные в географической системе координат Пулково 1942, но в комплекте с topo2km-rus.shp нет файла описания проекции (*.prj). Мы можем сгенерировать этот файл, воспользовавшись командой:
ogr2ogr -a_srs "EPSG:4269:4284" -f "ESRI ShapeFile" topo2km-rus2.shp topo2km-rus.shp
Команда:
ogr2ogr -s_srs "EPSG:4326" -t_srs "EPSG:900913" -f "ESRI ShapeFile" topo2km-rus3.shp topo2km-rus2.shp
берет созданный на предыдущем этапе файл topo2km-rus2.shp и перепроецирует его в систему Google Mercator (epsg 900913), при этом опция -s_srs "epsg:4326" говорит о том, что при перепроецировании не нужно обращать внимания на исходную проекцию файла topo2km-rus2.shp, т.е. вести себя так, будто проекция источника - широта/долгота WGS84 (epsg 4326).
В приведенных примерах система координат указвалась на основе кодов epsg, но ее можно указывать и непосредственно в формате WKT или же передавать имя файла, в котором хранится ее описание. Например, если необходимо использовать описания систем координат, хранящихся в файлах input.prj и output.prj, то нужно использовать следующую конструкцию:
ogr2ogr -s_srs ESRI::Input.prj -t_srs ESRI::output.prj shapeout.shp shapein.shp
Вставка (добавление) записей в таблицу PostgreSQL данных из файла data.shp. Таблица должна существовать и иметь такие же поля, как и shp-файл.
ogr2ogr -append -t_srs "+init=epsg:4326" -f PostgreSQL PG:"host=адрес user=имя_пользователя dbname=имя_базы" data.shp
Перезаписывает test таблицу PostgreSQL данными из файла test.tab Таблица не обязана существовать.
ogr2ogr -append -overwrite -s_srs "+init=epsg:4326" -f PostgreSQL PG:"host=адрес user=имя_пользователя dbname=имя_базы" test.tab
Перезаписывает данные из файла data в таблицу PostgreSQL. Таблица будет носить имя не data, а test1. Таблица test1 не обязана существовать.
ogr2ogr -append -overwrite -t_srs "+init=epsg:4326" -f "PostgreSQL" PG:"host=адрес user=имя_пользователя dbname=test" data.shp -nln test1
Наоборот: из таблицы PostgreSQL "adm" базы ipc конвертирует в allei.tab формата MapInfo.
ogr2ogr -f "MapInfo File" allei.tab PG:"host=адрес user=пользователь dbname=ipc" "adm"
Из таблицы PostgreSQL "adm" базы ipc конвертирует в shape-файл с использованием выражения sql.
ogr2ogr -f "ESRi Shapefile" output.shp PG:"host=адрес user=пользователь dbname=ipc" -sql "SELECT * from adm"
Обсудить в форуме Комментариев 6
Последнее обновление: December 14 2009
Открытые настольные ГИС: обзор текущей ситуации 
Матрица ошибок и расчет показателей точности тематических карт 
Географическая привязка данных в QGIS: пример привязки топокарты по сетке 
© GIS-Lab и авторы, 2002-2009. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна.
Здесь офисные таблички. Страница про офисные таблички.; эффективный ремонт двигателя мицубиси точно; эффективный ремонт подвески мицубиси точно; эффективный Ремонт ходовой части автомобиля без проблем; эффективный ремонт хундай соната без проблем; Мы предлагаем компьютеры и комплектующие для вашего успеха.; тиражирование dvd динамо; #bwin poker# легкие деньги; Каравай на свадьбу за 300 руб: свадебные торты на заказ. Вкуснейшие торты на заказ.; Ремонтно-отделочные работы - ремонт коммуникаторов. Расcчитай цену ремонта.