chnav, не услышал ваших соображений, как будем тегировать древесный полог из двух ярусов. Типичный пример - старая вырубка с оставленным на корню тонкомером (wood:age=middle), возобновившаяся молодым поколением леса (wood:age=young). Тут wood’а сразу два и не получится затегировать как, например, редкий лес с кустами - wood:= + scrub:=.
Продолжу про многоярусные ландшафты.
Даже если natural=scrub + scrub:= + wood:=, мне всё равно не хватает “титульного” тега для второстепенного яруса. Тег с неймспейсом - он же только уточняющий.
Я выше предлагал ввести vegetation[1-9]=* + vegetation[1-9]:=. Нет. Это будет уже четвёртый (или какой уже?) способ затегировать лес.
Лучше использовать вместо vegetation уже имеющийся landcover. Хотя мне не очень нравится, что в нем грунты, горные породы и воды, ну да ладно, вроде не проблема. Никто же не будет приписывать растительные теги камням.
Но вот со степенью покрытия получается ерунда: landcover:cover=open “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 можно обмануть, просто поменяв очерёдность участников у одного из отношений. Но я подумал тогда, раз ругается, значит так маппить не нужно.
Принципиальных ограничений на множество relation у одного outer нету. Джосм ругается потому что такое получается обычно по ошибке - выделил контур и два раза нажал на комбинацию создания отношения, получились два отношения с общим контуром.
Помнится Зверик озвучивал предложение вообще все теги перенести на отношения
Еще помнится это один из вариантов тегирования дома с двумя адресами - создается два отношения, каждое со своей адресацией.
Это частный случай, вы почитайте последние пару страниц.
Мы обсуждаем проблему, когда есть два яруса natural=wood (разного возраста, например) и простыми словесными манипуляциями их не разделить.
Хотел бы попросить по возможности сделать какую-нибудь картинку в “лесном” пресете в отношении завала на лесной дороге: barrier=log, можно по аналогии с картой для Garmin
Экспериментальный пресет, переделанный под новые варианты тегов (обсуждаемых на паре последних страниц), ссылка на Яндекс.Диск: https://yadi.sk/d/86r5ApTA3NLHqC
Теги, разумеется, не окончательные. На гитхаб пока заливать не тороплюсь. И там надо придумать, как сделать так, чтобы в josm читались иконки прямо из архива, скачанного с гитхаба.
Спасибо за заготовку! Сразу возник вопрос: есть делянка, на которой посажены сосны. Как указать культуру, если я её точно знаю? И площадь посадки тоже как можно указать?
Есть тег species, наверно подойдёт для указания культивируемой породы.
С необходимостью указывать площадь объекта не сталкивался. Вроде ж она из геометрии участка вытекает, компьютер способен сам её посчитать. Специального тега никто и не придумывал. Но если очень надо, можно указать в теге area=*, только вместо yes - числовое значение.