QGIS координати точності


11

У якому (x-му) десятковому значенні значень координат QGIS визначає, що будь-який набір точок є дублюючим?

Я думав, що QGIS справляє з ~ 15-м десятковим дном; але це обмеження було лише тому, що я працював в основному над Shapefiles.

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

Однак обмеження не застосовується, коли я вибираю інше джерело даних, наприклад, часовий шар подряпин.

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

Використовуючи дані манекена, як показано нижче, я зробив швидкий тест двома інструментами, щоб знайти найменше значення, за яким вони можуть визначити відмінності координат:

  • Геообробка 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 з десяткових знаків розпізнає точки (вузли) як схожі на перекриття, залежно від джерела даних.

Якщо ми використовуємо Shapefiles для нашого шару, QGIS обробляє ~ 15-й десятковий знак і менша різниця (на 16-му чи 17-му) не розпізнається ... MMQGIS також впливає на це обмеження (на мій погляд). Якщо ми створимо часовий шар нуля або шари БД, це обмеження виходить за рамки 30-го? Ця зміна поведінки змушує мене замислитися.


2
За допомогою ArcGis при створенні класів функцій у базі даних ви можете вказати мінімальну різницю між двома координатами, які вважатимуться різними (значення за замовчуванням здається 0,001 м для координати, прогнозованої у метрі, та 0,000000008983153 градуса для WGS84). Мені також цікаво дізнатись про те, які ці значення є у qgis, і чи можете ви їх змінити.
JR

Відповіді:


2

Інструмент для видалення дублікатів геометрії QGIS (у Геоалгоритмах QGIS 2.18, Загальні векторні інструменти) - це сценарій Python, який працює на об’єктах геометрії, експортованих / оголених шаром Python QGIS. А під цим шаром - шар GEOS.

Оператор рівності геометрії шару GEO приймає параметр допуску (в одиниці відстані карти) при порівнянні двох геометрій. На жаль, цей параметр допуску не піддається шару Python QGIS - отже, для видалення дублікатів геометрії дві геометрії вважаються рівними, якщо і лише тоді, коли всі їх значення XY повністю рівні. Наприклад, POINT (1.000000 1.000000) не дорівнює POINT (1.00000001 1.00000001).


Дякуємо, що вивчили геоалгоритм QGIS! З ваших висновків, якщо інструменти для обгортки (такі як сценарії Python) не мають доступу до параметра допуску, чи означає це, що допуск залежить лише від типу даних? (Іншими словами, це причина, чому здається, ніби толерантність контролюється джерелом даних, яке ми обираємо?)
Kazuhito

Так. На даний момент часу вам доведеться самостійно обрізати або округляти значення X і Y, перш ніж виконувати пошук дублікатів. Це зрозуміло для POINT (хоча це все ще включає декілька кроків, що перетворюються туди-сюди), але інші геометрії потребують (значного) програмування.
Ральф Трій

Я бачу. Дякую за подальше уточнення. Наразі це трохи прикро, але, сподіваємось, майбутні версії QGIS дають нам (я маю на увазі, непрограмістів) ще трохи місця для контролю.
Казухіто

1

Цікавим читанням з цього приводу є таке часте запитання: Вимірювання точності широти та довготи?

Я не знаю інструментів, призначених для ідентифікації дублікатів, але з обчислювальної точки зору це лише питання способу обробки чисел архітектурою зберігання сутностей та програмним забезпеченням, яке ними обробляє. Два різних числа будуть виводитись до FLASEтих пір, поки мова буде представляти числа таким чином, що вони трохи зміняться, якщо тест є, якщо вони не рівні. У багатьох випадках інтерес дубліката полягає у знаходженні цілком однакових значень, з'ясуванні свого роду помилки друку під час оцифрування, а не наскільки вони близькі.

В інших контекстах інтерес дублікатів полягає у виявленні об'єктів, які є досить близькими і в практичному розумінні вони відповідають.

Якщо припустити, що QGIS використовує Python як основну мову, ваше запитання може бути адресовано документам Python, і ви отримаєте цікаве прочитання про те, чим арифметика бази 2 відрізняється від наших елементарних математичних книг: Python: Арифметика з плаваючою точкою: питання та обмеження


Дякую @Marco, але в моєму питанні я хотів зосередитись на тому, що точність (звідси безпосередньо пов'язана з дублікатами / проблемами, що перекриваються), здається, контролюється джерелом даних (shapefile або db, таким як просторит, ...) Вибачте це може бути недостатньо зрозумілим. Я відредагую питання, щоб уточнити.
Казухіто

0

Я зареєстрований землевпорядник у кількох штатах. Те, що ви бачите в різних проекціях, - це прямі / відстані, що йдуть від сіток Ламберта або Меркатора. Це як розміщення конуса на землі, тоді вимірювання, яке ви проводите, розміщується на лініях радіусів над кривизною землі. Поперечний Меркатор - це циліндрична проекція для більш довгих держав Східного Заходу, таких як Теннессі. Використовуючи GPS-системи для опитування, ми часто порівнюємо інформацію зі світовими прогнозами та навіть прогнозами стану, коли вони лежать на антенах. всі вимірювання базуються на параметрах, вбудованих у розрахунки в кожній вимірюваній точці. Використання обладнання GIS Grade, яке має параметр підмірника, дуже добре відповідає за одну або дві милі. Приблизно через 6 знаків після коми в кутових вимірах - це максимум, на який можна розраховувати точність. Незалежно від того, скільки разів ви GPS точку з точністю сказати на один метр, ви ніколи не отримаєте "Середній" або навіть "Режим", який буде відповідати вимірам високої точності. Підсумовуючи це, під час роботи з антенами або супутниковою інформацією я не дозволяю мені лічильник і так мене турбує. О, існують сферичні розрахунки для дрімоти вимірювань землі за допомогою тета-кутів, що обчислюють кут відхилення в полі порівняно з обчисленим кутом у цій точці до центру землі. Не існує такого поняття, як справжнє вимірювання. Щоб довести цю точку до нас, коли я почав опитувати в 1975 році, наш бос встановив два цвяхи в горбистій дорозі на відстані чверть милі, і нам довелося це ланцюг і стріляти дистанцію щодня протягом місяця. За допомогою атмосферних корекцій на ланцюговому і HP-лічильнику відстані ми лише узгоджували початкову відстань 3 рази із вимірювачем відстані та 1 раз із ланцюгом. Дуже принизливий приклад і залишається зі мною весь цей рік. Я колись освистався на конгресі ГІС, коли вони оголосили мене землевпорядником (він він), і я не сказав жодного слова, але я знаю, коли надіти шапку з урвейера і коли надіти мою шапку ГІС.


Я бачу вашу думку. Насправді я ніколи не стикався з реальністю в точності. QGIS говорить мені навіть у нано-або піко-масштабі, я стою в різних місцях, це теж добре. Тільки я не можу зрозуміти, скільки знаків у десятковій кількості вимагає від мене, щоб сказати, що два задані точки - це дублікати. До речі, велике спасибі за те, що поділився історією 1970-х, я ніколи не чув про таку піонерську фазу картографування та ГІС, особливо до днів GPS. Ого.
Казухіто
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.