Экспорт векторных данных в формат OSM

Ответить
Аватара пользователя
Xmypblu
Участник
Сообщения: 73
Зарегистрирован: 18 авг 2013, 05:36
Репутация: 17
Контактная информация:

Экспорт векторных данных в формат OSM

Сообщение Xmypblu » 23 янв 2017, 13:00

Добрый день,
прошу помочь разобраться с рядом вопросов по GRASS GIS 7, начну с простого.

Предположим, есть некоторые векторные данные (линии), которые я могу выгрузить в виде SHP и/или GPX, но вот как это выгрузить в виде файла OSM?
Как участник проекта OpenStreetMap, первым делом поискал на wiki и нашел там (http://wiki.openstreetmap.org/wiki/GRASS_GIS) упоминание модуля "v.out.gpsbabel"
Если правильно понимаю, это было актуально для версии GRASS 6.4, для текущей версии нужно установить "v.out.gps", как и сам GPSBabel.

Установил и посмотрел в документации примеры команд, но как составить команду так, чтобы данные экспортировались в формате OSM - я не смог сообразить.
Возможно я пошел не тем путем, т.к. OSM это по сути XML и возможно экспорт как-то по другому возможен...

Прошу помочь примером команды для "v.out.gps" или примером решения экспорта в формате OSM каким-то другим способом.

P.S. атрибуты в данном случае, при экспорте ненужны, разве что маркер "не рекомендовать передачу на сервер" - для редактора JOSM, но сомневаюсь, что модуль это может.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Экспорт векторных данных в формат OSM

Сообщение Александр Мурый » 23 янв 2017, 13:28

Думаю, модуль <v.out.gps> не поможет здесь. Я бы перегнал данные в шейпы (модуль <v.out.ogr>), и уже из шейпов конвертировал бы в OSM XML (вот страничка с конвертерами).
Редактор материалов, модератор форума

Аватара пользователя
Xmypblu
Участник
Сообщения: 73
Зарегистрирован: 18 авг 2013, 05:36
Репутация: 17
Контактная информация:

Re: Экспорт векторных данных в формат OSM

Сообщение Xmypblu » 23 янв 2017, 14:08

Собственно попытка избавится от промежуточных форматов и конвертации, вынудило меня задать свой вопрос.

Про конвертеры я знаю, более того - в данный момент для меня более удобным оказалось установить плагин OpenData (http://wiki.openstreetmap.org/wiki/JOSM ... s/OpenData) для JOSM и открывать SHP в нем.
Александр Мурый писал(а):Думаю, модуль <v.out.gps> не поможет здесь.
хм... в отличии от OGR, GPSBabel вроде поддерживает создание файлов в формате OSM, в чем тогда проблема?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Экспорт векторных данных в формат OSM

Сообщение Александр Мурый » 23 янв 2017, 14:41

Xmypblu писал(а):С
хм... в отличии от OGR, GPSBabel вроде поддерживает создание файлов в формате OSM, в чем тогда проблема?
Вы пробовали запускать <v.out.gps>? Что он вам выдаёт?
Попробуйте команду типа:

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

v.out.gps -w input=waypoints format=osm output=waypoints.osm
Редактор материалов, модератор форума

Аватара пользователя
Xmypblu
Участник
Сообщения: 73
Зарегистрирован: 18 авг 2013, 05:36
Репутация: 17
Контактная информация:

Re: Экспорт векторных данных в формат OSM

Сообщение Xmypblu » 23 янв 2017, 16:37

Александр Мурый писал(а): Вы пробовали запускать <v.out.gps>? Что он вам выдаёт?
Попробуйте команду типа:

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

v.out.gps -w input=waypoints format=osm output=waypoints.osm

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

v.out.gps -w input=waypoints format=osm output=waypoints.osm  --verbose

Reprojecting data ...
ERROR: # 1  2
что несколько озадачивает, т.к. если предположить, что он по умолчанию использует GPX формат, то видимо использует проекцию epsg:4326 (если не путаю), а у меня набор в GRASS уже в этой проекции.
...или это сообщение о другом?

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

g.proj -p

-PROJ_INFO-------------------------------------------------
name       : Lat/Lon
proj       : ll
datum      : wgs84
ellps      : wgs84
no_defs    : defined
towgs84    : 0.000,0.000,0.000
-PROJ_EPSG-------------------------------------------------
epsg       : 4326
-PROJ_UNITS------------------------------------------------
unit       : degree
units      : degrees
meters     : 1.0
Я некоторое время назад пытался понять как в 'v.out.ogr' использовать format=GPSBabel... но увы, неосилил.
Предположил, что как-то там возможно указать сохранять в формате OSM

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Экспорт векторных данных в формат OSM

Сообщение freeExec » 24 янв 2017, 09:50

Ogr точно кушает pbf, а его есть OpenData. Ну или osmconvert на худой конец может превратить его в osm.

Аватара пользователя
Xmypblu
Участник
Сообщения: 73
Зарегистрирован: 18 авг 2013, 05:36
Репутация: 17
Контактная информация:

Re: Экспорт векторных данных в формат OSM

Сообщение Xmypblu » 24 янв 2017, 10:20

freeExec писал(а):Ogr точно кушает pbf, а его есть OpenData. Ну или osmconvert на худой конец может превратить его в osm.
это ответ на какой вопрос?
про конверторы написано чуть выше, а вопрос был про GRASS в разделе про GRASS... может к нему и вернемся?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Экспорт векторных данных в формат OSM

Сообщение Александр Мурый » 24 янв 2017, 14:02

Лично этим модулем <v.out.gps> не пользовался, с GPSBabel вообще дела не имел. Надо пробовать на каких-то тестовых данных.
Редактор материалов, модератор форума

Аватара пользователя
Xmypblu
Участник
Сообщения: 73
Зарегистрирован: 18 авг 2013, 05:36
Репутация: 17
Контактная информация:

Re: Экспорт векторных данных в формат OSM

Сообщение Xmypblu » 24 янв 2017, 23:21

возможно, что сообщение об ошибке <v.out.gps> связан с изменением порядка или названий ключей в самой утилите GPSBabel

или с тем, что пытается перепроецировать epsg:4326 в epsg:4326
https://trac.osgeo.org/grass/browser/gr ... out.gps.py
# TODO: check if we are already in ll/WGS84. If so skip m.proj step.
Как часто в параметрах <v.out.ogr> встречается синтаксис с двоеточиями?
я не нашел примеров, чтобы составить "конструкцию" для "format=GPSBabel", типа такой:
http://www.gdal.org/drv_gpsbabel.html

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

ogr2ogr -f GPSBabel GPSBabel:mapsend:out.mapsend in.shp

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Экспорт векторных данных в формат OSM

Сообщение ericsson » 25 янв 2017, 00:10

Понимаю, что из академических соображений может хотеться разобраться в чем угодно. Но конструкция, когда GRASS вызывает OGR, а OGR использует GPSBabel (выводя данные в промежуточный GPX), выглядит, в любом случае, чрезвычайно усложненной. Почему бы не вывести из GRASS нечто, что понимает GPSBabel, а потом не сконвертировать это через отдельный скрипт (из одной строки) в искомый формат? Ну и поскольку JOSM прекрасно читает шейпы через OpenData plugin, цель всей этой борьбы остается непонятной.

Аватара пользователя
Xmypblu
Участник
Сообщения: 73
Зарегистрирован: 18 авг 2013, 05:36
Репутация: 17
Контактная информация:

Re: Экспорт векторных данных в формат OSM

Сообщение Xmypblu » 26 янв 2017, 23:52

ericsson писал(а):Понимаю, что из академических соображений может хотеться разобраться в чем угодно.
Меня, как "проходящего мимо" и про ГИС мало чего знающего, заинтересовал простой вопрос:

почему <v.in.osm> есть, а <v.out.osm> нету?

Как обычно, вопрос оказался не простым и скорее подходит для подачи идеи на Google Summer of Code 2017
https://wiki.openstreetmap.org/wiki/Goo ... ject_Ideas
что-то вроде: добавить к "чтению" в GDAL - "создание" в формате OSM (PBF/XML)...
Но конструкция, когда GRASS вызывает OGR, а OGR использует GPSBabel (выводя данные в промежуточный GPX), выглядит, в любом случае, чрезвычайно усложненной. Почему бы не вывести из GRASS нечто, что понимает GPSBabel, а потом не сконвертировать это через отдельный скрипт (из одной строки) в искомый формат?
хм... а в чем принципиальная разница? и так и этак - сложно. Про "явное vs. скрытое" спорить не хочется
Решение с кучей скриптов или с вызовом из одного скрипта кучи утилит - у меня уже есть,
если будет найден способ выгрузки в формате OSM сразу из GRASS - конструкция существенно упростится.
Ну и поскольку JOSM прекрасно читает шейпы через OpenData plugin, цель всей этой борьбы остается непонятной.
ну тут сразу несколько целей:
  • убедится, что я не пропустил в документации что-то очевидное
  • неуверен, что SHP (несколько файлов) можно передать по ссылке "удалённого управления JOSM", в отличии от OSM
  • убедить других установить что-то дополнительное (плагин) в JOSM и разобраться в его работе - та еще задача, равная переходу на JOSM с онлайн редакторов
  • и где еще я смогу спросить на русском о GRASS?

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Экспорт векторных данных в формат OSM

Сообщение ericsson » 27 янв 2017, 02:35

Ответ на первый вопрос, как всегда, один и тот же: нет, потому что его не написали. Это opensource. Плюс, вы сами в курсе того, как в OSM не любят импорты (частично - очень заслуженно). Так что задача "взять из OSM" встречается, вероятно, на порядки чаще, чем "положить в OSM".

Вызвов одного из другого через третье - всегда сложнее и хуже, потому что, как правило, формат параметров у разношерстных утилит - разный, обязательно будут какие-нибудь глюки с экранированием спецсимволов, неполная поддержка какого-нибудь формата, или жестко закодированные параметры. А вызов мух и котлет отдельно от этого, по умолчанию, избавлен.

Что касается последнего набора тезисов - вообще не вижу проблемы в том, чтобы пойти в совершенно определеное меню JOSM, поставить там единственную галку (установка плагина из списка), а потом, как в абсолютно любом другом софте просто открывать шейпы через меню File или перетаскивать их в окно JOSM из файлового менеджера. Если вы это считаете проблемой для кого-то, с которой нужно "разбираться" то этому человеку, вероятно, и любая другая самая простая операция покажется слишком сложной.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Экспорт векторных данных в формат OSM

Сообщение Александр Мурый » 27 янв 2017, 09:50

ericsson писал(а):Ответ на первый вопрос, как всегда, один и тот же: нет, потому что его не написали. Это opensource.
Склонен в этом вопросе согласиться с г-ном ericsson. Если бы кому очень надо было — написали бы.
Xmypblu писал(а): почему <v.in.osm> есть, а <v.out.osm> нету?
Потому как импорт данных OSM — крайне нужная штука, даже в такой сугубо аналитической ГИС как GRASS, а вот экспорт в OSM XML связан не только с технологическими трудностями самого формата, но и с потенциальной редкостью применения его обычными пользователями GRASS.
Редактор материалов, модератор форума

Аватара пользователя
Xmypblu
Участник
Сообщения: 73
Зарегистрирован: 18 авг 2013, 05:36
Репутация: 17
Контактная информация:

Re: Экспорт векторных данных в формат OSM

Сообщение Xmypblu » 28 янв 2017, 23:53

ericsson я бы согласился, еслиб не знал, что все на самом деле сложнее и зависит от целей и задач

Александр Мурый просто замечу, что XML выгружается из GRASS многими форматами, да хоть тот же GPX
и выгрузка в OSM, напомню, уже была реализована, но для GRASS 6.4 - в первом посте про это и был вопрос

Ответить

Вернуться в «GRASS»

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

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