martes, 4 de abril de 2023

Cálculo del área de una superficie, conocidas las coordenadas de su perímetro, con Excel. Utilizando nuestras propias funciones Excel.


Se trata de calcular con Excel el área de una superficie, conocidas las coordenadas de su perímetro utilizando las fórmulas de Haversine y de Herón. 

  • La fórmula de Haversine nos da la distancia entre dos puntos de la geografía terrestre, conocidas las coordenadas de ambos puntos. Esta fórmula se convierte en una función propia para Excel desarrollada en VBasic.
  • La fórmula de Herón nos da el área de un triángulo conocidas las longitudes de sus lados. También la utilizamos como "nuestra propia función" convirtiéndola a VBasic.
  • Podemos desarrollar, para utilizarlas en excel, nuestras propias funciones en VBasic. Una vez desarrolladas estas funciones se utilizan como cualquier otra función de excel. Nombre de la función y parámetros.
  • "Nuestras funciones" se incluyen en el código VBasic de excel.
Una vez descargado el libro excel, debemos autorizar la ejecución de macros (el código VBasic).


Para calcular el área:
  • Tomamos n puntos del perímetro de la superficie a medir con el GPS o con cualquier aplicación que nos permita consultar y obtener las coordenadas de los puntos que consideremos precisos para una correcta medida del tamaño de una superficie.
  • Promediamos esos puntos con el fin de encontrar un centro geográfico de ellos, aunque este centro podríamos moverlo a voluntad (siempre que se pueda decir que es un centro)
  • Dividimos la superficie en los distintos triángulos que forman los lados entre dos puntos consecutivos y esos dos puntos con el centro.
  • Primer triángulo, lado formado por el primer y segundo punto, el lado que se forma entre el primer punto y el centro, el lado que se forma entre el segundo punto y el centro.
  • Primer triángulo, primer y segundo punto, centro. Segundo  triángulo, segundo y tercer punto, centro.
  • Último triángulo, ultimo punto, primer punto y centro.
Tengo que comprobar mi trabajo teórico. Busco un sitio conocido, del que pueda encontrar información facilmente. Me decido por el área de juego del terreno del Real Madrid.



Con Google maps tomo las coordenadas del área de juego del campo del Real Madrid, las cuatro esquinas, en donde van los banderines de los corners. Intento ser lo mas preciso posible.


En Wikipedia, consigo enterarme de la dimensiones teóricas del área de juego del Real Madrid, 105*68 metros. 
Según mis cálculos sale, para los lados largos, que uno mide 105,2 y el otro 104,9 metros. Para los lados cortos uno mide 67,76 y el otro 68,04 metros. Bastante ajustado al valor teórico.

Variables o rangos con nombre utilizadas en el libro excel:

  • NPuntos. Es el número de puntos tomados.
  • XCentro: Longitud (coordenadas) del centro.
  • YCentro: Latitud del centro de las coordenadas tomadas.


Si no queremos utilizar programación VBasic, tanto la distancia entre dos puntos (Haversine) y el área de un triángulo (Herón) se pueden calcular con las funciones propias de excel.









Fórmula de Haversine en VBasic:

Function DGeo(Lat1, Lon1, Lat2, Lon2)

Dim GaR, R, Lat1R, Lat2R, Lon1R, Lon2R

DGeo = -1

On Error Resume Next

'57.29577951 para convertir grados a radianes

'6378137 Radio de la tierra

GaR = 57.29577951

GaR = 57.2957795130823


R = 6378137

'R = 6397000

'R = 6371000


'6,371.0 km

Lat1R = Lat1 / GaR

Lat2R = Lat2 / GaR

Lon1R = Lon1 / GaR

Lon2R = Lon2 / GaR

'DGeo = R * Atn(Sqr((1 - (Sin(Lat1 / GaR) * Sin(Lat2 / GaR) + Cos(Lat1 / GaR) * Cos(Lat2 / GaR) * Cos(Lon2 / GaR - Lon1 / GaR)) ^ 2)) / _

(Sin(Lat1 / GaR) * Sin(Lat2 / GaR) + Cos(Lat1 / GaR) * Cos(Lat2 / GaR) * Cos(Lon2 / GaR - Lon1 / GaR)))


DGeo = R * Atn(Sqr((1 - (Sin(Lat1R) * Sin(Lat2R) + Cos(Lat1R) * Cos(Lat2R) * Cos(Lon2R - Lon1R)) ^ 2)) / _

(Sin(Lat1R) * Sin(Lat2R) + Cos(Lat1R) * Cos(Lat2R) * Cos(Lon2R - Lon1R)))

On Error GoTo 0

End Function

Fórmula de Herón en VBasic:

Function AreaHeron(a, b, c)

s = (a + b + c) / 2

  AreaHeron = Sqr(s * (s - a) * (s - b) * (s - c))

End Function