ArcGIS与*.dem

14 篇文章 2 订阅

*.demArcGIS中打开

DEM是在日常应用中经常用到的数据,做填挖方分析、三维场景展示、影像图的正射校正、水文分析等等。由于项目或者工程我们需要买一些DEM,其中*.dem是最常见到的DEM的格式,*.dem有两种格式,NSDTFUSGS

如果是USGS格式的DEM,就很好办了。通过ArcGIS可以直接读取。USGSDEM(USGS是美国地质调查局(USGeological Survey)的英文缩写,是一种公开格式的DEM数据格式标准,使用范围较广格式的。在ArcGIS中的ArcToolBox中的“转换工具”“转到栅格”—-DEM转到栅格”工具直接将USGS格式的DEM转为栅格DEM

 

我们购买的DEM很多都是NSDTFDEM格式,NSDTFDEM是中华人民共和国国家标准地球空间数据交换格式,是属于格网数据交换格式,一般的GIS软件都不支持这种格式。下面我们就看一下如何在ArcGIS中打开这个格式的DEM

首先用记事本打开*.dem,来分析一下这个格式的头文件是如何表示的。

从上到下,看一下每一行数值或者代码都代表什么意思:

M坐标单位,K表示公里,M表示米,D

    表示以度为单位的经纬度,S表示以度分秒表示的经纬度。

0方向角。

0压缩方法。0表示不压缩,1表示游程编码。

36212435.000000左上角原点X坐标

3243120.000000左上角原点Y坐标

5X方向的间距。

5Y方向的间距。

962行数

1252:列数

100:高程值的放大倍数

在后面就具体的栅格值了,其中-99999表示该处为NODATA

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

ncols        
962

nrows        
1252

xllcorner    
36212435

yllcorner    
3243120

cellsize     
5

NODATA_value  -99999

如果我们将上面的NSDTF格式的头文件改为Grid的头文件格式,其中高程值不变,就完全可以在ArcGIS中查看这个*.dem。(最好将后缀名改为*.grd。改了头文件之后,该文件已经变成grid文件)。这样通过修改这个*dem的头文件就可以直接将它转换为grd文件。

要是有成千上百个NSDTF格式的DEM,可能就不能考虑去一个一个修改头文件了。需要我们通过程序的方式来修改或者已经利用GDAL开源库。

……………………………………………….

StreamWriterstreamWriter = newStreamWriter(outFullName, false);   

streamWriter.WriteLine({0}
{1}
{2}
{3}
{4}
{5}
{6}
,

int(rows), int(cols), extent.UpperLeft.X,
extent.UpperLeft.Y, cellsize ,
-99999);

    for (int i = 0; i < rows; i++)

    {

for
(
int j = 0; j <cols; j++)

{

streamWriter.Write(“{0}{1}, cells.GetValue(j, rows-1-i),
((j + 1) % 10 == 0) ?

: ” “);

}

streamWriter.WriteLine();

}

streamWriter.Close();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值