Closed Kkhludneva closed 5 months ago
https://wiki.openstreetmap.org/wiki/Planet.osm/diffs Различия, представленные по адресу https://planet.osm.org/ представляют собой небольшие сжатые XML-файлы в формате OsmChange, которые содержат изменения в данных OpenStreetMap за некоторый период времени. Разработчики могут использовать Diff для синхронизации базы данных OpenStreetMap с последними изменениями, вносимыми картографическим сообществом, или для анализа этих изменений по мере их появления.
Порядок действий такой: используем OSM DIFF, далее Osmosis в связке с osm2pgsql обновляем данные в бд
Скорее всего не подходит, тк последняя репликация для россии была в 2020 году, а бд обновляется каждый день
@TigranNice Можете показать какой-то пруф, что для России нет данных свежее 2020 года? Скриншот, ссылка, описание куда сходить, чтобы посмотреть
Говорят, osmupdate
, который вы же предложили к рассмотрению, умеет брать нужные дифф файлы
Alternatively, the osmupdate can be used to create cumulated diff files (.osc, .osc.gz, .o5c, .o5c.gz). The program will download all necessary diffs between a given timestamp and now. Depending on this period of time, minutely, hourly and daily diffs will be downloaded and processed. It is faster than Osmosis and a bit easier to handle but it lacks a lot of functionality Osmosis provides, for example, osmupdate cannot update databases or write full history diffs (there will be only the newest version of each object in the output file).
Не изучали подробнее как это у него получается и насколько подходит?
На геофабрике кстати тоже есть osc.gz файлы, но они обновляются только раз в день. Если жестко обязательно уметь обновлять чаще, то тогда конечно не подходит.
Я зашёл в базу данных OSM и напрямую посмотрел. В Репликациях видно, что последняя была сделана в 2020! А на другом скрине видно что сама база данных по России обновлена на 2024.04.09
@TigranNice Там ведь, если зайти внутрь, то можно увидеть, что в папке с минутными апдейтами все обновляется как по часам каждую минуту. К тому же для каждого субрегиона: https://download.openstreetmap.fr/replication/russia/ https://download.openstreetmap.fr/replication/russia/southern_federal_district/krasnodar_krai/
Похоже в 2020 году были загружены начальные данные, а минутные оттуда получается брать можно (но скорее всего не стоит раз дневных и часовых изменений нет и покрытие не полное "provides minutely diffs (.osc.gz) of around 20 countries, check link for availibility")
Можно брать все апдейты которые были за день
Т е поставить время, например 0:00 для обновления. Программа будет брать все файлы, которые есть в базе и применять их к нашей бд
А лучше изучил сайт https://wiki.openstreetmap.org/wiki/Planet.osm/diffs Нашёл что можно брать ежедневные изменения
https://docs.osmcode.org/pyosmium/latest/ref_replication.html
нашёл обновление репликаций в pyosmium
@TigranNice можно вас попросить опубликовать до начала разработки краткое, но при этом достаточно понятное описание того, как вы планируете делать обновление данных? Какими инструментами и какая стратегия будет использоваться
Например:
(специально привел пример очень неудачной стратегии)
Если составление такого плана выходит за рамки конкретно этой задачи, то создать новую задачу нет проблем, главное, чтобы этот план был где-то зафиксирован. Относится ко всем задачам, где нужно что-то изучить и продумать как какой-то компонент будет работать.
Мудрая мысль для вас и всех ваших коллег: Вносить изменения в документы (какие угодно, требования или планы-описания будущих работ по реализации) написанные на человеческом языке (русский, английский и тд) во много раз проще, чем вносить изменения в уже написанный и работающий код. А Сергей Юрьевич или я можем найти, что подкорректировать в вашем плане, или вы сами вместе с коллегами найдете, что можно улучшить, обдумывая и обсуждая уже зафиксированный план.
Дополнительная выгода в состовлении подобных описаний: в конце семестра, когда вам нужно будет писать отчет по проекту или составлять презентацию для его защиты, достаточно будет только скопировать это описание вместо того, чтобы напрягать память или пытаться понять по коду как все работает и почему работает именно так.
@Kkhludneva @sevryukov
Мудрая мысль для вас и всех ваших коллег: Вносить изменения в документы (какие угодно, требования или планы-описания будущих работ по реализации) написанные на человеческом языке (русский, английский и тд) во много раз проще, чем вносить изменения в уже написанный и работающий код.
Совершенно верно! Есть несколько од про это (они уже не такие свежие по дате издания, но не потерявшие актуальность): Коротко и просто: https://okiseleva.blogspot.com/2018/03/blog-post_59.html Обстоятельно: https://habr.com/ru/articles/332724/
Изучить методы актуализации данных OSM, например: https://wiki.openstreetmap.org/wiki/RU:Osmupdate
Учитываем, что работать предстоит с большими объемами данных (РФ/Евразия/планета)
Отразить все рассуждения в комментариях под issue.