https://blog.csdn.net/fmechina/article/details/119239205
概述
目前通过GNSS等仪器采集的高程数据,通常记录为地球椭球体模型上方的大地高(或“椭球高”)。对于某些应用,如工程方面,我们可能希望确定海平面以上的高度,或由地球大地水准面得出的“正常高”。椭球高度必须首先调整或转换,然后才能与平均海平面高度进行比较。FME允许我们使用CsmapReprojector转换器在椭球高度和正常高之间进行转换。
CsmapReprojector转换器可以使用以下格网格式:
Geoid96(.geo)
Geoid99(.bin)
OSGM91(.txt)
Byn(.byn)
EGM96(.grd)
如果您的格网不是这些格式之一,则可以使用FME进行转换。基于在http://earthinfo.nga.mil/GandG/wgs84/gravitymod/egm96/readme.txt上找到的规范,可以创建的比较简单的格网格式EGM96 AsciiGRD格式 ,文本格式。
其中头文件也就是第一行记录的坐标信息,和格网间距信息
下面的文件主体为各个节点的高程值
模板结构
下面简单说明如何从自己的格网转换为EGM96GRD格式。
首先模板将Ascii格网文件转换成经纬度格式,我手中的格网文件不是密集点云数据,是间隔百米的高程异常文件,首先将其生成DEM通过内插将数据加密,然后提出内插后的高程做为一个点云,然后转换为一个光栅格网用于后续转换。
这个过程需要您提供格网像素间距,它应等于或大于点云的点间距。如果点不在椭球投影中,请再添加一个CsmapReprojector转换器,以便在光栅化之前重新投影点云文件。
然后,根据EGM96 Ascii GRD的格式,重新构造文件结构头文件和主体部分
最后根据顺序将每一行文本写入到.grd格式文本文件中。
使用新的格网
在CsmapReprojector中有两个垂直处理使用转换格网的选项:
地心或椭球高度->正交高度
正交高度->地心或椭球体高度
选择这些选项后,将激活下面的Geoid高度格网选择框。
但是,单击框旁边的……浏览按钮会提示您输入一个GDC文件,而不是GRD文件。
GDC文件
GDC文件是一个简单的文本文件,其中包含要用于转换的格网目录,允许您使用覆盖不同区域范围的多个格网文件来进行同一转换。列出的数据所在的第一个格网将用于转换。
例如,这里是Geoid03-Nad83_Navd88-2003.gdc:的内容
#http://www.ngs.noaa.gov/GEOID/GEOID03/(http://www.ngs.noaa.gov/GEOID/GEOID03/)
…\GridData\Usa\Geoid03\g2003u01.bin
…\GridData\Usa\Geoid03\g2003u02.bin
…\GridData\Usa\Geoid03\g2003u03.bin
…\GridData\Usa\Geoid03\g2003u04.bin
…\GridData\Usa\Geoid03\g2003u05.bin
。…\GridData\Usa\Geoid03\g2003u06.bin
。…\GridData\Usa\Geoid03\g2003u07.bin
。…\GridData\Usa\Geoid03\g2003u08.bin
#后面的行用于注释。…格网文件的路径相对于GDC文件的位置,如果出现加载失败时,可能是这个相对路径的原因,建议将路径直接更改为绝对路径。
创建GRD文件并将其放置在所需位置后,创建一个GDC文件并将其放在“FME安装文件夹\Reproject\GeoidHeightGrids”文件夹中。然后它将在CsmapReprojector转换器中使用。
注意
当FME第一次使用.grd文件时,它将尝试编译为一个二进制的._96文件。如果FME安装在C盘程序文件下,它没有足够的访问权限在GridData文件夹中创建此文件,并且将提示加载失败。在这种情况下,最好将.grd文件存储在文档文件夹下,并修改.gdc以指向这一点。创建了_96文件后,您可以将.grd和._96同时移动到GridData文件夹,或者以管理员权限启动FME软件。