воскресенье, 22 марта 2020 г.

IT заметки. Загружаем OpenStreetMap в MS SQL Server.

Проект OpenStreetMap (OSM) существует с 2004 года, но длительное время качество данных по России в нем было низким, что не позволяло применять их в серьезных проектах. В последние 5 лет ситуация улучшилась, появилось больше порядка, удалось загрузить данные с Росреестра. В РФ OSM используются в государственных сервисах, для чего базу по России  оперативно исправляют. Данные у OSM бесплатные, гео базу и обновления можно скачивать и обрабатывать по своему усмотрению.

OSM позволяет скачать данные в трех форматах shape, osm, pbf.
- shape - распространенный в геосистемах формат, для его конвертации есть утилита shape2sql.
- osm - формат на основе xml с ним можно работать напрямую из MS SQL.
- pbf - сжатый OSM для его обработки есть osm2sql.
Скачать файлы можно из нескольких источников:
- openstreetmap.org - просто вырезав небольшой кусок с карты.
planet.openstreetmap.org - всю базу OSM или изменение.
download.geofabrik.de - отдельно по континентам, странам и федеральным округам (для РФ).
Перед загрузкой сразу надо готовиться к большому объему данных. К примеру, файл с данными по Центрального федерального округа(ЦФО) в сжатом pbf занимает 600 Мбайт, в несжатом - несколько ГБ, а размер базы на сервере 28 Гб. Файл pbf  с данными по РФ составляет 2,7 Гб. Поэтому бесплатный MS SQL Server Express не подойдет даже для загрузки данных ЦФО. Надо ставить бесплатный для разработчиков MS SQL Developer или любой из платных. При установке так же надо запастись местом на диске. Свободного места должно быть в 2-3 раза больше базы. Сначала потребуется память на INSERT, при ее выполнении сервер загружает все отобранные для вставки данные в память, когда она заполнится, то в tempdb, а затем записывает эти данные в таблицу. Так же потребуется место на создание индексов. 
Из-за большого объема данных вариант разбора файла OSM как XML средствами MS SQL лучше не использовать, а воспользоваться утилитой osm2sql.
Утилита osm2sql написана на C# (WPF), но не поддерживается уже 6 лет. Зато ее исходники  можно скачать с Github. Это решает две задачи:
- Не требуется искать и устанавливать на Windows 10 старый .net framework 3.5, а можно перекомпилировать исходники.
- Можно в исходниках понять причины ошибок, возникающих при ее работе, и адаптировать код под свою конфигурацию MS SQL Server.
Алгоритм работы программы можно найти в файле TaskRunner.cs. Важно знать несколько моментов:
- На втором этапе в базу должны быть добавлены CLR процедуры. Для того, чтобы это было выполнено программа должна запускаться с компьютера, где стоит сервер и вы должны иметь административные права на SQL Server и в системе.
- Только несколько подпрограмм работают с загружаемым с сайта OSM файлом. Это : загрузка узлов, путей, отношений и формирование справочника тэгов. Геоданные на этом этапе загружаются только в таблицу Node, в остальные только связи и справочники.
- Геоданные в таблицах Relation и Way формируются на основании информации в таблицах RelationCreation и WayCreation.
- В комментариях файла SQLCommands.sql можно найти пример получения информации о городах, регионах и дорог на основании данных из базы OSM, но в этих примерах выбрана не вся информация.
- Загрузка, создание ключей, путей и взаимосвязей требует времени. На i7 7700HQ 2800 MHz с ОЗУ 12 GB, SSD 500 GB (система, MS SQL tempdb и логи) и HD 1TB (база) процедура занимает более 4 часов.

PS Этот материал пролежал в черновиках около 2-х лет. Стирать жалко. Может кому пригодится.

вторник, 18 февраля 2020 г.

Греция. 2018. Афины. Национальный сад.


В Афинах нет такого понятия как ботанический сад. Есть Национальный сад. Он был создан королевой первой независимой Грецией Амалией Ольденбургской и состоит из нескольких композиция на определенные темы. Расположен между парламентом и выставочным залом Заппион. В саду есть даже небольшой зоопарк.

Обилие зелени опьяняет.

В конце марта цветет что-то похожее на сакуру.

Да вообще все цветет!

---

А это что-то напоминающее нашу мимозу, которую все любили дарить на 8-омое марта. Только без запаха.


Местная сосна.

Метеорологическая станция.

Приятный уголок.

По большому счету в Афинах нет нужды в ботаническом саду. Весь город большой сад и музей.

---

Опять цветы.

---

---

Гибискус.

Еще один.

Гибискусы растут не в горшках, а просто в земле.

Похоже на махровый чубушник.


А тут вообще непонятно. Весна и уже желтые листья.

Памятник.

Небольшой зоопарк.

Апельсины. Дикие. Растут как тополя в Москве. На каждом углу. Дикие апельсины горькие их не едят. Поэтому они созревают и падают на землю. Падая - разваливаются и источают аромат апельсина....

Улица с апельсиновыми деревьями. Справа особняк, где на каждом этаже растут деревья.

---

Что-то стелющиеся.

Плачущее дерево. Оно цветет небольшими белыми цветочками.

Пальмы.

Уголок парка.

---

---

Бутоны.

Мостик.

Уточки

Водопадик.

---

---

На самом деле этот камень в прудике с карпами.

---

---

---

---

---

Дерево.

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

Еще один гвардеец у входа в казармы.

Зиппион.

У Зиппиона тренируются гвардейцы. Движение вокруг, как в Москве, при репетиции не перекрывали.

 Памятник военному у входа в парк.

От от Зиппиона в сторону моря...

Про Грецию:
- Крепость Карабаба.
- Броненосец Авероф.





вторник, 11 февраля 2020 г.

Греция. 2018. Афины. Крейсер Авероф.


Третий из серии итальянских крейсеров типа "Амальфи" или "Пиза". Был куплен греческим правительством в 1910 году за 300 тыс фунтов стерлингов, кстати стоимость ледокола Красин (Святогор),  составляла 375 тыс. Но денег у Греческого правительства не нашлось и необходимую сумму заплатила семья мецената Георгиоса Аверофа. Его именем и был назван броненосный крейсер.
Крейсера типа "Амальфи" были одни из современных на тот период. При небольшом водоизмещении в 10 тыс. тонн они по весу своего бортового залпа уступали только американским броненосным крейсерам типа Теннесси. Крейсер был удачным приобретением для Греции, она активно использовала этот крейсер в балканской войне с Турцией.
Серия "Амальфи" была дальнейшим развитием итальянской серии "Реджина Елена". Конструктор Джузеппе Орландо уменьшил водоизмещение с 14 до 10 тыс. тон, вместо 12-ти дюймовок установили 10-ти дюймовки главного калибра, но сдвоенного количества. Вместо трех башен по борту остались две с уменьшенным калибром. Подняли мощность на 10-15% и  получился маленький среди сильных с хорошей скоростью в 23,5 узла. Всего было построено три судна. Два (Пиза и Амальфи) вошли в состав итальянского флота. Амальфи был потоплен австрийской подводной лодкой в 1915, Пиза исключен из состава флота в 1937 году. Авероф ждала долгая жизнь.
"Авероф" имел небольшие отличия от проекта: на него установили английские пушки немного меньшего калибра, но более надежные. Первоначально на корабле были установлены три торпедных аппарата, которые были сняты при модернизации, которую корабль прошел в 1925-1927 гг во Франции. Авероф участвовал в Первой и  Второй балканских, Первой мировой, Греко-Турецкой, Второй мировой войнах. В 1952 году крейсер стали использовать как штабной корабль, в 1956 году вывели в резерв. К счастью, его не порезали на металлолом. В 1984 году греческое правительство решило сделать из него музей. Теперь мы можем посмотреть на броненосец последней модели.
Несмотря на выдающиеся для своего времени показатели, корабль устарел до его постройки: проходило время классических броненосцев, коим был Авероф, наступало время дредноутов, главный калибр увеличивался, средний исчезал, увеличивалась толщина брони, обводы кораблей становились более стремительными.

Трап на судно.

Вид на кормовое орудие главного калибра. За ним "бочка с рогами" -  кормовой артиллерийский корректировочный пост.

Башня среднего калибра, правый борт.

Нос корабля.

Между надстройками. Слева - башня среднего калибра.

Палуба кормовой надстройки. Левый борт

Палуба носовой надстройки. Правый борт.

Носовая надстройка. Видны ходовая рубка и носовая боевая рубка.

В ходовой рубке.

В носовой боевой рубке.

Я подозреваю, что это штурманская.

Палуба у ходовой рубки.

Носовая мачта. На верху мачты - носовой артиллерийский корректировочный пост.

Гаечный ключик.

Запорное устройство двери.

Труба судна.


Камбуз.

---

Пекарня. При постройке экипаж корабля был около 700 человек, после реконструкции почти 1300.

Форма греческой армии.

Неизвестное мне устройство. За ним  - современный кондиционер.

Койки матросов.

Небольшая экспозиция.

Греческая морская форма. Слева - емкости для хранения питьевой воды.

---

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

Паровые машины.

Пороховой погреб.

Приемник стреляных гильз, наверное.

Лифт для подачи снарядов в башню среднего калибра.

Устройства для перемещения снарядов. Его рельсы проложены по всему борту.

Переговорное устройство.

Люк для загрузки порохового погреба.

Каюта старшего помощника.

Каюта капитана.

Офицерская кают-компания.

---

---

В угольные ямы.

Нижняя палуба. Мастерские.

Исполнительные механизмы.

Каптерка.

Корабельная часовня.

Вид из иллюминатора.

Вид левого борта броненосца. На балкончик можно выйти из офицерской кают-компании.


Рядом с броненосцем находятся еще два гражданских судна (парусник и пароход), но попасть туда нельзя. За ними должен стоять эсминец "Велос", но его в наше посещение не было.

Пароход с правого борта.

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

О Греции:
- Крепость Карабаба.