Мапник в Икее

Икеевский Мапник

Иду сегодня по Икее, никого не беспокою. Разглядываю утомительные пейзажи благоустроенного быта, снабженные этикетками на невнятном языке. Вот Юпперлиг, Хемнэс. Тут Свартосэн, Линдвед, Мапник, а это Мюкен… Так, стоп! Какой, нахуй, Мапник? Подошел поближе — точно Мапник:

Да не простой, а олдскульный, розлива середины двухтысячных годов. Сейчас про него уже никто не помнит. Я сам не сразу сообразил: открыл дома OpenStreetMap, а картинка совсем иная:
OSM style

Хорошо, что в моих коллекциях есть чемоданчик осмера, в котором я сохранил ссылку на проект OSM Then And Now, созданный для демонстрации изменений в OSM c 2007 года. Сходство с Икеевской картиной Пьёттерид не идентичное, но ощутимое:
сравнение картостилей

Над Пьёттеридом висит более дорогой триптих Бьёрнамо, в котором тоже усматривается сходство с OSM-овским стилем, только уже современным. Особенно это видно, если уменьшить насыщенность OSM Mapnik на 35-40 процентов:
Бьёрнамо против OSM

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

Но людям нравится.

Посконная топонимика на карте OpenStreetMap

С главным правилом картографического дизайна меня познакомил преподаватель из академии. Мы тяпнули по пятьдесят, закусили, после чего он глубокомысленно изрек: «Если объект на карте напоминает член или жопу — его следует отобразить так, что-бы это не привлекало внимание». Например, наложить поверх надпись. Но что делать, если сама топонимика такова, что шишка Роскомнадзора встает и начинает малафитить все подряд? Например, в Тосненском районе Ленинградской области есть ручей «Пиздинский», который на генштабовских картах стыдливо обозначен как «Пизинский».

Более того, если обратиться к сборнику «А Се грехи злые, смертные…» любовь, эротика и сексуальная этика в доиндустриальной России Х — первая половина XIX века», что вышел в Институте этнологии и антропологии им Н.Н.Миклухо-Маклая РАН (1999 год — о было время!), можно найти прелюбопытнейшую статью Владимира Дмитриевича Назарова («Срамословие в топонимике России XV — XVI веков»), который утверждает, что на тот период каждый тысячный топоним был образован от матерного корня. И где теперь все эти речки Блядея, Еботенка, Пиздюрка, Наебуха и Ненаебуха, местечки Хуярово, Пезделёво-Долгое, деревни Пезделка, Пиздюрино, Хуйково, Ебехово, Поиблица, Мудищево и овраг Блядейский отвершек? Не может быть, что-бы ничего подобного не сохранилось до настоящего времени.

Понятно, что коммерческие картографы никогда не разместят на карте такие подписи. Потому что они ссылаются на документы, а чиновники, которые их составляют ссутся от малейшей возможности вдохнуть жизнь в результат своей работы. В результате мы имеем поселок Гавриловский в городе Шахты, который в действительности называется Пьяная Балка, причем этот топоним возник еще во времена Грушевского горного поселения, но по сей день живет, здравствует и никуда исчезать не собирается.

Другое дело, OpenStreetMap. Здесь тоже есть известные ограничения, но в отличие от остальных наборов геоданных, OSM должен быть просто кладезем посконной топонимики. А что же мы видим в реальности?

Хуй (точнее Hue) — деревня во Вьетнаме:
хуй во Вьетнаме

Как так? Ни одного топонима в России. И это при том, что родственным ему топонимом «Хвойное» (согласно работе Г. Ф. Ковалева «Русский мат — следствие уничтожения табу», опубликованной в сборнике «Культурные табу и их влияние на результат коммуникации. — Воронеж, 2005» на страницах 184-197) обладают около десятка населенных пунктов.

А что с остальными словами? Лет пятнадцать назад, я услышал прелюбопытнейшую версию значения слова «пизда», которая гласила, что сие есть «углубление на местности из которого течет вода». Спустя годы в Румынии неожиданно обнаружилось подтверждение. Пизда — родник у дороги в город Пояна Бленки:
пизда

Обсценный аналог копуляции в русской топонимике OpenStreetMap не представлен. Но если мы введем в поиск «Ебать», а еще лучше «Ebat», то получим множество топонимов во Франции, Эфиопии, Камеруне и Нигерии. Кстати, камерунский Ebat не отрисован от слова вообще. Займусь им после того как закончу с мадагаскарской деревенькой на реке Онилахи:
Ебат в Камеруне

Еще больше топонимов можно найти по созвучию со словом «манда». В основном Манда присутствует в странах Африки и Ближнего Востока, но есть и несколько европейских примеров, которые, впрочем, не относятся к России. Например Манда из итальянского Турина:
манда в Италии

Топоним Елда (Elda), напротив, характерен более для европейских стран и США (будете в Нью-Йорке, прогуляйтесь вдоль переулка Фелпса, что на Статен-Айленде):
елда в США

Даже в России есть топоним Елда, который несколько завуалирован умляутом (или как он там — я не спец по диакритике):
Ёлда в России

А в Крыму жопа:
Жопа в Крыму

Если не считать Крыма, жопа больше нигде в мире не встречается, да и там она одна и является достопримечательностью. А «Блядь» в топонимике OSM отсутствует вовсе, как в написании с «ть» на конце, так и с «дь».

Таким образом, вся матерная топонимика русскоговорящих областей представлена лишь рекой Ёлда и камнем-жопой, причем происхождение Ёлды еще необходимо уточнить. Есть еще одна из гор с названиями Сиська, работы на которых я неторопливо описываю в цикле очерков «Уральские сиськи»:
Гора Сиська

Но этот топоним совсем невозможно признать табуированным. А уж отсутствие в русской топонимике OpenStreetMap производных от таких слов как «хуй», «пизда», «блядь» и «ебать» лучше всяких цифр доказывает насколько по-прежнему пуста база OSM в части наименований объектов. Равно, как и отражает одну из фундаментальных проблем проекта OpenStreetMap, развитие которого идет по пути копирования коммерческих продуктов. Тот кто постоянно сравнивает себя с великаном навсегда останется карликом.

P.S. К чему это я? Сервис OSM streak, запиленный не так давно Ильей Зверевым из Maps.me офигенен. Он каждый день присылает на почту или в телеграмм небольшое задание на маппинг. Оно несложное, но не позволяет забыть какой клавишей углы выпрямляют.  А ведь в теории, к нему можно прикрутить и обратную форму, которая позволяет отправлять не правки с выполненным заданием, а задания, которые требуют выполнения. Нужно вам нарисовать дороги в деревне Миндюкино, рисуете пирог, снабжаете тегом #МиндюкиноНидХелп и все, кому этот район интересен, периодически получают напоминалку. Это быстро перерастет в рубльдомиковою коммерцию (хочешь что-бы карту рисовали за тебя — плати), но какая разница? Все равно результат будет такой же чумовой как у Альбера Камю.

Мультифрактальный анализ данных OpenStreetMap в QGis

Бенуа Мандельброт в своей «Геометрии» утверждает, что понятие «фрактал» применимо исключительно к множествам, которые проявляют свойства самоподобия не менее чем на протяжении трех порядков единиц измерения. Манфред Шредер в не менее известной монографии описывает принцип расчета корреляционной размерности, приводя ее к общему виду. Там же он наглядно показывает, как неэвклидовы размерности отражают строение систем в стадии детерминированного хаоса. Аналогичным, но в более популярной форме занимается Хакен, а Федер постулирует чрезвычайно занятную мысль о взаимосвязи самоподобия с теорией перколяции. Однако, несмотря на все это, фракталом называют любой каскад дихотомических ветвлений, а под фрактальным анализом — банальное определение размерности покрытия, забывая даже то, что в оригинальном мануале она идет под названием размерности Хаусдорфа-Безиковича. Еще в одной статье на эту тему нет смысла, но процедура оценки сложности геоданных в QGis настолько проста, что заслуживает краткого упоминания даже среди всеобщей скуки.

Начнем с того, что выберем интересующую область (в моем случае это Москва, район трех вокзалов), которую обводим полигоном. Любой тулзой скачаем OSM данные на этот регион — я использовал плагин OSMDownload, но можно и просто выкачать все через overpass. После того, как данные получены, я рекомендую перевести все в спроецированную систему координат, например в EPSG:2705. Это облегчит дальнейшую работу и позволит вам избежать необходимости перевода градусов в метры для объяснения полученного результата. Я для упрощения работы использовал только точечные данные, но нет препятствий к применению этого метода для линий или даже полигонов.

После этого стандартными средствами (Вектор-выборка-регулярная сетка) строим сетки из квадратов с разной длиной стороны. Чем больше сеток и сильнее разброс площадей у их ячеек тем интереснее результат, но на практике обычно получается не более 20, а если удваивать сторону квадрата для каждой новой сетки, то и того меньше. Можно объединить все сетки в один шейп, это ускорит работу по подсчету заполненных ячеек, но замедлит расчет размерности, так что особого смысла нет. Сам подсчет ведется путем пространственной выборки полигонов сетки по принципу пересечения с точкой OSM:

Я использовал 22 сетки со сторонами квадратов 5, 10, 13, 20, 21, 34, 40, 55, 80, 89, 100, 144, 160, 200, 233, 300, 320, 377, 400, 500, 610 и 640 метров. Не стоит удивляться размерам — эту работу я проводил в рамках изучения встречаемости последовательности Фиббоначчи в геоданных и связи этой последовательности с размерностью покрытия данных. В результате были получены следующие данные:

Сторона
квадрата, м
Полное количество квадратов Количество заполненых
квадратов
Достоверность аппроксимации
(R2)
Размерность
Хаусдорфа-Безиковича
5 241001 4322 1,00 0,00
10 60501 3963 1,00 0,13
13 35574 3755 0,99 0,14
20 15251 3115 0,89 0,22
21 13728 3041 0,91 0,25
34 5251 2151 0,86 0,35
40 3876 1830 0,87 0,41
55 2035 1290 0,87 0,50
80 988 760 0,86 0,62
89 782 650 0,88 0,69
100 651 535 0,89 0,74
144 294 280 0,89 0,83
160 247 237 0,90 0,89
200 176 148 0,90 0,96
233 117 115 0,91 1,02
300 77 69 0,91 1,08
320 70 68 0,92 1,12
377 48 47 0,92 1,16
400 48 40 0,93 1,19
500 35 24 0,93 1,24
610 20 20 0,93 1,27
640 20 19 0,94 1,29


График функции количества заполненных клеток от масштаба клетки как и ожидалось, имеет степенной вид (R2функции аппроксимации = 0,94). Расчеты выполнены в экселе с использованием формул для расчета достоверности авппроксимации:

=ИНДЕКС(ЛИНЕЙН(LN($D$2:$D23);LN($B$2:$B23);;1);3;1)

Для расчета размерности Хаусдорфа-Безиковича:

=-1*ИНДЕКС(ЛИНЕЙН(LN($D$2:$D23);LN($B$2:$B23));1)

На основе полученной таблицы построен график мультифрактального спектра, отражающий изменение сложности данных в зависимости от масштаба (сложность точки = 0, сложность прямой = 1, сложность плоскости = 2):
график мультифрактального спектра

Сложность точечных данных OpenStreetMap возрастает по логарифмическому закону. При увеличении охвата, она стремительно возрастает до тех пор, пока сторона охвата не составит примерно 100 м (вероятно это связано с квартальной сетью), после чего скорость усложнения падает. Если продолжить это график, он должен опять пойти на спад, что следует хотя-бы из здравого смысла, но ресурсов моего компьютера для таких расчетов уже не хватит. Динамика наблюдается в северной части Москвы, но полагаю, что тенденция будет сходной для всех крупных городов.

Собственно, это и есть все интересное. Тем более, что этот пост я написал только для того, что-бы формулы расчета размерности всегда под рукой были, а то неудобно постоянно десятки графиков создавать.