主要内容

参考球状体

当地球(或另一个大致为球形的物体,如月球)被建模为一个具有标准半径的球体时,它被称为一个参考范围.同样地,当模型是一个平直的(扁圆形)旋转椭球体,具有标准的半长轴和标准的反平直半小轴或偏心量时,它被称为参考椭球体.两种模型都是球形的,所以每一种都可以被认为是一种参考球体.映射工具箱™支持参考球体的几种表示万博1manbetx形式:referenceSpherereferenceEllipsoid,oblateSpheroid对象和旧的表示,椭球向量

referenceSphere对象

当使用严格的球形模型时,通常应该使用referenceSphere对象(尽管两者referenceEllipsoidoblateSpheroid可以代表一个完美的球体)。

默认情况下,referenceSphere返回一个无量纲的单位球体:

referenceSphere
名称:“单位球”LengthUnit:“半径:1和附加属性:半轴半轴反向扁平化偏心扁平化第三扁平化平均半径表面积体积

你可以通过名称请求一个特定的主体,默认情况下半径将以米为单位:

地球=参考球(“地球”)
具有定义属性的球体:名称:“地球”长度单位:“米”半径:6371000和其他属性:半轴半轴反平坦偏心率平坦第三平坦平均半径表面积体积

如果需要,你可以重置长度单位(半径会适当缩放):

地球。LengthUnit =“公里”
具有定义属性的球体:名称:“地球”长度单位:“公里”半径:6371和其他属性:半轴半轴反向平坦偏心率平坦第三次平坦平均半径表面积体积

或指定构造时的长度单位:

referenceSphere (“地球”“公里”)
带有定义属性的球体:名称:“地球”长度单位:“千米”半径:6371和附加属性:半轴半轴反向平坦偏心率平坦第三次平坦平均半径表面积体积

支持的任何长度单位万博1manbetxvalidateLengthUnit可以使用。对于大多数长度单位,支持各种缩写,请参见万博1manbetxvalidateLengthUnit一个完整的列表。

有一件事需要注意referenceSphere只显示定义属性,以减少命令行上的混乱。(这种方法也节省了少量的计算量。)特别是,不要忽视依赖SurfaceArea体积属性,即使它们没有显示。例如,球形地球模型的表面积很容易通过SurfaceArea属性:

地球。SurfaceArea
Ans = 5.1006e+08

这个结果是以平方公里为单位的,因为LengthUnit物体的属性土是有价值的“公里”

当使用映射工具箱编程时,了解这一点可能会有所帮助referenceSphere实际上包含了所有的几何性质referenceEllipsoidoblateSpheroidSemimajorAxisSemiminorAxisInverseFlattening偏心压扁ThirdFlattening,MeanRadius,以及SurfaceArea,体积).属性上不能设置这些属性referenceSphere,有些值对所有领域都是固定的。偏心总是0例如。但它们为编程提供了一个灵活的环境,因为任何几何计算都接受referenceEllipsoid是否也能正常运行referenceSphere.这是一种类型的多态性,其中不同的类支持公共的或强重叠的接口。万博1manbetx

referenceEllipsoid对象

当使用一个扁球体来代表地球(或另一个大致球形的物体)时,你通常应该使用referenceEllipsoid对象。一个重要的例外发生在某些小尺度地图投影上,其中许多只在球面上定义。然而,所有用于大规模工作的重要投影,包括横向墨卡托投影和兰伯特共形圆锥投影,都是在椭球和球面上定义的。

就像referenceSpherereferenceEllipsoid默认返回一个无量纲的单位球体:

referenceEllipsoid
ans = reference椭球与定义属性:代码:[]名称:“单位球”LengthUnit:“半大轴:1半小轴:1逆扁平化:Inf偏心:0和附加属性:扁平化第三扁平化平均半径表面积体积

更典型的情况是,您会按名称请求一个特定的椭球,从而得到一个具有半长轴和半小轴属性(以米为单位)的对象。例如,下面返回一个referenceEllipsoidSemimajorAxisInverseFlattening属性设置,以匹配大地测量参考系统1980 (GRS 80)的定义参数。

grs80 =参考椭球体(“1980年大地测量参考系统”)
grs80 = reference椭球与定义属性:代码:7019名称:“大地参考系1980”长度单位:“米”半半轴:6378137半半轴:6356752.31414036反向扁平化:298.257222101偏心:0.0818191910428158和附加属性:扁平化第三次扁平化平均半径表面积体积

一般而言,您应该使用与您的数据坐标所参照的大地基准面对应的参考椭球。例如,GRS 80椭球被指定用于参考1983年北美基准(NAD 83)的坐标。

例如在…的情况下referenceSphere,您可以根据需要重置长度单位:

grs80。LengthUnit =“公里”
grs80 = reference椭球与定义属性:代码:7019名称:“大地参考系1980”长度单位:“千米”半大轴:6378.137半小轴:6356.75231414036逆扁平化:298.257222101偏心:0.0818191910428158和附加属性:扁平化第三次扁平化平均半径表面积体积

或指定构造时的长度单位:

referenceEllipsoid (“1980年大地测量参考系统”“公里”)
ans = reference椭球与定义属性:代码:7019名称:“大地参考系1980”长度单位:“千米”半大轴:6378.137半小轴:6356.75231414036反向扁平化:298.257222101偏心率:0.0818191910428158和附加属性:扁平化第三次扁平化平均半径表面积体积

支持的任何长度单位万博1manbetxvalidateLengthUnit可以使用。

命令行显示包括四个几何属性:SemimajorAxisSemiminorAxisInverseFlattening,偏心.这些性质中的任何一对,只要至少有一个是轴的长度,就足以完全定义一个扁球体;这四个性质构成了一个相互依赖的集合。参数InverseFlattening偏心作为一个集合不足以定义一个椭球,因为两者都是无量纲的形状属性。这两个参数都没有提供长度尺度,而且,它们是相互依赖的:Ecc =√((2 - f) * f)

此外,为了减少命令行上的混乱,有五个相关属性不显示:压扁ThirdFlatteningMeanRadiusSurfaceArea,体积SurfaceArea体积和他们一样工作referenceSphere同行。为了继续前面的例子,GRS 80椭球的表面积以平方公里为单位(因为LengthUnit“公里”),可通过以下方法轻松获取:

grs80。SurfaceArea
Ans = 5.1007e+08

看到referenceEllipsoid的形状属性定义的参考页,允许的值的名字属性和信息代码财产。

世界大地测量系统1984

部分由于美国NAVSTAR全球定位系统(GPS)的广泛使用,该系统与世界大地测量系统1984 (WGS 84)相关联,WGS 84参考椭球通常是适当的选择。为了方便和快速(通过绕过表查找步骤获得),在这种情况下使用wgs84Ellipsoid函数,例如,

wgs84 = wgs84椭球;

前一行相当于:

wgs84 = referenceEllipsoid(“wgs84”);

但是它更容易打字,运行起来也更快。还可以指定长度单位。wgs84Ellipsoid (lengthUnit),等于referenceEllipsoid (wgs84, lengthUnit),在那里lengthUnit是否接受任何单位价值validateLengthUnit函数。

例如,下面两个命令显示WGS 84椭球的表面积略大于5 x 10^14平方米:

s = wgs84椭球
s = reference椭球与定义属性:代码:7030名称:“世界大地测量系统1984”长度单位:“米”半轴:6378137半轴:6356752.31424518反向扁平化:298.257223563偏心:0.0818191908426215和附加属性:扁平化第三次扁平化平均半径表面积体积
s.SurfaceArea
Ans = 5.1007e+14

椭球向量

椭球向量就是2 × 1的二重倍形式:(semimajor_axis偏心).不像一个球体对象(的任何实例referenceSpherereferenceEllipsoid,或oblateSpheroid),椭球向量不是自记录的。椭球向量甚至不能自识别。你必须知道一个给定的2 × 1向量确实是一个椭球向量才能使用它。这个表示并不能证明这一点semimajor_axis是真实且正的,例如,你必须为自己做这样的验证。

许多工具箱函数接受椭球向量作为输入,但是这样的函数也接受椭球对象,并且,由于刚才提到的原因,建议使用椭球对象而不是椭球向量。如果您自己编写了一个需要椭球向量作为输入的函数,或者从其他人那里收到了这样的函数,请注意,您可以轻松地转换任何椭球对象年代变成一个椭球向量,如下所示:

[s。SemimajorAxis s.Eccentricity]

这意味着您可以使用三个类构造函数中的任何一个来构造球体对象wgs84Ellipsoid函数,并在必要时以椭球向量的形式传递结果。

oblateSpheroid对象

oblateSpheroid的超类是referenceEllipsoid.一个oblateSpheroid对象就像一个referenceEllipsoid对象减去它的代码的名字,LengthUnit属性。其实,首要的作用oblateSpheroid类所需要的纯几何属性和行为referenceEllipsoid类。

对于大多数目的,您可以简单地忽略这个区别,而oblateSpheroid类本身,作为内部软件组合的问题。不会有什么伤害,因为一个referenceEllipsoid对象可以做任何事情,并且可以在任何地方使用oblateSpheroid可以。

但是,您可以使用oblateSpheroid直接处理缺少指定名称或长度单位的椭球向量。例如,计算一个半长轴为2000,离心率为0.1的椭球体的体积,如下所示。

E = [2000 0.1];s = oblatesphiloid;s. semmajoraxis = e(1);s.离心率= e(2) s.体积
s = oblatesphoid与定义属性:半半轴:2000半小轴:1989.97487421324 inverse扁平化:199.498743710662偏心:0.1和附加属性:扁平化第三扁平化平均半径表面积体积ans = 3.3342e+10

当然,因为长度单位是e未指定,单位s.Volume同样未指明。