等高线生成dem
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘自:http://bbs.esri c /E SRI/view thread.php?tid=35910&highlight=%B5%C8%B8%DF%CF%DF
下面这段内容怎么看都觉得熟悉,一定是看过很多次了,要用的时候还是得临时去找。所以,摘录到此。或者可能,我的这个空间就已经有了也未可知。唉,上年纪了。另外,也觉得qzone也应该增加空间搜索功能了。
CAD文件在通常的GIS软件中,都会对应多个图层,至少点、线、面层各一个,当然可能一些层中没有数据。cad格式的等高线主要应该是线信息,也可能有面和特征点。如果面层有数据,需将面转为线,然后将线部分倒成一个gis线数据层。如果有特征点,则导成一个点层。本案例中的等高线数据中面层和点层没有数据。
方法1:利用ArcGIS和E nvi组合将等高线转为grid dem:
在ArcGIS中生成数据库文件,导入等高线
1、在ArcCatalog中创建一个P ersonal GeoDatabase(Access文件)tempdb(不直接用shp文件是有原因的,后面会讲到)。
2、右键点击tempdb,“导入”要转的cad文件的线层,导入名为Contour1。
注意:导入时的命名,我之前就因为文件名用了“-”而一直不成功;不要选择“导出”功能,不知为何,从cad文件的线层“导出”到tempdb中,转出的数据特别大!
在ArcGIS中对冗余数据进行处理
导入CAD过程中产生中产生一些数据冗余。因此,数据处理前,需要先排除冗余数据的干扰。
从CAD导入的数据Contour1,在ArcMap中打开,多了很多很小的点和线(不知为何形成)。经观察得出规律,这些多出来的数据的属性“E ntity”为“Insert”或“Line”,而有效数据“E ntity”属性为“P olyline”。
1、点击“StartE diting”开始编辑数据。
2、“Selection->Select by Attribute”中选择属性为“Insert”和“Line”的数据,删除。
3、“StopE diting”,保存编辑结果。
从CAD文件中导入的图层Contour1,有很多没用的属性,可以在“ArcCatalog”或“ArcMap”中将其删掉,只保留“E levation”字段(等高线的高度)(本来,Contour1的“shape”字段,也就是空间数据字段,已经包含了高度信息,我们之所以保留“E levation”字段,是因为后面即将采用的envi中不支持这个高度信息)。鉴于E levation字段跟我们下面用的envi存在冲突,需要对其重命名。由于Arcgi s不支持属性字段名的修改(很奇怪),我们在Access中打开tempdb,修改Contour表的E levation字段为E lev。导出tempdb中的contour1层为.shp文件contour1.shp。
在envi中将等高线生成Grid DEM(操作软件为envi4.0)
1、采用envi导入contour1。(注:直接在envi导入dxf格式的等高线会产生错误(不知为何)。将其导入后,信息会变得混乱,图像也发生错误。)
2、导入后,E nvi会生成contour1.evf(envi自己的格式)。
3、选择菜单Topographic->Convert Contours to dem,选择contour1.evf,在“Convert Vector E levation Contours to Raster DE M”对话框中要设置:
E levation Attribute Column:E lev
Output P ixel Size: 5
Output Data Type: Floating P oint
Gridding Interpolation Method:Linear(选Quintic出来的图不对)
E xtrapolate to E dge of Image:No(选yes花很长时间出来的结果还不对)
4、从E nvi的菜单File->Save File As->Tiff/GeoTiff将envi的dem文件转存为geoTiff格式。
附:在envi中导入.shp数据的时候,可以加入多个.shp数据,不知这是否能用来加入高程特征点。
方法2:只采用ArcGIS软件,将等高线转为Grid DEM
要点简介:用ArcGIS的Toolbox工具集中选择“Spatial Anal y st E xtension (S AE)”和“3D Analyst E xtension (3DAE)”生成G rid DE M。
以下是具体步骤:
1、在ArcMap中打开cad等高线文件,导出为contour1.shp。
2、在3DAE中选择Create/MOdify Tin->Create Tin From Features,选定文件contour1.shp,“Height source”对应选择“E levation”字段,选择“Triangulate as MassP oint”,请看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 DE M的无效值是很奇怪的一个值,需要修改为合适的高程值,0或-9999之类。
c.直接用CAD文件的P olyline层数据生成grid总是出错(不知为何),所以将数据先转为ArcGIS的数据(比如.shp 格式)再进行处理,避免出错。
d.Arcgi s的SAE中,有一个功能直接将Feature数据转为Raster,此文件与上述方法生成的Grid DE M有区别。此方法出来的结果,矢量对应坐标有高程的,对应raster的位置值为这个高程,其他位置为空。
e.ArcGIS的工作路径中不能含有中文,我就是因为这个而试了很久,所以改用了envi很麻烦的生成DEM。