Вырубки, гари, ветровалы, поросль леса, редколесье...

Тут главное договориться и чётко расписать что есть что, а теги пусть любые будут.

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

chnav, не услышал ваших соображений, как будем тегировать древесный полог из двух ярусов. Типичный пример - старая вырубка с оставленным на корню тонкомером (wood:age=middle), возобновившаяся молодым поколением леса (wood:age=young). Тут wood’а сразу два и не получится затегировать как, например, редкий лес с кустами - wood:= + scrub:=.

Всё верно, об этом примерно и речь.

https://forum.openstreetmap.org/viewtopic.php?pid=633109#p633109

Продолжу про многоярусные ландшафты.
Даже если natural=scrub + scrub:= + wood:=, мне всё равно не хватает “титульного” тега для второстепенного яруса. Тег с неймспейсом - он же только уточняющий.

Я выше предлагал ввести vegetation[1-9]=* + vegetation[1-9]:=. Нет. Это будет уже четвёртый (или какой уже?) способ затегировать лес.

Лучше использовать вместо vegetation уже имеющийся landcover. Хотя мне не очень нравится, что в нем грунты, горные породы и воды, ну да ладно, вроде не проблема. Никто же не будет приписывать растительные теги камням.

Но вот со степенью покрытия получается ерунда: landcover:cover=open :smiley: “Density”, как я писал, для новой схемы не очень подходит.

Лес по разному растёт, какому-то 5 лет потребуется, чтобы перешагнуть порог 3-4 метров, какому-то 10, а какому-то 20, а иному может и 40. Но в целом да, можно считать что seedling полностью соответствует very_young и не привязывать его к возрасту. Речь, понятное дело, идёт об обычном лесе.

С маппингом именно seedling’а возникнут некоторые трудности, надёжно определить его можно только в натуре. На снимках видно тот, который на данный момент уже вырос. Я изрядное количество молодняков отметил как scrub, что станет неправильным.

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

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

Формулы можно взять самые простые, для наших целей точности процентов в 5, а то и 10 (сложно оценить) будет достаточно.

δ=23,45⋅sin(360⋅(d-81)/365,25)=-23,45⋅cos(360⋅(10+d)/365,25) - склонение Солнца
a=arcsin(sinϕ⋅sinδ+cosϕ⋅cosδ⋅cosH) - высота Солнца над горизонтом

Собственно высоту дерева вычисляем, умножая длину тени на тангенс a.
Ошибка в основном связана с тем, что орбита Земли не совсем круглая и кол-во дней в солнечном году не целое.

Для себя запилил табличку-калькулятор в Excel и скопировал в гуглотаблицы: tinyurl.com/hkkoy9k. Входные данные - длина тени, азимут солнца, дата снимка, географическая широта. Без гуглоаккаунта не позволит редактировать, но скачать можно.

Для случаев многоярусности напрашивается логичный выход - делать второй мультиполигон и вешать доп.теги на него (в т.ч. layer=* чтобы отделить однотипные natural=wood).

Т.е. снизу вверх будет
wood:*
wood:* + layer=1
wood:* + layer=2

Второй вариант - перечислять подтипы в теге vegetation=a,b,c… где в качестве значений принять какую-то классификацию, например vegetation=wood_mature_sparse_broadleaved;wood_young_open_broadleaved

Боюсь второй вариант в нашем проекте будет крайне сложно поддерживать. Но vegetation1:* - vegetation:9:* ещё хуже.

Вообще пора отходить от лоскутных одеял. Растет трава ? Значит рисуем огромный полигон травы. На траве есть пучки кустов ? Рисуем их вторым полигоном с перекрытием без дырок в первом. Появилась поросль - третий полигон. И т.д. как в обычных ГИС. Это уже дело рендера выбирать что и в каком порядке отображать. Если нужен более полный анализ - алгоритмом point-in-polygon протыкаем все слои и смотрим что нанизалось.

Если использовать layer, то могут утонуть дороги и ручьи. Может и не утонут, но вики предостерегает.
Вместо layer нужен другой тег. И, как мне видится, он должен отражать не очерёдность ярусов снизу вверх, а их важность, “долю участия” по убыванию. И тег natural оставить только на главном.

Пример: osm.org.ru/#map=16/59.965/50.006&layer=B
Два объекта на одной площади:
natural=wood + wood:density=very_sparse + height=33 + layer=1
natural=scrub + scrub=seedling + height=1

Отображаться на большинстве карт будет или верхний (“лес”, а не “кусты”), или рандомно один или другой - многих рендерах, которые не знают, что такое layer. В обоих случаях ошибка. А если ещё будут полигон травы-кустарничков, мхов-лишайников? Конвертерами всё это будет вытаскиваться, а работать не будет.
Поэтому, на мой взгляд, если двумя полигонами, лучше как-то так:
natural2=wood + wood:density=very_sparse + height=33 + layer=1
natural=scrub + scrub=seedling + height=1

До сих пор не знаю, разные мультиполигоны с одной геометрией - нормальная ли это практика?
Пробовал когда-то совместить wood и wetland, так josm ругался - одинаковые участники в отношениях. Правда, josm можно обмануть, просто поменяв очерёдность участников у одного из отношений. Но я подумал тогда, раз ругается, значит так маппить не нужно.

а зачем совмещать, если можно поставить natural=wetland + wetland=swamp (лесное болото)?

Принципиальных ограничений на множество relation у одного outer нету. Джосм ругается потому что такое получается обычно по ошибке - выделил контур и два раза нажал на комбинацию создания отношения, получились два отношения с общим контуром.
Помнится Зверик озвучивал предложение вообще все теги перенести на отношения :slight_smile:
Еще помнится это один из вариантов тегирования дома с двумя адресами - создается два отношения, каждое со своей адресацией.

Это частный случай, вы почитайте последние пару страниц.
Мы обсуждаем проблему, когда есть два яруса natural=wood (разного возраста, например) и простыми словесными манипуляциями их не разделить.

Хотел бы попросить по возможности сделать какую-нибудь картинку в “лесном” пресете в отношении завала на лесной дороге: barrier=log, можно по аналогии с картой для Garmin

Экспериментальный пресет, переделанный под новые варианты тегов (обсуждаемых на паре последних страниц), ссылка на Яндекс.Диск: https://yadi.sk/d/86r5ApTA3NLHqC

Paravoz, barrier=log добавил в него же.

Возраст указывеется тегом wood:age=sapling|pole|mature|old_growth

Сомкнутость полога: wood:density=sparse|very_open|open|closed|very_closed

Подобные теги добавлены для кустарников: scrub:age и scrub:density

Самый молодой лес теперь тегируется как natural=scrub + scrub=seedling_trees

Низкорослый лес - natural=scrub + scrub=stunted_trees

Ветровал, сухостой, горельник теперь описываются отдельными тегами: wood:windfall, wood:dead, wood:burnt, в значении ключей указывается степень повреждения.

Остальное почти без изменения.

Теги, разумеется, не окончательные. На гитхаб пока заливать не тороплюсь. И там надо придумать, как сделать так, чтобы в josm читались иконки прямо из архива, скачанного с гитхаба.

Стиль карты пока не менял.

Спасибо всем участвовавшим в обсуждении.

Иконки в корне архива, в пресете ссылки без путей.

Ок. А как указать путь в корень архива? Одинарный слеш? Я всяко вроде пробовал, не получается.

Upd. Если “иконки в корне архива, в пресете ссылки без путей” - это решение, то josm с какой-то версии перестал их читать.

Спасибо за заготовку! Сразу возник вопрос: есть делянка, на которой посажены сосны. Как указать культуру, если я её точно знаю? И площадь посадки тоже как можно указать?