по многочисленным просьбам, выкладываю использованные нами для ежедневных обрезок файлы границ обрезки по всем субъектам РФ в трех вариантах + источники данных и расширение для их генерации в QGIS. http://gis-lab.info/qa/osm-poly.html
Результаты очень интересные. Правда, есть небольшие комментарии:
В тексте не описан режим Р, хотя он есть в табличке и упоминается в описании режима М.
В режиме РС у некоторых областей (Иркутской, Карелии и т.д.) время генерации измеряется тысячами минут. Это действительно так? Заметно, что у них гораздо больше узлов, но в то же время есть области с близким их числом - Коми и Карелия, а время генерации отличается в 50 раз. Или там ошибка (потому что число узлов совпадает до единицы у них и еще у Марий Эл).
Вы не пробовали сначала разделить Россию еще на прямогугольные блоки (например, по Федеральным округам) и вырезать уже из них? Теоретически, должно получиться быстрее, чем каждый раз брать весь файл.
Распаковывается ли planet.osm, если да, то включено ли время на это и на запаковку результатов?
Что критичнее для процесса обрезки - мощность процессора или объем памяти?
Рекомендую добавить эти бенчмарки в вики, там есть отдельная страничка для Osmosis’а. И спасибо за описание.
Да, с completeways все занимает именно столько. количество узлов в Марий Эл и Коми - странная ошибка, пардон. Исправлено.
Не поможет, проверено на отдельном регионе. Размер входного блока не имеет значения при резке с completeways. Не хочется повторять такой бенчмарк, так как опять придется ждать выполнения 4 дня Добавил в выводы.
Да, распакован и обрезан, это было указано выше.
Процессор.
Про вики, если кто добавит - я не против, чуть-чуть занят сейчас.
Спасибо, что внимательно посмотрел! Закон Линуса в действии
woidrick, я добавил в архив poly/russia_full.poly - это граница РФ, т.е. общий poly для всех в этой папке.
Границу евразии пока не делал, если хочешь я объясню из чего и как именно она делается. Суть в том, что там куча островов, которые по хорошему надо включить в общую границу, я это сделал для РФ, но мне влом сидеть и это делать, это ручная работа.
пока нет смысла муторно включать все острова, я планирую это просто про запас, когда эти детали кто-нибудь попросит. евразию мне достаточно приблизительно, просто она мне нужна по задуманной логике вложений территорий. можно даже грубо прямоугольниками до северного полюса, обойдя гренландию, поаккуратнее по границе с африкой, хотя что там аккуратничать - суэцкий канал, далее все острова около малазии - нахрен, японию включать если включена англия (она ничем её не хуже тоже грубо прямоугольниками (просто инструкцию я пока осилю, а резать планирую в пятницу, когда планета скачается.
-tee помогает, но не с completeways, там ничего не помогает
наверное стоит еще всю страну на 6 областей разделить и с помощью -tee прогнать, но так непонятно как время выполнение конкретного региона посчитать, можно только общее.
sim: насчёт qgis - решил попробовать упростить себе жизнь и не рисовать вручную границу, а попробовать объединить полигоны средствами qgis. но что но не вижу ничего похожего на эту функцию
upd: всё же удалось применить geoprocessing функцию dissolve
удалось
использовать плагин split shapefile для вырезания группы полигонов по признаку принадлежности к стране, но они остаются раздельными полигонами, и на всём administrative boundary a падает от нехватки ресурсов, успев вырезать десятка три стран.
склеить eur и sas плагином geoprocessing функция union
удалить из получившегося всё кроме относящегося к европе и азии, выделив расширенным поиском a_NA3_DESC != ‘Asia’ AND a_NA3_DESC != ‘Europe’ AND b_NA3_DESC != ‘Asia’ AND b_NA3_DESC != ‘Europe’ и удалив то, что выделилось. сохранить в файле это не получается
я специально не стал советовать идти по пути геопроцессинга, по нескольким причинам
результирующий полигон будет включать массу узлов
нарисовать границу гораздо быстрее
dissolve с отдельными островами приведет к появлению мультиполигонов - лишний геморой
если ты все же хочешь пойти по этому пути, то попробуй не удалять все кроме выделенного, а наоборот выделить то что тебе необходимо и сохранить в отдельный новый слой, для этого после выделения надо щелкнуть правой по слою в списке и выбрать Save selection as shapefile.
осмосис использует одно ядро, поэтому имеет смысл запускать несколько параллельных потоков
можно использовать top для того, чтобы убедиться, что это работает
это смотря что делать… если апдейт базы делаешь, то несколько потоков не запускаются одновременно
Кстати. интересно, а что быстрее на не очень производительной машине - ежечасные обновления или суточные? Я имею в виду в абсолютных затратах процессорного времени?