Sport-kaliningrad.ru

Спорт Калининград
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Гео 5 устойчивость откоса

Работа с геолокациями в режиме highload

При разработке ПО часто возникают интересные задачи. Одна из таких: работа с гео-координатами пользователей. Если вашим сервисом пользуются миллионы пользователей и запросы к РСУБД происходят часто, то выбор алгоритма играет важную роль. О том как оптимально обрабатывать большое количество запросов и искать ближайшие гео-позиции рассказано под катом.

Задача поиска ближайшего соседа

В процессе разработки сервиса push-уведомлений Pushwoosh возникла достаточно известная задача. Имеется много геозон. Геозона задается географическими координатами. Когда пользователь проходит мимо одной из таких геозон(например закусочная) ему должно приходить push-уведомление(«Йоу, заходи к нам и подкрепись с 20% скидкой). Для простоты будем считать радиус всех геозон одинаковым. В условиях большого количества геозон и большого количества пользователей(у нас их 500 миллионов!), которые постоянно перемещаются — поиск ближайшей геозоны должен осуществляться максимально быстро. В англоязычной литературе эта задача известна как Nearest neighbor search. На первый взгляд кажется, что чтобы решить эту задачу нужно посчитать расстояния от пользователя до каждой геозоны и сложность данного алгоритма линейна O(n), где n — количество геозон. Но давайте решим эту задачу за логарифм O(log n)!

Географические координаты

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

  1. Широтой(latitude) — идет с севера на юг. 0 — экватор. Изменяется от -90 до 90 градусов.
  2. Долготой(longitude) — идет с запада на восток. 0 — нулевой меридиан(Гринвич). Изменяется от -180 до 180 градусов.

Нужно обратить внимание что x — это долгота, y — широта(Google Maps, Яндекс.Карты и все остальные сервисы указывают долготу первой).

Географические координаты можно перевести в пространственные — просто точка (x,y,z). Кому интересно более подробно можно посмотреть википедию.
Количество знаков после запятой определяет точность:

ГрадусыДистанция
1111 km
0.111.1 km
0.011.11 km
0.001111 m
0.000111.1 m
0.000011.11 m
0.00000111.1 cm

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

Geohashing

Пусть у нас есть сервис, которым пользуются миллионы людей, и мы хотим хранить их географические координаты. Очевидный подход в данном случае завести в таблице два поля — широта/долгота. Можно использовать double precision(float8), который занимает 8 байт. В итоге нам потребуется 16 байт для хранения координат одного пользователя.

Но есть и другой подход, который называется geohashing. Идея простая. Широта и долгота кодируется в число, которое затем кодируется в base-32. Карта разбивается на матрицу размера 4×8 и каждой ячейке присваивается некоторый символ(alphanumeric).

Чтобы повысить точность, каждая ячейка разбивается на более мелкие, при этом к коду добавляются символы(если быть точным цифры, а после происходит кодирование в base-32).

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

Подробно алгоритм построения я описывать не буду, о нем можно почитать в википедии. Его идея похожа на арифметическое кодирование. Данный код обратим. Многие технологии уже имеют встроенные методы для работы с гео-хешами, например, MongoDB.

Пример: координаты 57.64911,10.40744 будут закодированы в u4pruydqqvj (11 символов). Если требуется меньшая точность, то и код будет меньше.

Особенность данного кода в том, что ОБЫЧНО близлежащие точки имеют одинаковый префикс. И можно посчитав разницу между гео-хешами определить близость двух точек. Но к сожалению данный алгоритм не точен, это хорошо видно из предыдущих изображений. Ячейки с кодами 7 и 8 находятся дальше друг от друга, чем ячейки 2 и 8.

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

Если точностью в задаче можно пренебречь, то можно создать в таблице поле geohash, добавить по нему индекс и производить поиск за логарифм.

Полный перебор

Можно написать хранимую процедуру

и использовать её

Но в итоге будет Seq Scan, что очень не приятно.

K-d tree и R tree

Что делать, когда точностью пренебречь не получается? Для этого уже есть специальная структура данных K-d tree. Можно перевести широту и долготу в (x,y,z) построить по ним дерево и производить поиск по дереву в среднем за логарифм.

PostGIS

PostGIS — это расширение, которое значительно расширяет обработку географических объектов в РСУБД PostgreSQL.

Для решения нашей задачи будет использовать трехмерную систему координат SRID 4326(WGS 84). Данная система координат определяет координаты относительно центра масс Земли, погрешность составляет менее 2 см.

Если у вас ubuntu-подобная система, то PostGIS можно установить из пакета(для PostgreSQL 9.1):

И подключить необходимые экстеншены:

С помощью dx можно посмотреть все установленные экстеншены.

Создадим отношение с индексом по полю location

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

Читать еще:  Советы откос от армии

Здесь — distance operator. Мы посчитали дистанцию и нашли ближайшие 10 геозон!
СТОП скажите Вы! Ведь данный запрос должен просмотреть все записи в таблице и посчитать расстояние до каждой геозоны O(n).

Давайте посмотрим EXPLAIN ANALYZE запроса

Index Scan! Где же магия?

А она находится в GiST индексе.
PostgreSQL поддерживает 3 типа индексов:

  1. B-Tree — используются, когда данные могут быть отсортированы вдоль одной оси; например, числа, символы, даты. Данные ГИС не могут быть рациональным способом отсортированы вдоль одной оси (что больше: (0,0) или (0,1) или (1,0)?), а потому для их индексирования B-Tree не помогут. B-Tree работают с операторами =, > и др.
  2. Hash — может работать только с сравнением на равенство. Так же данный индекс не Write-Ahead logging — тоесть из бекапа индекс может и не поднятся.
  3. Индексы GIN — »перевёрнутые» индексы, которые могут обрабатывать значения, содержащие более одного ключа, например, массивов.
  4. Индексы GiST (Generalized Search Trees — обобщенные деревья поиска) — представляет собой некую инфраструктуру, в которой могут быть реализованы много различных стратегий индексирования. GiST-индексы разделяют данные на объекты по одну сторону (things to one side), пересекающиеся объекты(things which overlap), объекты внутри(things which are inside) и могут быть использованы для многих типов данных, включая данные ГИС.

GiST-индекс реализованный PostGIS поддерживает distance operator при поиске. Также данный индекс может быть составным!

Данный функционал можно реализовать и без использования PostGIS, воспользовавшись индексом btree-gist, но PostGIS предоставляет удобные методы для перевода широты и долготы в WGS 84.

Общие представления

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

  • Насыпи и валы.
  • Горы и холмы.
  • Кратеры.
  • Лестницы.
  • Стенки.
  • Природные и искусственные каньоны.

Геопластика рельефа подразумевает:

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

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

2.5. Карта 85 субъектов РФ

Создадим карту с 85 субъектами РФ. Координаты границ субъектов возьмем из json-файла. Данные актуальны на 2015 год и в них есть дефект с Чукотским Автономным округом, но для нашей задачи – демонстрации возможностей библиотеки – этого вполне достаточно. Очищенная версия лежит в репозитории.

load_data – функция, которая записывает файл с данным в локальное хранилище.

random_color – функция, генерирующая случайные цвета для субъектов РФ.

style и hover_style – задают графическое отображение субъекта по умолчанию и при наведении на него курсора мыши.

2.6. Интерактивная карта РФ (по клику)

Сделаем карту интерактивной: при клике на субъект под картой появится название центрального города субъекта:

handle_click – функция, которая принимает именованные аргументы.

[‘name’] – имя субъекта.

geo_json.on_click(handle_click) – подключает к карте событие (вывод на экран) при клике на субъект.

2.7. Больше интерактива

Теперь, с помощью функции handle_hover сделаем так, чтобы название центрального города субъекта появлялось при наведении курсора мыши на субъект:

handle_hover – функция, принимающая именованные аргументы.

geo_json.on_click(handle_hover) – подключает к карте событие при наведении на субъект.

2.8. Хороплет-карта США по COVID-19

Построим хороплет-карту (фоновая картограмма) штатов США по COVID-19. На хороплет-карте цветом с различной степенью насыщенности отображается интенсивность какого-либо показателя. Данные по заболеваемости возьмем из репозитория университета Джона Хопкинса, а координаты границ штатов с сайта библиотеки ipyleaflet . Слегка изменим csv-файл, добавив в него второй столбец State с почтовыми сокращениями штатов США (Alabama – AL и так далее), чтобы была связь со вторым ключом ( id ) для каждого штата из json-файла. Также удалим несколько штатов из csv-файла, границы которых отсутствуют в json-файле.

geo_json_data – загрузка json-файла с координатами границ штатов.

сonfirmed – загрузка csv-файла с данными по заболеваемости.

confirmed = dict. – создает словарь с ключем Почтовое название штата и значением Количество подтвержденных случаев заражения .

geo_data – координаты границ штатов.

choro_data – хороплет-данные, количество заболевших в каждом штате.

colormap – цвет из палитры ColorBrewer.

1 Виды утеплителей и их технические характеристики

1.1 Ursa Geo

Ursa Geo утеплитель на основе стекловолоконной минеральной ваты, являющийся одним из наиболее популярных товаров в линейке немецкой компании.

Читать еще:  Мой игрушечный поезд летит под откос

Урса Гео как и плиты Rockwool Wired Mat 80 относится к категории универсальных утеплителей, которые, как свидетельствуют отзывы, отлично подойдут как для теплоизоляции жилых помещений – стен, фасадов, крыш, полов и чердачных перекрытий, так и для производственных зданий и промышленного оборудования.

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

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

Урса Гео как и утеплитель Изба производится по технологии, которая не предусматривает использования большого количества пластификаторов и присадок для придания итоговому изделию требуемых характеристик. Как показывают исследования, количество летучих веществ в минвате Урса Гео в 10-12 раз меньше, требуемого европейскими стандартами безопасности уровня.

Минераловатный утеплитель в рулонной форме Урса Гео

В линейку теплоизоляционных материалов Урса Гео входит множество утеплителей с разным функциональным назначениям.

Наиболее популярными представителями данного класса является рулонный утеплитель Гео «Мини», Урса Гео «Скатная крыша», Урса Гео «Фасад», Урса Гео «Универсальные плиты» и Урса Гео «Частный дом»

Различаются эти утеплители в основном форм-фактором, при этом, как правило, их технические характеристики практически идентичны, за исключением плотности и размеров.

Рассмотрим технические характеристики наиболее востребованных представителей линейки Ursa Geo: «Мини», «Лайт» и «Универсальные плиты»

  • Форма выпуска: Мини – рулон, Лайт – рулон, Универсал – плита;
  • Размеры, см: Мини (ширина – 60, длина – 70, толщина – 5), Лайт (ширина – 120, длина – 700, толщина – 5), Универсальные плиты (ширина – 100, длина – 60, толщина – 5/10);
  • Коэффициент теплопроводности, Вт/мк: Мини – 0,041, Лайт – 0,44, Универсальные плиты – 0,036;
  • Коэффициент паропроницаемости, мг/мчПа: Мини – 0,64, Лайт – 0,64, Универсальные плиты – 0,51 как у базальтовой теплоизоляции Парок;
  • Класс горючести: НГ (полностью негорючий материал) – у всех видов;
  • Нормальный температурный диапазон: у всех утеплителей Гео от -60 до +220 градусов;
  • Впитывание воды при неполном погружении на 24 часа у всех материалов не выше 1 кг/м2;
  • Плотность, кг/м3: Мини -10, Лайт – 11, Универсальные плиты – 15.

Утепление кровли минераловатными плитами Урса Гео

Как вы видите, лучшие технические характеристики в плане теплопроводности и паропроницаемости имеет плитная минеральная вата марки Урса.

Это относится и к стоимости, которая у Универсальных плит составляет порядка 520 рублей за упаковку с 10 плитами размерами 100*60*5, Урса Гео «Лайт» обойдется вам около 1100 рублей за два рулона (700*120*5) а рулонный утеплитель Гео «Мини» стоит 550 рублей за рулон (700*60*5).

1.2 Ursa Pureone

Особенностью линейки PureOne, в которую входят рулонные утеплители 37RN и 35QN, и плитная минвата 34PN, является технология изготовления, которая предусматривает использование акрила, в качестве элемента, связующего отдельные волокна минеральной ваты.

Использование акрила дает возможность получить идеально чистый материал, который не имеет никакого отрицательного влияния на человеческий организм. Минеральная вата Ure PureOne рекомендуется для теплоизоляции школ, детских садиков, и других помещений с высокими санитарными требованиями.

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

Минеральная вата Урса PureOne обладает чисто белым цветом

Утеплитель Ursa Pureone обладает следующими техническими характеристиками:

  • Размеры, см: плиты 34PN (ширина – 60, длина – 125, толщина – 5/10), рулонный 37RN (ширина – 120, длина – 1000, толщина – 5/10), рулонный 35QN (ширина – 120, длина – 390, толщина – 15);
  • Коэффициент теплопроводности, Вт/мк: 34PN – 0,037, 37RN – 0,40, 35QN – 0,038;
  • Коэффициент паропроницаемости, мг/мчПа: 34PN – 0,51, 37RN – 0,51, 35QN – 0,51;
  • Класс горючести: у всех НГ (негорючие материалы);
  • Температурный диапазон: у всех от -60 до +220;
  • Влагопоглощение при погружении на 24 часа: не больше 1 кг/м2 как у полиуретанового утеплителя.

Касаемо стоимости: упаковка плит 34PN обойдется вам около 900 рублей, а рулоны 37RN и 35QN, 1400 и 1550 рублей, соответственно.

Рулонный утеплитель Ursa PureOne

1.3 Ursa XPS

В линейке XPS от немецкой компании Урса представлены утеплители из экструдированного пенополистирола. Среди распространенных утеплителей, именно материалы из пенополистирола обладают самой меньшей теплопроводностью. Пенополистирол от Урсы представлен моделями Ursa XPS N-3, G-4 и N-V.

Читать еще:  Материал для откосов межкомнатных дверей

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

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

  • Коэффициент теплопроводности Вт/мк: N-3 – 0,032, G-4 – 0,032, и N-V – 0,33;
  • Коэффициент паропроницамости мг/мчПа: у всех – 0,004;
  • Размеры всех пенополистирольных плит идентичны – 125*60 см, толщина варьируется от 4 до 10 см;
  • Класс горючести у всех утеплителей Г4 (сильно горючие материалы);
  • Устойчивость к сжатию при деформации в 10%, МПа : у N-3 и G-4 – 0,25, у N-V – 0,5 Мпа;
  • Процент водопоглощения от общего объема при погружении на 24 часа у всех материалов не выше 0,3%;
  • Температурный режим эксплуатации от -50 до +75 градусов как в случае с теплоизоляцией Изовер.

Стоимость материалов следующая: G-4 обойдется вам в 105 рублей за лист, N-3 в 120, а N-V – 135 рублей.

Пенополистирол Ursa Xps

1.4 Ursa Terra

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

К достоинствам линейки теплоизоляционным материалам Терра, в которую входят утеплители Урса Терра 34PN, 34RN «Технический мат» и 34PN «Шумоизоляция», можно выделить минимальный показатель теплопроводности, хорошие шумоподавляющие свойства и огнеупорность.

Как и вся теплоизоляция Урса, Терра является полностью экологически безопасным материалом. Теплопроводность всех утеплителей составляет 0,034 Вт/мк.

Терра 34PN, выпускающийся в форме плит, имеет размеры 125*60 см, при этом его толщина может составлять 5 или 10 см, размеры рулонного 34RN «Технический мат» — 960 или 480 на 120 см, а 34PN «Шумоизоляция 100*61*5 см.

Каждый из материалов обладает хорошем показателем гидрофобности, которая не превышает 1кг/м2 при полном погружении на 24 часа. По горючести утеплители Терра относятся к классу НГ – полностью негорючие, температурный диапазон их использования составляет от -60 до +220 градусов.

Актуальная стоимость материалов следующая: 34PN – около 500 рублей за упаковку 0,3 м3, 34RN «Технический мат» — 910 рублей за рулон 5,76 м2, а 34PN «Шумоизоляция» — 450 рублей за упаковку.

Шлаковата Урса Терра

Факт составления межевого или технического плана считается фактом осмотра пункта, дата завершения кадастровых работ — датой осмотра. В новых межевых планах версии 08, техпланах версии 06 имеется больше информации: о состоянии наружного знака, центра, марки пункта: сохранился, не обнаружен, утрачен, а также текстовые пояснения. Загружая в сервис межевой или технический план, Вы загружаете координаты пунктов, оценку состояния, кто оценил и когда.

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

  • Кадастровые планы территорий — из нашего сервиса Архив КПТ,
  • Межевые и технические планы — загружают кадастровые инженеры,
  • Неофициальные источники (точки помечены серым цветом).

Где расположен Гео гипостазис

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

Прайс на инженерно-геологические изыскания

УслугаЦена для физ. лицЦена для юр. лицЕдиница измеренияСроки
1. Геология для строительства2 000 руб.3 000 руб.пог.метр30 дней
2. Статическое зондирование грунтов800 руб.пог.метр10 дней
3. Инженерные геологические изыскания дорог3 000 руб.пог.метр30 дней
4. Инженерно-геологические изыскания грунтов3 000 руб.пог.метр30 дней
5. Лаборатория грунтов3 000 руб.пог.метр30 дней
6. Инженерно-геологические изыскания для реконструкции3 000 руб.пог.метр30 дней
7. Штамповые испытания50 000 руб.объект10 дней
8. Геология для ИЖС2 000 руб.пог.метр30 дней
9. Геология под коттедж2 000 руб.пог.метр30 дней
10. Геология под фундамент2 000 руб.пог.метр30 дней
11. Георадарное обследование грунтов50 000 руб.объект10 дней

Наши эксперты позвонят вам и дадут ответы на все интересующие вопросы

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector