Расстояния в сфере

Многие геопространственные области (сейсмология, для примера) описывают расстояния между точками на поверхности Земли как углы. Это просто результат деления длины самой короткой дуги большого круга, соединяющей парные точки, на радиус Земли (или на любую планету, которую он измеряет). Это даёт угол (в радианах), подтянутый лучами из каждой точки, которые соединяются в центре Земли (или другой планеты). Это иногда называют «сферическим расстоянием». Таким образом, можно вызвать получившееся число на «расстояние в радианах». Можно также назвать тот же номер «расстоянием в радиусах Земли». Когда вы работаете с преобразованиями геоданных, имейте это в виду.

Можно легко преобразовать этот угол из радианов в степени. Для примера можно вызвать distance вычислить расстояние в метрах от Лондона до Куала-Лумпура:

latL =  51.5188;
lonL =  -0.1300;
latK =   2.9519;
lonK = 101.8200;
earthRadiusInMeters = 6371000;
distInMeters = distance(latL, lonL,...
                latK, lonK, earthRadiusInMeters)

distInMeters =
  1.0571e+007
Затем преобразуйте результат в угол в радианах:
distInRadians = distInMeters / earthRadiusInMeters

distInRadians =
    1.6593
Наконец, преобразуйте в угол в степенях:
distInDegrees = rad2deg(distInRadians)

distInDegrees =
   95.0692
Это действительно имеет смысл и дает точные результаты, когда мы аппроксимируем Землю (или планету) как сферу. На эллипсоиде можно описать расстояние только по геодезической кривой с помощью модуля длины.

Программное обеспечение Mapping Toolbox™ включает набор из шести функций для удобного преобразования расстояний вдоль поверхности Земли (или другой планеты) из модулей километров (км), морских миль (нм) или уставных миль (см) в сферические расстояния в степенях (град) или радианах (рад):

  • km2deg, nm2deg, и sm2deg перейти от длины к углу в степенях

  • km2rad, nm2rad, и sm2rad переходите от длины к углу в радианах

Можно заменить последние два шага в предыдущем примере на

distInKilometers = distInMeters/1000;
earthRadiusInKm = 6371;
km2deg(distInKilometers, earthRadiusInKm)

ans =
   95.0692
Поскольку это преобразование может быть обращено назад, тулбокс включает в себя еще шесть функций удобства, которые преобразуют угол, подчиненный центру сферы, в степенях или радианах, в расстояние большого круга вдоль поверхности этой сферы:

  • deg2km, deg2nm, и deg2sm перейти от угла в степенях к длине

  • rad2km, rad2nm, и rad2sm перейти от угла в радианах к длине

При задании единственного входного параметра все 12 функций принимают радиус 6 371 000 метров (6371 км, 3440,065 нм, или 3958,748 см), что широко используется в качестве оценки среднего радиуса Земли. Необязательный второй параметр может использоваться, чтобы задать планетарный радиус (в единицах выходной длины) или имя объекта в Солнечной системе.

Длина дуги как угол расстояния и функции подсчета

Некоторые синтаксисы distance и reckon функции используют углы для обозначения расстояний описанным выше способом. В следующих операторах аргумент области значений, arclen, находится в степенях (наряду со всеми другими входами и выходами):

[arclen, az] = distance(lat1, lon1, lat2, lon2)
[latout, lonout] = reckon(lat, lon, arclen, az)
Путем добавления дополнительного units аргумент, можно использовать вместо этого радианы:
[arclen, az] = distance(lat1, lon1, lat2, lon2, 'radians')
[latout, lonout] = reckon(lat, lon, arclen, az, 'radians')
Если задан ellipsoid аргумент, однако, затем arclen имеет модули длины, и они совпадают с модулями большой полуоси оси длины ссылки эллипсоида. Если вы задаете ellipsoid = [1 0] (единичная сфера), arclen может рассматриваться как угол в радианах или как длина, заданная в единицах измерения радиусов Земли. Это имеет то же значение в любом случае. Таким образом, при следующих расчетах lat1, lon1, lat2, lon2, и az в степенях, но arclen окажется в радианах:

[arclen, az] = distance(lat1, lon1, lat2, lon2, [1 0])

Сводные данные: Доступные функции преобразования расстояния и угла

В следующей таблице показаны Mapping Toolbox функции расстояния между единицами измерения и преобразования дуги. Все они принимают скалярные, векторные и более высоко-размерные входы. Первые два столбца и строки включают угловые модули, последние три - модули измерения расстояния:

Функции, которые непосредственно преобразуют углы, длины и сферические расстояния

НовообращенныйК степенямК радианамК километрамК морским милямК уставу Миль
СтепениtoDegrees
fromDegrees
deg2rad
toRadians
fromDegrees
deg2kmdeg2nmdeg2sm
Радианыrad2deg
toDegrees
fromRadians
toRadians
fromRadians
rad2kmrad2nmrad2sm
Километрыkm2degkm2rad km2nmkm2sm
Морские милиnm2degnm2radnm2km nm2sm
Уставные милиsm2degsm2radsm2kmsm2nm 

Преобразование угла функционирует вдоль основной диагонали, toDegrees, toRadians, fromDegrees, и fromRadians, может иметь результаты без операции. Они предназначены для использования в приложениях, которые не имеют предварительного знания о том, какие угловые модули могут быть введены или желательны в качестве выходных.