将Surfer grd格网文件转成ArcGIS asc格式
Posted xiaokcehui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Surfer grd格网文件转成ArcGIS asc格式相关的知识,希望对你有一定的参考价值。
今天有同事问:将Surfer grd格网文件转成ArcGIS的栅格文件
博主记得Surfer就有这个功能,但是使用Surfer20的时候,怎么也找不到那个功能。
后来,找遍了grid相关的工具栏,终于找到了,记录一下,免得又忘记了
以下是用百度搜索的,Surfer 和ArcGIS格式互转的程序实现
二、ARCGIS的格网文件
生成一个连续的表面并用它来反映某类特定的度量是大多数GIS应用软件的基本功能。遍历研究区域中的每个位置以测量该位置的高度、大小或某种特性通常都是不可能的,因此一般都是采用抽样的方法,按照一定原则,选出一些样点进行测量,然后使用插值函数,估计出所有其他位置的值来构成表面模型,GRID和TIN是常用的两种表示表面的模型。其中GRID是用规则的空间格网点表示表面,格网点中间任何一点的值可以通过插值的方法进行估计,TIN是用相邻的、互不重叠的三角面来表示表面,三角面上任一点的值可以通过加权平均附近三角形顶点值的方法求得。
在ARCGIS地统计分析扩展模块(Geostatistical Analyst)提供两类插值方法:确定性内插法和地统计学内插法。这些方法都根据相邻样点的空间相似性原理来生成表面。确定性内插法运用数学函数进行插值,包括反距离加权插值法、径向基函数插值法、局部多项式法和全局多项式法;地统计学内插法依赖统计和数学两种方法,根据已知样点的统计特征来生成表面。由于地统计方法是基于统计特征的,所以用它进行插值不仅可以获得预测表面,而且能够获得误差表面,这样有利于评估预测结果的不确定性。地统计学中有很多方法,但它们都源自同一个家族――克里格(Kriging)。地统计分析模块提供的方法有:普通克里格法、简单克里格法、泛克里格法、概率克里格法、指示克里格法、析取克里格法和协同克里格法。
ARCGIS中创建栅格表面,默认的是二进制格网文件格式,在ArcInfo Workstation的ARC模块下使用GRIDASCII或者是ASCIIGRID命令,可以将二进制格网文件和ASCII码格网文件相互转换,也可以ArcToolbox中转换工具的ASCII到GRID的转换向导实现二者的转换。转换生成的ASCII码格网文件格式(文件头6行)如下:
ncols 2703
nrows 2959
xllcorner 11913353.857
yllcorner 3749999.99902
cellsize 10
NODATA_value -9999
-9999 -9999 -9999 -9999 -9999 -9999
-9999 -9999 -9999 -9999 -9999 -9999
-9999 -9999 -9999 -9999 -9999 -9999
-9999 -9999 -9999 -9999 -9999 -9999
-9999 -9999 -9999 -9999 -9999 –9999
三、Surfer格网文件
Surfer强大的插值功能和绘制图件能力,已经使它成为用来处理XYZ数据首选的软件,能迅速地将离散点的测量数据通过插值转换为连续的数据曲面,Surfer8.0提供内插方法多达12种:反距离加权插值法、克里格插值法、最小曲率法、改进谢别德法、自然邻点插值法、最近邻点插值法、多元回归法、径向基函数法、线性插值三角网法、移动平均法、局部多项式法和数据度量法。用户可根据不同的情况选用不同的内插方法,来创建Surfer格网文件。
自从Surfer7格网文件的格式已经被更新,默认设置是使用双精度保存数据信息,在保存数据时要注意保存为Surfer7中格网文件的格式[.GRD]。Surfer支持的以下3种格网文件格式:
①默认的Surfer 7 (*.grd)格式是使用双精度值的二进制格式,包括被用来新建格网的“fault(折断线)”信息在内。它不支持Surfer的更低版本;
②GS Binary (*.grd)格式是使用单精度值的二进制格式,与现有的和更低的Surfer版本都兼容。这格式生产格网文件大小最小,但这种格式里不包括“fault(折断线)”信息;
③GS ASCII (*.grd)格式是GS Binary (*.grd)格式的ASCII版本。它使用单精度值,与现有的和更低的Surfer版本都兼容。这种格式比GS Binary (*.grd)格式文件大小要大,但能在Surfer 工作表或一个文本编辑器中编辑它。Surfer还有一种常用的ASCII XYZ格式的dat文件,该文件在A列里是X坐标(行)、B列里是Y坐标和C列里是Z值。
在Surfer的绘图窗口中选择菜单命令“Grid(格网) convert(转换)”可以在GS Binary (*.grd) 格式、 GS ASCII (*.grd) 格式、 ASCII XYZ (*.dat)、和Surfer 7 (*.grd)等格式之间实现转换。
Surfer ASCII 格格网式(文件头5行):
DSAA
ncols nrows
xmin xmax
ymin ymax
zmin zmax
z11 z21 z31 ...
四、ARCGIS和Surfer格网文件转换方法
Surfer 不能将Arc ASCII格网文件格式转换成Surfer ASCII 格网文件格式,因此,必须要手工修改成Surfer ASCII GRD 文件格式。修改步骤如下:
1在记事本中打开Arc ASCII格网文件
2在第一行插入Surfer ASCII格网文件的ID号DSAA
3在第二行输入列数和行数
4在第三行输入X的最小值(xmin)和最大值(xmax)。Arc ASCII格网文件文件头第三行的xllcorner是X的xmin,xmax= xmin+ ( cellsize * (ncols-1) )。
5 在第四行输入Y的最小值(ymin)和最大值(ymax)。Arc ASCII格网文件文件头第三行的yllcorner是y的ymin,ymax= ymin+ ( cellsize * (ncols-1) )。
6在第五行输入Z的最小值(zmin)和最大值(zmax)。如果不知道确切的值,可以自定义一个适合的值。
7 在记事本中使用搜索和替换命令,将所有NODATA值替换为Surfer的空白值(1.70141e38)。如果文件太大,可以先保留所有的NODATA值,在编辑生成Surfer ASCII格网文件之后,在Surfer中使用进行替换。
8移除Arc ASCII格网文件文件头,使第六行开始为Z值的列表。以GRD扩展名保存文件,文件类似如下:
DSAA
2703 2959
11913353.857 11940373.857
3749999.99902 3779579.99902
1 100
1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38
1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38
1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38
1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38
1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38 1.70141e38
9 在Surfer的绘图(Plot)窗口中选择菜单命令“Grid(格网) Transform(变换)”,在弹出的“Open Grid(打开格网)”对话框中选择刚编辑好的格网文件,单击“打开”,在弹出的“Grid Transform (格网变换)”对话框的“Operation”下拉列表框中选择“Mirror Y(反射变换Y)”变换类型,指定输出文件的路径、保存的文件名和格式,Surfer自动调整格网的行序生成Surfer的格式,第五行插人正确的Z的最小值(zmin)和最大值(zmax)。单击“确定”,完成格网变换。
10 在步骤7中如果没有将所有NODATA值替换为Surfer的空白值(1.70141e38),选择菜单命令“Grid(格网) Math(算术运算)”,在“Open Grid(打开格网)”对话框中选择以上格网变换生成的文件。单击“打开”,在“Grid Math(格网运算)”对话框中输入:
C = if ( A = -9999, 1.70141e38, A)
C为输出的格网文件,A为输入的格网文件。
以上是关于将Surfer grd格网文件转成ArcGIS asc格式的主要内容,如果未能解决你的问题,请参考以下文章