注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

石蕴玉而山辉,水怀珠而川媚!

 
 
 

日志

 
 

采用envi或ArcGIS将等高线转网格DEM  

2010-08-01 12:01:37|  分类: ENVI应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

摘自:http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=35910&highlight=%B5%C8%B8%DF%CF%DF

下面这段内容怎么看都觉得熟悉,一定是看过很多次了,要用的时候还是得临时去找。所以,摘录到此。或者可能,我的这个空间就已经有了也未可知。唉,上年纪了。另外,也觉得qzone也应该增加空间搜索功能了。

CAD文件在通常的GIS软件中,都会对应多个图层,至少点、线、面层各一个,当然可能一些层中没有数据。cad格式的等高线主要应该是线信息,也可能有面和特征点。如果面层有数据,需将面转为线,然后将线部分倒成一个gis线数据层。如果有特征点,则导成一个点层。本案例中的等高线数据中面层和点层没有数据。    

   方法1:利用ArcGIS和Envi组合将等高线转为grid dem:

  

   在ArcGIS中生成数据库文件,导入等高线

   1、在ArcCatalog中创建一个Personal GeoDatabase(Access文件)tempdb(不直接用shp文件是有原因的,后面会讲到)。

   2、右键点击tempdb,“导入”要转的cad文件的线层,导入名为Contour1。

   注意:导入时的命名,我之前就因为文件名用了“-”而一直不成功;不要选择“导出”功能,不知为何,从cad文件的线层“导出”到tempdb中,转出的数据特别大!

  

   在ArcGIS中对冗余数据进行处理

   导入CAD过程中产生中产生一些数据冗余。因此,数据处理前,需要先排除冗余数据的干扰。

   从CAD导入的数据Contour1,在ArcMap中打开,多了很多很小的点和线(不知为何形成)。经观察得出规律,这些多出来的数据的属性“Entity”为“Insert”或“Line”,而有效数据“Entity”属性为“Polyline”。

   1、点击“StartEditing”开始编辑数据。

   2、“Selection->Select by Attribute”中选择属性为“Insert”和“Line”的数据,删除。

   3、“StopEditing”,保存编辑结果。  

   从CAD文件中导入的图层Contour1,有很多没用的属性,可以在“ArcCatalog”或“ArcMap”中将其删掉,只保留“Elevation”字段(等高线的高度)(本来,Contour1的“shape”字段,也就是空间数据字段,已经包含了高度信息,我们之所以保留“Elevation”字段,是因为后面即将采用的envi中不支持这个高度信息)。鉴于Elevation字段跟我们下面用的envi存在冲突,需要对其重命名。由于Arcgis不支持属性字段名的修改(很奇怪),我们在Access中打开tempdb,修改Contour表的Elevation字段为Elev。导出tempdb中的contour1层为.shp文件contour1.shp。

  

    在envi中将等高线生成Grid DEM(操作软件为envi4.0)

  1、采用envi导入contour1。(注:直接在envi导入dxf格式的等高线会产生错误(不知为何)。将其导入后,信息会变得混乱,图像也发生错误。)

    2、导入后,Envi会生成contour1.evf(envi自己的格式)。

    3、选择菜单Topographic->Convert Contours to dem,选择contour1.evf,在“Convert Vector Elevation Contours to Raster DEM”对话框中要设置:

    Elevation Attribute Column:Elev

    Output Pixel Size: 5

    Output Data Type: Floating Point

    Gridding Interpolation Method:Linear(选Quintic出来的图不对)

    Extrapolate to Edge of Image:No(选yes花很长时间出来的结果还不对)

    4、从Envi的菜单File->Save File As->Tiff/GeoTiff将envi的dem文件转存为geoTiff格式。

    附:在envi中导入.shp数据的时候,可以加入多个.shp数据,不知这是否能用来加入高程特征点。

  

    方法2:只采用ArcGIS软件,将等高线转为Grid DEM

    要点简介:用ArcGIS的Toolbox工具集中选择“Spatial Analyst Extension (SAE)”和“3D Analyst Extension (3DAE)”生成Grid DEM。  

  

    以下是具体步骤:

    1、在ArcMap中打开cad等高线文件,导出为contour1.shp。

    2、在3DAE中选择Create/MOdify Tin->Create Tin From Features,选定文件contour1.shp,“Height source”对应选择“Elevation”字段,选择“Triangulate as MassPoint”,请看ArcGIS的相关文档确定其他几个选项的意义。

    3、生成Tin。如果有特征点,可通过Add Features to Tin来添加。

    4、利用Convert->Tin to Raster将Tin转为Raster。

    5、在ArcMap中,将生成的Raster数据保存为GeoTiff的Grid DEM。  

  

    注意:a.还可以将Tin的节点保存为一个point数据集,然后利用Interpolate->中的任何一种方法来生成Raster。  

    b.ArcMap保存的GeoTiff的Grid DEM的无效值是很奇怪的一个值,需要修改为合适的高程值,0或-9999之类。      

    c.直接用CAD文件的Polyline层数据生成grid总是出错(不知为何),所以将数据先转为ArcGIS的数据(比如.shp格式)再进行处理,避免出错。  

    d.Arcgis的SAE中,有一个功能直接将Feature数据转为Raster,此文件与上述方法生成的Grid DEM有区别。此方法出来的结果,矢量对应坐标有高程的,对应raster的位置值为这个高程,其他位置为空。

    e.ArcGIS的工作路径中不能含有中文,我就是因为这个而试了很久,所以改用了envi很麻烦的生成DEM。

  评论这张
 
阅读(1284)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017