Эстония

Habaja alevik поиском не находится, зато есть Habaja küla. Википедия подтверждаэ
Домики/улицы нарисую, но статус/тип НП проставьте кто-нить ещё.

А в чем предполагается цель вот этого списка
http://osm.svimik.com/ads_validator.php
при полном отсутствии инструментов для редактирования?

И еще - мне показалось, что в этом списке вполне легко выделяются немалые группы записей, где можно просто ОЧИСТИТЬ существующую адресную информацию и пустить домики на адресацию. При нынешнем развитии скриптового дела, через пол-дня они будут уже нормально адресованы. Собственно, в базе можно даже и не очищать - просто заменить старую информацию на новую.
Но, может, я что-то не понял в этой ситуации с неправильными адресами.

Ну раз Maa-amet говорит что alevik, и википедия говорит что alevik, значит в OSM её незаслуженно обозвали деревней, надо исправить :slight_smile:

Тяжёлые случаи наверное оставим местным. Я обычно на сайте Maa-amet использую возможность покликать по улицам и объектам, и посмотреть информацию. Иногда рендер по какой-то причине просто не рисует надпись, тогда ищу таким образом.

Впринципе, уже ни в чём. Это, так сказать, остатки, которые не получилось переадресовать.

См. выше. Я их уже пускал, и даже в последнем столбике результат вывел. Там одни “!” и пустые записи остались.

Кстати, http://osm.svimik.com/ads_validator.php - именно этот скрипт выдаст ошибки наших импортов, если они будут. Точнее, они там есть, но из-за их небольшого количества я не буду сейчас исправляться :slight_smile:

В таком случае, заголовок таблицы вводит в заблуждение (“Отображает здания, у которых адрес, скорее всего, указан неверно”).
Как верно - не могу сказать, но из данной фразы не вытекает понимание, что они уже были провалидированы вручную и все равно что-то не так.

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

А иначе - это кладбище записей.
Ни посмотреть, ни отредактировать, ни понять, зачем их нужно держать в списке.

Небольшая мысль в голову пришла… просто оставлю это здесь.
http://potrace.sourceforge.net/

Осталось придумать, как упростить линии…

В JOSM нажал Q, потом плагин Упростить полигон, и получилось примерно то, что хотел.

Результат:

Осталось три проблемы:

  1. Повторить без JOSM
  2. Автоматизировать
  3. Здания, расположенные впритык, лучше бы склеивать…

Конечно, оставить это как есть я не мог, поэтому допилил вручную с J, M, и снова Q…

В ОСМ она совпадает с данными мааамет, по крайней мере, на момент внесения. Harjumaa, Kõue vald, Habaja küla. Если сейчас в мааамет это алевик, видимо, офф статус изменился. Но свежими сырыми данными земельного ведомства не обладаю.

Для автоматической векторизации выглядит круто.
Но, ИМХО, если результат грузить автоматом в OSM, то нужно средство полуавтоматической валидации - показывать людям контуры домов и просить оценить хорошо ли лежит контур или нет. Если домики в Maa-amet склеены, а векторизатор их разделил - люди отметят контуры как требующие ручной корректировки. Но показывать надо не по одному контуру (как сейчас на вводе номером домов).

Есть две идеи

  1. Для стирания номеров домов
  • Выделяем по цвету заливки дома - в отдельный слой (в терминах фотошопа)
  • Выделяем в этом слое связную область (“Magic Wand”) снаружи домов, инвертируем
  • Сжимаем границу на 1 пиксель (“Contract”)
  • Заливаем цветом “дом”
    Если номера все внутри контура дома, они не захватятся в связную область и будут залиты
  1. Для векторизации
    Параметр “-a 0” - углы не скругляются кривыми.

RM87 прислал вроде бы полезную ссылку

Ну висит же:
Скачивание минутных диффов Последняя проверка: 3 ч. 23 мин. назад

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

Сначала я использовал системный планировщик, но он не выдерживал и полдня - задача заклинивала в положении “Работает” несмотря на то, что процесс завершился. И заного из-за этого не запускалась. И помогает только пересоздание.
Подобное поведение (Scheduled Tasks appear hung in the “Running” state on Windows Server 2003 based systems) широко описывается в интернете, но ни одно решение не помогло. В моём случае даже в логах планировщика никаких ошибок, пишет в логах “Итог: Задание завершено”, а в списке задач - “Работает”. И ни туды и не сюды.

Сейчас в роли планировщика выступает мой собственный скрипт. Работает он хорошо, плюс упростилось программирование.
Единственное но - иногда задача по скачиванию виснет, причём не могу отловить, на чьей причине проблема - “планировщика”, или самого скрипта.
По какой-то причине shell_exec() не возвращает управление, несмотря на то, что вызываемый скрипт самой последней строкой пишет в лог “DONE”, и по идее ну никак не может не завершиться.

Видимо, мне надо как в анекдоте про программу, которая следит за программой, предназначенной для перезапуска программы…

Disk is full writing '.\osm2\ways_filtered.MYD' (Errcode: 28).

Кстати, вот от этой ошибки ни один “отстреливатель” не поможет…

Толку, если я либо на работе, либо сплю?

Чем полезна - не понял, но пускай валяется :slight_smile:

Да, так заметно лучше. Но всё равно линия нуждается в

  1. Приведение углов в шаг 90 градусов

  2. Удаление лишних точек

К сожалению, трассировщику нельзя просто сказать, что всё прекрасное должно быть квадратным :slight_smile:

Ничего не понял. Если в отдельный слой только один цвет - то остальная область у нас будет прозрачная, как прозрачный цвет инвертировать? :slight_smile:

Вообще, у меня такой проблемы нет, я их подтёр просто операциями с цветами (второй скрин предыдущего поста). Оставшийся небольшой мусор трассировщик просто игнорирует.

Очень сложная для программирования операция…

Кстати, из примера не видно, что у тебя со склеенными домами получилось? Должно получиться два контура…

Хорошо, подробнее:

  1. Выделяем по цвету заливки дома
  2. Сохраняем выделение в новый слой
    В этом слое дома будут белые, остальное - чёрным
  3. В новом слое выделяем связную область (“Magic Wand”) снаружи домов, инвертируем выделение
  4. Сжимаем границу на 1 пиксель (“Contract”)
  5. Заливаем всё выделенное белым
    В итоге дома и номера будут залиты белым, фон - чёрным.
  6. Инвертируем слой

Шаг 3 для программирования - волновый алгоритм заливки.
Шаг 4 - дополнительный 1 “шаг” волны на дома.

Так? Или опять не понял? :frowning:
Если нет - покажите результат на моём примере, чтобы я понял…

Если так, то у меня номера домов не только не удалились, но и стали больше, аж до разрыва самого контура.

Ну на шаге 3 надо выбирать связную область снаружи домов. Вырезы от номеров, которые не касаются краёв домов не должны при этом захватиться.

Так?

Да, но “сжать” на 1 пиксель надо после инвертирования выделения. :slight_smile:

Так я сжал… Ладно, мой вариант:

Основан на том, что цвет линии, которая нам нужна, расположен в диапазоне 160…199 (если смотреть синий канал) :slight_smile:

После удаления одиночных пикселей (трассировщик их конечно и так игнорирует, но сделаем красивее для себя):

Можно попробовать запилить свой трассировщик или доп. обработчик, который будет ортогонализировать более корректно, чем JOSM, и сшибать промежуточные точки на прямых рёбрах.
Т.е. чтобы сразу делал так:

Есть пара мыслей по алгоритму.
Но нужно понять

  1. Устроят ли нас не склееные домики. Склеить корректно будет сильно посложнее, идей пока нет.
  2. Какой формат векторизации
    а. Кто-то один обрабатывает всю страну, потом на полуавтомате проверяем
    б. Какждый векторизует кусок карты на выбор, проверяет и загружает в базу сам
  3. На чём можно запилить прогу (что хотелось бы)
  • Какой язык программирования и OS
  • Что на входе (PNG/svg/osmxml)
  • Что нужно на выходе (svg/osmxml)

Мне лично проще на C/C++/C#/VB6 под винды, брать svg или osmxml.
Ещё могу на java/perl/python/php, но если кто-то даст работоспособную обвязку.
Т.о. уже сейчас могу поэкспериментировать с доп. командой для JOSM-плагина CommandLine.