Geo-Info Technical Blog

Blogging 3S , Programming ,etc.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

NSDTF-DEM格式数据

Posted on 2008-10-09 11:29  cosophy  阅读(5467)  评论(0编辑  收藏  举报

【参考文章】 http://www.v2sky.com/u/v2sky/archives/2007/36.html  http://www.gissky.cn/blog.asp?ID=146#more

NSDTF-DEM是一种国家标准空间数据的交换格式,后缀一般是.dem,使用记事本打开会发现它是明码。 如:

头文件信息:

NSDTF-DEM
1.0
M
0.000000
0.000000
39512435.000000
2743120.000000
5.000000
5.000000
985
1328
100

下面就是具体的栅格数据值:

    -99999      20738      19502      18176      16504      14833      13685      12564      11311      11307
     11302      11298      11785      12149      12145      12140      12013      11763      11635      11630
     11625      11621      11617      11612      11608      11603      11353      11102      11097      11093

头文件每行数据对应的含义为:

DataMark--------中国地球空间数据交换格式-格网数据交换格式(CNSDTF-RAS或CNSDTF-DEM)的标志。基本部分,不可缺省。
Version--------该空间数据交换格式的版本号,如1.0。基本部分,不可缺省。
Unit--------坐标单位,K表示公里,M表示米,D表示以度为单位的经纬度,S表示以度分秒表示的经纬度(此时坐标格式为DDDMMSS.SSSS, DDD为度, MM为分, SS.SSSS为秒)。基本部分,不可缺省。
Alpha--------方向角。基本部分,不可缺省。
Compress--------压缩方法。0表示不压缩,1表示游程编码。基本部分,不可缺省。
Xo--------左上角原点X坐标。基本部分,不可缺省。
Yo--------左上角原点Y坐标。基本部分,不可缺省。
DX--------X方向的间距。基本部分,不可缺省。
DY--------Y方向的间距。基本部分,不可缺省。
Row--------行数。基本部分,不可缺省。
Col--------列数。基本部分,不可缺省。
HZoom--------高程放大倍率。基本部分,不可缺省。设置高程的放大倍率,使高程数据可以整数存贮,如高程精度精确到厘米,高程的放大倍率为100。如果不是DEM则HZoom为1。

要使用这种数据就需要转换成目标软件支持的数据格式了,如转换成ArcGIS支持的GRID数据,就可以使用以下方法。

由于栅格单元数据值记录方式基本一样,主要是头文件信息不同。如ArcGIS GRID数据的文件头按如下方式记录相关信息:

ncols         319----------------数据列数
nrows         198----------------数据行数
xllcorner     131985----------------数据左上角的X值
yllcorner     19020----------------数据左上角的Y值
cellsize      5----------------数据分辨率(栅格单元的宽高)
NODATA_value  -99999----------------无值数据标志

所以,对于以上的DEM数据,将文件头改成下面的形式并保存为.grd文件就可以在ArcGIS中打开使用了。

ncols         1328
nrows         985
xllcorner     39512435
yllcorner     2743120
cellsize      5
NODATA_value  -99999

注意:按原创作者的意思应把yllcorner的值赋为Yo-Row*DY,不然无法拼接相邻图像。 为什么这么做他没说,难道是其中某种数据文件头记录的是左下角的坐标值,而不是左上角??

此外,HZoom值好像没有使用到,可以在ArcMap里面用Raster Calculator计算转换后的GRID(注意不能填整数,不然会丢失很多信息),使它和原始数据保持一致。