Précision des coordonnées QGIS

11

À quelle (xième) décimale des valeurs de coordonnées QGIS définit un ensemble de points en double?

Je pensais que QGIS gère ~ 15e décimale; mais c'était la limitation uniquement parce que je travaillais principalement sur les Shapefiles.

entrez la description de l'image ici

Cependant, la limite ne s'applique pas lorsque je choisis une autre source de données, comme une couche à gratter temporellement.

entrez la description de l'image ici

En utilisant des données fictives comme ci-dessous, j'ai fait un test rapide avec deux outils, pour trouver la plus petite valeur, ils peuvent identifier les différences de coordonnées:

  • Géotraitement QGIS: Delete duplicate geometries
  • Plugin MMQGIS: Delete Duplicate Geometries

entrez la description de l'image ici

entrez la description de l'image ici

La sortie par QGIS Delete duplicate geometriesest identique aux données d'entrée ci-dessus (les 20 enregistrements ont été conservés), cela peut donc signifier que QGIS pense qu'ils sont tous distincts. Cette limite va-t-elle au-delà de 1e-29 (ou 1e-30) observée dans ce petit test?

Juste à titre de comparaison, MMQGIS Delete Duplicate Geometriesproduit ci-dessous. Il semble que MMQGIS définit la 16e ou 17e décimale comme limite.

entrez la description de l'image ici


[Éditer]

Je crains de ne pas avoir été clair sur le point central de ma question. Mon objectif est de comprendre la relation entre les valeurs de coordonnées et les doublons / chevauchements, c'est-à-dire comme indiqué dans le premier paragraphe de ma question. Espérons que ce type de connaissances peut nous aider à contrôler facilement les fonctionnalités qui se chevauchent en modifiant les expressions de la calculatrice de champ.

Cependant, le problème sous-jacent que j'essayais de mettre au point était que les décimales que QGIS reconnaît les points (nœuds) comme les chevauchements semblent varier, selon la source de données.

Si nous utilisons des Shapefiles pour notre couche, QGIS gère ~ 15ème décimale et une plus petite différence (au 16ème ou 17ème) n'est pas reconnue ... MMQGIS est également affecté par cette limitation (à mes yeux). Si nous créons une couche à gratter temporellement ou des couches DB, cette limitation va bien au-delà du 30ème? Ce changement de comportement me fait me demander.

Kazuhito
la source
2
Avec ArcGis lors de la création d'une classe d'entités dans une base de données, vous pouvez spécifier la différence minimale entre deux coordonnées à considérer comme différentes (la valeur par défaut semble être 0,001 m pour les coordonnées projetées en mètres et 0,000000008983153 degrés pour WGS84). Je suis également intéressé de savoir quelles sont ces valeurs dans qgis et si vous pouvez les modifier.
JR

Réponses:

2

L' outil QGIS Delete Duplicate Geometries (dans les Geoalgorithms de QGIS 2.18, Outils généraux de vecteur) est un script Python qui fonctionne sur les objets de géométrie exportés / exposés par la couche Python de QGIS. Et sous cette couche se trouve la couche GEOS.

L'opérateur d'égalité de géométrie de la couche GEO accepte un paramètre de tolérance (en unité de distance de carte) lors de la comparaison de deux géométries. Malheureusement, ce paramètre de tolérance n'est pas exposé par la couche Python de QGIS - donc pour Supprimer les géométries en double , deux géométries sont considérées comme égales si et seulement si toutes leurs valeurs XY sont totalement égales. Par exemple, POINT (1.000000 1.000000) n'est pas égal à POINT (1.00000001 1.00000001).

Ralph Tee
la source
Merci d'avoir étudié le géoalgorithme QGIS! D'après vos résultats, si les outils d'encapsulation (tels que les scripts Python) n'ont pas accès au paramètre de tolérance, cela implique-t-il que la tolérance dépend uniquement du type de données? (En d'autres termes, est-ce la raison pour laquelle il semble que la tolérance soit contrôlée par la source de données que nous choisissons?)
Kazuhito
Oui. À ce stade, vous devez tronquer ou arrondir vous-même les valeurs X et Y avant d'effectuer une détection des doublons. C'est simple pour les POINTS (même si cela implique encore plusieurs étapes de conversion en va-et-vient), mais les autres géométries nécessiteront une programmation (substantielle).
Ralph Tee
Je vois. Merci beaucoup pour plus de précisions. C'est un peu malheureux pour l'instant, mais j'espère que les futures versions de QGIS nous donneront (je veux dire, les non-programmeurs) un peu plus de contrôle.
Kazuhito
1

Une lecture intéressante à ce sujet est cette question fréquente: mesurer la précision de la latitude et de la longitude?

Je ne connais pas les outils conçus pour identifier les doublons, mais d'un point de vue informatique, c'est juste une question de gestion des nombres par l'architecture de stockage des entités et le logiciel qui les gère. Deux nombres différents sortiront FLASEtant que la langue représente les nombres d'une manière qui fait une petite différence si le test est si ils ne sont pas égaux. Dans de nombreux cas, l'intérêt du doublon est de trouver des valeurs identiques, de découvrir une sorte d'erreur de frappe lors de la numérisation, et non pas la proximité.

Dans d'autres contextes, l'intérêt des doublons est d'identifier des objets suffisamment proches et concrètement adaptés.

En supposant que QGIS utilise Python comme langage principal, votre question peut être adressée aux documents Python et vous aurez une lecture intéressante sur la façon dont une arithmétique de base 2 diffère de nos livres élémentaires de mathématiques: Python: Arithmétique à virgule flottante: problèmes et limitations

Marco
la source
Merci @Marco, mais le point sur lequel je voulais me concentrer dans ma question était que la précision (donc directement liée aux problèmes de duplication / chevauchement) semble être contrôlée par sa source de données (shapefile, ou db comme spatialite, ...) Désolé ce n'était peut-être pas assez clair. Je vais modifier la question pour clarifier.
Kazuhito
0

Je suis un arpenteur-géomètre agréé dans plusieurs États. Ce que vous voyez avec les différentes projections sont des lignes droites / distances provenant des grilles Lambert ou Mercator. C'est comme placer un cône sur la terre, puis la mesure que vous prenez est placée sur les lignes de rayons au-dessus de la courbure de la terre. Transverse Mercator est une projection cylindrique pour les États plus longs de l'Est-Ouest comme le Tennessee. En utilisant des systèmes GPS de qualité topographique, nous comparons souvent les informations avec les projections mondiales et même les projections des états lorsqu'elles reposent sur les antennes. toutes les mesures sont basées sur les paramètres intégrés dans les calculs à chaque point mesuré. L'utilisation d'un équipement GIS Grade qui a un paramètre inférieur au mètre correspond très bien sur des tronçons d'un ou deux milles. Après environ 6 décimales dans les mesures angulaires, vous pouvez vous attendre à ce que la précision soit maximale. Quel que soit le nombre de fois où vous GPSez un point avec une précision d'un mètre par exemple, vous n'obtiendrez jamais de «moyenne» ni même de «mode» qui correspondra aux mesures de haute précision. Pour résumer le tout, lorsque je travaille avec des informations sur les antennes ou les satellites, je ne laisse pas un mètre ou plus me déranger. Oh, il y a des calculs sphériques pour la sieste des mesures de la terre en utilisant des angles thêta calculant l'angle d'aplomb dans le champ par rapport à l'angle calculé à ce point du centre de la terre. Il n'y a pas de vraie mesure. Pour nous prouver ce point lorsque j'ai commencé l'arpentage en 1975, notre patron a mis deux clous sur une route vallonnée à un quart de mile l'un de l'autre et nous avons dû l'enchaîner et tirer la distance tous les jours pendant un mois. Avec les corrections atmosphériques sur la chaîne et le télémètre HP, nous n'avons fait correspondre la distance d'origine que 3 fois avec le télémètre et 1 fois avec la chaîne. Un exemple très humiliant et qui reste avec moi toute cette année. J'ai été hué lors d'une convention SIG une fois quand ils m'ont annoncé comme arpenteur-géomètre (il il) et je n'avais pas dit un mot mais je sais quand mettre mon chapeau de transporteur et quand mettre mon chapeau SIG.

user35019
la source
Je vois ce que tu veux dire. En fait, je ne me suis jamais retrouvé à lutter avec une précision réelle. QGIS me dit que même à l'échelle nano ou pico, je me tiens à différents endroits, c'est bien aussi. Seulement, je ne peux pas déterminer la décimale qu'il me faut mettre pour dire que deux points donnés sont les doublons. Au fait, merci beaucoup d'avoir partagé l'histoire des années 1970, je n'ai jamais entendu parler d'une phase aussi novatrice de cartographie et de SIG, en particulier les jours pré-GPS. Sensationnel.
Kazuhito