Когда Земля (или другое примерно сферическое тело, такое как Луна) моделируется как сфера, имеющая стандартный радиус, это называется ссылочной сферой. Аналогично, когда модель является сглаженным (посвятившим себя монашеской жизни) эллипсоидом вращения, со стандартной полуглавной осью и стандартным выравниванием инверсии, полунезначительной осью или эксцентриситетом, это называется ссылочным эллипсоидом. Обе модели являются сфероидальными в форме, таким образом, каждый может считаться типом опорного сфероида. Mapping Toolbox™ поддерживает несколько представлений для опорных сфероидов: referenceSphere, referenceEllipsoid, и oblateSpheroid объекты, и более старое представление, вектор эллипсоида.
referenceSphere ОбъектыПри использовании строго сферической модели необходимо обычно использовать referenceSphere объект (несмотря на то, что оба referenceEllipsoid и oblateSpheroid может представлять совершенную сферу).
По умолчанию, referenceSphere возвращает сферу безразмерной единицы:
referenceSphere
ans =
referenceSphere with defining properties:
Name: 'Unit Sphere'
LengthUnit: ''
Radius: 1
and additional properties:
SemimajorAxis
SemiminorAxis
InverseFlattening
Eccentricity
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
Volume
Можно запросить определенное тело по наименованию, и радиус будет исчисляться в метрах по умолчанию:
earth = referenceSphere('Earth')earth =
referenceSphere with defining properties:
Name: 'Earth'
LengthUnit: 'meter'
Radius: 6371000
and additional properties:
SemimajorAxis
SemiminorAxis
InverseFlattening
Eccentricity
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
VolumeМожно сбросить единицу длины при желании (и радиус перемасштабируется соответственно):
earth.LengthUnit = 'kilometer'earth =
referenceSphere with defining properties:
Name: 'Earth'
LengthUnit: 'kilometer'
Radius: 6371
and additional properties:
SemimajorAxis
SemiminorAxis
InverseFlattening
Eccentricity
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
Volumeили задайте единицу длины во время конструкции:
referenceSphere('Earth','km')
ans =
referenceSphere with defining properties:
Name: 'Earth'
LengthUnit: 'kilometer'
Radius: 6371
and additional properties:
SemimajorAxis
SemiminorAxis
InverseFlattening
Eccentricity
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
VolumeЛюбая единица длины поддержана validateLengthUnit может использоваться. Множество сокращений поддерживается для большинства единиц длины, видит validateLengthUnit для полного списка.
Одна вещь отметить о referenceSphere это, только свойства определения отображены, для того, чтобы уменьшать помеху в командной строке. (Этот подход сохраняет небольшое количество расчета также.), В частности, не пропускайте зависимый SurfaceArea и Volume свойства, даже при том, что они не отображены. Площадь поверхности сферической наземной модели, например, легко получена через SurfaceArea свойство:
earth.SurfaceArea
ans = 5.1006e+08
Этот результат находится в квадратных километрах, потому что LengthUnit свойство объектной земли имеет значение 'kilometer'.
При программировании с Mapping Toolbox это может помочь иметь в виду тот referenceSphere на самом деле включает все геометрические свойства referenceEllipsoidи oblateSpheroid (SemimajorAxis, SemiminorAxis, InverseFlattening, Eccentricity, Flattening, ThirdFlattening, и MeanRadius, а также SurfaceArea, и Volume). Ни одно из этих свойств не может быть установлено на referenceSphere, и у некоторых есть значения, которые фиксируются для всех сфер. Eccentricity всегда 0, например. Но они обеспечивают гибкую среду для программирования, потому что любой геометрический расчет, который принимает referenceEllipsoid также запустится правильно, учитывая referenceSphere. Это - тип полиморфизма в который различная поддержка классов общие, или строго перекрывающиеся интерфейсы.
referenceEllipsoid ОбъектыПри использовании сжатого сфероида, чтобы представлять Землю (или другое примерно сферическое тело), необходимо обычно использовать referenceEllipsoid объект. Важное исключение происходит при определенных небольших проекциях карты, многие из которых заданы только на сфере. Однако все важные проекции, используемые для крупномасштабной работы, включая Меркаторский Поперечный и Ламберт Конформное Коническое сечение, заданы на эллипсоиде, а также сфере.
Как referenceSphere, referenceEllipsoid возвращает сферу безразмерной единицы по умолчанию:
referenceEllipsoid
ans =
referenceEllipsoid with defining properties:
Code: []
Name: 'Unit Sphere'
LengthUnit: ''
SemimajorAxis: 1
SemiminorAxis: 1
InverseFlattening: Inf
Eccentricity: 0
and additional properties:
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
VolumeБолее обычно вы запросили бы определенный эллипсоид по наименованию, приведя к объекту с полуглавными и полунезначительными свойствами осей в метрах. Например, следующее возвращает referenceEllipsoid с SemimajorAxis и InverseFlattening настройки свойства, которые совпадают с параметрами определения Геодезической Ссылочной Системы 1980 (GRS 80).
grs80 = referenceEllipsoid('Geodetic Reference System 1980')grs80 =
referenceEllipsoid with defining properties:
Code: 7019
Name: 'Geodetic Reference System 1980'
LengthUnit: 'meter'
SemimajorAxis: 6378137
SemiminorAxis: 6356752.31414036
InverseFlattening: 298.257222101
Eccentricity: 0.0818191910428158
and additional properties:
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
VolumeВ общем случае необходимо использовать ссылочный эллипсоид, соответствующий геодезической данной величине, к которой ссылаются на координаты данных. Например, эллипсоид GRS 80 задан для использования с координатами, на которые ссылаются к североамериканской Данной величине 1 983 (NAD 83).
Как в случае referenceSphere, можно сбросить единицу длины при желании:
grs80.LengthUnit = 'kilometer'grs80 =
referenceEllipsoid with defining properties:
Code: 7019
Name: 'Geodetic Reference System 1980'
LengthUnit: 'kilometer'
SemimajorAxis: 6378.137
SemiminorAxis: 6356.75231414036
InverseFlattening: 298.257222101
Eccentricity: 0.0818191910428158
and additional properties:
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
Volumeили задайте единицу длины во время конструкции:
referenceEllipsoid('Geodetic Reference System 1980','km')
ans =
referenceEllipsoid with defining properties:
Code: 7019
Name: 'Geodetic Reference System 1980'
LengthUnit: 'kilometer'
SemimajorAxis: 6378.137
SemiminorAxis: 6356.75231414036
InverseFlattening: 298.257222101
Eccentricity: 0.0818191910428158
and additional properties:
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
VolumeЛюбая единица длины, поддержанная validateLengthUnit может использоваться.
Отображение командной строки включает четыре геометрических свойства: SemimajorAxis, SemiminorAxis, InverseFlattening, и Eccentricity. Любая пара этих свойств, целый по крайней мере один является длиной оси, достаточно, чтобы полностью задать сжатый сфероид; эти четыре свойства составляют взаимно зависимый набор. Параметры InverseFlattening и Eccentricity как набор не достаточны, чтобы задать эллипсоид, потому что оба - безразмерные свойства формы. Ни один из тех параметров не обеспечивает шкалу расстояний, и, кроме того, взаимно зависит: ecc = sqrt((2 - f) * f).
Кроме того, существует пять зависимых свойств, которые не отображены, для того, чтобы уменьшать помеху на командной строке: Flattening, ThirdFlattening, MeanRadiussurfaceArea, и VolumesurfaceArea и Volume работайте одинаково как их referenceSphere дубликаты. Продолжать предыдущий пример, площадь поверхности эллипсоида GRS 80 в квадратных километрах (потому что LengthUnit 'kilometer'), легко получен можно следующим образом:
grs80.SurfaceArea
ans = 5.1007e+08
Смотрите referenceEllipsoid страница с описанием для определений свойств формы, допустимых значений для Name свойство и информация о Code свойство.
Частично благодаря широкому использованию американской Системы глобального позиционирования (GPS) NAVSTAR, которая связывается к Мировой Геодезической Системе 1984 (WGS 84), эллипсоид ссылки WGS 84 часто является соответствующим выбором. И для удобства и для скорости (полученный путем обхода шага поиска по таблице), это - хорошая идея в этом случае, чтобы использовать wgs84Ellipsoid функция, например,
wgs84 = wgs84Ellipsoid;
Предыдущая линия эквивалентна:
wgs84 = referenceEllipsoid('wgs84');но легче ввести и быстрее запуститься. Можно также задать единицу длины. wgs84Ellipsoid(lengthUnit), эквивалентно referenceEllipsoid('wgs84',lengthUnit), где lengthUnit любая стоимость единицы, принятая validateLengthUnit функция.
Например, следование за двумя командами показывает, что площадь поверхности эллипсоида WGS 84 является немногим более, чем 5 x 10^14 квадратные метры:
s = wgs84Ellipsoid
s =
referenceEllipsoid with defining properties:
Code: 7030
Name: 'World Geodetic System 1984'
LengthUnit: 'meter'
SemimajorAxis: 6378137
SemiminorAxis: 6356752.31424518
InverseFlattening: 298.257223563
Eccentricity: 0.0818191908426215
and additional properties:
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
Volumes.SurfaceArea
ans = 5.1007e+14
Вектор эллипсоида просто 2 1 двойной из формы: [semimajor_axis eccentricity]. В отличие от сфероидального объекта (любой экземпляр referenceSphere, referenceEllipsoid, или oblateSpheroid), вектор эллипсоида не самодокументирует. Векторы эллипсоида даже не идентифицируют себя. Необходимо знать, что данным 2 1 вектор является действительно вектор эллипсоида, чтобы сделать любое использование из него. Это представление не подтверждает тот semimajor_axis действительно и положителен, например, необходимо сделать такие валидации для себя.
Много функций тулбокса принимают векторы эллипсоида как вход, но такие функции признают, что сфероидальные объекты также и, по причинам только утвердили, сфероидальные объекты рекомендуются по векторам эллипсоида. В случае, если вы записали собственную функцию, которая требует вектора эллипсоида, как введено или получила такую функцию от кого-то еще, обратите внимание, что можно легко преобразовать любой сфероидальный объект s в вектор эллипсоида можно следующим образом:
[s.SemimajorAxis s.Eccentricity]
Это означает, что можно создать сфероидальный объект, использующий любого из этих трех конструкторов класса, или wgs84Ellipsoid функция и рука от результата в форме вектора эллипсоида при необходимости.
oblateSpheroid Объекты
oblateSpheroid суперкласс referenceEllipsoid. oblateSpheroid объект точно так же, как referenceEllipsoid объект минус его CodeИмя, и LengthUnit свойства. На самом деле, первичная роль oblateSpheroid класс должен обеспечить чисто геометрические свойства и поведение, необходимые referenceEllipsoid класс.
В большинстве целей можно просто проигнорировать это различие и oblateSpheroid сам класс, как внутренний состав программного обеспечения. Никакой вред не появится, потому что referenceEllipsoid объект может сделать что-либо и использоваться где угодно что oblateSpheroid может.
Однако можно использовать oblateSpheroid непосредственно при контакте с вектором эллипсоида, который испытывает недостаток в указанном имени или единице длины. Например, вычислите объем эллипсоида с полуглавной осью 2 000 и эксцентриситетом 0,1, как показано в следующем.
e = [2000 0.1]; s = oblateSpheroid; s.SemimajorAxis = e(1); s.Eccentricity = e(2) s.Volume
s =
oblateSpheroid with defining properties:
SemimajorAxis: 2000
SemiminorAxis: 1989.97487421324
InverseFlattening: 199.498743710662
Eccentricity: 0.1
and additional properties:
Flattening
ThirdFlattening
MeanRadius
SurfaceArea
Volume
ans =
3.3342e+10Конечно, начиная с единицы длины e не задано, модуль s.Volume аналогично не задано.