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

Проблема с osmfilter

Добавлено: 23 мар 2018, 19:18
Tiratore
При обрезке и фильтрации данных пропадает часть линий
1. С https://download.geofabrik.de/ скачан pbf файл Европы

2. С помощью osmconvert вырезан необходимый регион
osmconvert.exe %filein% --hash-memory=4000 --verbose=2 -B=reg.poly -o=%fileout%

3. С помощью osmfilter отфильтрованы границы
osmfilter.exe %filein% >%logfile% --hash-memory=4000 --verbose=2 --keep="boundary=administrative" -o=%fileout%

После импорта в QGIS отсутствует часть линий границ, которые находятся в середине выбранного региона и совершенно точно должны присутствовать.

В чем может быть проблема? Как проверить что эти данные есть в исходном PBF файле?

Re: Проблема с osmfilter

Добавлено: 23 мар 2018, 19:59
freeExec
Tiratore писал(а):
23 мар 2018, 19:18
Как проверить что эти данные есть в исходном PBF файле?
Сконвертить его в .osm и выполнить поиск по номеру.

Re: Проблема с osmfilter

Добавлено: 27 мар 2018, 16:10
Tiratore
Все еще интереснее:

1. С https://download.geofabrik.de/ скачан OSM файл Европы

2. С помощью osmfilter отфильтрованы границы
osmfilter.exe %filein% --hash-memory=4000 --verbose=2 --keep="boundary=administrative and admin_level=2" -o=%fileout%

3. Импорт в QGIS

Все равно есть "дырки"! И самое непонятно, что линии как бы есть, но у них admin_level и boundary пустые!!!!
Отсюда возникает вопрос - а как они попали в выборку учитывая условия фильтра?!
Картинка прилагается

Re: Проблема с osmfilter

Добавлено: 27 мар 2018, 16:13
freeExec
Потому что границы это relation(отношение). Эдакий мультиполигон - он имеет ссылки на линии из которых нужно собрать границу, и все теги именно на нём. А то что теги есть ещё на линии это старый костыль. На них не нужно операться.

Re: Проблема с osmfilter

Добавлено: 27 мар 2018, 16:28
Tiratore
О! Я и предполагал что проблема в незнании мной теории. А подскажите пожалуйста, что это за теги и как эту границу собирать?

Re: Проблема с osmfilter

Добавлено: 28 мар 2018, 11:54
Zverik
Попробуйте вместо импорта в QGIS напрямую прогнать его через ogr2ogr в geopackage. Возможно, в osmconf.ini понадобится как-то указать, что нужны boundary=administrative, я не проверял.

Re: Проблема с osmfilter

Добавлено: 28 мар 2018, 12:35
freeExec
Zverik писал(а):
28 мар 2018, 11:54
указать, что нужны boundary=administrative
Они там есть.
Если данные кривые, то как не выкручивайся нечего не выйдет. Только пойти и исправить.

Re: Проблема с osmfilter

Добавлено: 28 мар 2018, 17:27
Tiratore
freeExec писал(а):
27 мар 2018, 16:13
Потому что границы это relation(отношение). Эдакий мультиполигон - он имеет ссылки на линии из которых нужно собрать границу, и все теги именно на нём.
Судя по всему дело обстоит именно так, как указал freeExec.
Вот что пишет WiKi:
RU:Tag:boundary=administrative
Тег boundary=administrative используется на линиях Линия.
Однако рекомендуется всё же использовать отношения boundary.
Отношение boundary=* может использоваться для группировки границ, обозначения анклавов и эксклавов.

Теперь вопрос, как средствами OSM или QGIS собрать эти данные в полигоны.
Я не могу найти информацию как это сделать...

Re: Проблема с osmfilter

Добавлено: 28 мар 2018, 18:20
Tiratore
В догонку:
при поиске в интернете натыкался несколько раз на зарубежных форумах на аналогичные вопросы в которых народ точь-в точь по описанному мной алгоритму пытается получить границы, получает их с проблемами, задает вопрос и в ответ получает не решение, а совет идти на сайты которые раздают шейпы с границами государств.
Но мне нужны границы государств (и областей) в нужном мне РЕГИОНЕ а не одной стране.

Re: Проблема с osmfilter

Добавлено: 28 мар 2018, 22:09
freeExec
Tiratore писал(а):
28 мар 2018, 17:27
Теперь вопрос, как средствами OSM или QGIS собрать эти данные в полигоны.
Это всё работает из коробки.

Re: Проблема с osmfilter

Добавлено: 29 мар 2018, 11:10
Tiratore
Уважаемый freeExec, а можно подробнее, потому что в полигонах при тех же условиях фильтрации границ нет вообще.

Re: Проблема с osmfilter

Добавлено: 29 мар 2018, 12:40
freeExec
С нормальными данными всё работает, следовательно у вас данные кривые. Ещё раз вам советуют преобразовать их в xml и посмотреть все ли нужные объекты там есть.