参考球状体
当地球(或另一个大致为球形的物体,如月球)被建模为一个具有标准半径的球体时,它被称为一个参考范围.同样地,当模型是一个平直的(扁圆形)旋转椭球体,具有标准的半长轴和标准的反平直半小轴或偏心量时,它被称为参考椭球体.两种模型都是球形的,所以每一种都可以被认为是一种参考球体.映射工具箱™支持参考球体的几种表示万博1manbetx形式:referenceSphere
,referenceEllipsoid
,oblateSpheroid
对象和旧的表示,椭球向量.
referenceSphere
对象
当使用严格的球形模型时,通常应该使用referenceSphere
对象(尽管两者referenceEllipsoid
和oblateSpheroid
可以代表一个完美的球体)。
默认情况下,referenceSphere
返回一个无量纲的单位球体:
referenceSphere
名称:“单位球”LengthUnit:“半径:1和附加属性:半轴半轴反向扁平化偏心扁平化第三扁平化平均半径表面积体积
你可以通过名称请求一个特定的主体,默认情况下半径将以米为单位:
地球=参考球(“地球”)
具有定义属性的球体:名称:“地球”长度单位:“米”半径:6371000和其他属性:半轴半轴反平坦偏心率平坦第三平坦平均半径表面积体积
如果需要,你可以重置长度单位(半径会适当缩放):
地球。LengthUnit =“公里”
具有定义属性的球体:名称:“地球”长度单位:“公里”半径:6371和其他属性:半轴半轴反向平坦偏心率平坦第三次平坦平均半径表面积体积
或指定构造时的长度单位:
referenceSphere (“地球”,“公里”)
带有定义属性的球体:名称:“地球”长度单位:“千米”半径:6371和附加属性:半轴半轴反向平坦偏心率平坦第三次平坦平均半径表面积体积
支持的任何长度单位万博1manbetxvalidateLengthUnit
可以使用。对于大多数长度单位,支持各种缩写,请参见万博1manbetxvalidateLengthUnit
一个完整的列表。
有一件事需要注意referenceSphere
只显示定义属性,以减少命令行上的混乱。(这种方法也节省了少量的计算量。)特别是,不要忽视依赖SurfaceArea
和体积
属性,即使它们没有显示。例如,球形地球模型的表面积很容易通过SurfaceArea
属性:
地球。SurfaceArea
Ans = 5.1006e+08
这个结果是以平方公里为单位的,因为LengthUnit
物体的属性土是有价值的“公里”
.
当使用映射工具箱编程时,了解这一点可能会有所帮助referenceSphere
实际上包含了所有的几何性质referenceEllipsoid
和oblateSpheroid
(SemimajorAxis
,SemiminorAxis
,InverseFlattening
,偏心
,压扁
,ThirdFlattening
,MeanRadius
,以及SurfaceArea
,体积
).属性上不能设置这些属性referenceSphere
,有些值对所有领域都是固定的。偏心
总是0
例如。但它们为编程提供了一个灵活的环境,因为任何几何计算都接受referenceEllipsoid
是否也能正常运行referenceSphere
.这是一种类型的多态性,其中不同的类支持公共的或强重叠的接口。万博1manbetx
referenceEllipsoid
对象
当使用一个扁球体来代表地球(或另一个大致球形的物体)时,你通常应该使用referenceEllipsoid
对象。一个重要的例外发生在某些小尺度地图投影上,其中许多只在球面上定义。然而,所有用于大规模工作的重要投影,包括横向墨卡托投影和兰伯特共形圆锥投影,都是在椭球和球面上定义的。
就像referenceSphere
,referenceEllipsoid
默认返回一个无量纲的单位球体:
referenceEllipsoid
ans = reference椭球与定义属性:代码:[]名称:“单位球”LengthUnit:“半大轴:1半小轴:1逆扁平化:Inf偏心:0和附加属性:扁平化第三扁平化平均半径表面积体积
更典型的情况是,您会按名称请求一个特定的椭球,从而得到一个具有半长轴和半小轴属性(以米为单位)的对象。例如,下面返回一个referenceEllipsoid
与SemimajorAxis
和InverseFlattening
属性设置,以匹配大地测量参考系统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
可以使用。
命令行显示包括四个几何属性:SemimajorAxis
,SemiminorAxis
,InverseFlattening
,偏心
.这些性质中的任何一对,只要至少有一个是轴的长度,就足以完全定义一个扁球体;这四个性质构成了一个相互依赖的集合。参数InverseFlattening
和偏心
作为一个集合不足以定义一个椭球,因为两者都是无量纲的形状属性。这两个参数都没有提供长度尺度,而且,它们是相互依赖的:Ecc =√((2 - f) * f)
.
此外,为了减少命令行上的混乱,有五个相关属性不显示:压扁
,ThirdFlattening
,MeanRadius
,SurfaceArea
,体积
.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偏心)
.不像一个球体对象(的任何实例referenceSphere
,referenceEllipsoid
,或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
同样未指明。