Precyzja współrzędnych QGIS

11

W którym (x) miejscu dziesiętnym wartości współrzędnych QGIS określa, że ​​dowolny zestaw punktów jest zduplikowany?

Myślałem, że QGIS zajmuje ~ 15 miejsce po przecinku; ale było to ograniczenie tylko dlatego, że pracowałem głównie nad Shapefiles.

wprowadź opis zdjęcia tutaj

Limit nie ma jednak zastosowania, gdy wybiorę inne źródło danych, na przykład tymczasowo zarysowaną warstwę.

wprowadź opis zdjęcia tutaj

Korzystając z danych fikcyjnych, takich jak poniżej, wykonałem szybki test za pomocą dwóch narzędzi, aby znaleźć najmniejszą wartość, jaką mogą zidentyfikować różnice we współrzędnych:

  • Geoprzetwarzanie QGIS: Delete duplicate geometries
  • Wtyczka MMQGIS: Delete Duplicate Geometries

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Dane wyjściowe przez QGIS Delete duplicate geometriessą takie same jak powyższe dane wejściowe (wszystkie 20 zapisów zostało zachowanych), więc może to oznaczać, że QGIS uważa, że ​​wszystkie są różne. Czy ten limit wykracza poza 1e-29 (lub 1e-30) w tym małym teście?

Dla porównania, MMQGIS Delete Duplicate Geometriesponiżej. Wygląda na to, że MMQGIS określa limit na 16 lub 17 miejsca po przecinku.

wprowadź opis zdjęcia tutaj


[Edytować]

Obawiam się, że nie byłam jasna, co było centralną częścią mojego pytania. Moim celem jest zrozumienie związku między wartościami współrzędnych a duplikatami / nakładaniem się, to znaczy, jak stwierdzono w pierwszym akapicie mojego pytania. Mamy nadzieję, że ten rodzaj wiedzy pomoże nam łatwo kontrolować nakładające się funkcje, modyfikując wyrażenia pola kalkulatora.

Jednak zasadniczą kwestią, na którą starałem się skupić, było to, że miejsca dziesiętne QGIS rozpoznaje punkty (węzły), ponieważ nakładanie się wydaje się różnić w zależności od źródła danych.

Jeśli użyjemy Shapefiles dla naszej warstwy, QGIS obsługuje ~ 15 miejsce po przecinku, a mniejsza różnica (16 lub 17) nie jest rozpoznawana ... Ograniczenie to wpływa na MMQGIS (moim zdaniem). Jeśli utworzymy warstwę tymczasowo zarysowaną lub warstwę DB, ograniczenie to znacznie wykracza poza 30-ty? Ta zmiana w zachowaniu mnie zastanawia.

Kazuhito
źródło
2
Za pomocą ArcGis podczas tworzenia klas obiektów w bazie danych możesz określić minimalną różnicę między dwiema współrzędnymi, które mają być uważane za różne (domyślna wartość wydaje się wynosić 0,001 m dla współrzędnych rzutowanych w metrach i 0,000000008983153 stopnia dla WGS84). Chciałbym również wiedzieć, jakie są te wartości w qgis i czy możesz je zmodyfikować.
JR

Odpowiedzi:

2

Narzędzie QGIS Delete Duplicate Geometries (w Geoalgorytmach QGIS 2.18, Vector General Tools) to skrypt w języku Python, który działa na obiektach geometrycznych eksportowanych / odsłoniętych przez warstwę Python w QGIS. A pod tą warstwą znajduje się warstwa GEOS.

Operator równości geometrii warstwy GEO akceptuje parametr tolerancji (w jednostce odległości mapy) podczas porównywania dwóch geometrii. Niestety ten parametr tolerancji nie jest ujawniany przez warstwę Pythona QGIS - stąd w przypadku usuwania zduplikowanych geometrii dwie geometrie są uważane za równe wtedy i tylko wtedy, gdy wszystkie ich wartości XY są całkowicie równe. Np. POINT (1.000000 1.000000) nie jest równy POINT (1.00000001 1.00000001).

Koszulka Ralph
źródło
Dziękujemy za przyjrzenie się geo-algorytmowi QGIS! Z twoich ustaleń, jeśli narzędzia otoki (takie jak skrypty Pythona) nie mają dostępu do parametru tolerancji, czy to oznacza, że ​​tolerancja zależy wyłącznie od typu danych? (Innymi słowy, czy to jest powód, dla którego wydaje się, że tolerancja jest kontrolowana przez wybrane przez nas źródło danych?)
Kazuhito
Tak. W tym momencie musisz samodzielnie obciąć lub zaokrąglić wartości X i Y przed wykonaniem wykrywania duplikatów. Jest to proste w przypadku PUNKTÓW (chociaż nadal wymaga kilku kroków konwersji do iz powrotem), ale inne geometrie będą wymagały (znacznego) programowania.
Ralph Tee
Widzę. Dziękuję bardzo za dalsze wyjaśnienia. Na razie jest to trochę niefortunne, ale mam nadzieję, że przyszłe wersje QGIS dadzą nam (mam na myśli, że nie są programistami) więcej możliwości do kontrolowania.
Kazuhito,
1

Interesującym czytaniem na ten temat jest to częste pytanie: Mierzenie dokładności szerokości i długości geograficznej?

Nie znam narzędzi zaprojektowanych do identyfikowania duplikatów, ale z obliczeniowego punktu widzenia jest to tylko kwestia sposobu, w jaki liczby są obsługiwane przez architekturę przechowywania jednostek i oprogramowanie, które je obsługuje. Zostaną wyświetlone dwie różne liczby, FLASEo ile język reprezentuje liczby w sposób, który robi różnicę, jeśli test jest taki, że nie są one równe. W wielu przypadkach celem duplikatu jest znalezienie takich samych wartości, znalezienie pewnego rodzaju pomyłki literowej podczas digitalizacji, a nie jak blisko są.

W innych kontekstach duplikaty mają na celu identyfikację obiektów, które są wystarczająco blisko iw praktyce pasują do siebie.

Zakładając, że QGIS używa Pythona jako głównego języka, twoje pytanie może zostać skierowane do dokumentów Pythona i będziesz miał ciekawą lekturę na temat tego, jak podstawowa arytmetyka różni się od naszych podstawowych książek matematycznych: Python: zmiennoprzecinkowa arytmetyka: problemy i ograniczenia

Marco
źródło
Dzięki @Marco, ale chciałem skupić się na swoim pytaniu, że precyzja (stąd bezpośrednio związana z duplikatami / nakładającymi się problemami) wydaje się być kontrolowana przez jej źródło danych (plik kształtu lub db, taki jak spatialite, ...) Przepraszamy to może nie być wystarczająco jasne. Przeredaguję pytanie, aby wyjaśnić.
Kazuhito,
0

Jestem zarejestrowanym geodetą w kilku stanach. Z różnymi rzutami widać proste linie / odległości pochodzące od siatek Lamberta lub Mercatora. To tak, jakby umieścić stożek na ziemi, a następnie pomiar, który wykonujecie, umieszczany jest na liniach promieni nad krzywizną ziemi. Transverse Mercator to cylindryczna projekcja dla dłuższych stanów East West, takich jak Tennessee. Korzystając z systemów GPS klasy ankietowej, często porównujemy informacje z prognozami światowymi, a nawet prognozami stanowymi, które leżą na antenach. wszystkie pomiary oparte są na parametrach wbudowanych w obliczenia w każdym mierzonym punkcie. Korzystanie ze sprzętu klasy GIS, który ma parametr podmetrowy, bardzo dobrze pasuje do odcinków o długości jednego lub dwóch mil. Po około 6 miejscach dziesiętnych w pomiarach kątowych jest maksimum, którego można oczekiwać. Bez względu na to, ile razy GPS wskazuje punkt z dokładnością do jednego metra, nigdy nie uzyska się „średniej” ani nawet „trybu”, który będzie pasował do pomiarów o wysokiej dokładności. Podsumowując, kiedy pracuję z informacjami z anten lub satelitów, nie przeszkadza mi miernik. Och, istnieją obliczenia sferyczne dla drzemki pomiarów ziemi przy użyciu kątów theta obliczających kąt pionowy w polu w porównaniu do obliczonego kąta w tym punkcie do środka ziemi. Nie ma czegoś takiego jak prawdziwy pomiar. Aby to nam udowodnić, kiedy zacząłem przeglądać w 1975 roku, nasz szef umieścił dwa gwoździe w pagórkowatej drodze oddalonej o ćwierć mili, a my musieliśmy je związać i codziennie pokonywać odległość przez miesiąc. Dzięki poprawkom atmosferycznym na łańcuchu i dalmierzowi HP dopasowaliśmy oryginalną odległość tylko 3 razy z licznikiem odległości i 1 raz z łańcuchem. Bardzo pokorny przykład i zostaje ze mną przez cały rok. wygwizdałam się na konwencji GIS, kiedy ogłoszono mnie jako geodeta (on on) i nie powiedziałem ani słowa, ale wiem, kiedy założyć czapkę inspektora i kiedy założyć czapkę GIS.

użytkownik35019
źródło
Rozumiem co masz na myśli. W rzeczywistości nigdy nie miałem trudności z dokładnością w prawdziwym świecie. QGIS mówi mi nawet w skali nano lub piko, że stoję w różnych miejscach, to też dobrze. Tylko nie potrafię ustalić, ile miejsca po przecinku wymaga ode mnie, aby powiedzieć, że dwa podane punkty to duplikaty. Nawiasem mówiąc, bardzo dziękuję za podzielenie się historią z lat 70., nigdy nie słyszałem o tak pionierskiej fazie mapowania i GIS, szczególnie w czasach sprzed GPS. Łał.
Kazuhito,