Русский
Русский
English
Статистика
Реклама

Координаты

Из песочницы Как высчитать ключи перехода от лобой системы координат к WGS с сантиметровой точностью?

03.10.2020 18:20:42 | Автор: admin
Для кого этот пост картографы, геодезисты, генпланисты, строители и т.д.

Коллеги, привет!

Решаемая проблема получение 100% достоверных параметров для пересчета координат, например в привычные картографические градусы (WGS84). Коллеги уже поняли про что я, а любопытным поясню дело в том, что гуляющие по интернету приложения и алгоритмы с параметрами пересчета координат например из выписки ЕГРН на вашу дачу в координаты для GPS приемника, в подавляющем большинстве будут лаптем по карте. Для поиска объекта размером с дом, это не будет проблемой, а вот для инженерной затеи, уже слабовата точность. К примеру мы хотим обозначить границы на местности с сантиметровой точностью, найти трубу под землей или кабель, запустить безпилотник по картам с плоскими координатами, чертить чертеж в плоских координатах с картографической онлайн основой из интернета и многое другое, что требует субметровой точности.

Почему точные координаты становятся не точными


Плоские метровые координаты, знакомые нам из сведений о нашей недвижимости или с проектов и чертежей очень точны локально, но для привязки их к земному шару одной математики мало. Дело в том, что математическая модель плоской, метровой системы координат из документов, сначала была реализована на местности в виде геодезических пунктов, с точностью тех технологий, какие были на тот момент (в РФ большая часть систем координат развита в советское время и действуют по сей день). И уже потом от этих геодезических пунктах первого класса, создавались другие, от тех еще другие, от них всех производные секретные системы координат такие как СК63 с разворотами и искажениями координатной сетки, дабы врага запутать. При каждом таком преобразовании допускались искажения, незначительные, но нарастают они не линейно относительно количества преобразований, а намного прогрессивнее. В итоге большая часть координатных сеток сейчас похожа на чуть помятую и стянутую с одного краю простыню. Именно по этому 99% геокалькуляторов не спасут Вас от помятой простыни координатной сетки. Есть несколько геодезических сервисов для пересчета координат, платных, могу предположить, что там люди считают не по теоретическим параметрам системы координат, а обладают всеми параметрами помятой простыни. В большей части РФ надо рассчитывать параметры системы координат для небольших территорий, радиус этих территорий часто не превышает 15км. При таких небольших территориях искажения координатной сетки часто не превышает сантиметра, система координат очень точно лежит на земном шаре. Если Ваш интерес вылезает за 20-30км пространства, то необходимо несколько локальных параметров перехода рассчитывать на меньшие территории, дробить систему координат на более мелкие подзоны.

Изобретаем велосипед?


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

image

Расскажу кратко как это работает


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

Веб форма высчитывает параметры системы координат и выводит на экран в двух популярных и применимых в 99% ГИС системах форматах proj строка и WKT.

Тут немного рассказов про те самые параметры и немного терминологии


Много непонятных букв
Геоцентрическая система координат, это система где есть три пространственные координатные оси проходящие через центр земли. Координаты в такой системе имеют вид x,y,z или привычные нам широта и долгота измеряемые градусами угла от нулевой точки через землю lat long h. При этом высота h отсчитывается не от центра земли как в первом случае, а от эллипсоида, сферы, геоида (упрощённой модели поверхности земли).

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

Местная система координат (МСК) как правило прямоугольная система координат, обслуживающая небольшую локальныю территорию. Часто распостраняется на территорию района или города, где её искажения не критичны для точности строительства, кадастра и т.д.

Параметры системы координат состоят из нескольких отдельных параметров, опишем каждый из них. Возьмём строку параметров PROJ4 (MapInfp, ArcGIS и т. д. Так же используют эти параметры, только структура записи иная): +proj=omerc +lat_0=59.8338730825 +lonc=33 +alpha=-0.0001 +gamma=-1.771957267229058 +k=0.9996584453038837 +x_0=2365031.423134961 +y_0=426397.2888527482 +ellps=krass

Модель земного шара (+ellps=krass) в нашем случае это эллипсоид Красовского. Под этим названием эллипсоида скрывается параметры примерного описания земного шара: направление координатных осей и углы между осями, диаметр, сжатие на полюсах и т. д. Выбрать необходимый эллипсоид можно опытным путём либо зная основываясь на какой системы координат родилась интересующая вас МСК. На территории РФ, большая часть МСК выходцы из СК42 с эллипсоидом Красовского.

Проекция земного шара на плоскость (+proj=omerc) метод с помощью которого прямоугольные координаты проецируются за круглую землю. Самый распространённый алгоритм это апельсиновые дольки, если порезать апельсин по долькам, отделить от долек шкурки.

Расправленную шкурку положить на лист в клетку и получится проекция Меркатора. Бывают разные проекции с разными направлениями и размерами долек, бывают цилиндрические проекции, это когда апельсин превращают в цилиндр и раскатывают кожуру на плоскость, конические и т. д. Выбрать необходимую можно опытным путём либо зная основываясь на какой системы координат родилась интересующая вас МСК. На территории РФ, большая часть МСК выходцы из СК42 с проекцией Меркатора. Для точных локальных параметров МСК на малых территориях рекомендуем применять косую проекцию Меркатора (omerc).

Центр проекции в градусах (+lat_0=59.8338730825 +lonc=33) это то место, где расправленная шкурка апельсина меньше меньше всего растягивается для достижения плоскости (обычно серединка шкурки дольки), место с наименьшими искажениями. Грубо говоря место где плоский лист МСК прикасается к шарику нашей планеты. Часто для центральной точки выбирают точку центра района геодезических работ.

Развороты (+alpha=-0.0001 +gamma=-1.771957267229058) разворот осей координат МСК относительно меридиана.

Масштабный коэффициент (+k=0.9996584453038837), в идеале должен быть единицей. Показывает, на сколько реальное расстояние отличается от координатного. С помощью масштаба можно сразу прикинуть, как увеличивается искажение размеров при отдалении от центральной точки МСК.

Координаты центра проекции в метрах (+x_0=2365031.423134961 +y_0=426397.2888527482), можно рассматривать как значение смещения начала отсчёта координат в плоской МСК.

За основу взяты опенсорсные пакеты

  • proj4 для геодезических трансформаций
  • Leaflet для отображения информации на карте
  • geophp для расчета территории действия параметров с сантиметровой точностью (на момент написании статьи не реализовано)

Исходный код веб формы доступен с лицензией AGPL в открытом репозитории.

Обсуждение веб формы тутачки.
Подробнее..

Перевод Использование геолокационных данных в машинном обучении основные методы

29.04.2021 16:13:12 | Автор: admin
Геолокационные данные могут применяться в различных сценарияхГеолокационные данные могут применяться в различных сценариях

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


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

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

Данные о предметной области приложения (включают основную информацию о местоположении)

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

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

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

Спутниковые изображенияСпутниковые изображения

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

Геопространственные данные (используются как дополнение к информации о местоположении)

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

С помощью геопространственных данных фиксируются основные географические атрибуты местоположения.

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

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

Форматы геопространственных данных

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

Самые часто используемые форматы:

  • Векторный формат (самый древний и самый распространённый стандарт. Файл в векторном формате фактически представляет собой набор файлов: в одном файле хранятся геометрические данные, в другом специальные атрибуты данных и т. п.).

  • GeoPackage (более новый стандарт, набирающий популярность. Данные хранятся в одном небольшом по размеру файле, реализованном в виде контейнера базы данных SQLLite).

  • GeoJSON (использует стандартный текстовый формат JSON).

Геометрические геоданные хранятся в виде векторных объектов:

  • точка: например местоположения зданий, домов, ресторанов, стоянок такси;

  • ломаная: например улицы, реки, железные дороги;

  • полигон: определяет зоны, например регионы, районы, озера, штаты, страны;

  • мультиполигон: набор полигонов.

В геоинформационных данных используются структуры данных Точка, Ломаная, Полигон и пр.В геоинформационных данных используются структуры данных Точка, Ломаная, Полигон и пр.

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

  • дуга: аналогично ломаной;

  • узел: точка пересечения различных дуг или полигонов;

  • вершины: излом ломаной.

Географические объекты представляют географические особенности и отношения между ними Географические объекты представляют географические особенности и отношения между ними

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

  • Какие объекты находятся рядом друг с другом?

  • Какие дуги соединяются друг с другом?

  • Какие объекты находятся внутри других полигонов?

Загрузка геоданных

К счастью, нам не нужно вникать в тонкости структуры таких форматов и работать с низкоуровневыми структурами данных.

Мы можем использовать замечательную Python-библиотеку GeoPandas, максимально упрощающую выполнение задачи. GeoPandas представляет собой надстройку библиотеки Pandas, поэтому в ней сохранены все её мощные функции.

Она работает с объектами GeoDataFrame и GeoSeries, представляющими собой "пространственно ориентированные" версии объектов DataFrame и Series в Pandas. В надстройке реализуется ряд дополнительных методов и атрибутов, которые можно использовать для работы с геоданными в DataFrame.

GeoDataFrame это обычный объект в Pandas DataFrame с дополнительным "геометрическим" столбцом в каждой строке, в который заносятся данные о местоположении.

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

import geopandas as gpd# Load the Shape map of New York City as a GeoDataFrameshape_df = gpd.read_file(shape_data_dir/'ny.shp')

Предварительная обработка геоданных (базовые системы координат)

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

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

Базовая система координат привязывает координаты широты/долготы к реальной точке на ЗемлеБазовая система координат привязывает координаты широты/долготы к реальной точке на Земле

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

Предварительная обработка геоданных (картографические проекции)

Аналогичным образом системы CRS используются для проецирования координат местоположения на карту с целью визуализации.

Картографическая проекция выводит изображение 3D-сферы на 2D-поверхностьКартографическая проекция выводит изображение 3D-сферы на 2D-поверхность

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

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

Визуализация

В Geopandas реализована довольно мощная встроенная функциональность прорисовки. Кроме того, для визуализации геоданных можно использовать другие отличные библиотеки Python, например Folium и Plotly.

Загрузите данные приложения в Pandas Dataframe.

Переведите данные в GeoDataFrame посредством преобразования информации о местоположении в её геометрический формат.

import pandas as pdimport geopandas as gpdfrom shapely.geometry import Point# Load your application data with Pandasapp_df = pd.read_csv(app_data_dir/'app.csv')# Convert it to a GeoDataFrame by transforming the Latitude/Longitude coordinates loc_crs = {'init': 'epsg:4326'}loc_geom = [Point(xy) for xy in zip(app_df['longitude'], app_df['latitude'])]geo_df = gpd.GeoDataFrame(app_df, crs=loc_crs, geometry=loc_geom)# Plot the GeoDataFramegeo_df.plot()

Затем выведите изображение GeoDataFrame.

Изображение данных о местоположенииИзображение данных о местоположении

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

Базовая карта Нью-ЙоркаБазовая карта Нью-Йорка
import matplotlib.pyplot as pltfig, ax = plt.subplots(figsize=(10,10))# Plot the base mapshape_df.plot(ax=ax, color='lightgrey', zorder=1)# Overlay the data locationsgeo_df.plot(ax=ax, alpha=0.5, zorder=2)
Для получения контекста наложите данные о местоположении на базовую картуДля получения контекста наложите данные о местоположении на базовую карту

Добавление функциональных возможностей

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

Геокодирование и обратное геокодирование

Геокодирование это способ привязки адреса, записанного в текстовом виде (например адреса дома, который вы собираетесь оценить), к координатам (широте/долготе). И, наоборот, обратное геокодирование позволяет сопоставить с координатами адрес (по улице, городу, штату и почтовому индексу). Такую функциональность обеспечивает Geopy популярная Python-библиотека.

Расстояние между двумя точками

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

  • эвклидово расстояние простое расстояние по прямой между координатами (x, y) двух точек. Это расстояние измеряется на плоской 2D-поверхности;

  • геодезическое расстояние измеряется на сферической Земле, то есть на трёхмерной поверхности. Например, кратчайшим расстоянием будет расстояние между двумя точками на сфере. Расстояние Haversine это примерно то же, что и дуга большого круга, но для его расчёта используется формула Haversine;

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

Манхэттенское расстояниеМанхэттенское расстояние

Определение направления из одной точки к другой

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

Направление между Кейптауном и МельбурномНаправление между Кейптауном и Мельбурном

Расстояние от точки до ломаной

Это ещё одна полезная информация. Например, вы хотите узнать, как далеко отстоит дом от шоссе, железнодорожного пути или автобусного маршрута? Или какое расстояние от фермы до реки?

Локализация

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

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

Перекрытие регионов

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

Географическая кластеризация

Помогает группировать места в географические кластеры, которые могут не совпадать с существующими географическими границами страны или штата.

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

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

Встраивание географических областей

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

Модели машинного обучения

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

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

Обратите внимание, что значения широты/долготы часто могут использоваться в чистом виде с древовидными моделями, такими как Random Forest или Gradient Boost, не требующими нормализации данных. Другие модели, например нейросетевые, обычно требуют нормализации значений координат.

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

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru