15 заметок с тегом

экспорт

Новая резалка по-новому режет

Пару недель назад Йохен Топф рассказал про новую функцию osmium-tool: режим extract для вырезания областей. Диаграммы в заметке показывают, что osmium вырезает в два-три раза быстрее, чем osmconvert. То есть, как когда-то osmconvert заменил osmosis, потому что был не в пример быстрее, так теперь osmium, кажется, может заменить его.

Я решил сравнить утилиты чуть тщательнее и взял файл планеты в pfb от 30 января. Сделал его копию в o5m — формат стал популярен именно из-за osmconvert, который обрабатывает его чуть быстрее других. И поскольку osmuim не умеет писать в o5m, а только читает, сравнил скорость преобразования обратно в pbf:

33 минуты против 86! Серьёзная заявка на победу. Причина проста: osmium многопоточный. Пока osmconvert вяло крутит 70% одного ядра процессора, его конкурент задействует 265%, то есть, около трёх ядер. Отсюда и разница в 2,6 раза.

Для проверки вырезания регионов я взял Мюнхен, который в pbf займёт примерно 200 мегабайт. Вырезал по прямоугольнику и по полигону из 1200 точек. У обоих утилит есть настройка полноты вырезанных данных: простой режим сохраняет только те точки, что попали в область обрезки. Сложный «complete ways» досыпает точек за пределами области, которые принадлежат линиям изнутри её. То есть, в итоговом файле не будет неполных линий. Режим «complex ways» («smart» в osmium) дополнительно сохраняет целостность мультиполигонов.

Как видно, при работе с pbf osmium в полтора-два раза быстрее osmconvert. Разумеется, за счёт многопоточности. Но с o5m работать в несколько потоков не получается, поэтому столбцы красного оттенка отличаются несильно. Как видно, нет такого режима выгрузки, в котором osmium не превзошёл бы osmconvert.

Превосходство будет ещё заметнее, если не читать файл планеты для каждого региона отдельно, а вырезать несколько регионов за раз. Да, osmium это умеет. Правда, требует очень много памяти: Йохен советует сначала вырезать континенты, затем группы стран и так далее. Понадобится написать файл конфигурации, как описано в документации. В январе на многопоточное одновременное вырезание регионов перешли в Geofabrik, ускорив подготовку выгрузок с 10 до 4 часов.

А теперь непонятная диаграмма, дополняющая предыдущую:

Утилита time, которой я замерял время работы, выдаёт «real time», время от запуска до остановки, и «user time»: время процессора, затраченное исключительно на приложение. И если я правильно понимаю, osmium оказался менее оптимизированным, чем osmconvert, но он эффективнее использует ресурсы компьютера.

Итак, osmium может заменить osmconvert, и почти всегда окажется быстрее. Кроме того, он позволит снять зависимость от формата o5m, который хоть и поддерживается osm2pgsql и другими программами, основанными на libosmium, но требует больше места и дополнительной конвертации. Что с другими приложениями из комплекта osmctools?

Osmupdate удобен простым обновлением выгрузки или файла планеты. Достаточно указать в параметрах имя существующего и нового файла, и получим данные из OpenStreetMap на минуту запуска. Умеет ли подобное osmium-tool? Нет, к сожалению. Но osmupdate — лишь надстройка над wget и osmconvert, скачивающая файлы репликации и передающая в osmconvert для объединения и применения к исходному файлу. Osmium-tool может делать всё, что умеет osmconvert, и возможно слегка переписать osmupdate, чтобы он запускал его вместо osmconvert (и заодно curl вместо wget). Или встроить подобную функциональность в osmium — увы, пока этого никто не сделал.

Но в плане сравнения производительности можно посмотреть на время обновления файла планеты диффом за одни сутки:

Как и обещала справка osmconvert, файлы в формате o5m он обрабатывает быстрее. Как показали прошлые замеры, osmium работает быстрее независимо от формата.

Заменой для osmfilter должен стать osmium-filter. Мне удалось его скомпилировать, но я так и не разобрался в его формате запросов. Инструкция из readme не помогла. Поэтому сравнивать пока нечего. Увы, именно osmfilter требует формата o5m, поэтому если в ваш процесс обработки данных входит, например, фильтрация береговой линии, полностью снять зависимость от o5m не получится.

И ещё одно может стать препятствием: пакет osmctool очень редко обновляется, и потому он достаточно свеж во всех дистрибутивах Linux. А режим extract в osmium-tool появился только в версии 1.5, которая на этот момент загружена только в репозитории Debian (jessie-backports) и, конечно, AUR для Arch Linux. В Fedora устанавливается версия 1.4.0, а в Ubuntu — вообще 1.3.1. Для этих систем придётся собирать osmium-tool из исходников.

Тестирование проводилось на среднем по характеристикам ноутбуке Asus с четырёхъядерным i7-4700 @ 2,4 ГГц с гипертредингом, 12 гигабайтами памяти и каким-то HDD.

2017   экспорт

Шейпы по триста

Для работы с данными OpenStreetMap в серьёзных ГИС нужно получить их в формате шейп-файлов. В России их делает компания NextGIS и публикует на сайте ГИС-Лаб. Выгрузки были ежедневными, но после ряда перебоев окончились в апреле 2016 года, причём последние опубликованные файлы оказались бракованными.

Сегодня регулярные выгрузки возобновились: с того же сайта (или из списка регионов) можно скачать данные от 17 января за 300 рублей/файл. После оплаты пейпалом лучше написать на info@nextgis.com, чтобы оттуда быстрее пришла ссылка на скачивание. Туда же нужно писать, чтобы договориться о пакетных, регулярных или нетрадиционных выгрузках. Покупателям приходит счёт, что удобно для отчётности.

Бесплатные шейп-файлы остались: рядом с кнопкой покупки есть кнопка скачивания старого архива. Сейчас там сборка от ноября, но в будущем планируют публиковать версии месячной давности.

Альтернативные бесплатные сборки продолжает делать Geofabrik. Россия у них разделена на девять федеральных округов. Летом их шейпы лишились главного недостатка, обретя мультиполигоны. Но Geofabrik не предоставляет стилей для QGIS и атрибутивные поля у них не так удобны для человека, ориентирующегося в тегах OSM.

2017   экспорт

1,7 гигабайта

В России каждый осмер знает: если нужен свежий дамп какой-то области страны, или вся территория бывшего СССР целиком — дорога на ГИС-Лаб, где каждое утро обновляются выгрузки в осмерские форматы и в шейп-файлы. Выгрузки других стран делает Geofabrik, хотя и чуть попроще: без части точек обрезанных линий и без мультиполигонов в шейпах. Россия на их сервере была, но в странном виде: разорванная на европейскую и азиатскую части. Из-за этого зона охвата некоторых европейских валидаторов обрывалась на Екатеринбурге.

Сегодня Фредерик сообщил, что переделал выгрузки для России: теперь страна разделена на 9 федеральных округов, для которых ежедневно публикуют данные в pbf, bz2, shp, и диффы в формате, готовом к подключению в osmosis. Туда входит и Крым, отсутствующий в сборке ГИС-Лаба: Германия не признаёт его частью России, но геоинформационные системы у нас без Крыма никто не примет.

Из других источников стоит знать bbbike.org, присылающий на почту произвольный прямоугольный регион в одном из 29 форматов, включая гарминовский и OsmAnd, выгрузки городов от Mapzen и Overpass API, который позволяет скачать свежие данные по произвольной границе, но размером до 300 мегабайт несжатых данных. Последнее удобно в редакторе JOSM: введя (node;<);out meta; в поле запроса overpass, можно не беспокоиться о размере прямоугольника.

2015   overpass   экспорт

Новые печатные карты

Заявки на новые печатные карты мы ждем от вас в комментариях к посту про печатные карты, в котором указаны критерии для их создания... Секунду, у нас же не НЯК.

Макс Васильев поделился ссылкой на буклет сегодняшнего чемпионата России по велоспорту в Туле. Красиво оформленные страницы, море информации — и, внезапно, карта маршрута, от которой вытекают глаза. Разумеется, с традиционным нарушением условий использования Яндекс.Карт и традиционным закрытием Яндексом глаз на эту фигню.

До сих пор просто нарисовать маршрут на карте было нетривиально: люди либо снимали проприетарную карту с линейкой вычисления расстояний, либо рисовали линии в пэинте поверх склеенных тайлов OSM, либо фотографировали OziExplorer с треком. Всё это ненормально и извращение. Особенно когда карта нужна для печати, и обычного разрешения в 90 точек на дюйм недостаточно. Что ж, с этого дня получить кусок карты для печати стало проще: теперь есть сервис «Get Veloroad».

Он работает на основе Nik4: указываете размеры бумаги, растягиваете прямоугольник границ печатаемой области, выбираете формат (png, svg или pdf) — и картинка в 300 dpi у вас в кармане. Поверх можно наложить GPX-трек и линейный масштаб. Векторные файлы SVG обрабатываются скриптом склейки букв в слова: их можно загрузить в Inkscape и сместить надписи от маршрута. Наконец, вместо стиля Veloroad можно выбрать «стандартный» стиль osm.org: хватит уже склеивать его тайлы, когда можно получить нужный кусок в 300 dpi (или в обычном разрешении, если указать пиксели).

Единственный недочёт — данные всё так же доступны только для части России и Прибалтики. Граница загруженной области отображена, поэтому даже на слое osm.org вы не останетесь неожиданно с синим квадратом. Сервис не даст создать несколько карт одновременно, поэтому если не получилось — попробуйте через пару минут. Всё лучше, чем вкладка экспорта на osm.org, непредсказуемая и вечно занятая.

2014   проекты   экспорт

Актуален

Позавчера некстгисовские выгрузки в Shape официально перезапущены после длительного перерыва и тестирования. Этот проект наиболее заметен и важен для пользователей OpenStreetMap (а не участников): именно он превращает гору геомусора с тысячей невнятных схем в удобные для использования слои в популярном формате данных.

К сожалению, самый важный проект для российских участников от того же автора, валидатор границ, всё ещё выключен. Есть надежда, что после этого релиза его ремонт немного ускорится.

2013   экспорт
Ctrl + ↓ Ранее