超图对接NSDTF-DEM数据

来源:互联网 发布:知乎问题怎么删除 编辑:程序博客网 时间:2024/04/30 08:49

作者:吆鸡

一、 DEM简介

1、DEM分类

  数字高程模型(Digital Elevation Model),简称DEM,是通过有限的地形高程数据实现对地形曲面数字化模拟(即地形表面形态的数字化表达)它是用一组有序数值阵列形式表示地面高程的一种实体地面模型,是数字地形模型(Digital Terrain Model,简称DTM)的一个分支,其它各种地形特征值均可由此派生。
  DEM是在日常应用中经常用到的数据,做填挖方分析、三维场景展示、影像图的正射校正、水文分析等。在项目或者工程中经常需要购买一些DEM数据,其中最常见的DEM数据文件格式是*.dem,有两种格式:NSDTF-DEM和USGS-DEM。国内购买的DEM大多是NSDTF-DEM格式。

2、NSDTF-DEM介绍

  NSDTF-DEM是中华人民共和国国家标准地球空间数据交换格式,属于格网数据交换格式,超图平台支持直接导入该格式的数据。使用记事本打开NSDTF-DEM格式数据会发现它是明码,如:

NSDTF-DEM文件格式示意图

  头文件每行数据对应的含义为:
  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。①

二、 超图桌面平台导入DEM数据

1、导入说明

  导入方法分为直接导入法和间接导入法。正常情况下,直接导入法是最简单快捷的办法。当使用直接导入法导入数据失败时,可能是NSDTF-DEM头文件信息不全或者损坏了,遇到这种情况时请尝试间接导入法。

2、直接导入法

  SuperMap iDesktop 7C(2015)及以上版本支持NSDTF-DEM文件和USGSDEM文件的导入。导入操作步骤如下:
  (1)新建数据源。数据源集合节点右键单击,选择新建数据源。
  (2)导入数据集。数据源节点右键单击,点导入数据集。
  (3)弹出数据导入对话框之后,添加要导入的dem文件,然后修改相应的文件类型。NSDTF选GBDEM文件,USGS选DEM文件,最后点导入按钮即可。示意图如下:

数据导入示意图

  结果如下图:

导入结果示意图

3、间接导入法

  从DEM简介可得出:不同格式的DEM数据栅格单元数据值记录方式基本一样,主要是头文件信息不同。因此在直接导入不成功的情况下,可将*.dem文件用记事本打开,以NSDTF-DEM为例,只需把上述文件的头文件信息改为相对简单一点的格式,如下图所示形式:

改NSDTF-DEM头文件为Grd格式

  再将文件扩展名修改为*.grd,将保存为某GIS平台的grd格式数据,之后再用数据导入能得到一样的结果。

三、超图组件导入DEM数据

  SuperMap Objects .NET 6R(2012) Service Pack 3及以上版本支持NSDTF-DEM文件和USGSDEM文件的导入。
  涉及的类有国家标准 DEM 数据文件导入的参数设置类(ImportSettingGBDEM)和美国标准格网格式数据导入的参数设置类(ImportSettingUSGSDEM),以及导入数据类(DataImport)以下是SuperMap Objects .Net 8C(8.0.2)以NSDTF-DEM为例的测试关键代码:

1、设置导入参数

  选择导入文件时设置好导入参数,包括目标数据源、导入之后的数据集名称、导入之后数据集的编码类型、导入的模式、是否创建金字塔等。

case FileType.GBDEM:ImportSettingGBDEM settingGBDEM = new ImportSettingGBDEM();// 结果设置settingGBDEM.TargetDatasource = m_datasource;settingGBDEM.TargetDatasetName = strDatasetName;settingGBDEM.TargetEncodeType = EncodeType.None;settingGBDEM.ImportMode = ImportMode.None;// 转换参数settingGBDEM.IsPyramidBuilt = false;// 源文件信息settingGBDEM.SourceFileCharset = Charset.Default;settingGBDEM.SourceFilePath = node.GetValue("完整路径").ToString();setting = settingGBDEM;break;

二次开发数据导入添加文件示意图

2、执行导入

  点击导入按钮时,构造好DataImport类,将之前参数设置添加进来,调用DataImport. Run即可,导入结果是ImportResult。

DataImport dataImport = new DataImport();// 之前设置好的ImportSetting存在了node.TagImportSetting setting = node.Tag as ImportSetting;dataImport.ImportSettings.Add(setting);ImportResult result = dataImport.Run();

代码片段示意图

  导入结果如下图所示:

导入结果示意图

  各类的详细情况请查阅SuperMap Objects .Net 8C联机帮助。③

参考资料

①http://www.cnblogs.com/liuyunfeifei/articles/3518401.html
②http://www.cnblogs.com/liuyunfeifei/articles/3516947.html
③http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iObjectsDotnetOnlineHelp8CSP2/SuperMapHelp.htm(或者在.Net组件完整压缩包解压出来的Help文件夹中SuperMap iObjects .NET Help.chm)

1 0