在利用osgEarth进行开发的过程中,尤其是在编写*.earth的过程中,如下:

<map name="test" type="geocentric">………………
</map>

你可能会出现跟我类似的疑惑,这个geocentric,到底是个什么东西。
通过翻阅osgEarth2.10的帮助文档(帮助文档是个好东西),会发现这么一个类osgEarth::SpatialReference,顾名思义,翻译成中文,就是空间参考。你还会发现一个出现频率很高的英文缩写,SRS,即Spatial Reference System,即空间参考系。找到这个,就有眉目了。

如何确定一个空间参考系

  • 1 空间参考系应该包含的基本内容
    • 1.1 坐标系的选择
    • 1.2 水平和垂直基准面的选择
  • 2 一些个人理解

1 空间参考系应该包含的基本内容

首先强调一点,一个完整的空间参考系,他应该至少要确定两部分内容:

  1. 坐标系的选择。
  2. 水平和垂直基准面的选择。

因此,确定一个完整的空间参考系,首要的就是解决这两个问题。
坐标系的选择,决定了空间某点位置的表示方式,即用BLH或者XYZ或者XY的表示方式
水平和垂直基准面的选择,确定了该点的值的起算基准,即坐标系的原点的位置和高程的起算位置

1.1 坐标系的选择

翻阅osgEarth::SpatialReference类,可以发现很多有意思的东西:

virtual bool  isGeographic () const
//True if this is a geographic SRS (lat/long/msl)
virtual bool  isGeodetic () const
//True if this is a geodetic SRS (lat/long/hae)
virtual bool  isProjected () const
//True if this is a projected SRS (i.e. local coordinate system)
virtual bool  isGeocentric () const
//True if this is a planet-centered system (geocentric/meters) const SpatialReference * SpatialReference::getECEF() const
//弃用:after 2.10 - call getGeocentricSRS() instead

看到这四个函数,以及通过下面的注释,思路就清晰了。
我们先弄清楚,注释中括号里的内容的含义。
lat:经度
long:纬度
msl:距平均海平面高度,即海拔,对应大地水准面
hae:距离参考椭球体的高度,对应参考椭球
geocentric:geocentric coordinate system ,地心坐标系
meters:单位,米
如此一来,我们就清楚了,这个SRS类支持的几种坐标系:

  1. 地理坐标系(Geographic):以实现通过经纬度对地球表面点位引用的坐标系。表现形式为,B代表经度,L代表纬度,H代表高程。(B,L,H)。
  2. 投影坐标系(Projected):投影坐标系使用基于X,Y值的坐标系统来描述地球上某个点所处的位置,我们截取图片时,就是在投影坐标系。表示形式为(X,Y)。
  3. 地心地固坐标系(Geocentric):而根据getECEF()函数,可以确定,这里的geocentric,指的是地固系,即基于X,Y,Z值的坐标系统来描述地球上某个点所处的位置。表现形式为(X,Y,Z)。

1.2 水平和垂直基准面的选择

水平基准面,就是对应的参考椭球的参数(定位和定向),一般就是从参心椭球质心椭球之中选择,54和80的椭球定义就是参心椭球,而WGS84CGCS2000就是质心椭球,osgEarth应该默认的WGS84的
垂直基准面,主要包含的是所谓的大地高(物体到椭球的法线距离)和正高(垂线到大地水准面的距离)
翻阅资料,github上的用户指南

Horizontal Datum
A datum is a reference point (or set of points) against which geospatial measurements are made. The same location on earth can have different coordinates depending on which datum is in use. There are two classes of datum:
A horizontal datum measures positions on the earth. Since the earth is not a perfect sphere or even a perfect ellipsoid, particular datums are usually designed to approximate the shape of the earth in a particular region. Common datums include WGS84 and NAD83 in North America, and ETR89 in Europe.
Vertical Datum
A vertical datum measures elevation. There are several classes of vertical datum; osgEarth supports geodetic (based on an ellipsoid) and geoid (based on a sample set of elevation points around the planet).
osgEarth has the following vertical datums built in:
Geodetic - the default; osgEarth uses the Horizontal datum ellipsoid as a reference
EGM84 geoid
EGM96 geoid - commonly called MSL; used in DTED and KML
EGM2008 geoid
By default, SRS’s in osgEarth use a geodetic vertical datum; i.e., altitude is measured as “height above ellipsoid (HAE)”.

上述内容翻译成中文:

水平基准
基准是针对其地理空间测量制成的参考点(或一组点)。地球上的同一位置可能具有不同的坐标,具体取决于使用的数据。有两类数据:
一个水平基准测量地球上的位置。由于地球不是一个完美的球体,甚至不是一个完美的椭球体,因此通常设计特定的基准面来近似特定区域中地球的形状。常见的基准面包括北美的WGS84和NAD83,以及 欧洲的ETR89。
垂直基准
一个垂直基准措施提升。有几类垂直基准;osgEarth 支持大地测量(基于椭球)和大地水准面(基于地球周围高程点的样本集)。
osgEarth 内置了以下垂直基准:
大地测量 - 默认;osgEarth 使用水平基准椭球作为参考
EGM84大地水准面
EGM96 大地水准面 - 通常称为MSL;在 DTED 和 KML 中使用
EGM2008大地水准面
默认情况下,osgEarth 中的 SRS 使用大地垂直基准;即,高度被测量为“椭球以上的高度(HAE)”。

根据上述内容,就很明确了,在默认的情况下,垂直基准为大地高程,而水平基准,是质心椭球

2 一些个人理解

  1. 地心坐标系,包含空间直角坐标系以及大地坐标系,其实质为,是以地心为质心的坐标系,都可以认为是地心坐标系。因此,地心坐标系,有两种表现形式,即一个点,在地心坐标系中,有即(X,Y,Z)和(B,L,H)两种表示方法。如图所示

  2. 一种坐标系可能归类到几种坐标系中。比如WGS84,当他是大地坐标系时,他也属于地理坐标系,最直观的原因就是,也用(B,L,N)表示,因此WGS也是参考椭球的一种。但是WGS84同时,也可以转换成(X,Y,Z)的表示方法,这个时候,他就是空间直角坐标系。

  3. 在第一部分中,讲到有坐标系和水平、垂直基准面的选择,选择之间,并无绝对的关联,可以进行部分组合,会出现不同的搭配。

  4. 因此,关于文章开头的问题,可以给出答案,在osgEarth中,type="geocentric",意思是该部分影像使用的坐标系为地固系坐标系,即地心为质心的空间直角坐标系

  5. 你在截取影像的时候,都是在投影的情况下截取的,所以可以看到,投影的横纵坐标,仍旧用经纬度的方式表示,这个时候的经纬度即他自带的参考椭球的经纬度值,如WGS84,这个时候他对应的值,即为该点高程,这个高程在参考椭球下,当然就是大地高程。

  6. 因此,在读取WGS84的srtm数据时,可以设置为+proj=latlong +datum=WGS84(猜测,还没试过),直接读取为(B,L,H)值。也可以设置为type="geocentric"(因为同为地心为坐标系质心),直接读取后,转变为空间直接坐标系的(X,Y,Z)值。

osgEarth2.10.2中关于空间参考系的一些理解相关推荐

  1. MySQL中的空间扩展

    目录 19.1. 前言19.2. OpenGIS几何模型 19.2.1. Geometry类的层次19.2.2. 类Geometry19.2.3. 类Point19.2.4. 类Curve19.2.5 ...

  2. MapGuide空间参考系API

    MapGuide空间参考系 API提供了一些非常易于使用的类,主要功能由以下四个类提供. l  MgCoordinateSystemFactory:这是一个工厂类,主要用于创建MgCoordinate ...

  3. 12_OSR模块和空间参考系

    OSR模块和空间参考系 定义地理坐标系 地理坐标系封装在osr.SpatialReference类中. 主要有两种坐标系:经纬度的地理坐标系和米的投影坐标系. # -*- coding: utf-8 ...

  4. gis中开始编辑之后显示空间参考_GIS中的空间参考

    GIS一般都是研究的基于地球的某个区域,例如一个国家.省或市的情况,既然地球上都有经纬度来标识,那么直接用经纬度来标识物体的位置不可以吗?但如果应用不一样,在实际中选择的空间参考系也是不一样的.例如我 ...

  5. raster | R语言中的空间栅格对象及其基本处理方法(Ⅰ)

    前面的系列推文已经完成了对R语言中的两个管理空间矢量数据的工具包(sf和sp)的介绍,以及空间自相关.空间插值等空间分析方法. 这里小编再推出一个系列来介绍R语言中管理空间栅格数据的工具包:raste ...

  6. matlab中表示拉普拉斯分布_双导体球在匀强外电场中的空间电场分布

    导体球或球壳在匀强外电场中的场强分布是电动力学中的经典题目,也是大家所熟悉的题目,但均匀电场中出现两个导体球或球壳(二聚体)时的场强却少有讨论.两导体球电极化所引起的导体球间电磁场的局域增强是表面等离 ...

  7. 操作选项_Win 10系统中的电源选项及任务栏图标等功能介绍和操作

    大家好,我是波仔,很高兴又来跟大家一起分享Windows 10系统的知识,希望大家可以多多了解. 今天我们来分享一下Windows 10系统中的电源选项和一些程序图标的介绍和操作. Windows 1 ...

  8. Python Day 10 函数(名称空间,作用域,作用域链,加载顺序等; 函数的嵌套 global,nonlocal)...

    Python Day 10  函数(名称空间,作用域,作用域链,加载顺序等; 函数的嵌套 global,nonlocal) 名称空间(命名空间): 当程序运行时,代码从上至下一次读取,遇到变量与值, ...

  9. Albumentations 中的空间级图像变换

    GitHub 官方网站 Featurize Albumentations 中的空间级图像变换 Albumentations 在计算机视觉的图像增强中使用频率很高,无论是分类人物.语义分割人物.目标检测 ...

最新文章

  1. 图灵访谈系列之八:对话归隐的大师——Donald E. Knuth(高德纳)
  2. 混合云存储开启企业上云新路径--阿里云混合云备份容灾方案发布
  3. 400名微软员工详细薪资信息泄露,资历和国籍对薪资影响巨大!
  4. Oracle-锁解读
  5. 数据中心基础设施故障处理流程
  6. webpack + react 使用 eslint
  7. mysql事物日志工具_MySQL——常用工具和日志
  8. (五)数据结构之“链表”
  9. Java调用webservice.asmx接口.
  10. 关于在头文件中定义变量
  11. java jar包与配置文件的写法
  12. 华为Mate 40系列或首发屏下摄像头:全球首个量产级别方案
  13. 使用flash在IPAD2上播放FLV效率不高
  14. 若依如何使用多数据源?
  15. dumpsys命令用法
  16. 你不专业并且自以为是,所以被坑
  17. 删除查找后的目录或文件
  18. 多商户商城系统功能拆解01讲-产品架构
  19. 微信小程序引入iconfont实现添加自定义颜色图标
  20. x64技术之SSDT_Hook

热门文章

  1. 可由低通滤波器推导变换为高通、带通、带阻滤波器
  2. bga封装扇出过孔_Altium Designer BGA扇出
  3. 一文看懂:数据指标体系的4大类型
  4. Material Design的基础知识
  5. 设计模式---状态模式(State Pattern)
  6. 例3.2 计算存款利息。有1000元,存一年。(1)活期,年利率为r1,(2)一年期定期,年利率为r2,(3)存两年半年定期,年利率为r3。
  7. 2013年第四届丘成桐大学生数学竞赛获奖名单
  8. 刀具寿命预测特征处理方法、刀具磨损机理
  9. 数据库 not in 的坑
  10. SF中DispSync.cpp源码分析