формула

Тегирование универсальных морфодинамических свойств объектов

Да ебись оно все конем. Выкладываю настоящий картографо-философский экзерсис в его первоначальном виде, пришедшем в мой воспаленный мозг после восьми часов беспрерывного прослушивания песни «Крановщик шестой бригады Волопасов Михаил».

Сущность проблемы в невозможности указать особенности формы и поведения объекта на карте иначе, чем через создание избыточной базы тегов. Как разнести на карте участки реки с сильным и слабым течением? Как обозначить кавернозное строение терриконов? Как тегировать степень заброшенности промышленного объекта? Для решения каждой подобной задачи можно создать специальный тег, но гораздо элегантнее рассмотреть универсальные свойства, присущие всем без исключения объектам в силу их материального происхождения. Разработанная схема тегирования таких свойств позволит, в своей части, избежать избыточности классификатора свойств объектов.

Имена значениям не давал (за исключением ключа «форма»), ибо это, равно как и наименования самих тегов, есть момент технический, не обладающий большой важностью для сути экзерсиса.

Ключ Значение Описание
virtuality 1 Реальные объекты, с четкими границами, например, здания
virtuality 2 Реально существующие объекты с неоднородными, размытыми границами провести которые точно невозможно, например, болота
virtuality 3 Объекты, существующие согласно документам, как единое целое, но в реальности имеющие фрагментированную структуру, например некоторые заброшенные дороги
virtuality 4 Объекты, существующие в исключительно в виде документов, но связанные с реально существующими объектами, например, проходящие по рекам административные границы
virtuality 5 Объекты, существующие исключительно в виде документов, никак не связанные с объектами местности, например проектируемая дорога
Ключ Значение Описание
naturalness 1 Объекты, созданные путем кардинальной модификации окружающей среды и эксплуатируемые человеком, например, работающие предприятия
naturalness 2 Объекты, созданные путем кардинальной модификации окружающей среды, но в настоящее время не используемые, что приводит к их возвращению в естественную среду, например, заброшенные населенные пункты
naturalness 3 Объекты, созданные путем значительной модификации окружающей среды, но с сохранением основных природных компонентов, например луга и леса лесохозяйственного значения
naturalness 4 Объекты естественной среды, подвергшиеся заметному человеческому вмешательству, но не используемые в промышленности или лесном/сельском хозяйстве, например, национальные парки
naturalness 5 Объекты естественной среды, не претерпевшие заметного влияния человека, например, заповедники
Ключ Значение Описание
acceleration 1 Объекты, стремительно замедляющие скорость, например реки при впадении в крупный водоем
acceleration 2 Объекты, скорость которых постепенно замедляется
acceleration 3 Неподвижные объекты, либо объекты, передвигающиеся с равномерной скоростью
acceleration 4 Объекты, скорость которых постепенно увеличивается
acceleration 5 Стремительно ускоряющиеся объекты, например, водопады
Ключ Значение Описание
rate 1 Объекты с неизмеримо малыми скоростями, либо неподвижные объекты, например здания
rate 2 Объекты, о движении которых можно сделать ввод только после многодневных наблюдений, например, некоторые ледники
rate 3 Объекты, движение которых заметно только при внимательном рассмотрении или постановке простого опыта, например некоторые реки с очень слабым течением
rate 4 Объекты движение которых заметно с первого взгляда
rate 5 Объекты со стремительным движением, скорость которого может служить отличительным признаком объекта
Ключ Значение Описание
chaotic 1 Объекты с хаотичной динамикой без прослеживаемых закономерностей изменения, например лесные дороги, которые в любой момент могут оказаться непроезжими из-за поваленных деревьев или работы специальной техники
chaotic 2 Объекты динамика которых хаотична, но имеет прослеживаемые в ходе долговременных наблюдений пространственные или временные закономерности, например грунтовые дороги с песчаным покрытием в степной зоне
chaotic 3 Объекты со стабильной и управляемой динамикой, например, водохранилища
chaotic 4 Объекты с управляемой динамикой, изменения на которых происходят в известные сроки, например, ремонтируемые мосты
chaotic 5 Стабильные объекты, не претерпевающие заметные изменения, например здания
Ключ Значение Описание
naming 1 Объекты без собственного имени, для которых указание имени нарицательного нецелесообразно ввиду их редкости либо по иной причине, например, остатки от упавших ступеней космических ракет
naming 2 Объекты без собственного имени, для которых целесообразно указать имя нарицательное, например, ряд вкопанных автомобильных покрышек во дворах или на детских площадках
naming 3 Объекты без собственного имени, для которых однозначно можно выделить имя нарицательное, например, колодцы
naming 4 Объекты с нарицательным именем, собственное имя которых неоднозначно, или недостоверно, например, если получено со слов местных жителей («река Кундрючка«)
naming 5 Объекты имеющие собственное имя
Ключ Значение Описание
decomposition 1 Однородные, чистые по составу объекты
decomposition 2 Однородные объекты с несущественными включениями, не влияющими на свойства объекта
decomposition 3 Объекты с разнородным составом, влияющим на свойства объекта и заметно выраженным главным компонентом
decomposition 4 Объекты с разнородным составом и наличием доминирующей группы из нескольких элементов
decomposition 5 Объекты с разнородным составом, среди которого невозможно выделить доминирующую группу элементов
Ключ Значение Описание
form point Точка — объекты с пренебрежимо малыми размерами
form cloud Облако — группа объектов с пренебрежимо малыми размерами
form line Линия — объект двумя размерами которого можно принебречь
form napkin Салфетка — объект с одним пренебрежимо малым размером и перфорированной структурой
form plane Плоскость — объект с одним пренебрежимо малым размером и цельной структурой
form sponge Губка — кавернозный полноразмерный объект
form volume Объем — цельный полноразмерный объект

P.S. Формула на рисунке не в тему — просто файл этот надоел, вот и решил его куда-нибудь пристроить.

Нечеткое тегирование это просто

В мире есть много сложных вещей: квантовая физика, алгебра кватернионов, теория суперструн, алгоритм включения стиральной машинки, динамика иерархических систем и многое другое. Каждая из них требует долгих лет детального изучения, в ходе которого неизбежны сотни ошибок и невероятных открытий. Это целый океан страстей, нырять в который может лишь лишенный рассудка человек. И если стоит примешивать этот океан к практической повседневной работе, то только в виде тоненького ручейка, вытекающего из под дамбы здравого смысла, что ограничивает океан невероятного безумия от вторжения в серую и тоскливую жизнь.

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

Итак, как говорил Сократ: «Точное логическое определение понятий — условие истинного знания». Тегирование в OpenStreetMap это присвоение набору геоданных некоего смысла и пояснения, которое выражается в виде присвоенного ключа (тега) и его значения. Например, дорога внутри жилых зон обозначается как highway=living_street. Здесь слева от знака равенства в теге прописано отнесение геоданных к классу (класс дорог), а справа дано пояснение (дорога вдоль жилых зон).

Можно ошибочно подумать, что схема тегирования OSM представляет собой примитивный аналог иерархических классификаций, состоящий всего из двух уровней. На самом деле это большое заблуждение, поскольку в верно построенной иерархической классификации два элемента относящиеся к разным надмножествам элементов не могут быть похожи до степени смешения, или говоря более строго, близость элементов различных подмножеств иерархической системы всегда меньше близости содержащих их надмножеств. Практически это выражается в том, что два объекта, относящиеся к разным образцам надклассов не могут быть более близки, чем сами эти надклассы. В OSM такое встречается сплошь и рядом: мой любимый пример natural=wood и landuse=forest. Близкие и часто взаимозаменяемые значения относятся к разным тегам. Такое в иерархической системе невозможно.

Впрочем, в этом нет ничего плохого. Как показывает эмпирический опыт, иерархические классификации подходят для искусственных, либо абстрактных геоданных. Объекты же «чисто конкретные», которые и содержит в себе база OSM в иерархическую систему не укладываются ибо для таких объектов характерен избыточный диатропизм.

Что это значит в переводе на язык бытового жанра? Это значит, что в нотации «ключ»=»значение», знак равенства абсолютно избыточен и выполняет карго-функцию. Это не более чем формализм и ничем необоснованное усложнение нотации. А значит и вся схема тегирования данных проекта OpenStreetMap сводится к присвоению геоданным пояснительного текста, содержащего в себе знак равенства. С таким же успехом можно было подписывать данные в виде «natural_wood», «naturalwood» или просто «wood» (забыл сказать, каждый тег содержит только уникальные значения, а это еще один довод против иерархичности схемы тегирования OSM). Говоря еще проще: никакой схемы тегирования в OSM нет, есть лишь набор странно оформленных подписей для каждого набора геоданных. Если вы сможете переступить через себя настолько, что признаете этот вывод, дальнейшее пояснение будет для вас совсем легким.

Повторюсь: данные OSM не имеют схемы тегирования, это лишь набор геоданных со странно оформленными подписями. но не подумайте, что это недостаток, как раз наоборот, это наиболее сильное преимущество проекта. Проблема в том, что преимущество это используется не до конца. Если-бы каждому объекту был присвоен только один тег, то можно было бы в полной мере говорить о примитивном булевом тегировании, которое безусловно давно устарело. Но тегов можно присвоить огромное количество. Например, не просто указать, что это здание и оно является магазином, но и дополнить информацию о нем часами работы, инженерными параметрами здания и еще чем в голову взбредет. Значит ли это, что объекту можно присвоить любое сочетание тегов (разумеется соответствующее действительности)? Нет. Каждый из тегов, присваиваемых объекту должен однозначно и независимо характеризовать какое-либо из свойств объекта. Есть у улицы свойство в виде ее названия — пожалуйста, тег «name». Есть у той же улицы свойство в виде покрытия дороги — пожалуйста, тег «surface». Для каждого свойства свой тег.

Но вот она, квинтэссенция моей сегодняшней речи. Одно и то-же свойство объекта можно (и нужно) выражать не посредством одного тега, а с помощью любого количества необходимых тегов. Зачем выбирать каким тегом обозначить лес с густым подлеском: natural=wood или natural=scrub, если можно использовать оба этих тега одновременно? А для большей ясности можно присвоить каждому тегу характеристическое значение истинности, от нуля до единицы. Ноль означает, что это свойство отсутствует, единица означает наличие этого свойства (не будем здесь поднимать дискуссию о критерии определений значений характеристических функций нечетких тегов и области значений таких функций). Конечно, придется изменить нотацию, но выглядеть это будет примерно так:
Лес с редким подлеском: wood(0.9),scrub(0.2);
Кустарниковые заросли с редким пологом леса: wood(0.4),scrub(1.0);

Так можно смешивать между собой абсолютно любые теги, что даст осмерам необычайно гибкий инструмент для описания реальной обстановки на местности. Вот несколько реальных примеров:
Юго-Запад Ленинградской области, дорога к базе охотников и рыбаков «Кривая Лука». Пять месяцев назад осмер под ником Sergey Astakhov отрисовал эту дорогу, обозначив ее как highway=track. На большем протяжении так оно и есть, но в паре мест, как бы вам это сказать… в паре мест то, что сейчас иначе кроме как highway=track не назовешь, в системе нечеткого тегирования выглядело бы как track(0.5),water(0.5). Или может вам больше по душе обозначение surface=water?

Другой пример из Кингиссепского района. Нарисованные по космосу тем же осмером дороги являются не чем иным как минерализованными противопожарными полосами и в системе нечеткого тегирования выглядели бы как road(0.2),ditch(1,0),forest(1.0) в том смысле, что это слабо похожая (0.2) на дорогу траншея используемая в лесном хозяйстве:

 

Другой похожий пример из Любанского района. На карте он не обозначен и честно говоря, не уверен, что есть отдельные теги для лесных волоков. Это один из главных недостатков привычной булевой классификации объектов по сравнению с нечетким тегированием. Пока старообрядцы будут выдвигать пропозалы с миллионами новых тегов, новое поколение картографов, владеющих знанием о нечетком тегировании легко опишет любой ранее невиданный объект. Например так: road(0.3),log(1,0),forest(1.0) — подобие дороги (0.3), устланное бревнами для целей лесного хозяйства.DSCN9054

Тут, пожалуй, наступило самое подходящее время, что-бы рассказать о потрясающей конструкции со вложенными нечеткими тегами, которая позволяет описывать реальность еще гибче, проще и правдоподобнее, но увы. Время уже позднее, а мне еще в деревню за трактором идти. Надо же как-то выбираться из этого track(0.3),water(0.7).

Недосягаемый космос

Я настолько стар, что в детстве хотел стать космонавтом. Видимо желание это было так велико, что по инерции меня еще дважды заносило в подмосковный Центр управления полетами, старый советский космический скафандр и тренировочный аквариум Звездного городка. В Звездном городке я на контрольно-пропускном пункте впервые увидел лиственницу и совершенно изумился (ибо в то время я еще не научился как следует охуевать). Хвойное дерево, с мягкими как листья иголками это вам не акация с гледичкой. На тот момент, я уже принял решение, что космос может обойтись без меня, а вот таежные леса нет. Я так и записал в блокноте: «буду лесником», после чего перечитал в поселковой библиотеке все что имело отношение к лесу и лесному хозяйству.

В одну из зим, меня вместе с поземкой занесло за ворота конторы военного лесхоза. Это на специальность инженера лесного хозяйства я поступал обуреваемый мощным романтическим порывом. Сюда же пришел в полной убежденности, что настолько испорчен тлетворным влиянием института, что терять мне больше нечего и наконец-таки можно приступить к исполнению детских мечт. Так я получил два комплекта формы, петлицы с просветом без звездочек, юфтевые сапоги и красное удостоверение в котором между графой «выдано оружие…» и графой «наименование учреждения» стояла запись «Лесник (инспектор по охране леса»). Вскоре после этого я вывалился по пьянке из окна общежития и окончательно переселился в контору лесничества.

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

Хорошо, что зима не длится вечно. Я был самый трезвый из кочегаров и все-равно пил так, что написал монографию, философский трактат, программу на С++ для ввода и анализа геоботанических данных и обошел в Морровинде вокруг Красной горы. Фактически, вся теория живых систем, методы расчета важности информации, понимание красоты как строгой (в математическом смысле) функции системы и диатропический подход к классификации объектов возникли во время безделья между подброской в печь дров и угля.

Даже сейчас, по прошествии лет, я нет-нет, да и задумаюсь, наливая стакан, о том, что иерархические классификации гораздо менее применимы, нежели диатропические. Особенно это касается естественных объектов, где провести уровенное деление далеко не всегда представляется возможным. Возьмем, к примеру картографию, как наиболее наглядную и прикладную дисциплину. При построении легенды мы прежде должны разработать подходящуюю классификацию объектов на карте. Сделать это можно разными способами, исходя из целей построения карты. Например, можно создать класс дорог и класс территорий и мы получим типичную дорожную карту. Можно, наоборот, все дороги свести к одному типу и включить его в каждый из классов территории — в этом случае мы получим карту землепользования. Для простых схем и примеров это работает просто и понятно.

Но даже небольшое усложнение картируемой территории приводит к неразрешимым проблемам. Мы вынуждены либо отбрасывать информацию, упрощая содержание карты, либо постоянно создавать новые типы и классы объектов. Рано или поздно схема неизбежно запутывается.

Мы наносим на карту родники. Это тип объекта, который, казалось-бы, прост и понятен. Но только до тех пор, пока не будет найден первый каптированный источник. Сразу родники становятся классом, содержащим два типа объектов: родники обустроенные и просто выходы вод. Что такое каптированный родник? Обычно это просто врезанная в землю труба, иногда достаточно большой длины, по которой родниковая вода течет цивилизовано. А теперь представьте, что нам, кроме родников, необходимо обозначить еще и трубопроводную сеть. Мы также представляем ее как класс, содержащий разные типы: система орошения, система канализации, и, черт возьми, сюда может попасть и наша труба, выводящая родниковые воды.

Что произошло? Два класса, абсолютно разные во всем, содержат в себе один и тот же тип объекта. В нормальной иерархической классификации такое абсолютно невозможно. У нас, вместо иерархии образуется сеть из типов объектов, в которых классы всего-лишь представляют собой группы типов с определенным набором признаков. Иерархия пропадает, возникает диатропизм. В ботанике и зоологии та же хрень описана еще палеоботаником С.В. Мейеном и его учеником Ю.В. Чайковским (смотри лучшее чтиво 1990-го года: «Элементы эволюционной диатропики»).

Нет такой классификации объектов, которая будучи иерархической была бы эффективной для работы с глобальной базой геоданных. Сложность иерархических классификаций обратно пропорциональна количеству классов низшего уровня. На большом количестве объектов это особенно заметно — красивая иерархия превращается в беспорядочную сеть, вынуждая нас в конечном итоге подбирать высшие классы исходя из типа объекта, вместо того, что-бы определять тип, исходя из высшего класса.

Мы рисуем контур конкретного объекта с редкостоящими дервьями, после чего решаем: отнести его к лесу, скверу или вообще к газону? Мы рисуем линию и решаем: отнести ее к ручью или ограждению (ров вокруг замка это ограждение или водоем?). Мы рисуем точку и думаем, обозначать ли этот канализационный люк как преграда на дороге, если с него раз в два месяца какие-то пидарасы снимают крышку? Возьмите OSM-мовские natural=wood и landuse=forest. Всегда ли легко установить разницу, особенно если речь идет о стране в которой лесное хозяйство официально отменено с 2007 года? А ведь это разные классы, объекты в них должны быть отличимы между собой как тротуар и ручей. Но что делать, если по тротуару уже второй год течет ручей водопроводного порыва, не мешая гулять пешеходам? Что это за объект-то такой?

Кстати, в России landuse=forest и при действующем лесном хозяйстве нельзя было трактовать однозначно. Например северные гористые леса, принадлежащие лесхозу, который ввиду бессмысленности или отсутствия дорог не проводил там хозяйственные мероприятия.

Примитивная классификация данных OpenStreetMap позволяет отображать на карте огромное количество нюансов. Новый объект? — не вопрос, вот новое значение тега. Что-то совсем странное? — не вопрос, вот новый тег. Выбери в свое время Кост многоуровневую классификацию, мы получили бы сейчас головную боль в виде действия закона Ципфа: имели бы пять-шесть верхних классов, включающих 80-90 процентов всех объектов и овердохуя классов, содержащих по одному-два объекта. А в таком виде, классификация OSM сродни низкоуровневому языку или безработному без долгов: постоянно требуется вникать во множество деталей, зато никаких ограничений для творчества.

Лучше нынешней классификации OSM может быть только полный отказ от иерархии. Объединяем существующие теги и их значения в единые свойства и указываем наличие этих свойств у любого объекта. А поскольку свойства выражены в разной степени, добавляем значение истинности. Так для густого леса, вместо natural=wood мы получаем naturalwood=0.9, а для редкостойного, вместо natural=wood мы получаем naturalwood=0.3.

— Эй, бля! С твоей классификацией, мы получим таких монстров, что хер кто их распознает! Вот что это например за хуйня такая:  natural_wood=0.3, natural_scrub=0.2, natural_wetland=0.2, highway_construction=0.5,  highway_path=0.9,  barrier_ditch=1.0, landuse_construction=0.5, landuse_fill=0.7?

— Никакая это не хуйня. Это коммунальщики в девяностых на Нежданке разрыли по весне дорогу, заткнули дыру чопиком, засыпали и зачем-то понавтыкали в землю наломанных тополевых веток (может место так пометили). Естественно, чопик со временем себя изжил, а ветки проросли, да так, что когда приехали на это место в следующий раз выдернуть их никто не смог. Зато прокопали траншею для того что-бы подобравшись к трубе вставить новый чопик. После этого уехали и похоже что навсегда. А там теперь дорога, упирающаяся в тополевник с кустами (кусты уже сами выросли), рвом, тропинкой и постоянно подтопленной мусорной свалкой. А теперь идите и изобразите это в легенде с помощью стандартной иерархической классификации.

Я тут не буду намекать о том, что допуск отображения значения тегов через другие теги дает вообще космические возможности. Например, этот же объект можно в упрощенном виде записать как barrier: {natural_wood=0.3, natural_wetland=0.2, barrier_ditch=1.0}. Хотите увековечить на карте топиарное искусство? -говно вопрос: historic_memorial:{natural_scrub=1.0}. Обратите внимание, что в данном случае, natural_scrub относится именно к памятнику, то есть является его неотделимой частью. Если бы мы хотели обозначить могилу в кустах, то поступили бы по другому: historic_memorial=1.0, natural_scrub=0.4.

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

 

Нечеткий пацанчик

В труды Лотфри Заде я влюбился с первого прочтения и до сегодняшнего дня любовь эта не только не угасла, но даже окрепла, подведя меня к открытию субъективной логики. Говоря о безмерности такой страсти, достаточно хотя-бы вспомнить историю того утра, которое я провел в компании со свежеприбывшим в часть азером, застав его в армейском толчке с гашишем вместо тряпки. Его родители и предположить не могли, что выбрав имя знаменитого математика, они оберегли сына от хорошей пиздюлины на фоне журчащих чаш Генуя. Судя по тому, как он прожигал дырку в бутылке из под «фанты», проблема здоровья его совершенно не интересовала. Я отобрал у этого идиота бутылку и раскуривались мы с ним через нормальную полторашку отечественного уставного лимонада «Дюшес».

С тех пор я постоянно вижу возможности эффективного применения аппарата фаззи-логики как в научных, так и в сугубо прикладных задачах. Ведь только глупец не замечает того, что показатель неэвклидовой размерности в сложных системах есть не что иное, как значение характеристической функции истинности. Это столь же очевидно, как и то, что пиво выпитое до выдоха после первой затяжки индифферирует ваши ощущения социальной несправедливости и классовой неполноценности.

Простой пример. В процессе классификации растительности теряется часть информации о классифицируемых объектах (их «индивидуальные особенности») [5]. Это приводит либо к недоиспользованию, либо к перерасходу ресурсов окружающей среды и производства.

Вот было бы заебато, усовершенствовать имеющуюся типологию лесов Северо-Западных районов России [5], для возможности учета индивидуальных особенностей растительного покрова! Такая типология была-бы актуальной при проектировании объектов строительства, сельского и лесного хозяйства.

Говно-вопрос! Для этого только требуется современную типологию [5] перестроить на основе теории нечетких множеств [1].

Классификации лесной растительности, использующие теорию нечетких множеств неизвестны. Аналогом нечеткой классификация в лесной таксации можно считать метод характеристики состава древостоя (Чистые насаждения – классы, коэффициенты в формуле состава древостоя – значения характеристических функций, определяющих степень приближенности к каждому классу). Теоретические аспекты нечетких классификаций рассматриваются в [2].

Я, например, когда покупал в полуторалитровых бутылках портвейн «Агдам» (такие бутылки с углублением для руки) всегда представлял себе двухуровневую типологию. Наименьшая единица – тип леса, выделяется аналогично [5] (на основе преобладающей породы и серии типов леса). Серии типов леса (далее – «серии») выделяются на основе обилия групп индикаторных видов [5]. Для каждой серии характерна индикаторная группа с уникальным набором видов. Растительное сообщество может одновременно относиться к одной (истинной) серии или нескольким (переходным) сериям. Истинная серия характеризуется присутствием только одной индикаторной группы с суммарным проективным покрытием травяно-кустарничкового и мохово-лишайникового яруса 100 %. Показатель истинности серии рассчитывается как мера количественного сходства (коэффициент Чекановского, Эвклидово расстояние и др. [4]) между рассматриваемым растительным сообществом и истинной серией типа леса.

Да что там говорить, я даже серии типов леса выделил:

1. Лишайниковая (ЛШ). Основные индикаторные виды: Arctostaphylos uva-ursi, Carex ericetorum, Cladonia amaurocraea, Cladonia unicalis, Cladina arbuscula, Cladina rangiferina, Cladina stellaris, Cetraria islandica, Licopodium complanatum. Вспомогательные индикаторные виды: Polytrichum juniperinum, Polytrichum piliferum;

2. Кустарничковая (КТ). Основные индикаторные виды: Vaccinium myrtillus, Vaccinium vitis-idaea. Вспомогательные индикаторные виды: Melampyrum pratense;

3. Мелкотравная (МТР). Основные индикаторные виды: Majanthemum bifolium, Trienthalis europaea, Rubus saxatilis, Luzula pilosa, Oxalis acetosella, Pteridium aquilinum. Вспомогательные индикаторные виды: Dryoptheris carthusiana, Linnaea borealis, Melampyrum sylvaticum, Orthilia secunda, Lycopodium annotinum, Platanthera bifolia;

4. Неморальная (НЕМ). Основные индикаторные виды: Melica nutans, Viola riviniana, Carex digitata, Pyrola rotundifolia, Paris quadrifolia, Aegopodium podagraria, Pulmonaria obscura, Stellaria holostea, Actaea spicata, Lathyrus vernus. Вспомогательные индикаторные виды: Veronica officinalis, Veronica chamaedrys, Milium effusum, Dryoptheris filix-mas, Anemone nemorosa, Hepatica nobilis, Galeobdolon luteum, Rhodobryum roseum, Ranunculus cassubicus, Asarum europaeum, Viola mirabilis, Myosotis sylvatica, Galium odoratum;

5. Сфагновая (СФ). Основные индикаторные виды: Carex globularis, Sphagnum girgensohnii, Sphagnum capilifolium, Polytrichum commune, Sphagnum magellanicum. Вспомогательные индикаторные виды: Rubus chamaemorus, Molinia coerulea, Aulacomnium palustre, Sphagnum wulfianum;

6. Багульниковая (БАГ). Основные индикаторные виды: Ledum palustre, Chamaedaphne calyculata, Vaccinium uliginosum, Oxycoccus palustris, Andromeda polifolia, Eriophorum vaginatum, Empetrum nigrum, Drosera rotundifolia, Oxycoccus microcarpus, Sphagnum fuscum. Вспомогательные индикаторные виды: Sphagnum angustifolium, Carex pauciflora, Carex limosa, Betula nana;

7. Долгомошная (ДОЛ). Основные индикаторные виды: Pleurozium schreberi, Hylocomium splendens, Dicranum scoparium, Dicranum majus, Dicranum polysetum;

8. Болотнотравяная (БТР). Основные индикаторные виды: Comarum palustre, Menyanthes trifoliate, Equisetum fluviatile, Carex lasiocarpa, Phragmites australis, Calla palustris. Вспомогательные индикаторные виды: Carex rhynchophysa, Scirpus sylvaticus, Solanum dulcamara, Carex vesicaria, Naumburgia thyrsiflora, Equisetum palustre, Carex acuta, Eriophorum polystachyon, Sphagnum riparium

9. Таволжная (ТАВ). Основные индикаторные виды: Filipendula ulmaria, Geum rivale, Ranunculus repens, Galium palustre, Viola epipsila, Cirsium oleraceum. Вспомогательные индикаторные виды: Caltha palustris, Carex cespitosa, Scutellaria galericulata, Cardamine amara, Impatiens noli-tangere, Chrysosplenium alternifolium, Equisetum pratense, Calliergon cordifolium, Plagiomnium undulatum;

10. Приручейная (ПР). Основные индикаторные виды: Athyrium filix-femina, Dryopteris expansa, Deschampsia cespitosa, Rubus-idaeus, Gymnocarpium dryopteris, Plagiochila major. Вспомогательные индикаторные виды: Phegopteris connectilis, Cirsium heterophyllum, Crepis paludosa, Circaea alpine, Aconitum septentrionale, Plagiomnium medium, Sphagnum squarrosum.

Что у нас тут? Брусничная серия говорите, согласно [5]? А это что? Ах, это тоже брусничная? А это? Позвольте, сударь, может мы прекратим отметать явные различия в увиденном и согласимся с тем, что наша прогулка проходит по кустарничково-лишайниковому типу КТx ЛШy, где x и y просто принимают различные значения?

Нечеткая классификация более достоверно описывает условия произрастания. Так при сравнении серий типов леса и ценозов в координатной системе, где оси означают богатство и влажность (рисунок) видно, что большинство растительных сообществ, которые по старой классификации относятся к «чистым» (лишайниковая, таволжная) на самом деле являются переходными. Ординация произведена по методу [3]. Проективное покрытие основных индикаторных видов принималось больше 8%, вспомогательных – единично.

ramensk
Рисунок. Четкие [5] (серый цвет) и нечеткие серии типов леса соординированные по влажности и богатству почвы.

 

Использование нечеткой типологии дает нехуевые преимущества:

1. Возможность более точного определения и планирования объема необходимых работ.

2. Допустимость менее детального обследования территории, поскольку существует возможность обоснованной интерполяции данных.

3. Возможность более обоснованного утверждения границ проектных решений.

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

— Говно это, а не типология, прокомментировал мой доклад известный геоботаник В.И. Василевич. Он, конечно, человек интеллигентный, выразился мягче, но я сразу понял, что разработал действительно хорошую типологию.

Или вот вам, другой пример. Потребовалось однажды нитку ЛЭП вести через ООПТ [6]. А тогда все дико задрачивались на лобарию пульмонарию и мирику гале. Но восковник в месте проектирования не растет, а вот лишай надо было оберегать всеми силами. Да и кроме него хватало видов, которые требовалось охранить. Нужна была карта на которой сразу бы читался породный состав во всем его многообразии, полнота древостоя, да еще, что-бы карту эту можно было как подложку использовать. Так, что-бы человек смотря на карту сказал, что в этой точке лес гуще и елки больше. Не в абсолютных показателях, их можно и из таксации посмотреть, а именно относительно прилегающих участков.

При такой задаче, обычным планом лесонасаждений можно только жопу подтереть.

четкая

 

И никакие ГИСы (а в то время был только старый добрый ArcView 3.2a) вам не помогут решить эту задачу, пока вы не откроете свое сердце фаззи-множествам и не смиритесь с мыслью о том, что четкость элементов карты может быть не только достоинством, но и недостатком.

Я даже больше скажу: булевы классификации допустимы лишь для качественно различимых объектов. Примение дискретного деления для количественно разнородных объектов в областях, связанных с эксплуатацией природных ресурсов есть экономическое и экологическое преступление. Картограф, проводящий линию обязан нести ответственность не меньшую, чем врач делающий надрез. В следующий раз, когда будете четырьмя точками озеро обклацивать, представьте, что так-же хирург будет вашу опухоль вырезать.

Но все-что связано с природными ресурсами у нас не логично, а упраздненное в 2007 году лесное хозяйство и вовсе парадоксально. У нас квартала квадратные, а выдела имеют форму животных из ЛСД-шного наркотрипа, в то время как должно быть совершенно наоборот! Просто почувствуйте масштабы пиздеца. В сельском хозяйстве, где все на порядок проще, сходные вопросы поднимал, если не ошибаюсь, академик Виноградов, но один хрен за пределы опытных полей Новочеркасского НИИ виноградорства ничего не сдвинулось.

Так что-же делать? Все? Пиздец? Спокойно, товарищи! Это как плавание: для начала перестаньте бояться воды. В нашем случае, перестаньте бояться того, что вы не сможете, указав на карте точку, озвучить абсолютное значение показателя в этой точке. Оно вам нахуй не надо: важно знать, что в этой точке показатель больше чем в соседней. Распределяем цвета по породам, согласно правилам оформления лесотаксационных документов, далее создадим отдельные слои по каждой породе, установив для каждого выдела прозрачность, пропорциональную четверти полноты древостоя в этом выделе. Если распечатать каждый из слоев, получится карта полноты ельников, карта полноты сосняков и т.д. А теперь магия — наложим слои друг на друга.

нечеткая

 

Согласен, выглядит непривычно. Чем ярче цвет — тем гуще лес. Чем чище цвет — тем однороднее состав. Конечно, это только условно нечеткая карта — что поделать, исходные данные накладывают известные ограничения. Сама карта тоже явно требует доработки стиля, однако стоит ли требовать игру актеров от фильма «Прибытие поезда на вокзал Ла-Сьота»?

— Говно это, а не карта, прокомментировал мое творение друг и по совместительству известный в узких кругах геолог. Он, конечно, человек интеллигентный, выразился жестче, но я сразу понял, что разработал действительно хорошую карту.

Жаль только за время жизненных пертурбаций оригинал этой карты исчез, оставив после себя только свою уменьшенную копию:

fuzzymap

 

А парня того, говорят, через пол-года менты в увольнении взяли с целым пакетом травы. И ничего, подержали пару часов и отпустили. Видимо в школах милиции тоже изучают нечеткие множества.

 

Литература:

1. Заде Л. Понятие лингвистической переменной и его применение к принятию приближенных решений / Пер. с англ.— М.: Мир, 1976.— 167 с.;

2. Нечеткие множества и теория возможностей. Последние достижения: Пер. с англ. / Под ред. Р.Р. Ягера. – М.: Радио и связь, 1986, — 408 с.;

3. Раменский Л.Г., Цаценкин И.А., Чижиков О.Н., Антипин Н.А. Экологическая оценка кормовых угодий по растительному покрову – М.: Государственное издательство сельскохозяйственной литературы, 1956, 472 с.;

4. Словарь понятий и терминов современной фитоценологии / Б.М. Миркин, Г.С. Розенберг, Л.Г. Наумова. – М.: Наука, 1989. – 223 с.;

5. Федорчук В.Н., Нешатаев В.Ю., Кузнецова М.Л. Лесные экосистемы северо-западных районов России: Типология, динамика, хозяйственные особенности. – С.-Пб., 2005. 382 с.

6. Материалы комплексного экологического обследования участков территории, обосновывающие внесение изменений в положение о природном комплексном заказнике регионального значения «Лисинский». — С.-Пб., 2011. 159 с.

Пространные размышления об идентификаторах, времени и базах геоданных с нечеткими тегами

Случилось так, что у меня выпало немного свободного времени, а в детстве я не наигрался в конструктор. В результате на свет появилось нечто похожее на картографический фреймворк, о котором я писал в предыдущем посте и несколько мыслей о данных OpenStreetMap. Мысли я хотел-было изложить на Хабре, но излагаю их тут. Во-первых, мне чрезвычайно по душе атмосфера конструктивной анархии, а во-вторых, я не дописал раздел про типы данных. О линиях как редуцированных полигонах я напишу как-нибудь в другой раз, а пока речь пойдет о точках и отношениях.

С чего все началось
Прошлым летом для рабочих нужд мне потребовался веб-сервис, позволяющий быстро отображать на карте большие массивы точечных данных. Поколдовав несколько часов над кодом, я скрестил между собой библиотеку leaflet.js и простой картографический движок LionWiki. На вики-страницах данные хранились в geojson-формате, легко поддавались правке и дополнению. Для дела этого было достаточно, но хотелось большего.

Прежде всего, совершенно не устраивал формат данных. geojson-формат простой, но хотелось сделать его еще проще. В результате я написал скрипт, позволяющий хранить в вики данные в формате [‘1′,’2′,’3′,’4′,’5′,’…’,], а сам geojson формировать и подгружать в leaflet программно. При таком формате требуется фиксированное положение данных о широте и долготе, например [‘lat’,’long’,’3′,’4′,’5′,’…’,] или [‘id’,’lat’,’long’,’3′,’4′,’5′,’…’,]. Последний вариант с id выглядел более привычным для человека, работающего с данными OSM. Но этот-же вариант заставил крепко задуматься, а нужен ли вообще идентификатор точки?

Паспортный контроль
Самое большое число в мире, вопреки известному анекдоту, получится если склеить в одну строку номера всех выданных за жизнь документов, начиная от свидетельства о рождении и заканчивая свидетельством о смерти. Я никогда не понимал, зачем нужен номер паспорта (будто у меня много полных тезок, которые родились в том же городе, в тот же день и получили паспорт в то же время в том же отделении). А уж зачем нужен номер точки с географическими координатами тем более непонятно. «Но ведь координаты могут быть изменены!» — скажете вы. Согласен. Но мы пришли с вами не к противоречию, а к осознанию двух подходов к кодированию пространственных данных. По аналогии их можно назвать объектоцентрическим и геоцентрическим. Каждый элемент массива геоданных соответствует в первом случае объекту картирования, а во-втором случае месту на поверхности Земли. В первом случае у точки могут измениться координаты, но всегда присутствует атрибут, позволяющий идентифицировать эту точку. Во-втором случае, обязательного атрибута может не быть, его роль выполняют координаты. Перемещение объекта в пространстве можно рассматривать как удаление атрибутов у прежней точки и добавление атрибутов новой точке.

Число объектов в геоцентрической базе геоданных конечно и зависит от выбранной точности измерения координат. Скажем, при измерении координат с точностью до одной стотысячной градуса, заполненная база геоданных будет содержать в себе примерно шесть с половиной квинтиллионов объектов. В объектоцентрической базе такого предела нет — если не внедрять такой типично геоцентрический тип данных как отношение, число объектов может расти бесконечно. Кстати, вот вам и предел развития современной базы OpenStreetMap: 6,48 × 10¹⁸ отношений. Это примерно четверть от количества всех атомов в наблюдаемой Вселенной, так что если вы никогда не редактировали карту OpenStreetMap — советую поспешить, пока еще есть возможность.

Вспышка слева
Давайте начистоту: начиная со школьных уроков географии нам бесстыдно врали в глаза, заявляя, что точки на карте это абстракция объектов реального пространства спроецированная на плоскость. На самом деле точки на карте — это абстракция объектов проекции реального пространства на объем, спроецированная на плоскость. И уж если мы говорили выше о конечности наполнения базы геоданных, то вопиющей наглостью было бы не уточнить, что речь шла о данных лишенных временной координаты. Или, если хотите о производных функций максимальной скорости наполнения баз геоданных.

Ежедневно из базы OSM картографы удаляют огромное количество объектов, нанесенных правильно, но не актуально. Возле моего дома долгое время была автозаправка проставленная на карте. Однажды автозаправки не стало и я удалил с карты точку. Но едва JOSM высветил мне окошко успешности сохранения правок, я понял, что сделал что-то не так. Влечет ли необходимость поддержания базы геоданных в актуальном состоянии автоматическое удаление данных, потерявших актуальность? Конечно же нет. Сейчас точки OpenStreetMap напоминают рыбацкие поплавки: они все на одном уровне, но из глубины к каждому из них тянется леска разной длины. Только в одном случае леска непрерывная (круглосуточные магазины), а в другом штриховая (магазины с ограниченным временем работы).

Понятие актуальности неприменимо к таким данным как OSM. Актуальность — есть соответствие данных реальности в определенный промежуток времени. Но поскольку такой промежуток правилами сообщества не установлен с формальной точки зрения уместно как наносить корчмы пятнадцатого века (если «срок актуальности» измеряется тысячелетиями), так и удалять закрытые на ночь киоски. Только не воспринимайте это как призыв к действию.

«Режим работы», а вернее «режим существования» не только присущ всем пространственным объектам, но и является такой-же неотъемлемой характеристикой как широта, долгота и высота.

Слабозаросшая обочина дороги
Система «ключ-значение» безусловно создана в лучших традициях Карла Линнея. Но и недостатки ей присущи ровно те-же самые. Таксономия данных OpenStreetMap почти полностью исключает возможность существования объектов переходного типа. Особенно это касается природных объектов, для которых дискретность вообще достаточно условное явление. Например, промежуточный тип покрытия между surface=ground и surface=grass худо-бедно можно указать (поставив оба значения), но вот дальнейшее деление возможно только с помощью добавления новых значений. Это типичная проблема классификаций, основанных на булевой логике: будучи примененной к естественным объектам, такая классификация непременно либо слишком груба, либо излишне подробна.

А не присовокупить ли к паре «ключ+значение» значение истинности, характерное для нечеткой логики? Тогда едва заросшая травой поверхность дороги будет обозначаться «surface=grass=0.1», а заросли травы, под которыми дорога едва проглядывается будут иметь обозначение «surface=grass=0.9». Нотация, конечно может быть и другой, важнее то, что такой подход позволяет нам наносить на карту объекты, относящиеся одновременно к двум и более классам.
Слабозаросшая обочина дороги
Дабы финализировать сей трактат, продемонстрирую вам образец данных в формате feeneek:

['tipe','lat','long','height','time','author','license','link','note','data1',],
['tipe','lat','long','height','time','author','license','link','note','data2',],
['tipe','lat','long','height','time','author','license','link','note','data3',],
['tipe','lat','long','height','time','author','license','link','note','data4',],
...,...

tipe — тип данных;
lat — широта;
long — долгота;
height — высота или уровень (в зависимости от применения);
time — время в формате: 66666620160323220305 (2016 год, февраль, 23-е число, 22:03, 05 секунд);
author — автор;
license — лицензия данных;
link — ссылка на внешний документ;
note — комментарий к точке;
datax — атрибутивная информация.

Правильный ли этот формат? — нет, не правильный. Хорош ли он? — нет, он плох. Но у него есть одно преимущество: для того, что-бы завершить эту статью он вполне годится.