Точность координат QGIS

11

В каком (х-м) десятичном знаке значений координат QGIS определяет какой-либо набор точек дубликатов?

Я думал, что QGIS обрабатывает ~ 15-й знак после запятой; но это было ограничение только потому, что я в основном работал над шейп-файлами.

введите описание изображения здесь

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

введите описание изображения здесь

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

  • QGIS геообработка: Delete duplicate geometries
  • Плагин MMQGIS: Delete Duplicate Geometries

введите описание изображения здесь

введите описание изображения здесь

Вывод по QGIS Delete duplicate geometriesаналогичен приведенным выше входным данным (все 20 записей были сохранены), поэтому это может означать, что QGIS считает, что все они различны. Этот предел выходит за пределы 1e-29 (или 1e-30), наблюдаемого в этом небольшом тесте?

Так же, как сравнение, MMQGIS Delete Duplicate Geometriesпроизводится ниже. Похоже, MMQGIS устанавливает 16-й или 17-й знак после запятой в качестве предела.

введите описание изображения здесь


[Редактировать]

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

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

Если мы используем шейп-файлы для нашего слоя, QGIS обрабатывает ~ 15-е десятичное место, а меньшая разница (16-го или 17-го) не распознается ... На это ограничение также влияет MMQGIS (на мой взгляд). Если мы создадим временный царапающий слой или слои DB, это ограничение выходит далеко за рамки 30-го? Это изменение в поведении заставляет меня задуматься.

Казухито
источник
2
С ArcGis при создании классов пространственных объектов в базе данных вы можете указать минимальную разницу между двумя координатами, которые будут считаться разными (значение по умолчанию составляет 0,001 м для координат, проецируемых в метрах, и 0,000000008983153 градуса для WGS84). Мне также интересно узнать, что это за значения в qgis и можно ли их изменить.
JR

Ответы:

2

Инструмент QGIS Delete Duplicate Geometries (в Geoalgorithms QGIS 2.18, Vector General Tools) - это скрипт Python, который работает с геометрическими объектами, экспортируемыми / предоставляемыми слоем Python QGIS. А под этим слоем находится слой GEOS.

Оператор равенства геометрии слоя GEO принимает параметр допуска (в единицах расстояния карты) при сравнении двух геометрий. К сожалению, этот параметр допуска не предоставляется слоем Python QGIS - следовательно, для Delete Duplicate Geometries две геометрии считаются равными тогда и только тогда, когда все их значения XY полностью равны. Например, POINT (1.000000 1.000000) не равен POINT (1.00000001 1.00000001).

Ральф Ти
источник
Спасибо за внимание к геоалгоритму QGIS! Из ваших выводов, если инструменты-обертки (такие как скрипты Python) не имеют доступа к параметру допуска, означает ли это, что допуск зависит только от типа данных? (Другими словами, это причина, по которой кажется, что допуск контролируется выбранным нами источником данных?)
Казухито,
Да. В этот момент вы должны сами усечь или округлить значения X и Y, прежде чем выполнять обнаружение дубликатов. Это просто для ТОЧЕК (хотя это все же включает в себя несколько шагов преобразования туда и обратно), но для других геометрий потребуется (существенное) программирование.
Ральф Ти
Понимаю. Большое спасибо за дальнейшие разъяснения. Пока что это немного прискорбно, но, надеюсь, будущие версии QGIS дают нам (я имею в виду, непрограммистам) больше возможностей для контроля.
Казухито
1

Интересным чтением по этому вопросу является частый вопрос: измерение точности широты и долготы?

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

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

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

Marco
источник
Спасибо @Marco, но вопрос, который я хотел сосредоточить в своем вопросе, заключался в том, что точность (следовательно, напрямую связанная с дублирующимися / перекрывающимися проблемами), по-видимому, контролируется его источником данных (шейп-файл или дБ, например, пространственный, ...) Извините это, возможно, не было достаточно ясно. Я отредактирую вопрос, чтобы уточнить.
Казухито
0

Я зарегистрирован землемером в нескольких штатах. В разных проекциях вы видите прямые линии / расстояния, идущие от решеток Ламберта или Меркатора. Это все равно что поместить конус на землю, тогда измерение, которое вы проводите, находится на линиях радиусов над кривизной земли. Поперечная проекция Меркатора представляет собой цилиндрическую проекцию для более длинных восточно-западных штатов, таких как Теннесси. Используя системы GPS для съемки, мы часто сравниваем информацию с мировыми прогнозами и даже с проекциями состояния, когда они лежат на антеннах. Все измерения основаны на параметрах, встроенных в расчеты в каждой измеренной точке. Использование оборудования GIS Grade, имеющего параметр подметра, очень хорошо подходит для одного или двух миль. Примерно после 6 знаков после запятой в угловых измерениях вы можете ожидать максимальную точность. Независимо от того, сколько раз вы используете GPS точку с точностью до одного метра, вы никогда не получите «Среднее» или даже «Режим», который будет соответствовать измерениям с высокой точностью. Подводя итог, когда я работаю с информацией об Антеннах или Спутниках, я не позволяю метру или около того беспокоить меня. О, есть сферические расчеты для измерения ворса земли с использованием тета-углов, вычисляющих угол отвеса в поле по сравнению с вычисленным углом в этой точке к центру земли. Нет такого понятия, как истинное измерение. Чтобы доказать это нам, когда я начал съемки в 1975 году, наш босс на холмистой дороге на расстоянии в четверть мили друг от друга сделал два гвоздя, и нам пришлось цеплять его и снимать расстояние каждый день в течение месяца. С учетом атмосферных поправок на цепи и измерителе расстояния HP мы сопоставили исходное расстояние только 3 раза с измерителем расстояния и 1 раз с цепью. Очень унизительный пример и остается со мной на протяжении всех этих лет. Однажды меня осудили на конференции по ГИС, когда меня объявили землемером (хе-хе), и я не сказал ни слова, но я знаю, когда надеть шляпу для наблюдателей, а когда надеть шапку для ГИС.

user35019
источник
Я понимаю вашу точку зрения. На самом деле я никогда не сталкивался с реальной точностью. QGIS говорит мне, что даже в нано-масштабе или пико-шкале я стою в разных местах, это тоже хорошо. Только я не могу понять, сколько десятичных знаков требуется, чтобы я сказал, что два заданных пункта являются дубликатами. Кстати, большое спасибо за то, что поделились историей 1970-х годов, я никогда не слышал о такой новаторской фазе картографирования и ГИС, особенно в дни до GPS. Ух ты.
Казухито