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