En ArcGIS 10.2 he creado dos topes utilizando la configuración por defecto, uno con una distancia de 1 kilómetro. Cuando calculé el área tiene un área de kilómetro cuadrado de 3,14. Todo parece estar bien allí para mí. Sin embargo, cuando ejecuto el cálculo del área para el buffer que es de 2 kilómetros el área es de 1,25581. Curiosamente, a medida que se aumenta el tamaño a 3 kilómetros, etc., los cálculos de área siguen teniendo un decimal de diferencia, es decir, el área de un círculo con un radio de 2 kilómetros debería ser 12,5581, y la de 3 kilómetros debería ser 28,27, en lugar de 1,256 y 2,287 respectivamente. Las proyecciones son las mismas-las mismas áreas. ¿Alguna idea de lo que está pasando?
Respuesta
¿Demasiados anuncios?Puede haber muchos problemas en juego aquí, pero uno de ellos es el hecho de que un buffer alrededor de un punto no es un círculo - es un polígono circular . El área de ese polígono se calcula mediante Regla de Simpson (también conocida como regla del trapecio), y por lo tanto sub-aproximará la curva entre los puntos -- A medida que el número de vértices se incrementa (haciendo que esos puntos estén más juntos), el área del polígono resultante se aproxima a la ideal.
A continuación se muestra un hack de formato de salida calculado a partir del área de círculos de un kilómetro de radio en un sistema de coordenadas proyectadas (con una resolución de referencia de coordenadas de 1 mm), a medida que el número de vértices aumenta de nueve (un octógono) a 1441 (cuatro vértices cada grado)
ArcSDE 9.3 Dynamic ASCII Table Utility Wed Oct 28 21:10:05 2015
------------------------------------------------------------------------
1
npoints: 9
shape: Area shape (1 part, 9 vertices)
polyArea: 2828440.0000000
piRsquared: 3141592.6535898
pctOfIdeal: 90.0320414
2
npoints: 13
shape: Area shape (1 part, 13 vertices)
polyArea: 3000015.9218000
piRsquared: 3141592.6535898
pctOfIdeal: 95.4934727
3
npoints: 19
shape: Area shape (1 part, 19 vertices)
polyArea: 3078184.2050000
piRsquared: 3141592.6535898
pctOfIdeal: 97.9816464
4
npoints: 37
shape: Area shape (1 part, 37 vertices)
polyArea: 3125670.1582000
piRsquared: 3141592.6535898
pctOfIdeal: 99.4931712
5
npoints: 73
shape: Area shape (1 part, 73 vertices)
polyArea: 3137611.9584000
piRsquared: 3141592.6535898
pctOfIdeal: 99.8732905
6
npoints: 91
shape: Area shape (1 part, 91 vertices)
polyArea: 3139044.1576000
piRsquared: 3141592.6535898
pctOfIdeal: 99.9188789
7
npoints: 121
shape: Area shape (1 part, 121 vertices)
polyArea: 3140169.7504000
piRsquared: 3141592.6535898
pctOfIdeal: 99.9547076
8
npoints: 181
shape: Area shape (1 part, 181 vertices)
polyArea: 3140957.5440000
piRsquared: 3141592.6535898
pctOfIdeal: 99.9797838
9
npoints: 361
shape: Area shape (1 part, 361 vertices)
polyArea: 3141437.8776000
piRsquared: 3141592.6535898
pctOfIdeal: 99.9950733
10
npoints: 721
shape: Area shape (1 part, 721 vertices)
polyArea: 3141556.5788000
piRsquared: 3141592.6535898
pctOfIdeal: 99.9988517
11
npoints: 1081
shape: Area shape (1 part, 1081 vertices)
polyArea: 3141575.4056000
piRsquared: 3141592.6535898
pctOfIdeal: 99.9994510
12
npoints: 1441
shape: Area shape (1 part, 1441 vertices)
polyArea: 3141584.7376000
piRsquared: 3141592.6535898
pctOfIdeal: 99.9997480
De ello se desprende que tan sólo 37 vértices (uno cada diez grados) pueden aproximar un círculo verdadero al 99,5% del área, y 361 vértices (uno por grado de arco) logran "cuatro nueves" (dentro del 0,01% del área del círculo verdadero).
También tienes un problema con el aumento de la distancia del buffer, ya que un número fijo de vértices aumentaría el espacio entre vértices (aunque en polígonos más grandes):
ArcSDE 9.3 Dynamic ASCII Table Utility Wed Oct 28 22:04:51 2015
------------------------------------------------------------------------
1
npoints: 101
shape: Area shape (1 part, 101 vertices)
polyArea: 3139533.0872000
piRsquared: 3141592.6535898
pctOfIdeal: 99.9344420
2
npoints: 101
shape: Area shape (1 part, 101 vertices)
polyArea: 12558089.9062000
piRsquared: 12566370.6143592
pctOfIdeal: 99.9341042
3
npoints: 101
shape: Area shape (1 part, 101 vertices)
polyArea: 28255721.3978000
piRsquared: 28274333.8823081
pctOfIdeal: 99.9341718
Además del número bruto de puntos, el sistema de coordenadas en el que se realiza el cálculo también podría influir: si los datos están en un sistema de coordenadas geográficas, o bien los valores serán completamente erróneos (ni siquiera un círculo), o bien habrá que calcular el área geodésica sobre la marcha, lo que podría introducir una serie de complicaciones adicionales (cálculo esférico frente a esferoidal, o incluso si el esferoide utilizado fue el mismo que se utilizó para generar el polígono).
No afecta a tu caso de uso, pero la resolución de la referencia de coordenadas XY podría afectar a círculos muy pequeños (por debajo del metro) si los vértices cambian de ubicación de forma significativa debido a la conversión de la rejilla de coordenadas enteras (por ejemplo, 361 vértices de un círculo de 1 metro con resolución centimétrica):
ArcSDE 9.3 Dynamic ASCII Table Utility Wed Oct 28 21:50:28 2015
------------------------------------------------------------------------
1
npoints: 361
shape: Area shape (1 part, 361 vertices)
polyArea: 3.1424000
piRsquared: 3.1415927
pctOfIdeal: 100.0256986
En conclusión, es poco probable que el área calculada sea "incorrecta", simplemente es imprecisa.