5 votos

¿Por qué la longitud de un grado en Turf es de 0,9988?

El cálculo de la distancia (esférica) a lo largo de un grado de longitud en el ecuador en Turf devuelve un número inferior a 1 ( Pruébalo ):

require('@turf/turf').distance([0,0], [1, 0], { units: 'degrees' })
0.9988329686371696

¿Por qué? ¿El elipsoide WGS84 no tiene exactamente 360 grados?

1 votos

¿Será que su línea va hacia el norte? Sólo es una suposición.

1 votos

La distancia de [0,0] a [0,10] es la misma que de [0,0] a [10,0], por lo que turf está utilizando un modelo esférico en lugar de un elipsoide. No estoy seguro de que eso explique por qué la distancia es menor que la diferencia de coordenadas en grados

8voto

Jay Bazuzi Puntos 194

Este parece ser el resultado final de una interesante conversión de radianes a grados.

t.convertLength(Math.PI,"radians","degrees")
179.78993435469053

Los radianes PI deben ser 180 grados. Mirando la fuente del césped, la conversión se hace multiplicando por un factor definido en el módulo de ayuda al césped:

https://github.com/Turfjs/turf/blob/4ffa95cd8acc74ef1cdff79cdd85802651ef5965/packages/turf-helpers/index.ts#L50

Los bits relevantes son:

export let earthRadius = 6371008.8;

/**
 * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.
 *
 * @memberof helpers
 * @type {Object}
 */
export let factors: {[key: string]: number} = {
...
    degrees: earthRadius / 111325,

Esto da un factor de conversión de grados a radianes de (usando R aquí):

> earthRadius = 6371008.8
> degrees = earthRadius/111325
> degrees
[1] 57.22891

mientras que el número de grados en un radián es:

> 180/pi
[1] 57.29578

Dado que todo lo demás es esférico, y no veo ninguna razón para que la definición de la longitud de un grado sea diferente a la matemática, sospecho que el radio de la tierra ha sido cambiado en algún momento (hay commits en la fuente para ello) pero el factor de escala no ha sido recalculado (porque el denominador de 111325 no convierte correctamente los grados a radianes).

Voy a plantear una cuestión a ver qué dicen...

https://github.com/Turfjs/turf/issues/1406

0 votos

Gracias. Había pensado que la diferencia era demasiado para un error de redondeo/aproximación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X