плагин fuzzer для JOSM http://code.google.com/p/josm-plugins/downloads/list (спасибо Upliner-у)
– поместить его в папку с плагинами JOSM (для windows путь в проводнике %AppData%\JOSM\plugins) и включить плагин в настройках JOSM
скрипт на питоне fuzzyselect.py http://latlon.org/fuzzyselect.py (спасибо Komяpе)
– создать папку fuzzer с этим файлом и поместить её в папку с плагинами JOSM
В JOSM появится меню Инструменты – Fuzzy select (Shift+K). Нажимаете, и тыкаете в центр куска леса или поля, получаете окно “Трассировка (разбор данных OSM)”, ждёте отработки скрипта (от 5 сек до минуты). Скрипт скачает изображение с WMS, определит границу леса (по разнице в цвете), и векторизует её. Плагин подхватит полигон или мультиполигон и вставит в JOSM.
Если повезет, быстро получите нормальный кусок леса, если нет, скрипт будет работать больше 2-3 минут и создаст лес на пол-региона или не сможет его векторизовать и ничего не выдаст.
discuss!
НАПОМИНАЮ, чаще всего – нужно использовать тег natural=wood, в России все леса входят в лесничества (лесной фонд), и большинство обслуживаются редко.
И только если леc обслуживается регулярно (очищается, рубится и делаются лесопосадки) – то ставим landuse=forest. см. Wiki
В процессе работы скрипта можно увидеть какой полигон распознался в текущий момент – в файле img.png в папке fuzzer. Масштаб может увеличиваться, т.к. сейчас скрипт расширяет область поиска по мере поиска замкнутой внешней границы леса.
Попробовать настроить параметры скрипта, чтобы он лучше ловил границы леса вы можете отредактировав файл fuzzyselect.py:
Из какого WMS брать картинку для распознавания - в 30-32 строках раскомментьте нужное (пробелы в начале строк не удаляйте). Думаю лучше оставить YahooSat, он вроде контрастней, и разрешения достаточно (если у вас стоит кэширующая twms, то выбирайте строку с 127.0.0.1):
Насколько чувствителен алгоритм распознавания границы цвета:
init=5 # размер квадрата спутникового изображения, чем больше -- тем меньше разрешение и хуже видны дороги и границы = 4-5-10 is ok
color_str = 25 # разница цвета пикселей у границы, чем больше -- тем больше разных (близких к цвету указанной точки) цветов захватит скрипт = 20-25-30 is ok
medianfilter_str = 7 # сила усреднения цветов пикселей, чем больше -- тем расплывчатей границы леса = 5-7-13 is ok
douglas_peucker_epsilon = 2 # коэф. ступенчатости границ полигона, чем больше - тем меньше точек и поворотов будет в линиях = 0.71 - 3 is ok (don't set less than 0.71!)
zoom_no_more_than = 4 # количество увеличений площади анализа (картинки со спутника), если лес полностью не поместился в исходном квадрате
Для выделения рек/озёр/водоёмов нужно лишь уменьшить color_str до 10 например (или около того), т.к. цвет воды очень не сильно колеблется.
Хоть на javascript.
на входе - широта-долгота клика как параметры командной строки, на выходе - .osm в stdout. что будет внутри, явовскую часть плагина слабо волнует
А если джосм ругается, что “Cannot run program “pythonw” (In directory “C:\Users\1\AppData\Roaming\JOSM\plugins\fuzzer”): CreateProcess error=2, …”, в чем может быть проблема?
Если в проводнике руками ткнуть в fuzzyselect.py, то мелькает окошко python.exe, т.е. сам python доступен.
p.s. Python стоит 2.5, но проблема думаю не в этом… Может из-за того, что стоит в \program files\development\python25?
а. я тормоз, это ехешник)) ехешники мы (виндузятники) запускать умеем.
ps. Заработал, когда прописал прямой путь на pithonw в PATH, который в “Переменные среды пользователя …” (а не в “Системные переменные” – сюда кстати Питон прописывается сам, но винда похоже эти переменные не видит).
Насколько я понял, в данный момент скрипт не понимает, что подложка сдвинута?
Как-то странно создаются полигоны -не достают до края леса метров 50. Вместо прямой линии (просеки) - что-то пилообразное.
Если полигон не был создан, в стек команд добавляется пустой FuzzySelect. Не смертельно, но непонятно.
Сделал бы скриншот, но выложить некуда.
Да, пилы имеются. Удаление руками каждой второй точки приводит к более благолепному виду.
Как обращаться со смещением непонятно, местами это важно.
Кстати, теги может и не нужны – мы же не только леса будем обклацывать, а и поля и прочее однородное.
Несколько раз рисовался аутер, а рядом с ним, за пределами иннер (ну то есть, я догадываюсь, что это такие роли, сейчас же они не ставятся пока…), то есть рисуется несколько наружных полигонов.
В целом неплохо – ткнул раз, и все леса на экране выделились)) но обещанной логике это немного не соответствует. Посему, предупреждаю.
А еще картинка курсора портится, не восстанавливается. Жму шифт-к, курсор становится крестиком, тыкаю, рисуется полигон, после жму s – мой любимый основной режим – курсор остаётся крестиком, и только перетыкиванием скажем последовательно “a” - “s”, курсов возвращается к нормальном рисуночку. Трассировщик озёр тем же страдал.