Le calcul de la zone de cercle dans QGIS est inexact

8

J'ai créé un cercle avec un rayon de 3 km, calculé la zone à l'aide de la calculatrice de terrain et obtenu un résultat différent de la zone réelle.

Le résultat QGIS est 28273078.8 tandis que la zone calculée manuellement est 28274333.9, qui est également le même nombre que j'ai obtenu lorsque j'ai calculé la zone dans ArcMap.

La projection "à la volée" est désactivée et le projet CRS est défini sur utm32

Des idées sur la cause de cela, comment obtenir des calculs de zone plus précis?

A. Jousef
la source
3
Comment avez-vous créé le cercle, en particulier combien de sommets avez-vous utilisé pour approximer le cercle?
Jake
J'ai essayé deux méthodes, la première consistait à mettre en tampon un cercle à partir d'un point avec 99 segments à approximer et la seconde à créer un cercle dans ArcMap et à l'utiliser dans QGIS. Les deux méthodes ont produit le même problème.
A. Jousef
Cela dépend du rayon, mais je préfère utiliser au moins 181 sommets si la zone est importante pour moi.
Vince
Voir ma réponse dans gis.stackexchange.com/questions/168168/… pour la précision de la zone par densité de vertex.
Vince
Vince vous a déjà donné la réponse, mais je suis toujours intrigué par le résultat que QGIS vous a donné. Avec 99 sommets et un rayon de 3 km, le résultat devrait être 28255356.207 m2. Pourriez-vous vérifier si la distance entre le centre du cercle et l'un des sommets est de 3 km? Peut-être que les sommets sont en fait un peu plus éloignés pour obtenir une meilleure approximation.
Jake

Réponses:

15

Toutes les versions récentes d'ArcGIS trichent - le type de forme sous-jacent sait quand il a été généré en tant que cercle et signale une zone de cercle parfaite, même lorsque le nombre de sommets en ferait un octogone.

Je viens fouetté un code de test en utilisant l' API ArcSDE « C » et a obtenu les résultats suivants (tous générés par un cercle d' un point {0,100000}dans PCS_WGS_1984_UTM_32N):

ArcSDE 10.2 Dynamic ASCII Table Utility  Sat Jan 02 15:37:30 2016
------------------------------------------------------------------------
         1
              Radius: 3000.00
              nVerts: 9
               Shape: Area shape (1 part, 9 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 25455900.00000000
          pct_ACTUAL: 90.03182924
         2
              Radius: 3000.00
              nVerts: 13
               Shape: Area shape (1 part, 13 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 26999987.41125000
          pct_ACTUAL: 95.49292133
         3
              Radius: 3000.00
              nVerts: 19
               Shape: Area shape (1 part, 19 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 27703641.02895000
          pct_ACTUAL: 97.98158692
         4
              Radius: 3000.00
              nVerts: 37
               Shape: Area shape (1 part, 37 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28131014.34700000
          pct_ACTUAL: 99.49311083
         5
              Radius: 3000.00
              nVerts: 91
               Shape: Area shape (1 part, 91 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28251381.25285000
          pct_ACTUAL: 99.91882168
         6
              Radius: 3000.00
              nVerts: 99
               Shape: Area shape (1 part, 99 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28254960.01385000
          pct_ACTUAL: 99.93147896
         7
              Radius: 3000.00
              nVerts: 100
               Shape: Area shape (1 part, 100 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28255353.61820000
          pct_ACTUAL: 99.93287105
         8
              Radius: 3000.00
              nVerts: 181
               Shape: Area shape (1 part, 181 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28268601.72120000
          pct_ACTUAL: 99.97972663
         9
              Radius: 3000.00
              nVerts: 361
               Shape: Area shape (1 part, 361 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28272903.62000000
          pct_ACTUAL: 99.99494148
        10
              Radius: 3000.00
              nVerts: 385
               Shape: Area shape (1 part, 385 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28273075.88680000
          pct_ACTUAL: 99.99555075
        11
              Radius: 3000.00
              nVerts: 386
               Shape: Area shape (1 part, 386 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28273079.37910000
          pct_ACTUAL: 99.99556310
        12
              Radius: 3000.00
              nVerts: 387
               Shape: Area shape (1 part, 387 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28273082.09195000
          pct_ACTUAL: 99.99557270
        13
              Radius: 3000.00
              nVerts: 396
               Shape: Area shape (1 part, 396 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28273146.91000000
          pct_ACTUAL: 99.99580194
        14
              Radius: 3000.00
              nVerts: 397
               Shape: Area shape (1 part, 397 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28273144.96360000
          pct_ACTUAL: 99.99579506
        15
              Radius: 3000.00
              nVerts: 398
               Shape: Area shape (1 part, 398 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28273150.34970000
          pct_ACTUAL: 99.99581411
        16
              Radius: 3000.00
              nVerts: 721
               Shape: Area shape (1 part, 721 vertices)
          PiRSquared: 28274333.88230814
        Area_PERFECT: 28274333.88230814
         Area_ACTUAL: 28273981.39730000
          pct_ACTUAL: 99.99875334

16 rows read in 6.69 ms

Area_PERFECTa été généré à l'aide de SE_shape_get_area(), et a Area_ACTUALété généré en convertissant le polygone en une forme de ligne simple et en un polygone avant d'appeler la fonction de zone. (J'ai dû revenir à l'API 9.3.1sp2 pour obtenir une zone RÉELLE de la fonction de zone de la forme du cercle.)

Je ne sais pas trop ce que fait QGIS, car la zone signalée dans la question ( 28273078.8 m2) et celle rapportée dans les commentaires ( 28273147.55 m2) ne correspondent pas exactement aux 99 et 397 sommets (ou 98, 100, 384, 385, 386, 387, 396 ou 398, d'ailleurs). Il pourrait y avoir un calcul géodésique impliqué (bien que je n'ai pas de moyen facile d'évaluer cela sans les données de coordonnées exactes), ou la valeur aurait pu être calculée sur un flottant de 32 bits.

Je suppose que la leçon ici est la suivante: si vous vous souciez vraiment de la zone géométrique, vous devez vous assurer que les cercles contiennent beaucoup de sommets.

Vince
la source