You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#451 2013-03-10 16:50:12

AlexTheTux
Member
From: Russia, Saint-Petersburg
Registered: 2011-07-04
Posts: 384

Re: Эстония

http://www.openstreetmap.org/browse/way/65372596
Не удается обнаружить в окрестностях дома улицу Kooli

Offline

#452 2013-03-10 17:51:16

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

Судя по направлению номера на Maa-amet, должно быть addr:street=Geoloogia


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#453 2013-03-10 19:50:47

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

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


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#454 2013-03-10 22:03:07

AlexTheTux
Member
From: Russia, Saint-Petersburg
Registered: 2011-07-04
Posts: 384

Re: Эстония

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

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

Offline

#455 2013-03-10 22:08:36

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

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

Не удается обнаружить в окрестностях дома улицу Kooli

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

Offline

#456 2013-03-10 22:12:29

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

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

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

и пустить домики на адресацию

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

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

Last edited by SviMik (2013-03-10 22:26:16)

Offline

#457 2013-03-10 22:21:30

AlexTheTux
Member
From: Russia, Saint-Petersburg
Registered: 2011-07-04
Posts: 384

Re: Эстония

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

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

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

Last edited by AlexTheTux (2013-03-10 22:23:13)

Offline

#458 2013-03-10 22:55:49

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

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

potrace_1.png

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

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

potrace_4.png

Результат:
potrace_3.png

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

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

Last edited by SviMik (2013-03-11 00:11:37)

Offline

#459 2013-03-11 07:52:39

Vitalts
Member
From: Estonia
Registered: 2010-12-30
Posts: 1,440

Re: Эстония

Habaja alevik поиском не находится, зато есть Habaja küla. Википедия подтверждаэ

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

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

Offline

#460 2013-03-11 16:57:30

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

SviMik wrote:

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

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


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#461 2013-03-11 18:03:19

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

Есть две идеи

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

2) Для векторизации
Параметр "-a 0" - углы не скругляются кривыми.

Last edited by OverQuantum (2013-03-11 18:06:57)


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#462 2013-03-11 21:08:07

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

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

In case you start wondering how old the ortophoto is: http://geoportaal.maaamet.ee/est/Andmed … a-p27.html


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#463 2013-03-11 21:25:01

AlexTheTux
Member
From: Russia, Saint-Petersburg
Registered: 2011-07-04
Posts: 384

Re: Эстония

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

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

Offline

#464 2013-03-12 16:35:00

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

Нельзя ли как-то в системный планировщик

Сначала я использовал системный планировщик, но он не выдерживал и полдня - задача заклинивала в положении "Работает" несмотря на то, что процесс завершился. И заного из-за этого не запускалась. И помогает только пересоздание.
Подобное поведение (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).

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

отправлять сообщение администратору на мобильный телефон?

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

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

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

Offline

#465 2013-03-12 16:47:53

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

2) Для векторизации
Параметр "-a 0" - углы не скругляются кривыми.

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

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

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

- Выделяем по цвету заливки дома - в отдельный слой (в терминах фотошопа)
- Выделяем в этом слое связную область ("Magic Wand") снаружи домов, инвертируем

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

Для стирания номеров домов

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

- Выделяем в этом слое связную область ("Magic Wand") снаружи домов, инвертируем
- Сжимаем границу на 1 пиксель ("Contract")

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

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

Offline

#466 2013-03-12 17:49:42

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

SviMik wrote:

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

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

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


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#467 2013-03-12 18:35:39

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

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

potrace_pre1.png

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

Offline

#468 2013-03-12 18:43:43

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

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


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#469 2013-03-12 18:59:39

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

Так?

potrace_pre2.png

Last edited by SviMik (2013-03-12 18:59:50)

Offline

#470 2013-03-12 19:08:57

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

Да, но "сжать" на 1 пиксель надо после инвертирования выделения. smile


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#471 2013-03-12 20:01:09

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

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

potrace_pre3.png

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

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

potrace_pre4.png

Last edited by SviMik (2013-03-12 20:04:09)

Offline

#472 2013-03-13 20:04:23

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

SviMik wrote:

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

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

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


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#473 2013-03-13 20:38:24

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

1) Устроят ли нас не склееные домики. Склеить корректно будет сильно посложнее, идей пока нет.

Вариантов особо и нет. Можно
а) импортировать в таких случаях только один домик. всё же лучше, чем ничего
б) оставить несклеенными. всё же лучше, чем ничего
в) кардинально поменять трассировщик, чтобы из этого он делал аналогичную картину одной линией (а не парой внутренняя+наружная). таких трассировщиков мне неизвестно, писать самому - под матан мой моск не заточен, увы smile

2) Какой формат векторизации
а. Кто-то один обрабатывает всю страну, потом на полуавтомате проверяем
б. Какждый векторизует кусок карты на выбор, проверяет и загружает в базу сам

а. сделать технически проще, б. будут излишние сложности при любой его реализации (а плюсов не вижу, только минусы)

- Какой язык программирования и OS

У меня на сервере форточки, а мой любимый язык - пхп smile Но, ясен пень, на сях будет производительнее, так что только рад.
Задача выглядит не зависящей от платформы. Если будет написано под никсы, портирование не выглядит сложным (ну в крайнем случае запущу задачу на другом сервере, если разово).

- Что на входе (PNG/svg/osmxml)

Видимо, PNG smile Остальные два варианта - векторные форматы, их как раз надо на выходе smile

- Что нужно на выходе (svg/osmxml)

svg выглядит несложным для разбора. Генерация osmxml и привязка домика к географическим координатам - задача того скрипта, который будет подсовывать png трассировщику. Мы же не хотим, чтобы трассировщик ещё и в географии разбирался? smile

ортогонализировать более корректно, чем JOSM

Мне нравится, как это делает JOSM. Лучше вряд ли можно придумать (да и нужно ли?).
Была мысль поискать в исходниках и стащить этот алгоритм smile

------------------

Теперь нужно лирическое отступление. Надо определиться, что мы пишем smile

1а. Свой трассировщик. В задачи входит: получить на входе PNG картинку, аналогичную этой, и выдать на выходе набор линий с координатами, аналогичными пиксельным координатам в картинке. Географией и работой с WMS, мне кажется, заниматься здесь излишне.
Опционально (правда, иначе смысла писать свой и нет smile) - алгоритм ортогонализации и упрощения.

1б. Фильтр для готового трассировщика, который сделает ортогонализацию и упрощение.

2. Скрипты, которые будут качать WMS, кормить трассировщику, получать результат, и раскладывать по полочкам. В целом, выглядит несложно:
- Берём адресную точку из кадастровой базы, грузим квадрат (типа тех, с которыми уже все знакомы в нумераторе) с центром в этой точке
- Проверяем по цвету, попали ли мы в здание. Если нет - пропускаем, не заморачиваемся
- Отправляем задачу на векторизацию-ортогонализацию-упрощение. Получаем векторное представление квадрата
- Находим в нём центральное здание, берём его вектор. На всякий случай можно проверить, входит ли по-прежнему в него адресная точка, а также наложить маску на исходную картинку, и проверить распознавание например подсчётом пикселей нужного цвета внутри.
- Переводим координаты векторов в географические. Сохраняем полученный way в базу, вместе с адресом.

3. Скрипт валидации. Здесь думаю что-то построенное на той же технологии, что и нумератор. Все знакомы, в объяснении не нуждается. Опыт у меня уже имеется smile

Last edited by SviMik (2013-03-13 20:40:50)

Offline

#474 2013-03-13 21:19:04

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Эстония

SviMik wrote:

ортогонализировать более корректно, чем JOSM

Мне нравится, как это делает JOSM. Лучше вряд ли можно придумать (да и нужно ли?).

Если много сильно не прямых углов, встроенный ортогонализатор ошибается в определении базового направления и результат может быть очень сильно не похож на исходный контур. В нашем случае у меня половина векторизованных домиков схлопывалась в ниточку из-за скгрулённых углов.

SviMik wrote:

Надо определиться, что мы пишем

Я могу попробовать сделать:
1) Трасировщик под винды, который берёт на вход PNG и на выход высыпает SVG
2) Команду к JOSM-плагину CommandLine, которая ортогонализирует контур по моему алгоритму (улучшенное определение базового направления, лишние узлы удаляются)

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


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#475 2013-03-13 21:34:25

SviMik
Member
From: Tallinn, Estonia
Registered: 2013-01-01
Posts: 1,392

Re: Эстония

1) Трасировщик под винды, который берёт на вход PNG и на выход высыпает SVG

Если результатом будут красивые прямые углы, то я только за smile

2) Команду к JOSM

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

Offline

Board footer

Powered by FluxBB