DEM data



       之前在学习《实战Opengl》的时候,系统使用的三维地形dem数据是美国莱卡公司Helava全数字摄影测量系统来获取的DEM文件。文件头为:

        781395 1869975 50 50 333 127 -9999

      分别表示的是:DEM左下角X坐标,DEM左下角Y坐标,DEM数据点在X方向的间距,DEM数据点在Y方向的间距,DEM总列数,DEM总行数,DEM无效数据点高程值。

       前段时间想拿自己的TIF数据放到系统中试试,首先面临的就是文件的转换问题。在网上看tif转dem,我就用global mapper转换了,结果这个dem不是我要的。Global mapper转的dem均是USGS的DEM格式,文件头很长,包括dem四个点的XY坐标,X,Y的数据间距,有多少列等:                                                                                                              

0             1     1    1    48       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000       0.000000000000000     2    2     4  349436.6339622639900003436562.474716980000000 349436.633962263990000 3437498.474716980000000  350624.6339622639900003437498.474716980000000 350624.633962263990000 3436562.474716980000000    1645.000000000000000    2395.000000000000000       0.000000000000000     0   2.000000    2.000000    0.100000    1   595    00   00   0   0 0 0 0 3  0   0 0 0 0 00.00  

下面开始是一块一块的数据值:

1     1  469     1  349436.6339622639900003436562.474716980000000      0.000000000000000   1645.000000000000000   1796.556274414062500 17711 17710 17708 17697 17665 17680 17641 1754017538 17530 17532 17527 17489 17482 17458 17448 17438 17430 17428 17418 1741117418 17435 17408 17400 17400 17400 17398 17388 17379 17374 17380 17378 1737017370 17370 17370 17418 17571 17570 17568 17559 17537 17484 17506 17463 1746017450 17450 17450 17448 17433 17405 17408 17420 17418 17408 17354 17278 1727017268 17260 17254 17252 17290 17291 17264 17179 17171 17168 17160 17158 1714117110 17112 17118 17110 17108 17099 17095 17091 17076 17070 17065 17050 1705017047 17036 17028 17018 17008 16999 16991 16988 16978 16962 16933 16912 1687316882 16882 16882 16881 16873 16849 16838 16823 16820 16818 16810 16810 1680816800 16800 16800 16799 16799 16796 16800 16800 16800 16800 16800 16800 1679216766 16758 16731 16668 16660 16658 16656 16650 16648 16648 1664…..

偏移量 类型 长度 内容  名称和描述文本
0000-0005H 整数 6 本记录区域中在DEM数据中行数(一般为1)
0006-000BH 整数 6 本记录区域中在DEM数据中列数
000C-0011H 整数 6 本记录区域中所包含的DEM数据个数
0012-0017H 整数 6 本记录区域所包含的列数(一般为1)
记录中第一个高程数据的大地坐标
0018-002FH 浮点数 24 X
0030-0047H 浮点数 24 Y
数据特征
0048-005FH 浮点数 7 记录的本地数据海拔
0060-0077H 整数 4 本记录区域的最小高程
0078-008FH 整数 2 本记录区域的最大高程
       之后是数据区。

     从USGS到系统适用的dem,我写了个转换的小程序,导入发现地形有点诡异,不知道是tif到dem转换的问题,还是我程序转换的问题。

      找问题中间又查到了Arc/Info ASCII Grid 格式与系统使用的DEM转换比较方便,我用globalmapper转成这个格式,然后写了个小程序转成dem(从Arc/Info ASCII Grid 到dem就自己计算一下文件头即可。写程序就方便一些)

      Arc/Info ASCII Grid头文件为

ncols 157   //列数
nrows 171   //行数
xllcorner -156.08749650000  //左下X
yllcorner 18.870890200000  //左下Y
cellsize 0.00833300    //x,y间距

      转换后的地形读出来看着应该是对了。

 

 

PS:地形虽然是对了,但是在《实战opengl》这本书里dem采用global mapper转换默认的间隔2效果不好,转换时应该根据自己tif数据设定不同参数,我的数据改成间隔20,展示效果较好。



=========================================

1 概述

USGS 是美国地质调查局(U.S. Geological Survey)的英文缩写,USGS负责管理美国全国的数字地图数据的采集与分发。

1.1 USGS DEM数据产品的种类

(1)7.5-分DEM (一般采用30米格网间距,UTM投影),水平格网间距可以去1-30之间任意整数。DEM的范围大约为无重叠的标准的USGS 7.5分地理格网。

(2)30-分DEM(2×2秒间距)DEM的范围大约为无重叠的标准的USGS 30分×30分地理格网。

(3)1-度DEM(2×2秒间距)DEM的范围大约为无重叠的标准的USGS 1度×1度地理格网。

(4)7.5-分阿拉斯加DEM(1×2秒间距,纬度,经度),范围与7.5-分DEM基本相同除了在经度元素变化从最南端的10分变化至最北端的18分。

(5)15-分阿拉斯加DEM(2×3秒间距,纬度,经度),在阿拉斯加最南端的覆盖范围为15分(纬度)×20分(经度),在最北端经度范围变为36分。

1.2 USGS DEM的格式

USGS DEM文件由逻辑记录A、B、C组成,其中第一部分是文件头 记录 type A,主要记录了DEM数据有关的信息;第二部分是断面数据 type B,分为断面头数据和DEM数据实体;第三部分是精度信息 type C,可以省略。

USGS DEM数据以ASCII码形式存储,逻辑记录A、B、C格式说明分别见附表1、2、3。逻辑记录A、B、C都以1024字节长度作为逻辑记录单位,不足1024的用空格补齐。逻辑记录B通常包含多个1024字节长度的逻辑记录单位。为了有效利用空间每4个逻辑记录单位组成一个物理记录单位(4096 字节)。

 

2 DEM 的数据结构

USGS DEM主要采用两种类型的格网,采用UTM投影和采用地理坐标以秒为单位的格网。这里主要介绍以秒为单位的格网数据结构。DEM数据的四个角点坐标记录在逻辑记录 A中,详见附表1。每一个断面的起始点坐标记录在逻辑记录 B中,详见附表2。这些坐标描述了DEM数据的矩形形状和每个断面的起始点坐标。以上关于秒制DEM的规定适用于除7.5分UTM DEM以外所有DEM数据。

 

3 USGS DEM质量控制信息

Level 1

Level 1DEM 数据通常采用标准记录格式,数据通常是7.5-分DEM,数据通常来源于航片采集,通常DEM数据要求均方根误差RMSE不应超过7米,最大不超过15米,最大误差不超过50米。

Level 2

Level 2DEM 数据通常经过了编绘,最大允许均方根误差为等高线间距的1/2,最大误差为1个高线间距。

Level 3

Level 3DEM 数据通常来源于线划图,最大允许均方根误差为等高线间距的1/3,最带误差为等高线间距的2/3。

 

表1

数据元素

类型

格式声明

说明

ASCII格式

起始字节

结尾字节

文件名

ALPHA

A40

1

40

在DEM文件头中不应出现除美国外的其他国家如墨西哥、加拿大等国家的名称

自由格式文字

ALPHA

A40

41

80

有关数字化过程的有用信息,例如仪器、相片好、扫描孔径等

占位符

 

 

81

109

空格

东南角地理坐标

INTEGER*2, REAL*8

2(I4,I2,F7.4)

110

135

东南角地理矩形坐标顺序为:

x = Longitude = SDDDMMSS.SSSS

y = Latitude = SDDDMMSS.SSSS

(负号右对齐,不能以零起头,而增加正号)

处理方法代号

ALPHA

A1

136

136

1 采用自动相关和简单的双线性重采样算法

2 人工采集和GRIDEM简单双线性算法

3 DLG/或地形图CTOG 8向线性内插

4 从航测系统采集的等高线数据4向内插而来

5 DLG/地形图 LINETRACE,LT4X 复杂线性内插

6 DLG/地形图 CPS-3,ANUDEM,GRASS 复杂多项式

7 电子影像(非摄影测量)被动或主动传感器系统

占位符

 

 

137

137

空格

组合指示

ALPHA

A3

138

140

这个参数是为30分DEM准备的

生产者代码

ALPHA

A4

141

144

 

Level等级码

INTEGER*2

I6

145

150

1=DEM-1

2=DEM-2

3=DEM-3

4=DEM-4

DEM高程点图形定义码

INTEGER*2

 

I6

151

156

1=规则网格

2=随机分布

水平参考系定义代码

INTEGER*2

I6

157

162

0=地理

1=UTM投影

2=国家平面

UTM分带代码

INTEGER*2

I6

163

168

UTM 分带代码,

如果采用地理坐标这项参数为0

地图投影参数

REAL*8

15D24.15

169

528

对UTM及地理坐标系,该参数全部置0

平面参考坐标系单位代码

INTEGER*2

I6

529

534

0=弧度  1=英尺

2=米  3=弧秒

一般对于7.5分DEM,使用代码2。而对于30分、1度和Alaska DEM一般采用代码3。

高程坐标单位

INTEGER*2

I6

535

540

1=英尺

2=米

一般7.5分,30分,1度和Alaska DEM采用代码2

DEM边数

INTEGER*2

I6

541

546

通常为4

4对实数表示DEM边界

REAL*8

4(2D24.15)

547

738

坐标以(东经,北纬)为记录顺序,四个角以西南角为起点按顺时针排列。

两个元素分别表示整个数据中DEM的最大和最小值

REAL*8

2D24.15

739

786

DEM以元素9的代码表示的单位为单位,遵从元素6的分带划分。

以弧度作为记录单位,逆时针记录DEM参考系与地平面轴的夹角

REAL*8

D24.15

787

810

如果采用元素5中代码定义的坐标系统,这项参数为0

精度代码

INTEGER*2

 

I6

811

816

0=精度未知

1=精度信息在type C 中表达

X、Y、Z三方向分辨率,单位参考元素8,9

REAL*4

3E12.6

817

852

X、Y方向的分辨率只允许取整数。对所有的USGS DEM,除1度DEM以外,Z分辨率如采用英尺为单位,则最多允许小数点后1位,以米为单位最多允许小数点后2位。一些典型的表示如对于7.5分DEM可以使用30,30,1;和10,10,1等

DEM中包含的断面文件行列数(m,n)

INTEGER*2

 

2I6

853

864

当行数m=1时,n等与DEM的列数

旧格式在此结束

最大计曲线间隔

INTEGER*2

I5

865

869

仅当存在两种以上计曲线间隔时存在

源曲线间隔单位

INTEGER*1

I1

870

870

对应于源曲线最大间隔单位 0=N.A 1=英尺,2=米(仅适应于 level 2DEM)

最小计曲线间距

INTEGER*2

I5

871

875

最小或仅有的计曲线间隔

源曲线间隔单位

INTEGER*1

I1

876

876

对应于地图最小计曲线间隔单位

 1=英尺

2=米

数据生产日期

INTEGER*2

I4

877

880

“YYYY”一个4字符表示的年份(例如 1975,1997等)即可以是编绘日期也可以是航摄日期

数据检查和生产日期

INTEGER*2

I4

881

884

“YYYY”一个4字符表示的年份,可以是完成日期或者修测日期

检查标志

ALPHA*1

A1

885

885

“I”表示第三部分包括的所有质量控制均已实现

数据确定性标志

INTEGER*1

I1

886

886

0=没有做过确定过程

1=利用检查点计算过RMSE,未进行DEM编辑
2=利用检查点计算过RMSE,批处理水体编辑3=利用检查点计算过RMSE,编辑包括水体编辑

4=Level 1 DEM 编辑,水体编辑,利用检查点计算过RMSE。

5= Level 2 和Level 3 DEM编辑。利用检查点计算过RMSE。

可疑和空旷标志

INTEGER*1

I2

887

888

0=无

1=可疑区域

2=空旷区域

3=可疑区域和空旷区域

高程基准

INTEGER*1

I2

889

890

1=局域平均海平面

2=国家高程测量基准 1929(NGVD 29)

3=北美垂直基准(NAVD88)

水平基准

INTEGER*1

I2

891

892

1=北美基准 1927(NAD27)

2=世界测量系统1972(WGS72)

3=WGS 84

4=NAD 83

5=旧 夏威夷基准

6=波多黎各基准

数据编辑

INTEGER*2

I4

893

896

01-99最初为DMA特别设置区(USGS一般设为01)

空旷比例

INTEGER*2

I4

897

900

如果元素25指出存在空旷区域,这个区域(右对齐)说明文件存在相应比例空旷区点(-32,767)

边匹配标志

INTEGER

4I2

901

908

边匹配标志,按照西、北、东和南顺序排列

垂直标准位移

REAL*8

F7.2

909

915

垂直标准位移,形式为SFFF.DD 取值来自于VERTCON计划的矩形四条边的平均位移。通常加此值后转化为VAVD88

 

表2

数据元素

类型

格式声明

说明

ASCII格式

起始字节

结尾字节

一个二维数组表达当前断面文件的序号

INTEGER*2

2I6

1

12

行、列的取值范围均为1,m和1,n。行数通常设为1,列通常表示当前的断面序数

一个二维数组表示DEM的断面数

INTEGER*2

2I6

13

24

一个参数对应断面文件的行数,第二个参数通常设为1

一个二维数组表征断面文件的起点坐标

REAL*8

2D24.15

25

72

 

断面文件的局部高程基准

REAL*8

D24.15

73

96

单位采用逻辑记录A中元素9的定义

一个二维数组表达当前断面文件中DEM的最大最小值

REAL*8

2D24.15

97

144

单位采用逻辑记录A中元素9的定义

DEM数据实体

INTEGER*4

mn(I6)

 

 

6×(146 or 170),146第一个数据块最大数据数,170后续数据块 为了节约存储空间,无论断面文件有多长,DEM都以1024为单位存储,不足1024的以空格补齐。这样的一个数据块所能容纳的数据量为(1024-144)/6=146,后续数据块为所能容纳的数据量为1024/6=170。

 

 

表3

数据元素

类型

格式声明

说明

ASCII格式

起始字节

结尾字节

表明统计存在性的代码

INTEGER*2

I6

1

    6

1=有统计

0=无统计

相对于绝对平面的均方根误差RMSE

INTEGER*2

3I6

7

24

RMSE的单位跟逻辑记录A中8,9

RMSE取样数

INTEGER*2

I6

25

30

如果此值为0则说明,RMSE来自于估计而不是计算

元素5是否存在

INTEGER*2

I6

31

36

1=存在

0=不存在

相对于绝对平面的均方根误差RMSE

INTEGER*2

3I6

37

54

RMSE的单位跟逻辑记录A中8,9

元素5的取样数

INTEGER*2

I6

55

60

如果此值为0则说明,RMSE来自于估计而不是计算

分类: 遥感
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值