Переконвертировать файл .csv в shp

Ответить
Methuselah
Интересующийся
Сообщения: 15
Зарегистрирован: 09 июн 2009, 11:08
Репутация: 0

Переконвертировать файл .csv в shp

Сообщение Methuselah » 09 июн 2009, 11:21

Здравствуйте! Есть такая задачка - переконвертировать файл .csv (ну или его модификацию с расширением .xy) в .shp\.mif\.tab\catd.ddf\.gml (собственно в форматы которые понимает QuantumGIS). При этом желательно пользоваться только средствами ОС Linux (в частности Ubuntu). Насколько я убедился, бороздя просторы интернета, лучшим вариантом будет ogr2ogr. Была одна программа под Windows CSVtoSHP (собственно это и требуется), но она не справилась со своей задачей да и речь сейчас не о ней. Можете подсказать саму команду?

Дополню что из shp в mif все успешно перегоняется, а вот как ни мучался со своим .xy - ну никак :( Может быть сам файл недостаточно информативен для конвертора? Собственно вот пример его тела:

>
47.7313 41.0245
47.68613 41.431
>
47.90113 41.448
47.84313 41.458
47.788513 41.4845
47.672513 41.5405
47.58913 41.589
47.48713 41.6475
47.4413 41.703
47.40713 41.759
47.37113 41.8125

Проще некуда - это просто линии разломов. Собственно все что имеется и все что надо получить в итоге - это точки\линии с заданными координатами - 1ая строка х и у 1ые, 2ая строка х и у 2ые. Стоит ли как-нибудь его модифицировать и по какому принципу?

Так же, попытка модификации подобного файла к виду:

ORGANIZATION: ***
MAP NAME: Faults test
VERTI:
B 2
985.648 25.8078
978.198 70.602
B 9
995.939 73.9654
991.02 74.6717
986.232 77.2352
976.08 82.6597
968.718 87.4831
959.735 93.3023
955.45 99.163
952.133 105.157
948.691 110.863

Не привела к успеху :(


Вариант,

Latitude,Longitude,Name
48.1,0.25,"First point"
49.2,1.1,"Second point"
47.5,0.75,"Third point"

аналогично - не хочет конвертироватся. Ошибка стандартна для всех попыток:

FAILURE:
Unable to open datasource `***'(не важно - shp или mif) with the following drivers.
-> GRASS -> ESRI Shapefile -> MapInfo File -> UK .NTF -> SDTS -> TIGER -> S57 -> DGN -> VRT -> REC -> Memory
-> BNA -> CSV -> GML -> GPX -> KML -> GeoJSON -> Interlis 1 -> Interlis 2 -> GMT -> SQLite -> ODBC -> PGeo
-> OGDI -> PostgreSQL -> MySQL -> AVCBin

Может ли кто-нибудь чем-то помочь\подсказать? Буду признателен!!

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

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

Сообщение Mavka » 09 июн 2009, 12:12

0. Пусть файл называется points.txt. Разделителем должна быть запятая.
1. Добавить в файл первой строкой шапку, например:

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

"X","Y"
985.648,25.8078
978.198,70.602
2. Составить VRT описание. Это файл, скажем points.vrt, в xml формате:

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

<OGRVRTDataSource>
    <OGRVRTLayer name="points">
        <SrcDataSource>points.txt</SrcDataSource>
        <GeometryType>wkbPoint</GeometryType>
        <LayerSRS>WGS84</LayerSRS>
        <GeometryField encoding="PointFromColumns" x="X" y="Y"/>
    </OGRVRTLayer>
</OGRVRTDataSource>
 
3. Запустить ogr2ogr:

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

ogr2ogr.exe ^
  -f "ESRI Shapefile" ^
  -s_srs "epsg:4326" ^
  -t_srs "epsg:900913" ^
  points.shp points.vrt
Обратите внимание, исходный файл - VRT

В результате будут точки. Чтобы получить линии, нужно задать:
GeometryType - wkbLineString
GeometryField encoding - WKT
И запись в файле должна быть в формате WKT

Как то так:

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

"wkt"
LINESTRING(985.648 25.8078,978.198 70.602)
Но с линиями мне работать не приходилось.

Почитать:
Virtual File Format - http://www.gdal.org/ogr/drv_vrt.html
Comma Separated Value - http://www.gdal.org/ogr/drv_csv.html
лангольеры под окном жрали время ом-ном-ном

Methuselah
Интересующийся
Сообщения: 15
Зарегистрирован: 09 июн 2009, 11:08
Репутация: 0

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

Сообщение Methuselah » 09 июн 2009, 12:34

Спасибо за ответ!

К сожалению исход тот же -
ERROR 1: Failed to open datasource `points.txt'.
FAILURE:
Unable to open datasource `points.vrt' with the following drivers.

Задал все как по инструкции. Ощущение такое что ogr воспринимает только mif и shp адекватно. Может необходимы библиотеки\модули?В чем может быть проблема?

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 526
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov » 10 июн 2009, 05:34

Если не сложно, выложите ваш исходный файл, который нужно сконвертировать.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

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

Сообщение Mavka » 10 июн 2009, 08:10

Ждем файл и какая у вас версия ogr [например, gdalinfo --version], потому что он быстро развивается
лангольеры под окном жрали время ом-ном-ном

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

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

Сообщение Mavka » 10 июн 2009, 09:05

У меня вот такой вариант работает
ogr_csv.zip
Пример CSV файла с геометрией WKT
(532 байт) 1366 скачиваний
лангольеры под окном жрали время ом-ном-ном

Methuselah
Интересующийся
Сообщения: 15
Зарегистрирован: 09 июн 2009, 11:08
Репутация: 0

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

Сообщение Methuselah » 10 июн 2009, 10:42

GDAL 1.5.4, released 2009/01/07

Mavka, да - ваш последний вариант работает и у меня (по крайней мере ошибку не выдает). Только выходной файл получается только .dbf и .prj, если же убрать SRSы - только .dbf. Есть ли варианты как создать оставшиеся .shp и .shx (для Qgisа их наличие необходимо). Кстати, попробоDFK переконвертировать оный пример в .mif - удачно, вот только Qgis его не отображает. А при конвертации в GML формат - получается такой файл:

<ogr:FeatureCollection xsi:schemaLocation="http://ogr.maptools.org/data.xsd">

<gml:featureMember>

<ogr:data fid="F0">
<ogr:WKT>LINESTRING(47.90113 41.448,47.84313 41.458)</ogr:WKT>
<ogr:ID>1</ogr:ID>
</ogr:data>
</gml:featureMember>

<gml:featureMember>

<ogr:data fid="F1">
<ogr:WKT>LINESTRING(47.788513 41.4845,47.672513 41.5405)</ogr:WKT>
<ogr:ID>1</ogr:ID>
</ogr:data>
</gml:featureMember>

<gml:featureMember>

<ogr:data fid="F2">
<ogr:WKT>LINESTRING(47.58913 41.589,47.48713 41.6475)</ogr:WKT>
<ogr:ID>1</ogr:ID>
</ogr:data>
</gml:featureMember>

<gml:featureMember>

<ogr:data fid="F3">
<ogr:WKT>LINESTRING(47.4413 41.703,47.40713 41.759)</ogr:WKT>
<ogr:ID>1</ogr:ID>
</ogr:data>
</gml:featureMember>
</ogr:FeatureCollection>

Добавил файлы.
Вложения
exmpl.zip
(3.38 КБ) 1333 скачивания

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 526
Ваше звание: Author
Контактная информация:

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

Сообщение Denis Rykov » 19 авг 2009, 08:43

Methuselah писал(а):GDAL 1.5.4, released 2009/01/07
Ваша проблема в том, что вы используете не самую последнюю версию GDAL и описанные симптомы это подтверждают. Установите GDAL с помощью osgeo4w, выполните команды:

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

PATH=C:\OSGeo4W\apps\gdal-dev\bin\;%PATH%
set PYTHONPATH=C:\OSGeo4W\apps\gdal-dev\pymod
А затем:

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

gdalinfo --version
Должно появиться нечто вроде GDAL 1.7.0dev, released 2008/11/26, то есть версия GDAL 1.7, а вы использовали 1.5 - в ней многие функции не поддерживаются.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Статьи: 11
Проекты: 2/1
Репутация: 9

Re: Переконвертировать файл .csv в shp

Сообщение Mavka » 19 авг 2009, 09:09

В OSGeo4W этот пакет называется 'gdal-dev'.
Они действительно очень многое меняли по части CSV и VRT
лангольеры под окном жрали время ом-ном-ном

Ответить

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

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

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