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

Лес по разному растёт, какому-то 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 с какой-то версии перестал их читать.

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

Последняя DEV, всё нормально. Вот я так использую.

https://wiki.openstreetmap.org/wiki/Key:taxon
Но основной тег на латинице нужно заполянть.

Зачем, у нас же ГЕОБаза - она сама посчитает.

Есть тег species, наверно подойдёт для указания культивируемой породы.
С необходимостью указывать площадь объекта не сталкивался. Вроде ж она из геометрии участка вытекает, компьютер способен сам её посчитать. Специального тега никто и не придумывал. Но если очень надо, можно указать в теге area=*, только вместо yes - числовое значение.

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

Ну так на столбе, как правило, порода указывается: “ЛКС” - лесные культуры сосны.

Тег taxon, как я понял описание, позволяет указать породу без лишних ботанических заморочек (в отличии от species).
То есть taxon=Pinus или taxon:ru=сосна, вместо species=Pinus sylvestris и species:ru=Сосна обыкновенная

Да, там так и указано, в некоторых местах видел более полно - “ЛК-12 СОСНА”. Насчёт taxon понял, хорошо, что можно так делать, без уточнения вида.