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

Но ведь есть же process.lua где можно переделать теги как душе угодно.

Я не использую osm2pgsql, но это не главное. Я долго возился с тегами, в т.ч. wood:damage. И так, и сяк. С остальными wood:* никаких проблем, всё логично, но тут небольшой косячок. Есть повод задуматься, обсудить, устранить противоречия.

Поддерживаю. Давно надо было что-то сделать с этим.

Находки в копилку лесных тегов, присутствуют в taginfo

(1) planted= - примерная дата высадки, ИМО при наличии такого тега wood:origin подразумевается planted=yes
(2) burnt= - примерное время пожаров, совместно с уровнем пожара можно прогнозировать что там сейчас рендерить - гарь, поросль или нормальный лес (естественно при наличии natural=wood);
(3) landuse=plant_nursery + (plant=tree | trees=*) - питомники

Извиняюсь, я неправильно истолковал термин thicket, оказалось по-нашему это “заросли”, относится как к поросли, так и молоденьким деревьям. (Пример: What Can You Do with Dense Thickets of Hardwood Saplings?)
Это ближе к плотности, а не высоте или возрасту, очевидно не то что я имел в виду.

Почитал ещё англоязычную литературу, нашел такой документ с хорошими комментариями и сравнение разных классификаций, у них там тоже каша (есть даже Climax Recognition )).
Vegetation Stages White Paper - US Forest Service

ИМО исходя из этого документа и тех, что были продемонстрированы ранее в теме, к стадиям формирования растительного покрова ближе эти термины (в скобках - теги русской терминологии, совпадающие по описанию http://wiki.openstreetmap.org/wiki/RU:Key:wood))

  1. Поросль, саженцы < 3-4m → seedling (у нас natural=scrub, а по описанию и wood:age=very_young)
    2a. Поросль, молодые деревца < 10m → sapling (у нас wood:age=young)

2b. Молодой лес, ещё не начал прореживаться → pole (у нас wood:age=young)
3. Оформившиеся деревья, начинает формироваться подлесок → young (у нас wood:age=middle)
4. mature (у нас wood:age=adult)
5. old-growth (у нас wood:age=old)

Меня больше всего интересовал п.п. 1 и 2а, буду ориентироваться на термины seedling и sapling

Очевидно что некоторые стадии формирования леса в англоязычной и русской терминологиях не совпадают - то что у нас средневозрастной лес у них young.

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

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

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 добавил в него же.