Окуни на льду

Живые и неживые диссипативные системы

Интро: ниже выкладываю фрагмент одной из черновых глав скромной монографии «Живые системы в растительности», которую я писал в бытность моей работы кочегаром, в перерывах между колкой дров, чисткой котлов «Комби», путешествием вокруг Красной Горы в Морровинде, написанием кода на C++, работой в лесу, подготовкой картографических материалов по рекам Лава и Рагуша, урочищу Донцо и озеру Ястребиному, сном, варкой пельменей, просмотром прогноза погоды по телевизору и беспрерывным распитием всего ассортимента алкогольной продукции, который только можно было достать ночью на окраине поселка Песочный. Поэтому, хватит предисловий. Сразу перехожу к сути вопроса.

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

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

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

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

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

1. Образование нового
2. заложение структуры
3. развитие по пути наименьшего сопротивления
4. выбор между равновозможными вариантами
5. влияние на собственную структуру
6. взаимодействие с внешним миром
7. Образование нового

Упростим эту схему развития с объяснением причин исключения этапов:

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

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

0. Образование нового
a. Заложение структуры
1. Развитие по пути наименьшего сопротивления
b. Выбор между возможными вариантами
2. Влияние на структуру

Заложение структуры – это тоже выбор между возможными вариантами, а влияние на структуру есть образование нового. Следовательно, развитие систем можно представить в виде схемы:

0. Образование нового
a. Выбор между возможными вариантами
1. Развитие по пути наименьшего сопротивления
b. Выбор между возможными вариантами
2. Образование нового

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

Образование нового

Или, соответственно:

Образование нового2

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

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

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

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

Такое деление полностью согласуется с теорией возникновения жизни из неживого субстрата (А.И. Опарин).

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

консоль WMS-сервера

Установка и настройка OGCServer-master

В прошлый раз мы подняли свой TMS-сервер на базе mapnik. Самое время развернуть на той-же основе свой WMS. Для этого, мы используем библиотеку OGCServer-master написанную Жаном Франсуа Дойоном. Библиотека написана на питоне специально под мапник со следующими ТТХ:

— Поддерживает WMS 1.1.1 и 1.3.0
— CGI/FastCGI, WSGI, mod_python
— Поддерживает все 3 запроса: getcapabilities, getmap и getfeatureinfo
— Выходные файлы в формате JPEG и PNG (только PNG256)
— Обрабатывают ошибки XML/INIMAGE/BLANK
— Поддерживает несколько именованных картографических стилей
— Поддерживает перепроецирование
— Поддерживаются метаданные слоя: title, abstract
— Существует возможность запросить все слои с помощью LAYERS=__all__

При использовании библиотеки следует помнить, что Getfeatureinfo поддерживает только простой текст, не поддерживаются 8-битные растры png (только 256 цветов) и для CGI/FastCGI должна быть доступна запись tempfile.gettempdir() (обычно пишется в «/tmp»). Кроме того, OGCServer-master требует установленных питоновских зависимостей мапника, питоновскую библиотеку для визуализации PIL и модули jonpy.

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

sudo python setup.py install

У библиотеки OGCServer-master есть ряд подводных камней о которых желательно знать до установки. Во-первых, перед установкой рекомендуется исправить имена и заголовки WMS, поскольку их дефолтные значения содержат в себе пробелы. QGis такие записи воспринимает нормально, но у других программ (например, FME) по этой причине могут возникать проблемы с загрузкой WMS-слоев. Для исправления, следует внести правки в шесть файлов из директории ogcserver. Исправленные строки в файлах (прописано «newname») будут выглядеть так:

Файл OGCServer-master\ogcserver\default.conf (2 правки):
Строка 95: wms_name = newname
Строка 98: wms_abstract = newname
Файл OGCServer-master\ogcserver\wms111.py (2 правки):
Строка 147: rootlayertitle.text = 'newname'
Строка 154: rootlayerabstract.text = 'newname'
Файл OGCServer-master\ogcserver\wms130.py (2 правки):
Строка 154: rootlayertitle.text = 'newname'
Строка 161: rootlayerabstract.text = 'newname'

Во-вторых, OGCServer-master более чувствителен к xml-файлу стиля чем сам мапник. Это значит, что при наличии ошибок в файле стиля, которые при старте рендеринга TMS проигнорируются, например line-opacity, сервис WMS не запустится, а выдаст ошибку с указанием всех строк, подлежащих исправлению. С одной стороны, это требует более тщательной работы над стилем, с другой стороны, позволяет легко отловить ошибку. По этой причине, я использую OGCServer-master даже в тех случаях, когда требуется исключительно создание TMS.

После установки, запустить WMS можно с помощью команды

ogcserver путь_к_стилю.xml

Если вы работаете через ssh, можете прописать перед командой запуска «nohup» для того, что-бы после разъединения сервер продолжал работать. После этого можно запрашивать слои в браузере командой:

http://localhost:8000/?LAYERS=__all__&STYLES=&FORMAT=image%2Fpng&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS=EPSG%3A3857&BBOX=-20037508.34,-20037508.34,20037508.3384,20037508.3384&WIDTH=256&HEIGHT=256

Либо, через стандартный интерфейс QGis или любой другой программы.

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

Геоданные

Коллекция геоданных

Мелкомасштабные векторные данные о России

Шейп-файлы с атрибутивными данными для создания мелкомасштабных карт. Средний размер файла 0.5 мб.

Теневая отмывка рельефа регионов России

Азимут освещения 300 градусов, высота источника света 40 градусов. Файлы распространяются в формате GeoTIFF. Размер одного файла около 50 мегабайт.

Горизонтали регионов России

Интервал между горизонталями 10 м (данные о высоте указаны). Шейп-файлы размером 30-80 мб.

слиппимап

Установка тайлового сервера на Debian 8 Jessie

Введение

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

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

Если вам требуется изменять наполнение карты путем включения/отключения какого-либо слоя, без WMS не обойтись. Но с другой стороны TMS проще, быстрее и в большинстве случаев предпочтительней, поэтому мы начнем именно с него.

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

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

 

Инструменты

Операционной системой для этих опытов послужит Linux Debian 8 Jessie. TMS будем разворачивать на библиотеке mapnik. Облигантных инструментов для этой работы нет. Под виндой я обычно использую TotalCommander Grey Pack (спасибо за него диаволу на пятнашке) с плагином Secure FTP Connections и программу Putty. Под линуксом я юзаю тильду для ssh-соединения и любой вменяемый файловый менеджер с поддержкой сетевого соединения.

Итак, погнали. У нас в наличии ssh-доступ к серверу с девственно чистой Дебиан Джесси. Рекомендую сразу установить консольный редактор nano:

sudo apt-get install nano

и консольный файловый менеджер mc:

sudo add-apt-repository ppa:eugenesan/ppa
sudo apt-get update
sudo apt-get install mc

Это не обязательно, но поверьте, потом еще не раз пригодится.

 

Установка и создание базы данных

Начнем с установки пакетов postgresql-9.4-postgis-2.1 и postgresql-contrib-9.4

Входим под рутом и запускаем:

apt install postgresql-9.4-postgis-2.1 postgresql-contrib-9.4

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

su postgres

и для избежания возможных проблем переходим к домашней директории:

cd ~

Создадим пользователя c именем «osm»:

createuser osm

и базу данных с названием «map»:

createdb -E UTF8 -O osm greatbritain
psql -c "CREATE EXTENSION hstore;" -d map # Should result in CREATE EXTENSION
psql -c "CREATE EXTENSION postgis;" -d map # Should result in CREATE EXTENSION

Если все прошло удачно, выходим из постгреса:

exit

 

Добавление пользователя

Для того, чтобы избежать работы под рутом, добавим в систему пользователя osm с помощью команды adduser:

adduser osm

Теперь добавим пользователя osm в группу sudo. Для этого воспользуемся редактором nano (вы же его установили, верно?)

su вводим пароль
nano /ets/sudoers
Находим строку
# User privilege specification

после

root ALL=(ALL:ALL) ALL

вставляем строку

osm ALL=(ALL:ALL) ALL

и сохраняем документ последовательностью хоткеев ctrl+o, Enter , ctrl+x

 

Импорт картографического стиля

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

su osm
cd ~
wget https://github.com/gravitystorm/openstreetmap-carto/archive/v2.29.1.tar.gz
tar -xzf v2.29.1.tar.gz

Теперь в домашней директории должна появиться папка с названием: Теперь вы должны иметь папку с названием «openstreetmap-carto-2.29.1». После этого можно переходить к импорту геоданных.

 

Импорт геоданных

Нам потребуется пакет osm2pgsql. Для этого переключимся на рута и выполним команду:

exit
apt install osm2pgsql

Теперь можно переходить непосредственно к импорту dbf-файла с данными. Самое простое решение — это импортировать всю планету OpenStreetMap целиком. Но у такого подхода есть очевидные недостатки: во-первых, объем диска у вас не безграничен, во-вторых, даже на простое скачивание планеты может уйти изрядное количество времени, а в третьих, информация о улицах какой-нибудь Зулусии вам может быть совершенно не нужна. Приходится вырезать нужный регион из дампа самому, либо использовать готовые данные. Сейчас их можно получить у  GeoFabrik, CloudMade или Гис-лаб (НексГИСа). В выгрузке геофабрики напрочь отсутствовали реки. В выгрузке НексГИСа отсутствовали части объектов, пересекаемые государственной границей, из-за чего некоторые пограничные озера при рендере пропадали, но острова на них закрашивались цветом воды. Выгрузки регулярно обновляются, так что это вполне могут быть временные случайные баги. С выгрузками CloudMade я активно не работал, поэтому комментарий дать не могу.

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

su osm
cd ~
wget href="http://data.gis-lab.info/osm_dump/dump/latest/RU-ROS.osm.pbf"

Теперь импортируем скачанные данные в постгрес. Делается это так: запускаете команду:

osm2pgsql --slim -d map -C 1600 --hstore -S openstreetmap-carto-2.29.1/openstreetmap-carto.style RU-ROS.osm.pbf

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

Иногда на данном этапе возникают следующие проблемы:

Error: Connection to database failed: could not connect to server: No such file or directory

Тут, возможно, вам пригодиться фраза из оригинальной статьи: «Is the server running locally and accepting connections on Unix domain socket «/var/run/postgresql/.s.PGSQL.5432»?

Кроме того, если вы установили PostgreSQL 9.3 вместе с 9.1 на 9.3 может быть использован другой порт. Необходимо найти его и использовать флаг -p, при запуске osm2pgsql.

Поздравляю. Вы заполучили базу OpenStreetMap на выбранный регион. Проверить это можно командой:

psql -d map -c "select name from planet_osm_point where place='city';"

 

Создание тайлового сервиса

Установим пакет mod_tile. Пока он недоступен в репозитории Дебиан, поэтому нам потребуется предварительно скачать его с гит-хаба и распаковать в домашней директории:

wget https://github.com/openstreetmap/mod_tile/archive/6c2cb243e4c8b047950ab8062cd66245f20a5d2f.tar.gz -O mod_tile.tar.gz
tar -xzf mod_tile.tar.gz

Теперь установим пакеты autoconf, libtool, libmapnik-dev и apache2-dev:

su
apt install autoconf libtool libmapnik-dev apache2-dev
exit

Перейдем в каталог mod_tile и запустим:

cd mod_tile-6c2cb243e4c8b047950ab8062cd66245f20a5d2f/
./autogen.sh
./configure
make

Теперь запустим из под рута следующую команду:

su
make install
make install-mod_tile
exit
cd ..

 

Создание xml стиля Mapnik

Нам потребуются пакеты curl, unzip, gdal-bin, mapnik-utils и node-carto, для установки которых выполним под рутом:

su
apt install curl unzip gdal-bin mapnik-utils node-carto
exit

Вернемся в пользователя osm и загрузим необходимые шейп-файлы. Для справки: база osm не хранит в себе континенты и некоторые другие объекты, отображающиеся на низких зумах. Эти полигоны и линии подгружаются и прописываются в стиле с помощью команды:

cd ~/openstreetmap-carto-2.29.1/
./get-shapefiles.sh

Для смены имени базы данных можно выполнить команду:

sed -i 's/"dbname": "gis"/"dbname": "map"/' project.mml

Для того, что-бы сформировать xml-файл, непосредственно отвечающий за стиль, запустите:

carto project.mml > style.xml

 

Настройка рендера

Откройте в редакторе nano файл /usr/local/etc/renderd.conf (потребуется использовать sudo). Напротив XML пропишите путь к вашему xml-файлу картостиля. Напротив HOST пропишите localhost.

Либо, вы можете внести эти изменения автоматически, выполнив под рутом:

su
sed -i 's/XML=\/home\/jburgess\/osm\/svn\.openstreetmap\.org\/applications\/rendering\/mapnik\/osm\-local\.xml/XML=\/home\/osm\/openstreetmap-carto-2.29.1\/style.xml/' /usr/local/etc/renderd.conf
sed -i 's/HOST=tile\.openstreetmap\.org/HOST=localhost/' /usr/local/etc/renderd.conf

После этого, файл /usr/local/etc/renderd.conf  должен выглядеть так:

[default]
URI=/osm_tiles/
TILEDIR=/var/lib/mod_tile
XML=/home/osm/openstreetmap-carto-2.29.1/style.xml
HOST=localhost
TILESIZE=256
;HTCPHOST=proxy.openstreetmap.org
;** config options used by mod_tile, but not renderd **
;MINZOOM=0
MAXZOOM=19
;TYPE=png image/png
;DESCRIPTION=This is a description of the tile layer used in the tile json request
;ATTRIBUTION=&copy;<a href=\"http://www.openstreetmap.org/\">OpenStreetMap</a> and <a href=\"http://wiki.openstreetma$
;SERVER_ALIAS=http://localhost/
;CORS=http://www.openstreetmap.org
;ASPECTX=1
;ASPECTY=1

Теперь измените директорию плагинов (plugins_dir) и местоположение пакета (match debian package location) mapnik. Сделать это можно вручную, либо с помощью команд:

sed -i 's/plugins_dir=\/usr\/lib\/mapnik\/input/plugins_dir=\/usr\/lib\/mapnik\/2.2\/input\//' /usr/local/etc/renderd.conf
[mapnik]
plugins_dir=/usr/lib/mapnik/2.2/input/
font_dir=/usr/share/fonts/truetype
font_dir_recurse=1

Скопируйте скрипт renderd.init и установите право доступа к файлу renderd:

cd /home/osm
cp mod_tile-6c2cb243e4c8b047950ab8062cd66245f20a5d2f/debian/renderd.init /etc/init.d/renderd
chmod a+x /etc/init.d/renderd

Исправьте пути в скрипте init

sed -i 's/DAEMON=\/usr\/bin\/$NAME/DAEMON=\/usr\/local\/bin\/$NAME/' /etc/init.d/renderd
sed -i 's/DAEMON_ARGS=""/DAEMON_ARGS=" -c \/usr\/local\/etc\/renderd.conf"/' /etc/init.d/renderd
sed -i 's/RUNASUSER=www-data/RUNASUSER=osm/' /etc/init.d/renderd
mkdir -p /var/lib/mod_tile
chown osm:osm /var/lib/mod_tile

Теперь запустите rederd:

systemctl daemon-reload
service renderd start

 

Установка и настройка Apache и mod_tile

Установите апач с помощью команды:

apt install apache2

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

echo "LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so" > /etc/apache2/mods-available/tile.load
ln -s /etc/apache2/mods-available/tile.load /etc/apache2/mods-enabled/

Добавьте следующий ниже текст с помощью редактора nano перед тегом <?/VirtualHost> в /etc/apache2/sites-enabled/000-default.conf 

LoadTileConfigFile /usr/local/etc/renderd.conf
ModTileRenderdSocketName /var/run/renderd/renderd.sock
# Timeout before giving up for a tile to be rendered
ModTileRequestTimeout 0
# Timeout before giving up for a tile to be rendered that is otherwise missing
ModTileMissingRequestTimeout 30

и перезапустите апач:

service apache2 restart

 

Проверка отдачи тайлов
Перейдите в браузере по адресу http://localhost/osm_tiles/0/0/0.png напрямую , либо с использованием порта 8080. Если все прошло успешно, вы увидете в браузере вот такую картинку:

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

sudo service renderd stop
rm -r /var/lib/mod_tile/default
sudo service renderd start

На ближайшие месяцы это будут единственные команды, которые вам потребуются в консоли.

Картостиль I

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

Итак, встречайте. Картографический стиль под названием «I».

Стиль адаптирован для данных OpenStreetMap. Код написан на чистой иксэмельке под мапник. 

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

Безразлично чей Крым

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

Средняя Россия и Поволжье

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

Эльбрус

Большая работа проведена с подписями. Нет, не просто большая — огромная. И все-равно я не могу сказать, что приблизился к идеалу. Максимум — нашел нужное направление движения.

Нерезиновая

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

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

Петербургские дворы-колодцы

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

Фрагмент Челябинска:

Далекие от картографии люди могут спросить: а чем эта карта отличается от остальных подобных? Что ж, смотрите сами. Все картинки кликабельны. Слева вверху картостиль I, внизу картостиль mapnik standart OSM, справа вверху Яндекс-карты, справа внизу карты от Google.

2 зум:

3 зум:

4 зум:

5 зум:

6 зум:

7 зум:

8 зум:

9 зум:

10 зум:

11 зум:

12 зум:

13 зум:

14 зум:

15 зум:

16 зум:

17 зум:

18 зум:

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

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

Карта Ямала каменная

Контур Ямала

Бывает придешь с морозного зимнего воздуха в теплое помещение и сразу тянет нарисовать простенькую пятимиллионную черно-белую контурную карту полуострова Ямал в проекции Гаусса-Крюгера:
Карта Ямала без озер

А потом отогреться и добавить на эту карту наиболее крупные водоемы:
Карта Ямала с озерами

Странная в этом году зима.

Линия электрических передач

Новую экспедицию отменить нельзя

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

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

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

Итак, год назад я высказал желание отправиться на лодке по реке Аксай. Чем это закончилось, вы все в большей или меньшей степени знаете. В этой игре пора немного поднять ставки:

Маршрут Чирской географической экспедиции


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

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

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

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

мой бигль

Что такое река Чир? Согласно «Экологическому вестнику Дона» за 2015 год — Чир это водный поток, несущий у Обливского гидропоста 356 миллионов кубических метров воды в год со скоростью 11.3 кубометра в секунду. Это чуть больше половины (61%) среднемноголетних значений.  Правый приток Дона, разрезающий южные черноземы, темно-каштановые почвы и глауконитовые пески. В верховьях представлен цепочкой озер и водохранилищ, связанных пересыхающим руслом с периодически встречающимися порогами.

Река Чир Автор фото - Виктор Римчук

Автор фото — Виктор Римчук

В низовьях наполняется до широкой (более 50 м) по степным меркам реки, впадая в Цимлянское водохранилище.

При движении от истока к устью, полоса, шириной три километра по обе стороны от русла пересекает населенные пункты: Ботановский, Ильичевка, Верхнечирский, Большенаполовский, Ейский, Козырек, Разметный, Грачев, Лиховидовский, Рогожкин, Климовка, Каргинская, Латышев, Грушинский, Вислогузов, Попов, Коньков, Боковская, Дуленков, Земцов, Евлантьев, Свиридов, Краснокутская, Каменка, Илларионов, Фомин, Хохлачев, Пичугин, Новомосковка, Демин, Ставиднянский, Чистяково, Советская, Русаков, Русская, Новорябухин, Аржановский, Чирский, Рябухин, Малые Озера, Осиновский, Варламов, Усть-Грязновский, Синяпкин, Александровский, Артемов, Сосновый, Караичев, Киреев, Паршин, Попов, Солонецкий, Глухомановский, Ярской, Паршино, Лобачев, Лагутин, Рябовский, Большетерновой, Малотерновой, Средний Чир, Синяпкинский, Обливская, Кзыл-Аул, Сеньшин, Ковыленский, Секретев, Стародербеновский, Новодербеновский, Дубовой, Чувилевский, Стариковский, Нижнеосиновский, Суровкино, Свиридовский, Островской, Ближнеосиновский, Ближнемельничный, Новомаксимовский, Верхнечирский.

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

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

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

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

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

Лесополоса Пенза-Каменск

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

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

Публичная кадастровая карта

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

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

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

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