NextGIS Mobile

Чем плох NextGIS Mobile

Ребята из компании НекстГИС решили устроить 26 сентября большую презентацию, посвященную своим продуктам. Как только мне пришло письмо об этом, сразу понял — пора написать пару строк про их программу для сбора полевых данных NextGIS Mobile. Год назад я впервые установил ее и с тех пор она прошла дендроинтвентаризацию парков Нижнего Новгорода, Чирскую географическую экспедицию, сплавы по рекам Сухой Донец, Ижора и Великанйоки, составление геологической карты южной и средней Карелии, многочисленные рыбалки и путешествия.

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

Список построен по степени убывания трешовости встреченных багов. Смартфон Lenovo A2010-a. Android 5.1

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

2. Не грузится тайл, соответствующий текущему местоположению. Прямо как специально: вся карта подгружается, а фрагмент, который необходим — нет.
NextGIS Mobile

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

6. После обновления в начале августа перестало работать измерение расстояний. Все излечилось установкой apk-файла с сайта nextgis.ru, но в начале сентября и по сей день линейка опять не работает.

5. Информационный указатель плохо работает на полигональном слое. Вместо выбранного полигона выделяется что угодно.
NextGIS Mobile

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

7. Маркер текущего местоположения иногда закрывает карту, в результате приходится идти наугад и часто в неправильном направлении.

На этом список недовольства исчерпывается и начинается список пожеланий. Опять-таки в порядке убывания необходимости.

1. Чрезвычайно не хватает возможности подгрузки растров или mb-тайлов. Приходится переводить все в вектор, а это долго, дорого и не всегда возможно.

2. Часто требуется закешировать карту вдоль маршрута движения или какого-нибудь протяженного объекта. Сейчас приходится загружать огромную лишнюю область, что при медленном интернете создает массу проблем.

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

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

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

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

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

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

9. Если выбрано расстояние между объектом на карте и текущим местоположением, это расстояние должно изменяться при движении, причем желательно указывать не только расстояние, но и азимут. Это особенно важно для случаев, когда азимуты необходимо фиксировать точно.

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

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

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

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

14. Смещение подложки. Оно необходимо даже не столько для OpenStreetMap, сколько для работы с данными, которые готовили криворукие инженеры. Из-за хронической проблемы СК42-WGS84 точки постоянно оказываются не на своем месте и расчет, скажем, расстояния между обнажением и мостом на карте превращается в пытку.

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

16. Иногда таблицу атрибутов требуется отсортировать. Сейчас это невозможно

17. Еще иногда в таблице атрибутов необходимо что-то найти контекстным поиском. Сейчас это то же неворзможно

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

19. При точном определении местоположения ошибку измерений всегда приходиться устанавливать заново. Запомнить, что я всегда использую CE 98 программа пока не умеет.

20. На карте невозможно выставить красивый стандартный масштаб, скажем 1:100 000. Мне это не требуется, но коллеги сетовали, что без этого у них в жизни счастья нет.

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

И жить всем сразу станет намного легче.

Несколько полезных улучшений для возрастного бурава Haglof

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

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

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

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

Если есть такая потребность — на ручке бурава можно нанести не сантиметры, а сразу двух — и четырехступенчатую шкалу:
Четырехступенчатая шкала на ручке бурава

Шкалы лучше наносить аккуратно, используя масляную краску, поскольку даже перманентный маркер имеет обыкновение стираться, что уже после пяти-десяти кернов делает линейку почти незаметной:

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

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

Да, и еще. Если вам предстоит бурить старое, толстое и, вероятно, гнилое дерево, то после того как выбрано направление бурения и колонка ушла на глубину 2-3 сантиметра, воткните в отверстие тыльной части колонки небольшую веточку (можно даже иметь для этого специальный небольшой чопик). В девяносто девяти случаях из ста, он вам не потребуется. Но зато однажды вы не обнаружите себя облитым мощным потоком воды, льющимся из просверленного вами дупла, что случилось со мной однажды в момент бурения липы на Новодевичьем кладбище. Да и в недавней поездке по Чиру мы таких деревьев встретили немало:
Дупло, просверленное возрастным буравом

Поздравляю. Только что ваш скилл обращения с возрастным буравом возрос до уровня «готов преподавать магистрам лесного дела».

Красная Книга Ростовской области

Красная Книга Ростовской области

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

Меня эта ситуация заебала и я оцифровал оба тома Красной Книги Ростовской области, векторизовав положение всех охраняемых видов растений и животных, присвоив им атрибуты таксономии, охранного статуса и ссылки на приложенные в тексте изображения. Все это скомпоновал в две карты на основе leaflet.js, добавил несколько полезных плагинов, подгрузил подложки OpenStreetMap, спутник от Mapbox и залил на свой сервер для общего доступа.
Красная Книга Ростовской области

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

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

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

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

Код для вставки карты краснокнижных видов Ростовской области на любой сайт выглядит так,

Животные:

<iframe src="http://городшахты.рф/maps/1704_redbook61/animals/index.html" width="800" height="400" frameborder="0" allowfullscreen="allowfullscreen"></iframe>

Растения:

<iframe src="http://городшахты.рф/maps/1704_redbook61/plants/index.html" width="800" height="400" frameborder="0" allowfullscreen="allowfullscreen"></iframe>

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

У меня все. Пойду чайку сбацаю.

Визуализация рельефа по данным SRTM и ASTER GDEM в QGis+SAGA

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

В качестве показательной территории взяты Соликамский и Красновишерский районы Пермского края. В качестве подложки карта OpenStreetMap Mapnik Standart:
Соликамск и Красновишерск

Инструментом для работы послужит QGis 2.18.4 с подключенными алгоритмами SAGA. Все операции, связанные с фильтрацией и созданием изолиний можно выполнять как внутри QGis, так и запуская гис SAGA в качестве автономного приложения.

Рельеф на средне- и крупномасштабных картах в настоящее время в большинстве случаев отображается с помощью данных SRTM или ASTER GDEM, что связано с их глобальным охватом, открытостью и простотой получения. Разрешение этих данных (SRTM 90 м/пикс, ASTER GDEM 30 м/пикс) позволяет, при должной обработке, показывать особенности рельефа примерно до 15 зума. Несмотря на то, что данные ASTER точнее, их использование затруднено необходимостью дополнительной фильтрации для отсеивания значений, не отражающих реальный рельеф (например, высоты леса и жилой застройки). Оптимальных алгоритмов для такой процедуры, которые дают стабильный результат для значительной территории, не разработано, в результате чего, образец визуализации менее точных данных SRTM оказывается обычно более качественным как с геодезической, так и с художественной точек зрения. Однако, севернее 60° с.ш. и южнее 54° ю.ш. данные SRTM отсутствуют, что вынуждает в конечном итоге использовать оба набора данных при визуализации рельефа на территориях, выходящих за границы покрытия SRTM.

Наш случай именно такой (снизу данные SRTM, сверху ASTER GDEM):
ASTER и SRTM

Данные SRTM доступны из различных источников, из которых наиболее удобны сайты cgiar, gis-lab и viewfinderpanoramas. Я предпочитаю использовать последний, поскольку многие сцены там объединены и загружены сразу в geotiff-растры (обычно SRTM представлен в hdt-формате).

ASTER получить немного сложнее: сайты геологической службы США и NASA позволяют скачивать различные данные ДЗЗ, что требует от пользователя определенной подготовки. Кроме того, эти сайты иногда бывают недоступны, либо работают чрезвычайно медленно. В этих случаях можно скачать всю базу через торрент. Дополнительные источники получения данных SRTM и ASTER доступны на странице получения данных.

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

После того как исходные получены, можно запускать QGis:
ASTER и SRTM в QGis

Для начала объединим сцены ASTER в единый растр с помощью меню «растр-прочее-объединение»:
1объединение растров

В диалоговом окне укажем директорию со сценами и название итогового файла.
2объединение растров

Обратите внимание, что в некоторых версиях GDAL отказывается работать, если пути к файлам содержат кириллические символы. В моем случае все прошло успешно:
3объединение растров

Теперь сохраним полученный файл уменьшив его разрешение до разрешения SRTM. Если этого не сделать, в месте соприкосновения сцен из разных источников мы получим вот такую картину:
рельеф SRTM и ASTER

Выделяем в ТОСе наш ASTER, и через правую кнопку мыши вызываем диалоговое окно сохранения растра:
Сохранение растра в QGIS

Здесь обратите внимание на то, что-бы растр сохранялся как данные. Разрешение уменьшаем в три раза, т.е. вместо 18001 столбца вписываем 6000, а вместо 7201 строк вписываем 2400:
Сохранение растра в QGIS2

После сохранения растра он выглядит загрубленным, но все-равно более информативным, чем SRTM:
Сохранение растра в QGIS3

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

По той-же схеме объединим полученный растр с растром SRTM:
DEM-композит

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

image

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

Откроем панель инструментов в меню «анализ данных» и в списке геоалгоритмов SAGA-Grid-Filter выберем алгоритм «Простой фильтр»:

После нескольких минут обработки, алгоритм выдаст сглаженный растр:
отфильтрованный растр

Его мы и будем использовать для отмывки. С помощью меню «растр-морфометрический анализ-теневой рельеф»:

вызовем диалог создания карты теней:

На этом этапе следует знать одно неявное правило. В том случае, когда вы планируете использовать теневую отмывку в качестве подложки саму по себе, можно использовать значения по умолчанию. В том случае, когда ваша отмывка ложится на некую базовую карту (в нашем случае, такой картой служит OpenStreetMap), следует повернуть источник освещения на сто восемьдесят градусов. Дело в том, что стандартная отмывка представляет собой темный растр, который при наложении не только перестает читаться, но и зашумливает перекрываемые слои. Для того, что-бы это избежать, отмывку следует инвертировать, но в этом случае, горы выглядят как впадины, а каньоны напоминают холмы. Учитывая это, мы заранее изменяем источник освещения, что позволит нам при инвертировании сохранить визуальную форму отмывки. По умолчанию, источник освещения расположен в районе трехсот градусов, чего, конечно-же в природе почти никогда не бывает. Еще Салищев указывал на эту особенность — привычная отмывка рельефа обязана своему появлению лампам, которые обычно устанавливали слева от кульмана. Мы поменяем значение «300» на «120» и через несколько секунд алгоритм выдаст нам вот такой результат:

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

Через меню «растр-извлечение-обрезка»

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

В результате получим вот такую картину:

Двойным кликом по полученному растру в ТОСе вызовем меню свойств, где сменим градиент с «от белого к черному» на «от черного к белому». После применения изменений растр инвертируется. В месте сочленения данных ASTER GDEM и SRTM осталась небольшая белая полоса, однако, после того как будет установлена прозрачность, а сама отмывка наложена на подложку, заметить эту полосу будет практически невозможно:

Для того, что-бы не инвертировать растр при каждой новой загрузке, сохраним его как новый слой, но на этот раз в меню сохранения отметим его не как «данные», а как «изображение». На этом создание отмывки закончено. Установим прозрачность отмывки 95% и подложим под нее OpenStreetMap:

Так выглядит чистая карта OSM:

А так выглядит карта OSM с наложенной на нее картой теней в районе соприкосновения данных SRTM и ASTER:

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

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

С практической точки зрения эта проблема решается так. Создадим временный полигональный слой:
Новый временный слой2

Сделаем его редактируемым (иконка желтого карандаш), после чего установим режим добавления нового объекта
Редактирование в QGis

и обведем один из районов:

Сохраним фрагмент растра для этого участка (не фильтрованного растра, а исходного, мы же усложняем себе задачу!), обрежем его по обведенной области и отфильтруем с теми же параметрами, что и при создании отмывки. Затем с помощью геоалгоритма SAGA-Shapes-GRID-Горизонтали по ЦМР создадим изолинии через каждые 50 метров высоты.

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

Отчетливо просматривается линия сочетания данных ASTER и SRTM. При различных способах фильтрации растра ASTER GDEM эту линию можно делать более или менее заметной о чем я упоминал в начале данной статьи.

Изолинии из отфильтрованного растра на этот район выглядят так:

На границе растра изолинии замыкаются и не несут в себе географического смысла. Такие участки в последующем будут удалены. Именно поэтому обрезка dem-растра производилась нами не по границе района а по внешнему слою.

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

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

После того, как изолинии извлечены, остается только обрезать их по контуру границ, сохранив оригинальные значения атрибутов изолиний. Для этого успешно применяется алгоритм «SAGA-Shapes-Lines-Пересечение линий и полигонов»:

Небольшая настройка стиля и изолинии готовы:

Обычная карта OpenStreetMap:

Тот же фрагмент карты, но с наложенной картой теней и горизонталями:

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

Данная проблема не имеет однозначного механистического решения. Наиболее оптимальные способы ее устранения зависят от требований к визуализации, выбранного региона и доступной вычислительной мощности. В качестве одного из способов решения я предлагаю использовать последовательное применение фильтра DTM (предельный уклон местности 10 градусов, радиус поиска 2 пикселя), заполнение пропусков в образованном в результате DTM-фильтрации растра (порог напряжения 10) и последующая фильтрация простым фильтром (круговой режим поиска, гладкий фильтр, радиус 5px). Этот метод не позволяет полностью избавиться от артефактов, но существенно снижает их число и сглаживает, что определенно положительно сказывается на визуализации рельефа:

Карта OpenStreetMap без отмывки и изолиний:

Карта OpenStreetMap с отмывкой и изолиниями:

Ладожское озеро

Открытие летнего сезона

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

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

Зимний сезон лучше закрывать рано, чем подо льдом, но хули дома сидеть? Тем более, что впереди сложная экспедиция, а у меня половина оборудования новая, ни разу в реальных условиях не испытывалась. Кстати, спасибо вам за дельные советы по поводу его приобретения. Правда половину того, что вы предложили в магазинах хер найдешь, а вторая половина стоит как полет на Марс, но пару идей я таки извлек и заимел себе внешний аккумулятор на 15000 мАч, экшн-камеру X-Try xtc200 и к ней телескопическую палку-копалку:
экшн-камера

Собственно, ее я и отправился испытывать. Взял спиннинг, выпил бутылочку пивка и с первой электричкой укатил на Ладожское озеро.
Первая электричка на Ладогу

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

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

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

Похрен, что руки без рукавиц мерзнут, зато летний рыбацкий сезон можно считать открытым.
Заброс спининга

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

над водой
над водой

между волнами
Между волнами

во льду
во льду

под водой
под водой

в лесу
в лесу

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

К чему я вообще вам все это рассказываю? Я же только хотел вам видос отснятый показать. Тридцать секунд весны на Ладожском озере:

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

спугнуть с сосны четырех глухарей и разглядывать как сношаются филиколистные ивы:
ива сношается

А тут еще мой старый, проверенный жизнью фотоаппарат излечился от ужасного темного пятна на снимках:

Отличная была зима. Да и весна начинается неплохо.