摘抄笔记:DEM数据格式转换

最近遇到DEM数据格式转换的问题。问题缘由要把一批DEM数据通过ArcSDE入库,但是手上已有的数据的格式是TXT(记录点的XYZ)DXF,这两种格式却都不能直接导入。上网找了一些方法,自己也动手做了试验,把两种可行的方法总结如下:

1.  TXT——(Access)数据库表——(ArcMap)shp——(3D Analyst)TIN——(ArcToolbox)Raster

(1)Access导入TXT文件,转换为数据库表,相应的字段给予对应的字段名称(如:XYZ)

(2) ArcMap>Tools菜单—>Add XY Data对话框,选择转换后的数据库表,为XY 选择对应的字段名称,必要时定义投影信息。新文件绘制完毕,在文件名上右键单击,选择Data>Export Data,输出点shp文件;

(3) 加载3D Analyst工具条,3D Analyst>Create/Modify TIN>Create TIN From Features,选择上一步生成的shp文件,并制定高程值对应的字段名,生成TIN;

(4)  ArcToolbox>3D Analyst Tools>Conversion>From TIN>TIN to Raster,生成GRID格式的Raster数据集。

现在可以通过ArcSDE导入数据库了。呵呵,这是从网上找到的方法,行的通,但是我们有几百个数据,这样一个个的转换工作量着实不小。第二个方法是自己摸索出来的。

2.  TXT——(VirtuZo).grd——(ArcToolbox)Raster

(1)通过VirtuZo软件,把TXT文件转换为后缀名为.grd的文件,其实按理.grd文件是ArcInfo Grid交换格式文件。这里要注意的是这个文件的头文件格式如下:

         ncols          数据列数

         nrows         数据行数

         xllcorner       数据左上角的X

         yllcorner       数据左上角的Y

         cellsize         数据分辨率

         NODATA_value  无值数据标志(一般-99999)

 通过VirtuZo转出来的文件可能头文件有点出入,需要按照这个格式进行调整,幸好它是明码文件,呵呵;

(2)通过批量改名,把grd的后缀改为txtasc,这是因为转换的源文件它只认这两个后缀的文件;

(3)ArcToolbox>Conversion Tools>To Raster>ASCII to Raster,生成GRID格式的Raster数据集。

这个方法其实也还是一个个文件转换的,只不过步骤少一点。但是这个方法还有几个要注意的地方:a.不同的DEM的分辨率可能不同,用VirtuZo转换的时候要根据实际数据设置参数;b.头文件格式调整,上面提到的;c.转换成的.grd文件高程值是用整数值存储高程的,如果想保留数据的精度,需要在转换中设置高程缩放参数,然后生成DEM之后,需要用DEM代数运算除去缩放的参数,还原原始的高程值,这个过程我用Model Builder搭了一个简单的模型,简化一点步骤,嘿嘿。

以上只是我的摸索,希望不是误导,亦欢迎讨论和纠错

你可能感兴趣的:(数据库,工作,存储,Access,工具,features)