X-Art

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

Карта Русской равнины:

Это безумие заняло у меня шесть ночей в нарядах. Во время процесса мне активно позировала карта расположения военно-стратегических объектов северо-атлантического альянса и чуть позже — карта растительности из монографии Берга «География СССР», хранившаяся в библиотеке нетронутой с девяносто четвертого года. Карта исполнена карандашом и шариковой ручкой. К великому сожалению, ввиду служебных пертурбаций завершить ее так и не удалось — подписи остались только в виде набросков.

А вот карта мира. Эта вещь уже посильней чем «Фауст» Гете:

Карта грубовата, более того непосвященный человек всячески ее раскритикует. Что с Кольским полуостровом? Почему вместо Камчатки сосулька? Что с южным полушарием происходит? Южное полушарие — это конечно сплошной косяк, не отрицаю. Но интересно в этой карте не содержание, а способ получения.  Равновеликая азимутальная проекция Ламберта в которой была исполнена исходная карта после несложных геометрических манипуляций была преобразована в проекцию Меркатора. Да, руками. Формулы Бурса-Вольфа? Передискретизация? Полиномиальные преобразования? Все это для слабаков. Вот как выглядит настоящее перепроецирование на лету! Помимо авторучки, при изготовлении был задействован огрызок синего карандаша.

Ну и наконец, высшая стадия картографической парэстезии. Содомия цветов. Визуализация данных OpenStreetMap на территорию Ростовской области. Визуализировал, визуализировал, да так и не вывизуализировал. И не с помощью какого-нибудь mapnik-a, QGis-а или на худой конец фотошопа. Акварельные краски на меду (срок годности истек тринадцать лет назад), блокнот и Cranberries в наушниках — вот инструменты этого безумия!

Если обычная работа с картой вас больше не возбуждает — попробуйте сменить диванный маппинг на девиантный. Ведь, даже по словам Долорес О’Риордан: «Фани хоу тинг джаст тастед беттер! Вен ви вер юнг!»

Пивопровод на ХБК

В поселке ХБК сто четыре жилых дома, которые необходимо подключить к пивопроводу. Само собой, сделать это необходимо с минимальными издержками на прокладку труб и дальнейшее их обслуживание.

Для проектирования пивопроводной сети, откроем в QGis карту OpenStreetMap с помощью плагина QuickMapServices или его старого аналога OpenLayersPlugin:

1

Приблизим интересующий нас район, и создадим полигональный шейп-файл:
2

Обведем контуры поселка:
3
Теперь, требуется загрузить контуры домов, нуждающихся в подключении. В нашем случае самым простым решением будет импорт зданий из базы геоданных OpenStreetMap с помощью сервиса Overpass turbo. Мы для этих целей воспользуемся плагином QuickOSM, загрузив полигональные объекты со значением «building=apartmens». В OSM полигонального типа нет, модуль выполняет эту конвертацию за нас:
4
В результате получим векторные слой, который будем использовать для построения графа.

5

Прежде всего, получим вершины графа, путем извлечения центроидов полигонов:
6
Если бы мы располагали графическими картами в качестве исходного материала, то пришлось бы их отсканировать, затем привязать, затем оцифровать. Это конечно дольше, но мы бы расставили точки более сложным образом. Центроиды полигонов хорошо применять только в случае простых полигонов, на сложных это приводит к погрешности:
8
Впрочем, нас такая точность устраивает, тем более, что от каждого центроида будет идти разводящая сеть. Мы получили вершины графа. Теперь, используя триангуляцию Делоне создадим множество полигонов, каждая вершина которых будет точкой центроида зданий.
7
Преобразуем полигональную триангуляцию в сеть линий. С помощью команды «split» плагина Networks разобьем сеть на отдельные линии. Мы получили граф, достаточный для роутинга. Если нам потребуется кратчайшим образом связать между собой две его вершины, достаточно будет просто использовать модуль RoadGraph:
9
При необходимости, можно добавить каждому ребру графа определенный вес. Полученные полилинии можно экспортировать в виртуальный слой и во внешний шейп.
15

Но у нас немного другая задача — построить сеть с ребрами минимальной длины. Для этого рассчитаем длину каждого ребра, используя встроенный калькулятор QGis:
13
Раскрасим слой ребер по градиенту возрастания длины ребра.
14
Ребер у нас много, поэтому выведем длину каждого из них в качестве подписи:

4

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

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

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

2

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

Как я свою газету нашел

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

Покупая газеты я первым делом спрашивал свежий номер «Газеты Дона», той самой, где работала киркоровская обладательница сисек, кофточки и вопросов про ремейки. Иногда там печатали весьма интересные вещи, но самое главное, в каждом выпуске была рубрика «Эродром». Потом газету сделали цветной, а полосу «Эродрома» начали делить между рекламой виагры и унылыми историями про совокупления. Покупать я ее перестал, а пару лет назад приобретши по старой памяти несколько номеров, немедленно выбросил их в ближайшую урну.

После «Газеты Дона» я обычно спрашивал «КВУ-шку», которую, время от времени, покупаю и сейчас. Если ее не было, то брал убогие «Шахтинские Известия», а если не было и их, то газету «Тумба». Если не было ничего, то я брал «Комсомолку», «АиФ» или на худой конец кроссворды «Крот» и «Три семерки» (или три пятерки?) с анекдотами. Кроссворды были всегда. Больше я никогда ничего не покупал.

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

Мои покупательские предпочтения не менялись годами. Но в один из дней на новом хбковском рынке случилась неведомая вспышка озарения и в ларек напротив мясного павильона завезли газету со странным названием «Рыбак Рыбака».

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

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

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

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

С тех пор, если меня называют идиотом, я этого не отрицаю.

Все-таки рождение до появления мобильной связи и уж тем более интернета это не факт, а диагноз. Я десять лет пользуюсь интернетом, я создавал, настраивал и парсил сайты, я месяцами просиживал за разметкой, каскадными таблицами стилей и JS-кодами. Но почему, только сегодня ночью мне пришло в голову открыть яндекс и вбить в поисковую строку «Газета Рыбак Рыбака»? Естественно, в первой-же выдаче я получил ссылку на сайт газеты.

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

Как я создавал картостиль «L»

«Художника каждый может обидеть.
Убежать не каждому удается.»
Народная мудрость

 

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

Но сегодня, я хочу рассказать вам не столько о карте, сколько о картостиле вообще. Исходные данные мои понятны: OpenStreetMap в шейпах от Geofabrik, плюс собственные картографические наработки. Данных, по нынешним временам — кот наплакл, грех не засеть часов на сорок-пятьдесят и не скомстролить из них контагий красоты. Собственно, я только что это сделал, а потому рад представить вам картостиль под названием «L». Не скажу, что название не имеет отношение к противостоянию Л и Киры, но по большому счету я и сам не знаю, откуда оно взялось. Да и не хочу знать. Лучше вместо всех этих пустяков я расскажу вам о некоторых своих мыслях, которые годами вызревали, пока неожиданно не полезли из меня во все стороны как из старого матраса.

Чего стоят сейчас данные неглобального покрытия? Правильно: ничего или почти ничего. Неважно сколько у тебя данных, важно как ты с ними работаешь. Эту мысль я периодически пытался доносить до аудиторий в виде неструктурированного потока высказываний. Чем полнее базы геоданных, тем меньше значение каждого нового байта, тем выше требования к обработке и отображению пространственной информации. Думаю об этом же говорил и Стив Кост, заявляя: «Сработало-то замечательно, люди отличные, OSM пыхтит и катится… но дни крутых поворотов и рисков позади. Это сводит с ума: открытую карту можно развить сотней способов, а не просто смотреть, как она немного прирастает каждый год, и собирать очередную конференцию.» В нас пропал дух энтузиазма», как говорил еще Ипполит Георгиевич. Наполнение базы геоданных первоочередная задача партии и правительства, а кильками в наш век отравиться гораздо проще, чем не смочь на основе данных изготовить карту.  Скорее всего, этот флер времени рано или поздно развеется, но хотелось бы застать времена когда вопросы картографического дизайна будут если уж не решаться, то хотя-бы подниматься на обсуждение.

Впрочем, довольно лирики. Я же про «L» рассказ веду. Сразу скажу, стиль не включает в себя POI. Это не значит, что он не предназначен для их отображения (скорее наоборот). Дело в том, что при таком ничтожном количестве ангажированных точек интереса, должным образом визуализировать и проверить их читаемость просто невозможно.  Будут POI-будет развитие картостиля «L». Покамест можно оговорить, что предлагаемый картостиль избавлен от точек интереса специально (что на самом деле является одной из главных причин).

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

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

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

Применяя табличный алгоритм вы прежде чем приступить непосредственно к работе с данными создаете таблицы условных обозначений. Это настолько старый, проверенный и рекомендуемый метод, что я более чем уверен: хрен кто им пользуется в реальной практике. Потому что для того, что-бы построить гармоничную таблицу условных обозначений требуется космические запасы времени, а я сейчас и без всяких таблиц все по-быстрому нарисую…

Суть циклического алгоритма ясна из названия: настраиваете первый слой, отключаете его и добавляете следующий. Начинаете настройку второго слоя на белом фоне, завершаете на фоне включенного первого слоя. Далее отключаете второй слой и по тому-же алгоритму настраиваете третий. Если принять за x редактируемый в текущий момент слой, включенный слой принять за единицу, отключенный за ноль, а место в последовательности за номер слоя, то алгоритм можно записать так: x-0x-1x-00x-10x-11x… Кажется сложным, но не переживайте, если слоев много, вы легко сойдете с ума.

Используя ступенчатый алгоритм вы добавляете слой максимального заполнения, настраиваете его цветовую гамму по вашему вкусу. После добавляете слой с меньшим наполнением, настраиваете его так, что-бы оба слоя хорошо читались. Добавив третий слой, отключаете первые два и настраиваете его по своему усмотрению. Позже изменяете яркость, контраст или прозрачность первых двух слоев на минимальную величину, достаточную для нормального отображения третьего слоя. Потом добавляете четвертый и далее пока не закончатся слои, либо пока не упретесь в предел такого метода. С физической точки зрения метод не выдерживает никакой критики, но иногда бывают случаи, которые просто не разрешить стройными алгоритмами. «Здесь нужна живая кровь, катарсис, преступление». Ибо на каждую хитрую бритву Оккама всегда можно найти теорему Геделя с винтом.

Повторюсь, я не претендую на ценность этих конкретных алгоритмов. У каждого повара своя галинабланка. Но я хочу сказать, что к вопросу создания картостиля можно подходить более формализованно чем: «-Давай дороги пошире сделаем. -Вроде лучше стало, давай еще домики перекрасим. -Блин здорово, но надписи не видны, нужно размер текста увеличить — А как? — А ты дороги поуже сделай!»

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

Подложка-privacy

 

В OSM этому слою в теории должно соответствовать значение landuse=residential. Но в связи с трудоемкостью обрисовки участков, тег с таким значением обычно покрывает почти весь город целиком и практически не несет никакого смысла. В моем случае, этот слой (privacy) отрисован руками на весь город, что позволяет сделать вывод о наличии и характере проездов даже на территориях, лишенных дорожного графа OpenStreetMap.

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

Приведу пример из упомянутого поста. Фрагмент карты поселка ХХ лет РККА, созданной в гугле по американскому образцу. Ощущение, что это уютный закрытый коттеджный поселок на берегу реки

665

 

На самом деле, ситуация обстоит вот-так:

666

 

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

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

граница

 

Примерно то-же можно сказать о железных дорогах. Железку должны узнавать и легко выделять все. Для города Шахты это особенно важно, поскольку здесь до недавнего времени существовала кольцевая железная дорога:

railway

 

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

В отличие от железных, отображение автомобильных дорог является одним из самых важных и сложных этапов. Особенно, если ваш граф взят из OpenStreetMap. Как образуются значения тегов дорог в OSM? Очень просто, вы берете название ближайшей улицы, транслитерируете его на английский, умножаете количество букв на случайное число, а потом случайной комбинацией получаете значение тега highway. Если как следует поискать, в OSM можно найти дорогу, подходящую для каждого. Даже если вы одноухий цирковой мишка на восьмиколесном стеклянном велосипеде, будьте уверены, где-то на Земле для вас есть соответствующим образом тегированная дорога.

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

road1

 

Дороги в провинции это исключительно водительская информация. Здесь, в далекой глубинке велодорожек нет, пешеходы ходят там где грязи меньше, а утренний highway=living_street легко превращается в ночной highway=raceway. Соответственно, всю классификацию достаточно просто разбить на пешеходные линии, в которых придется покинуть машину (footway, path, pedestrian, steps), степные, полевые и лесные дороги на которые не рекомендуется выезжать в распутье на заниженных вазах (track), обычные центральные дороги, основным отличием которых является наличие асфальта на всем протяжении (trunk, secondary), главные центральные дороги, отличающиеся дополнительными ограничениями, вероятностью пробок и ямочного ремонта (primary). Все остальные дороги рассматриваются как проезды во всех смыслах этого слова. Проезды могут быть заасфальтированы в зоне высотной застройки, но чаще имеют грунтовое покрытие, либо покрытие из брусчатки, выложенной еще пленными немцами после войны.

После классификации дорожная сеть выглядит так:

road2

 

Деление на типы достаточно произвольно, но с другой стороны в условиях недостатка данных позволяет максимально отобразить дорожные свойства, необходимые читателю. Обратите внимание на то, что основное количество дорог исполнено тонкой линией. Строго говоря при обдумывании карты я планировал, что линиями будут обозначены только дороги с твердым покрытием, а все остальные легко читаются на карте благодаря детальной прорисовке слоя privacy (индивидуальные жилые участки). Возможно, в будущем я так и сделаю, но сейчас разделить дороги даже по покрытию невозможно.

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

А ведь еще нужно исхитриться так, что-бы водотоки лежали под водоемами, а водоемы (которые при экспорте OSM-Geofabrik запихнуты в слой natural) не перекрывали водотоки. Сделать это минимальными усилиями можно только используя единое цветовое оформление:

вода

 

Слой nature, несмотря на его популярность оказался едва ли не самым простым для отображения. Все многообразие значений этого тега легко сводится к значению water, о котором я говорил выше и fores+park.

— Но позвольте! Как можно объединять в одну группу стоь разные значения? — наверняка спросите вы. А вот и можно. Ибо, за исключением ничтожной площади в центральном парке, различия между зоной лесовыращивания и рекреационным лесом полностью отсутствуют. Полностью. Нет, совсем полностью. Хозяйство не ведется ни там, ни там. Породный состав одинаков. Возраст, бонитет, состояние, характер посадки (все лесные культуры) — одинаково. Если эти леса и различаются чем-то между собой, то только тем, что документы на них хранятся в разных местах. А при тотальном бардаке и неразберихе, которая не прекращается уже четверть века, это и вовсе теряет всякое значение.

nature

 

Обратите внимание, объекты слоя natural исполнены светлой заливкой с темным кантом, в то время как базовая подложка исполнена с белым кантом и более темной заливкой. Но и тут и там подложка и кант имеют сходные цвета. Это старющщий метод, о чем я узнал еще когда на флоте служил. Почему этим простым правилом так часто пренебрегают я искренне не понимаю.

Про оформление слоя landuse можно говорить долго. Это, наряду с дорогами один из самых сложных слоев для визуализации. Я лучше покажу что получилось:

Сам слой:

landuse1

 

Поля, промышленные объекты, военные части  и тюрьмы (да, это «девятка»)

поля, военные части, промышленные зоны

 

Промышленные объекты, скверы, пустоши, гаражи, объекты торговли (розовые) и стройки (серые с пунктирной границей):

Гаражи, стройки, скверы, пустоши, коммерческие зоны, промышленные объекты

 

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

Кладбища:

kladb

 

Промышленные зоны, карьеры и садовые участки:

сады, промышленные зоны и карьеры

 

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

А пока, можете наслаждаться моей работой. Террикон шахты Пролетарской диктатуры. Есть претензии к геометрии (у него в реальности несколько вершин), но внешний образ передан верно.

терриконы

 

А как же текст? Подписи дорог (видимы в диапазоне масштабов [1;40 000]) на карте исполнены черным цветом с белым буфером 1 мм, шрифтом: Ubuntu Condensed Regular, 8 точек, с размещением поверх кривых.

Подписи гидрографии на карте исполнены #1f78b4-цветом с белым буфером 1 мм, наклонным шрифтом: Ubuntu Condensed, 9 точек, с размещением над линиями вдоль кривых во всех масштабах. Вообще, гидрография, о которой я писал выше, выносит мозг не только своей разнослоевостью, но и траблами при попытке автоматического расставления подписей. Время от времени на один участок озера или водохранилища попадает дублирующая надпись «река такая-то». В результате смотришь на предпечатный макет, а там на месте летнего купания надпись: «Грушевское вдГхрру.шевка» или что-то подобное. Приходится лезть в геометрию и беспощадно ее резать.

Нумерация зданий выполнена шрифтом Ubuntu Condensed Regular, 9 точек, черный с белый буфером в 1 мм, на расстоянии от центроида видимой части в диапазоне масштабов [1;10 000].

Подписи населенных пунктов вокруг точки, видимы на всех масштабах. Черным цветом с белым буфером в 1 мм:
places_type__city: Impact Обычный, 20 точек,
places_type__hamlet: Impact Наклонный, 18 точек,
places_type__town: FreeSerif Курсив, 18 точек,
places_type__suburb: FreeSerif Обычный, 14 точек,
places_type__village: Ubuntu Condensed Regular, 14 точек,

 

Населенные пункты

 

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

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

Номера индивидуальных жилых территорий выполнены черным цветом без фона, наклонным шрифтом: Ubuntu Condensed, 8 точек, с размещением в центроиде объекта с видимостью в диапазоне масштабов [1;5 000].

надписи ижс

 

В совместном итоге получается вот такая картина:

Центр

 

Или вот такая:

Артем

 

Честно говоря, я и сам не понял, про что у меня пост получился. Вроде как про «L», а с другой стороны про рассуждения о небесных пирожках. Я так думаю. Создание картостилей вещь сложная и ответственная, а уж картографический дизайн и подавно. Я вот только что на себе испытал. Если вам понравилось, советую повторить опыт. Если нет, не беда, можно пиво пить, праздники же. Вот вам мои файлы стилей, берите кто хотите, выкладываю под Beerware-лицензией (Revision 42). А я спать пойду.

Знаете что самое сложное? Научиться не реагировать на идиотов

P.S. Если примите решение использовать эти наработки в коммерческом проекте, уточните лицензионную чистоту шрифтов Impact

P.P.S. Порядок слоев в проекте:
names
boundary
railways
mask_building
roads
waterways
natural
terricons
landuse
privacy

Первая производная по дизайну карт

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

Идею подсказал Илья Зверев в блоге OSM, своей мыслью по поводу того, что Mapnik в OSM вовсе не косячит, а делает все как надо, поскольку «дороги важнее, чем контуры домиков». У меня-таки есть что на это ответить.

Первостепенные дороги важнее чем второстепенные это да. Первостепенные здания важнее чем второстепенные — тоже да. Но ни дороги, ни здания не могут быть важнее друг друга. Задача картографа не в том, что-бы выбрать приоритетный для показа объект, а в том, что-бы показать оба объекта, не перегрузив при этом карту. Вот, в гуманитарной карте это получилось (я про ситуацию с домиками). Что мешает сделать это в mapnik-е?

Но не о том речь. Периодически из под всех плинтусов слышно: «Я то в советское время Ооооо!» «Раньше карты были лучше!, Раньше карты были хуже!»

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

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

Да чего уж кокетничать. Можно тогда и вторую производную взять, получив значение ускорения развития картостиля.

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

Первое что приходит в голову: такие производные дают ключ к определению влияния каждого из элементов картостиля на общую читаемость карты. Действительно, поэтапно добавляя элемнты с разным цветом, светлотой, текстурой, геометрией, размером и прочими характеристиками, мы сможем итеративно рассчитывать производную, после чего соотнести полученные значения с параметрами добавленных на карту элементов… А вот херасдва! Я ставлю ящик пива на то, что читаемость карты подчиняется не аддитивному, а эмергентному закону. Более того, не удивлюсь, если при выборе влиящих на отображение показателей мы столкнемся с принципом, который в экологии называется «бочка Либиха», согласно которому решающее значение имеет только критичный фактор среды (в нашем случае визуализации данных).

Возьмем два объекта карты. В совокупности они смотрятся как третий объект. В сочетании с каждым из родительских объектов он образует два дочерних субъобъекта, из которых (что-б мне голой жопой на кактус сесть) одновременно человек может воспринимать только один.

Где-то я о таком уже слышал.

Формат FRNP: назначение и спецификация

Друзья мои, однажды, когда я работал редактором в одном научном журнале, мне довелось описывать историю создания программы для обработки геоботанических данных. Чуть позже, эта статья в популяризированном виде была выложена на Хабр и, вполне может быть, присутствует там до сих пор.

Хочу читать статью тут

Софт, формат, стандарт и немного занудства — опыт разработки программы для обработки геоботанических данных

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

 

«Кто такой Тайлер Дёрден?»

Меня часто спрашивают, знаю ли я Тайлера Дёрдена кто такие геоботаники? Отвечаю: геоботаники — специалисты по растительным сообществам. В отличии от, например, систематиков, которые путешествуют из одной пыльной гербарной в другую, геоботаники свой материал собирают исключительно в поле, составляя геоботанические описания — специальные таблицы, в которых указано какие растения и в каких объемах произрастают на площади. По этим таблицам в дальнейшем можно определить показатели плодородия и влажности почвы, антропогенную нарушенность, кормовую ценность участка и много других интересных вещей. И, как вы понимаете, это определение ведется так же как и в эпоху, «когда динозавры были маленькие» — с бумажным бланком и миллиметровкой. Самые продвинутые используют Excel.

 

 

«А теперь, Горбатый!»

Перефразирую Жеглова: «Геоботаник, который вносит данные из бумажного бланка в Excel, зря получает рабочую карточку». И дело тут вовсе не в экселе. К этой программе претензий нет — вещь замечательная, к тому же тотально перекраденная, с доступной portable-версией. И даже то, что формат xls не ГОСТовский, не только не беспокоит, но даже неизвестно основной массе специалистов. Основная проблема перевода с бумажных бланков в табличные редакторы состоит в бесполезности этой работы. Чем плохи экселевские таблицы? Вот вам аналогия с книгами: лет пять назад я начал активно собирать коллекцию из отсканированных pdf и djvu версий книг. За годы коллекция разрослась до сотен гигабайт, и пожалуй единственного чего в ней нет это пользы. После определенного момента, я полностью перестал пользоваться этими книгами, поскольку времени на поиск информации в моей библиотеке уходило больше чем на поиск такой информации в интернете. Форматы электронных книг хороши для художественных романов на ридерах, но для хранения технической литературы подходит только сеть и никак иначе. От того, что «Флора СССР» отсканирована, она не станет более востребованной чем ботанические разделы Википедии.

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

 

«Надо понимать всю глубину наших глубин!»

Да, я опять нудю (или нужу?) об отсутствии стандартов и нелепости современной геоботаники. Это Леонтий Раменский мог позволить себе собрать десятки тысяч описаний и вручную их обработать. Сегодня это невозможно — никому не нужны такие работы, даже при том, что реально увеличить производительность за счет технических средств. Поэтому, если мы хотим работать с крупными фитоценариями, необходимо объединять наработки каждого в единую базу. Но для этого следует хотя-бы оформлять описания по единым стандартам, а не как придется. Да, я конечно понимаю, что «научная» полевая работа — это сегодня очень часто не более чем оплачиваемые турпоездки. Потому и не ставится вопрос об единых стандартах и методах. Потому и не поднимается вопрос о целесообразности публикаций описаний в журнале «Растительность России» (за публикацию таблиц описаний в БУМАЖНОМ журнале уже давно пора давать орден «почетный старпер»). Однако же, на дворе 21 век, а геоботаники продолжают заполнять бумажные бланки собственного изобретения.

 

«Это вам не это!»

Первую попытку оптимизировать работу с «сырыми» описаниями я предпринял три года назад в рамках работ над программой PhytoSoft (разработка велась в Borland C++ Builder 6). На тот момент, стояла задача облегчить и ускорить ввод данных с полевого бланка, для последующего анализа по экологическим шкалам Л.Г. Раменского (помните, я выше говорил о том, что с помощью геоботанических описаний можно определять плодородие и влажность почвы? Это, как раз и есть «метод экологических шкал»). Программу удалось довести до работоспособного состояния, но при крайне низком бюджете, она так и осталась на этапе альфа-тестирования и позже была выложена в открытый доступ со всеми своими тараканами.

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

Формат *.gbo который использован в Фитософте под эту задачу никак не подходил. Я не оформил должным образом спецификацию на него, но самое главное, что он тоже представлял собой те самые «строчки-колонки». Проще говоря, «*.gbo» — это большущая таблица, высотой в тысячу строк, шириной в несколько сот колонок. Каждое описание в таблице занимает одну строку. Описание разбито на логические элементы, которые размещаются в разных ячейчах. Например, в пятой ячейке первой строки указан автор первого описания, в шестой ячейке первой строки указана дата первого описания и т.д., в пятой ячейке второй строки указан автор второго описания, в шестой ячейке второй строки указана дата второго описания и т.д… Логика формата очень проста, но для импорта внешних файлов, последние приходилось мучительно переделывать (представьте: вашу сводную таблицу описаний необходимо перестроить таким образом, что-бы с 50 по 100 колонку шли названия видов, а с 101 по 151 их проективные покрытия). Эта проблема возникла от того, что вместо разработки программы под формат шла разработка формата под программу.

 

«Это не кадка, а настоящее японское фураке!»

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

Вот конкретный пример. Если вы изначально разрабатываете формат, как отдельный проект, то наверняка учтете, что он должен быть приспособлен для импорта в ГИС. После этого, начав разработку, вы будете вынуждены решать проблему с ГИС-совместимостью, даже если геоинформационными системами в вашей программе и не пахнет. Зато от этого формата не откажутся, что неизбежно произошло бы, когда выяснилось, что формат бесполезен для ArcGIS, QGIS или другой программы.

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

Разрабатывая Фитософт в рамках идеи упрощения оцифровки бумажных бланков я ошибался. Бумажных бланков не должно быть вообще, полевые данные сразу должны быть готовы к обработке. Но, поскольку любой тупиковый путь рано или поздно заканчивается, примененная концепция довольно быстро изжила себя, породив новую проблему. С одной стороны, стало ясно, что геоботаник должен вводить данные в программу сразу после их получения в поле. С другой стороны, это означает, что он не будет пользоваться ни компьютером, ни ноутбуком. Планшеты? Но их цена столь же аморальна, как и срок заряда батареи. А самое главное, я вспомнил, в каком состоянии возвращаются полевые бланки — намокшие, с пятнами крови от раздавленных комаров. И со стороны пользователя я бы не хотел, что-бы моя (и не только моя) привычка не задумываясь бросать планшетку (которая скрепляет бумажные бланки) рядом с собой погубила однажды электронику. Планшет не подходил. Оставался смартфон. С точки зрения пользования это идеальный вариант — стоят они гораздо меньше, берут их с собой в любую погоду и вероятность повредить их гораздо меньше. Но в то же время это значит, что весь код, связанный с интерфейсом Фитософта можно удалять. Для полевых условий требуется что-то принципиально иное чем множество окон выбора.

 

«Айл би бэк»

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

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

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

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

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

«Из пяти множеств описаний отобрать те, для которых коэффициент Жаккара более 0,7 если в них присутствует группа таволги и коэффициент от 0,4 до 0,7, если в них доминируют луговые виды»

Представили себе объем работы? Ну, тогда хера ли мы с вами рассуждаем о всякой банальщине, ловите истинную суть этого поста:

=======================================================

Формат FRNP, версия 1 (Voikar)

Формат FRNP (format research nature page) предназначен для хранения и автоматизированной обработки данных о растительности, почвах и отобранных образцах, полученных в ходе полевых работ.

Синтаксис
В нотации Бэкуса-Наура:
Char ::= ‘A’|’B’| … |’Z’|’a’|’b’| … |’z’|’%’|’№’|’0’ | ‘1’ | ‘2’ | … | ‘9’|’_’|’+’
Note ::= ‘A’|’B’| … |’Z’|’a’|’b’| … |’z’|’%’|’0’ | ‘1’ | ‘2’ | … | ‘9’|’_’|»’|’,’|’.’|’%’|’№’|’@’|'(‘|’)’|’+’
Text ::= ‘»‘
Polychardelimited ::= ‘,’
Delimited ::= ‘:’
End ::= ‘;’
String_end ::= ‘$’
Name ::= {Char},Char
Data ::= {{Text,Note,Text}|{{Char},Polychardelimited,{Char},Polychardelimited},{Char}
Descriptor ::= {Name,Delimited,Data,End}String_end
Base ::= {Descriptor}

Семантика
Пробелы и символы переноса строки игнорируются.

Приставки и окончания:
total — общее (например общее проективное покрытие);
% — показатель измеряется в процентах;
1,2…10,… — показатель измеряется в долях от 1,2…10,…;
quality — качество;
№ — номер;
sp. — вид;
c — окружность;
sm — показатель измеряется в сантиметрах;
h — высота;
m — показатель измеряется в метрах;

Корни:
dendro — древесный ярус;
underdendro — подрост;
upgrass — подлесок;
grass — травы и кустарнички;
undergrass — мхи и лишайники;

Дескрипторы описания:
tags — ключевые слова (теги) описания;
time — дата в формате ГГГГММДД, например седьмое июля 2015 года: 20150807;
author — автор или авторы описания;
feedback — контакты для связи с автором;
license — лицензия распространения данных;
source — источник данных;

Дескрипторы местоположения
lat — широта;
long — долгота;
ele — высота над уровнем моря;
datum- система координат:
wgs84 — WGS-84;
pulkovo42 — СК-42;
unknown — Неизвестная система координат;
area — площадь описания в квадратных метрах;
note- примечание;

Дескрипторы описания древостоя:
totaldendrocover% — общая сомкнутость древостоя в процентах;
dendrocover% — повидовая сомкнутость древостоя в процентах;
dendroshare10 — состав древостоя в долях от десяти;
dendrocompleteness — абсолютная полнота древостоя в квадратных метрах;

Дескрипторы описания подроста:
totalunderdendrocover% — общая сомкнутость подроста в процентах;
underdendrocover% — повидовая сомкнутость подроста в процентах;
underdendroquality3 — состояние подроста в трех баллах (1-нормальный, 2-удовлетворительный, 3-угнетенный)

Дескрипторы описания подлеска:
totalupgrasscover% — общая сомкнутость подроста в процентах;
upgrasscover% — повидовая сомкнутость подлеска в процентах;

Дескрипторы описания травяно-кустарничкового яруса:
totalgrasscover% — общее проективное покрытие травяно-кустарничкового яруса в процентах;
grasscover% — повидовое покрытие травяно-кустарничкового яруса в процентах;

Дескрипторы описания мохово-лишайникового яруса:
totalundergrasscover% — общее проективное покрытие мохово-лишайникового яруса в процентах;
undergrasscover% — повидовое покрытие мохово-лишайникового яруса в процентах;

Дескрипторы описания почв:
soil(N) — номер почвенного горизонта верху вниз (soil0,soil1,soil2 и т.д.);
Шаблон значения дескриптора описания почв
m_colorsoil_density_composition_root_stone_coal
m — мощность горизонта;
colorsoil — цвет почвы по А.С. Захарову (например светло серый — «white-grey»)
composition — механический состав горизонта:
cl — глина;
hl — тяжелый суглинок;
ml — средний суглинок;
ll — легкий суглинок;
sl — супесь;
sd — песок;
density — плотность горизонта:
f — слитой;
t — плотный;
p — уплотненный;
c — рассыпчатый;
l — рыхлый;
root — наличие корней;
stone — наличие камней;
coal — присутствие углей;
peat — торф;

Дескрипторы описания отобранных образцов:
dendroextruder№_sp._csm_hm — отобранный образец дерева с указанием номера, вида, окружности и высоты дерева;

Пример описания:
tags:»betula»;
time:20150807;
lat:66.00287;
long:63.66359;
ele:58;
datum:wgs84;
note:
«Описание №102. Склон 3 градуса ЮВ экспозиции с кочками высотой 0,4 м»;
totaldendrocover%:40;
dendroshare10:
picea_obovata_4,
betula_aurata_6;
dendroextruder№_sp._csm_hm:
248_picea_obovata_71_13,
249_picea_obovata_71_14,
280_betula_aurata_53_13;
totalunderdendrocover%:5;
underdendro:
picea_obovata,
betula_aurata;
totalupgrasscover%:5;
upgrasscover%:
sorbus_sibirica_1,
duschekia_fruticosa_3,
rosa_accicularis_1;
totalgrasscover%:80;
grasscover%:
vaccinium_myrtillus_70,
ledum_palustre_7,
carex_globularis_1,
vaccinium_vitis-idaea_1,
licopodium_sp._3,
linnea_borealis_+;
totalundergrasscover%:40;
undergrasscover%:
pleurozium_schreberi_30,
ptilium_crista-castrensis_10,
politrichum_commune_5,
sphagnum_sp._+,
hylocomium_splendens_+;
soil0:
13_peat;
soil1:
6_white-grey_cube_l_sd_stone_;
soil2:
brown_cube_плотн_sd;
$

=======================================================

Да, я знаю, что описанная спецификация содержит косяк на косяке, но надо же хоть с чего то начинать. Кстати, если по Бэкусу-Науру есть специалисты, ткните меня пожалуйста носом в косяки оформления синтаксиса. Пока я вижу только то, что запись Data типа ___,____,_____ будет считаться допустимой. Это не очень хорошо, но приемлимо.

Мапим по гуглопанорамам — наземное фотограмметрическое картирование в QGIS с помощью плагина stereoSurveys

Read in English

Замечание 1. В данной статье не расматриваются юридические вопросы законности использования описанного метода при работе с данными компании Гугл. Мое дело метод показать, а с юристами сами разбирайтесь.
Замечание 2. Собственно, ничто не мешает использовать любые другие данные, вплоть до своих фотографий.
Замечание 3. Код описываемого ниже модуля от первой до последней строки написан Enrico Ferreguti. Мое значение в этом проекте чисто терапевтическое.

Пару месяцев назад я опубликовал пост о технологии применении снимков Google StreetView для фотограмметрического картирования территории. Этот незатейливый текст вдохновил Enrico Ferreguti (по его словам) на разработку модуля StereoSurveys для QGIS.

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

Для иллюстрации работы модуля, нанесем в точечном слое местоположение фонарных столбов на улице Текстильной (ХБК, город Шахты). Со спутникового снимка их не видно, поэтому единственный способ нанести их не от балды — воспользоваться описываемым методом.

0

Улица Текстильная, вдоль которой необходимо отметить фонарные столбы

1. Для начала скачиваем модуль с гит-хаба.  На тот случай, если гит-хаб закроют (твою-ж мать…) сохранил копию у себя на сервере. Последняя ссылка подойдет так-же для тех, у кого скачанный с гит-хаба архив не открывается (как у меня, например).

2. Скачанный архив необходимо распаковать в папку хранения модулей QGIS. Для windows XP это обычно C:\Documents and Settings\[username]\.qgis2\python\plugins для windows 7: C:\Users\[username]\.qgis2\python\plugins, для linux: /home/[username]/qgis2/python/plugins. Если в папке home отсутствует папка qgis2 (или .qgis2), то, возможно, у вас не отображаются скрытые файлы. В debian-подобных системах (debian, ubuntu, mint, OSGeoLive и др.) это исправляется так: правая кнопка мыши — отображать скрытые файлы.

3. Если у вас винда — обратите внимание на название папки [username]. Плагин не переносит кириллицу! Если в названии файла, проекта, плагина или пути к ним встретится русская буква, QGIS выдаст следующую ошибку:

Traceback (most recent call last):   File "", line 1, in   File "C:/PROGRA~1/QGISWI~1/apps/qgis/./python\pyplugin_installer\installer.py", line 274, in upgradeAllUpgradeable     self.installPlugin(key, quiet=True)   File "C:/PROGRA~1/QGISWI~1/apps/qgis/./python\pyplugin_installer\installer.py", line 322, in installPlugin     reloadPlugin(key) # unloadPlugin + loadPlugin + startPlugin   File "C:/PROGRA~1/QGISWI~1/apps/qgis/./python\qgis\utils.py", line 319, in reloadPlugin     loadPlugin(packageName)   File "C:/PROGRA~1/QGISWI~1/apps/qgis/./python\qgis\utils.py", line 200, in loadPlugin     msg = msgTemplate % (packageName, "', '".join(sys.path)) UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 9: ordinal not in range(128)

Для пользователей Windows 7, причина кроется как правило в том, что папка «Users» в этой системе названа как «Пользователи», кроме того, обычно кириллическое написание имеет папка  [username]. Теоретически, исправить эту беду можно создав новую учетную запись с правами администратора. Через нее следует войти завершив текущую сессию, после чего стандартным способом сменить название директорий на латиницу. Насколько это возможно и действенно, я утверждать не берусь — не проверял.

В Линуксе, как правило, папка [username] всегда может быть названа только латиницей. Поэтому, если у вас Линукс — переходите к следующему пункту.

4. Теперь можно запустить QGIS, либо перезапустить его, если он работал до этого.

В верхнем меню выбираем: модули — управление модулями-с ошибками. Ставим галку в чекбоксе stereo surveys и нажимаем установить

Снимок экрана от 2015-06-20 21_37_45

 

После установки появляется текст «Модуль неисправен invalid syntax». Презираем его и закрывая окно установки модулей.

Снимок экрана от 2015-06-20 21_37_59

 

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

Снимок экрана от 2015-06-20 21_40_00

На панорамах Google отображается площадь Прато-делла-Валле — что находится в Падуе, недалеко от Венеции. Это красивейшие места, но в качестве отправной точки для модуля не самые удачные — нам ведь требуется картировать шахтинскую улицу.

Для точечного слоя, создадим шейп-файл с названием test и системой координат EPSG: 3785 (можно и EPSG: 3857 — все работает, другие датумы не пробовал).

Снимок экрана от 2015-06-20 21_42_06

 

Что-бы вернуть его в рамки окна — перетащим таблицу слоев (менеджер слоев, TOC — все его по-разному называют) в нижнюю часть экрана.

Для того, что-бы картирование было более наглядным, подгрузим слой OpenStreetMap — Mapnik, воспользовавшись плагином OpenLayersPlugin.  Это не обязательно, но очень удобно. Приблизим нужный участок.

Рядом с левым верхним углом левой панорамы находится кнопка с зеленым индейцем. Нажимаем на эту кнопку, после чего выбираем на карте точку, из которой мы хотим видеть панораму. Обычно после этого в левом окне появляется панорама Google StreetView.

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

Первое сообщение об ошибке:

Снимок экрана от 2015-06-20 21_43_57

 

Второе сообщение об ошибке:

Снимок экрана от 2015-06-20 21_44_00

 

После нескольких неудачных попыток модуль срабатывает как надо и пользователь видит следующее:

— В окнах плагина видны панорамы из отмеченных точек и спутниковый снимок с тайлом, содержащий обе точки. Поверх панорам нанесены красные перекрестия как в прицеле.

— Непонятные числа, поля ввода и текст not calibrated слева и справа от окон с панорамами (первые два числа слева и справа — это координаты точки, в которой сделана панорама.

— Числа по центру, под окном со спутниковым снимком, которые обозначают следующее (я могу ошибаться):

H — высота точки, взятой на прицел в обоих панорамных окнах в метрах, относительно земли;

+/- — погрешность местоположения точки, взятой на прицел в обоих окнах, в метрах;

Lon, Lat — долгота и широта;

X,Y — неизвестные прямоугольные координаты;

— Под числами, расположена кнопка с текстом, «Digitize on map», по клику на которой, точка, взятая на прицел в обоих панорамах должна переносится в точечный слой.

— В окне отображения данных QGIS, помимо OSM-карты, пользователь видит три точки: зеленую — точка из которой снята панорама в левом окне StereoSurveys, красную — точка, из которой снята панорама в правом окне и желтую — точка, взятая на прицел в обоих окнах просмотра панорам.

Можно начинать работу. Находим на обоих панорамах одну и ту же точку. Кнопка Digitize on map не срабатывает, поэтому, включаем редактирование слоя и наносим ее вручную (кликаем по желтой точке, предварительно выбрав инструмент «добавить объект»). В проекте, который идет как пример к плагину, кнопка Digitize on map работает, но тоже далеко не всегда. Этот вопрос еще необходимо прояснить.

Находим один и тот же объект на двух снимках (в нашем случае это первый фонарный столб со знаком пешеходного перехода).

Снимок экрана от 2015-06-20 21_44_18

 

Прицеливаемся поточнее и стреляем — ставим точечный объект поверх желтой точки.

Снимок экрана от 2015-06-20 21_45_02

 

Точно так-же поступаем для остальных объектов. Картирование фонарного столба на противоположной стороне улицы.
Снимок экрана от 2015-06-20 21_47_33

 

Навигация осуществляется средствами Google StreetView. «Проезжаем» на несколько метров вперед в обоих окнах просмотра панорам и берем на прицел новый столб.

Снимок экрана от 2015-06-20 21_49_59

 

Иногда, без видимых причин возникает сообщение об ошибке:

Снимок экрана от 2015-06-20 21_51_10

 

Игнорируем его и продолжаем работать дальше.

Снимок экрана от 2015-06-20 21_53_17

 

Ради интереса, попытаемся изменить числа в полях StereoSurveys. Числа ввести можно только корректные. Насколько я понял из общения с Enrico, данные поля позволяют корректировать данные о высоте точки. Первое поле отвечает за высоту камеры над поверхностью земли (2.5 метра), второе за высоту поверхности земли (по умолчанию 0). Эти параметры особенно важны в горной местности с большими перепадами высот и при картировании объектов, находящихся на большом удалении от точек съемки панорам.

Не отвлекаемся и стреляем столбы дальше.

Снимок экрана от 2015-06-20 21_58_20

 

Процесс захватывает.

Снимок экрана от 2015-06-20 22_00_02 Снимок экрана от 2015-06-20 22_04_23 Снимок экрана от 2015-06-20 22_08_46 Снимок экрана от 2015-06-20 22_09_57

 

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

Еще точечку.

Снимок экрана от 2015-06-20 22:13:22 Снимок экрана от 2015-06-20 22:23:21 Снимок экрана от 2015-06-20 22:25:19

 

В результате, мы получаем точечный слой, который планировали. После нанесения всех точек, закрываем модуль и сохраняем полученный слой. Иногда, после закрытия модуля красная и зеленая точки (точки съемки панорам) не исчезают, в этом случае, необходимо отключить модуль через меню-модули-управление модулями-снять галку с чекбокса напротив StereoSurveys и нажать «Закрыть».

Любопытный момент: обычно, снимки привязывают к gps-трекам. Я за всю Одессу говорить не буду, но в OpenStreetMap так и происходит. Думаю в Google тоже. При этом трек рассматривается в качестве центра дороги, что частично верно только для проселочных колейных дорог. Игнорирование понятия полосы дороги, приводит к системной ошибке в координатах до 5 метров (обычно +/- 3 м). Сама по себе, это величина небольшая, часто незначительная на фоне погрешности прибора. Однако, в том случае, если координаты объекта используются для расчетов детерминированных показателей, ошибки могут быть колоссальны. Это категорически запрещает использование популярных веб-проектов для расчета площади секторов, лежащих в створе с известными координатами, анализа видимости объектов, привязки объектов по двум точкам…, боюсь, этот список может оказаться длинным.

Обратите внимание на местоположение фонарного столба на улице Ворошилова.

Карта OpenStreetMap — столб стоит на дороге.

Снимок экрана от 2015-06-20 22:31:49

 

Карта Google. Аналогичное местоположение столба. Так-же, обратите внимание на местоположение дороги, относительно столбов освещения.

Снимок экрана от 2015-06-20 22:31:14

 

Загадка. В какую сторону ехал гугломобиль, если дело происходит в стране с правосторонним движением?

Снимок экрана от 2015-06-20 22:30:49

 

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

Вот карта фонарных столбов, полученная с помощью модуля:

Снимок экрана от 2015-06-20 22:27:30

 

А вот, та же карта, полученная два месяца назад вручную. Ошибки нанесения (дублирование столбов) — налицо.

9

 

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

- Не работает с кириллицей;
- Не хватает угла обзора панорам как в модуле go2streetview;
- Возникает ошибка при попытке переместить точку на карте;
- Не работает кнопка Digitize on map;
- Плагин не реагирует, когда на обоих экранах одинаковый снимок (должно высвечиваться предупреждение);
- Не высвечивается предупреждение, если погрешность больше заданной величины;
- При запуске модуля должны отображаться снимки из текущих координат экстента;
- При наличии таблицы слоев, модуль выходит за размеры экрана;
- Не исчезают точки после закрытия плагина;
- Нет явного объяснения значения чисел и полей ввода в плагине;
- Много времени уходит на масштабирование снимков, не хватает кнопки "сбросить увеличение";
- Не хватает кнопки "назад" для каждого из окон панорам;
- Не хватает кнопки "вперед", перемещающей обе точки;

P.S. Спасибо Enrico Ferreguti за написание такого чудесного плагина. Десять лет назад я говорил, что скоро наступят времена, когда картографы долгими зимними вечерами будут превращать видеозаписи своих летних путешествий в точнейшие карты. Тогда надо мной все смеялись. Теперь, благодаря Enrico, я понимаю, что был прав.

Олипийская символика

Олимпийская символика для города Шахты

Липецк — город металлургов. Население города 510 000 человек, из них в металлургии занято 60 000 человек.
Североморск — город моряков. Население города 50 000 человек, из них моряков — несколько тысяч.
Шахты — город олимпийских чемпионов. Население 250 000 человек, из них олимпийских чемпионов — шесть человек.

Неудивительно, что на фоне руин городского стадиона, громкая фраза о «городе олимпийских чемпионов» вместо гордости вызывает раздражение. Такие вещи нужно преподносить гораздо тоньше и ненавязчивей. Например как на картинке.

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

Чувство прекрасного

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

Фото политеха

— Ну давай уже, доебись к чему-нибудь! — воскликнете вы в нетерпении. Ты же не можешь к чему-нибудь не доебаться!

Ну, хорошо. Раз народ просит, я не могу ему отказать. Посмотрите внимательно на этот ахитектурный охуенчик:

Фото политеха

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

Барельеф

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

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

Хотя, жизненный опыт показывает обратное. Смотрите сами:

Пидарасы с атрофированным чувством прекрасного работают в компании БТК:

БТК на фоне мозаики

Пидарасы с атрофированным чувством прекрасного работают в компании Спорт-Мастер, Априори и DNS:

Универмаг

Пидарасы с атрофированным чувством прекрасного работают в бюро технической инвентаризации на проспекте Клименко:

БТИ Клименко

Пидарасы с атрофированным чувством прекрасного работают в компании X5 Retail Group:

Пятерочка

И не только в ней:

Все в дом

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

Но, позвольте! Даже если это так, почему обязательно вешать очередную блевотную поеботу? Распечатайте тот-же барельеф. Не то что-бы это замена оригиналу, но все-же лучше чем ничего. На крайний случай, если так уж необходим текст, например, если средства на ремонт барельефа выделяются из рекламного бюджета, расходы которого компенсируются бесплатной рекламой на фасаде (что-то я тут перегибаю), то почему обязательно заставлять всех страдать?

Что это, блядь, за говно: «ЮРГТУ (НПИ)»?  Вы, это произнести пробовали? Допишите тогда уже ГОУВПО, пусть все думают, что у нас китайцы живут.

Казенные аббревиатуры — зло. По бумагам ваша организация может иметь ту аббревиатуру, какую вам угодно, хоть ЕПРСТЕКЛМНГНИИдА. Но тех, добоебов, которые крепят такое говно на фасад следует насаживать на головные части ракет и отправлять в космос ко всем хуям с нашей матушки-Земли.

Вот вам напоследок пример того, как можно-было бы поступить с этой вывеской. Пример далеко не самый удачный, но даже такой, состряпанный за несколько минут на коленке, выглядит по сравнению с оригиналом как МИГ-29 в сравнении с бумерангом.

Альтернатива баннеру

Чудище капустное

Чудище капустное

Вот и наступил долгожданный день города! Да кому я вру, хрен кто его ждал и в целом тот еще праздник, но бутылочку взять надо. И по центру пройтись, баб за жопы пощипать, а не повезет, так и просто свет посмотреть, да себя показать. Благо, бабы шмотки нарядили поприличней, а мужики, даром, что с утра второй пузырь досасывают, а все-ж таки побрившись и во всем нарядном. Поздравляют друг друга все. Как-никак, не просто день города, а еще и день шахтера. Одним словом — выходной.

Вот и я, проснулся и сразу чувствую — праздничный день. Встал с дивана, откушал блинов давешных, в «пятерочке» купленных, да чаем запил. Книжку дочитал, что неделю мучал и чувствую, что хватит дома сидеть, пора и в праздник окунуться. Благо на сегодня выставка предпринимателей назначена на «Арбате», очень на нее сходить хотелось. Вот так, не стал жопу плющить, а встал и поехал. И не зря поехал. Хотя, если вы эпичных приключений ждете, то не будет их. Лучше сразу статью закрывайте, да идите винище с пивищем закупать.

Приехал я к солдату и сразу по Шевченко пошел. До сих пор не понимаю, какой мудак, предложил улицу Шевченко Арбатом называть? Уж лучше сразу «Брайтон Бич» или еще как, покрасивше. Но, улица и впрямь красивая. Честно. Рядом улицы — полное говно, а вот эта красивая. А сегодня особенно — шарики везде понавешаны, и плакаты. Да детей куча — материшься и то про себя. Вот она какая сила — праздник!

Выставка предпринимателей

И похер, что выставка четыре часа идет. Все-равно мероприятие стоящее. Ну и что, что говно. Ну и что, что делать там нечего. Ну и хрен с ним, что у нас и предпринимателей то в городе считай нет, а экономика городская как сопля в портянки кутанная, зато красота-то какая!

Арбат

А с коммерсами и в самом деле туго. Ну, бабки-процентщицы, ими, почитай пятая часть улицы усеяна. Все свои микрозаймы предлагают. Эх, не в то время Достоевский родился. Жил бы сейчас, так по роману в неделю бы писал. Вот тебе «преступление», а вот тебе «наказание», идиот ты эдакий.

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

Пеноблоки

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

Выставка песчаник

Пищевики, конечно, на выставке, куда без них. То мед, то хлеб, то еще какая закусь. А один чего удумал: Настругал капусты, гору целую. Опосля огурцов порезал и колбасы, да налепил те огурцы с колбасой на капусту, ну чисто глаза. А заместо носа, моркву вставил, как у снеговика. Такое чудище капустное вышло, ну просто заглядение. Хоть сейчас стакан холодненькой наливай, из бошки у чудища пальчиками капустку бери, да закусывай, закусывай!

Чудище капустное

Закусывать-то закусывай, а меру знай. Ибо нехер свинячим рылом своим детей пугать. Праздник в городе. Даже мусарня вся при параде. А дубинки у них, вот не вру! Ей-богу не вру! Дубинки у них в белые листы оборочены, дабы по праздничному было! Значится и пиздить сегодня будут по особому. По-праздничному! Вот она сила-то какая, праздник!

Дубинка в бумаге

Даже не удержался. Как домой прибыл, так решил, со стула не встану, а разработаю таки дубинку для таких дней. Пусть пиздят меня по праздничному со всеми почестями! А как разработал, так, сразу выпил литра три пива и письма сел писать. Первое, конечно, в МВД России, самому главному нашему мусору:

Уважаемый Колокольцев Владимир Александрович!
Обращаем Ваше внимание, что в праздничные дни ваши сотрудники оборачивают полицейские дубинки в белую бумагу (фото 1), что вызывает насмешки у граждан и неуважение к сотрудникам правопорядка.
Предлагаем использовать на праздничных и торжественных мероприятиях дубинки, разработанные в нашей дизайн-студии (фото 2).
Надеемся, что тем самым мы внесем свой скромный вклад в укрепление государственности России.
С Уважением, Сергей Голубев
CAFCO GROUP
+7 951 841 66 96

Ну, а потом, как водится и сайт активного горожанина вниманием не обошел. Вот такие вирши туда накатал:

Обращаем Ваше внимание, что в праздничные дни сотрудники полиции оборачивают полицейские дубинки в белую бумагу (фото 1), что вызывает насмешки у граждан и неуважение к сотрудникам правопорядка.
Предлагаем использовать на праздничных и торжественных мероприятиях дубинки, разработанные в нашей дизайн-студии (фото 2).
Надеемся, что тем самым мы внесем свой скромный вклад в укрепление государственности России.
С Уважением, Сергей Голубев
CAFCO GROUP
+7 951 841 66 96

Копия письма направлена Министру МВД России Колокольцеву Владимиру Александровичу

От министра, кстати, не какое-то спасибо пришло, а целая эпитафия с номером:От министра МВД

Будем ждать. Ждать будем. Вот хотел уж забыть, да вспомнил вовремя, чего удумал. Раз уж тяжко так мусорам нашим, то и дубинку им изобрел праздничную, что-б пиздить по праздничному и срамной бумагой никого не оборачивать. О том и письма в инстанции послал. А выглядеть эта дубинка, по моему разумению так должна:

дубинка парадная

Вот как пить дать. Пиздят тебя такой дубинкой и чувствуешь, что не мудак ты последний, а патриот. Да к тому же праздник и все в груди подымается. Дашь на отмашь в рыло ему, получай мол мусор сраный, а он тебе в ответ дубинкой по почкам, да не простой, а белой, праздничной, парадной. И вроде как уважение тебе оказывает. Вот она какая сила — праздник!

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

Сельхозтехника на Арбате

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

Толстая баба выступает

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

У театра Пласт

И ведь не лень же рядиться в такие лохмотья. Даже мысль шальная проскользнет, а не сходить ли на спектакль. А потом пересмотришь видео и все как рукой снимает. Ну их нахуй с таким театром!

Но о том ли я речь веду? Про театр я что-ли говорить тут решил? И вовсе нет. Праздник, он ведь везде праздник. От того я и с Шевченко свернул и к Ленину пошел прямиком. К площади то есть. Если уж и быть празднику то где, как не на центральной площади?

Пока до площади шел, мальчонка подбежал, визитку сунул. И уж я обрадовался, вот мол какое, такси, сообразили, чем меня пронять, как вижу стоит ихняя труповозка, да с плакатом таким:

Такси реклама

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

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

Уебанские хуйни

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

Квасной ларек

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

Тут, конечно, надо сказать, а то хер, кто помнит уже. На Советской, что напротив памятника, отродясь два фонтана было. Но, кто при кончине совка родился, тот о них слыхом не слыхивал, потому как фонтаны, как только пиздец пришел, так и отключили. А больше и не включали никогда. И вот, решили, что пора хоть один запустить. А как запустить, если тот за двадцать лет паутами оброс? У нас же как? Мы ж не могем фонтан заново открытиь, дабы лился и прохожим кайфень дарил и круть неземную. Тут ведь не в фонтане дело. Тут дело в том, что-бы выебнуться поэпичнее. А как выебнешься, если ты только и сделал, что кран, двадцать лет назад закрытый открыл? Ясно дело, никак. Ну вызвали, архитектора, ежа ему в жопу и заебенили фонтан как в столичных магазинах: вессь плиткой ухуячен, да фонари снизу горят. А то, что такой фонтан, в архитектурно-историческую концепцию не лезет как рог в пизду, всем похуй вообще. Да и то, что второй фонтан, как злоебучее назидательство стоит сухой, но по прежнему пиздатый, всем похуй. А ведь искусство, оно такое, бля. Не мешает и прислушаться. Да сами сравните.

Вот фонтан старый. Тот, который еще не обновляли. Думаете, если наполнить водой будет красиво? Ошибаетесь! Будет охуенно!

Фонтан старый на Советской

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

Блядь на выданье

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

Фотографирую обезъян

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

Жопа сцены

Да не думаю, что спереди Ильичу бы больше понравилось. Ну чистый капитализм. Хотя прикольно. Так и видится, будто Ленин спрашивает: «Что, блядь, это за говно, батенька?»

Сцена с переду

Но Ленин на то и великий мужик и тулово его не зря по всем площадям понапихано. Оно ж как. Вроде все говно. Кругом. Беспроглядное. И вроде сам Ильич рукой показывает, мол, еб вашу мать, что-ж за хуйню вы тут учудили? А отойдешь чуть в сторону, сменишь ракурс и смотришь, а Ленин то и сам, вроде как заинтересованность проявляет. И даже, как бы это сказать, возбужденность, что-ли.

Ленин с хуем

Вот она, сила-то какая — праздник!

И вообще. Уж кому-кому, а Ленину на происходящее грех жаловаться. Он же живее всех живых. Да-да. Идешь ты такой себе по улице, на баб смотришь, али жрешь чего, а может в мысли свои погряз, а тут, хуяк! Ленин ни с того, ни с сего: не желаете мол, в пейнтбол рубануться? Ужно зассали?

Все на пейнтбол

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

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

Дубинки для детей

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

Парень-киска

И вот пока думал я так, думал, опять на Шевченко улице очутился. прямо наваждение какое-то. А с другой стороны, как иначе то, если улицы меж собой соединены?

А на Шевченко, то и выставка уже проходила к тому времени. Собиралися все, вещи упаковывали. Газоблоки свои по карманам распихивали, да бабье, мазьи свои в сумки пихало. И был бы я не я, и себе бы такое не простил, если бы картину такую не заснял. Оно вроде как и странного ничего нет, а любо-дорого посмотреть.

Короче, как пел Гребенщиков: «Да будь ты хоть лада калина, хоть лада приора, хоть лада гранта, а все-равно стоять в пробке»

Пробка из лад

Зато конный транспорт, не подводит как столетиями возили лошадки людей, так и сейчас возят родимые:

Коняшки на Арбате

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

Нет, хуйня, какая-то получается. Может не кормили лошадей-то? Да как же угадаешь, через сколько ей срать-то приспичит? И опять же посадишь на такую лошадь Петю, а та, с голодухи, да и хвать его за ебло, по научному говоря, личико. Опять-таки непорядок. Может в жопу лошадям кляп какой вбит… Но уж лучше я про это не буду. Сойдемся на том, что не срут местные лошади в праздник. И тротуар потому читстый. Сами посмотрите какой чистый, нигде лошадиного говна нет. А потому, что вот она, сила то какая — праздник!

Плитка без говна

А окромя лошадей и смотреть то к тому времени не на что было. Закончилась выставка. Все что и осталось, так пищевеки, что медом, да припасами торговали, бетономешалка, а куда-ж ей нахрен деться, да выставка с растениями всякими. Вроде как ладшафтное искусство. Хотя окромя деревьев никакого искусства там не было, да и деревьев маловато. Но зато арка дубовая, это, я вам скажу не хер в ночи. Это ребята, ого-го! От такой, бы думаю, сам Геббельс малафьей бы брызгался и в пример приводил.

Дубовая арка

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

А только о том, как я по парку ходил, я уж не буду рассказывать. Давно у меня к праку претензии имеются, вот все скопом и изложу. Да и время сейчас позднее. Я пока все эти воспоминания излагал весь праздник то и пролетел. Уж пятый час, как осень на дворе. Через три часа на работе надо быть, засиделись мы что-то. Оно ж и понятно: выходной, да день шахтера, да день города, да лета последний день. Разве тут уснешь?

Вот она сила то какая — праздник.