Рисование леса и других однородных полигонов - скрипт JOSM+python

alff31,

fuzzer не помогает рисовать. Проведите следующий эксперимент: возьмите плохо нарисованный полигон. Можно взять результаты работы fuzzerа где-то в Брянской или Смоленской области, можно взять полигон плохо нарисованный человеком. Взведите секундомер и исправьте полигон. Запомните время. Теперь удалите полигон и нарисуйте его с нуля, снова засекши время. Результаты проиллюстрируют что быстрее :slight_smile:

Что касается сложного леса со старицами и болотами. Да, поначалу руки опускаются глядя на это. Но дерзайте! Шаг за шагом обрисуете всё, район будет в навигаторе или на мапнике смотреться как конфетка. Только желательно начинать работу имея треки для подгонки снимков.

При наличии снимков высокого разрешения (IRS, Bing, Yahoo!) - фаззер бессмысленен. Фаззер был сделан для быстрого рисования по контрастному ландсату, и со своей задачей вполне справился. Проблема начинается тогда, когда из него пытаются сделать что-то, чем он не является.

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

А ORFEO умеет делать объектную классификацию ? http://www.orfeo-toolbox.org/otb

Zverik, вы застали леса/поля/болота на западе Карельского перешейка ?

Конечно. Примерно тогда я и решил, что лучше буду Псковскую область рисовать.

Не были, а есть. Я пару раз хотел этот ужас разгрести, но бросал - проще удалить.

http://matt.dev.openstreetmap.org/dupe_nodes/?zoom=10&lat=53.48499&lon=86.99417&layers=B0T

Полностью согласен. Хотя я сам им кучу озёр нарисовал - http://osm.org/go/2bnbUg- , все равно считаю что эти данные - не более чем заглушка для тех мест, где нет ничего лучше landsat и нет треков. И только для водоёмов. И только если нет льда и камышей/водорослей, т.е. берега чёткие. И всё равно руками потом часто правлю.

Выбирайте сами что вам интереснее - можно нарисовать много и схематично или мало, но детально. Мне больше нравится последнее - хотя бы тем, что не надо будет потом переделывать. И разнообразнее это. Вот: http://osm.org/go/3CKNm0ZU

Я попробовал фаззером рисовать леса - не очень понравилось. То ли таланта не хватило, то ли леса у нас неправильные - слишком неоднородные они на изображении. Как не старался, коэффициенты менял - ерунда получалась.

Зато! Фаззер отлично рисует сельскохозяйственные поля - они в большинстве своем однородные по цвету. Так что я исправил скрипт, чтобы он вообще тэги на мультиполигон не ставил, получаю фаззером ломаные кривые, удаляю лишние узлы, если выскочили, составляю правильный мультиполигон.

Чтобы рисовать по бингу, надо исправить одну строчку: josm_string = “http://wms.latlon.org/?layers=bing&”, только потом подобрать правильный зум и прочие коэффициенты.

Разве это плохо:

Мне легче удалять лишнее, чем кликать мышкой мультиполигоны, хотя если сравнить по времени - экономия не на много, просто устаешь меньше, “фана” больше :slight_smile:

Браузер утверждает, что ссылка не работает. Есть альтернатива или скоро заработает?

С некоторых пор фаззер (в связи со злоупотреблениями) выдаётся желающим лично по просьбам в IRC под роспись. :3

twms ещё понятно, а тут за что… ладно, будем смотреть что за зверь IRC…

А что за злоупотребления? Планируется ли добавить плагин к остальным плагинам в JOSM?

В Кемеровской области нарисовали тучу пересекающихся полигонов.

Поставил как написано в инструкции. При старте josm-а выдаётся сообщение, что плагин завершился с ошибкой, в консоли:

загрузка модуля ‘fuzzer’ (версия 15)
org.openstreetmap.josm.plugins.PluginException: В модуле fuzzer произошла ошибка
at org.openstreetmap.josm.plugins.PluginInformation.load(PluginInformation.java:280)
at org.openstreetmap.josm.plugins.PluginHandler.loadPlugin(PluginHandler.java:475)
at org.openstreetmap.josm.plugins.PluginHandler.loadPlugins(PluginHandler.java:533)
at org.openstreetmap.josm.plugins.PluginHandler.loadLatePlugins(PluginHandler.java:572)
at org.openstreetmap.josm.gui.MainApplication.main(MainApplication.java:245)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at org.openstreetmap.josm.plugins.PluginInformation.load(PluginInformation.java:271)
… 4 more
Caused by: java.lang.NoSuchMethodError: org.openstreetmap.josm.tools.I18n.tr(Ljava/lang/String;)Ljava/lang/String;
at fuzzer.FuzzySelectAction.(FuzzySelectAction.java:61)
at fuzzer.FuzzerPlugin.(FuzzerPlugin.java:18)
… 9 more

Josm версии 4487

Fuzzer подхвачен немцами, допилен и переименован в scanaerial.

http://wiki.openstreetmap.org/wiki/Scanaerial

Поставил scanaerial может я делаю что-то нето, но он висит продолжительное время хотя скачал маленькую область карты 1км на 500м, выбрал в пункте меню? тыкнул на озеро. И всё я сомневаюсь, что при таком подходе это всё занимает столь долгое время.

lenux, там можно поколдовать немного с настройками. Иногда нормально отрабатывает (на реках), иногда “уходит в работу” и не возвращается :slight_smile:

В частности, можно уменьшить douglas_peucker_epsilon (я поставил 4.20) - это параметр “упрощённости” получаемой линии. Чем больше, тем грубее будет полученная линия.

И параметр, снимающий “повисание” - colour_str. Чем ниже, тем более точно скрипт пытается найти указанный цвет. Т.е. на неконтрастном снимке его нужно уменьшать. Например на базовом 30 - у меня озеро скрипт не смог найти (тупит и всё). Поставил 20 - нашлось достаточно быстро.

Напоминаю, настройки хранятся в файле ~/.josm/plugins/ext_tools/scanaerial/scanaerial.cfg

Хотя местами, конечно, чудеса выдаёт:

Причём приблизил изначально достаточно близко, чтобы одно поле вместилось… Видать приближение в josm не ограничивает область, на которой скрипт пытается обводить однородные объекты…

progserega, это вполне нормальный скан бинга. На зуме, где у него куча зачёркнутых фотоаппаратов :slight_smile:

Скан-то нормальный, проблема-то в том, что плагин “закозявило” на этом поле…

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

Цитата:
limiting the area would not help much. The script needs to detect the borders and i dont think that it will be ever possible to detekt grainfields, grassland and the like.
I had very good results in scanning the lakes in sibiria (you can find many examples around Anadyr). These lakes have a contour with very high contrast.
There are many promising ideas to improve scanaerial, but i have no time in near future to code them.