gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:2167回复:4

[转帖]ARCGIS和Surfer格网文件转换方法

楼主#
更多 发布于:2004-05-16 00:26


一、前言
Surfer是美国Golden 软件公司的产品,用户包括矿业、工程、医药、地学、生物等领域的研究人员、工程师和科学家,目前最高版本为8.0,是科技工作者特别是地学研究人员必备的软件,应用极广。它提供的内插方法多达12种,Surfer强大的插值功能和绘制图件能力,已经使它成为用来处理XYZ数据首选的软件,能迅速地将离散点的测量数据通过插值转换为连续的数据曲面,进一步绘制等值线图、粘贴图、影像图、地貌晕渲图、矢量地图、线框图和表面图。Surfer具有简单的数学运算、数据统计、平滑、滤波、微分、积分、傅立叶谱分析等多种数据分析功能。也具有趋势面分析、体积和面积计算、坡度分析、坡向分析、剖面曲率、平面曲率和水平曲率分析以及剖面计算等等三维空间分析。可以说Surfer是在Win95/98和NT4.0操作系统下最强大的、最灵活的和容易使用的绘制等值线图及三维立体图软件包。
ArcGIS是美国环境系统研究所(ESRI)开发的新一代GIS软件,是世界上应用广泛的GIS软件之一,在ArcGIS中继续保持其产品既有的强大空间数据管理和分析能力外,还全面采用了工业标准的和开放的主流IT技术。ArcGIS的地统计分析扩展模块(Geostatistical Analyst)、空间分析扩展模块(Spatial Analyst)和三维分析扩展模块(3D Analyst)对开展地学空间分析功能提供了非常灵活的手段。
地理信息系统的数据模型分两大类,即矢量数据模型和栅格数据模型。不同的数据模型所采用的技术和分析方法大相径庭。以栅格数据模型为存储结构,地图代数(Map Algebra)为数学基础的空间分析方法自1980年代后期以来成为地理信息系统技术发展的重要方向,并日趋成熟。它的最大特点就是能够对空间问题进行建模,因此已成为衡量一个地理信息系统功能强弱的关键指标之一。ARCGIS地统计分析扩展模块中提供了5种插值方法来创建GRID表面模型,而在Surfer8.0内插方法多达12种,对中、小离散数据进行插值处理有其优势,以及绘制、标注等值线图及三维立体图都很方便,但其空间分析要比ArcGIS空间分析扩展模块弱得多,本文拟就二者创建的GRID表面模型的文件格式作一比较,并解决了这两种文件相互转换的方法,以方便在实际的科研中针对不同的数据量、研究目的等方便选择二者提供的不同的插值方法来创建GRID表面模型,发挥各自的优点。


二、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为输入的格网文件。
喜欢0 评分0
SCXDDJ
路人甲
路人甲
  • 注册日期2004-04-04
  • 发帖数10
  • QQ
  • 铜币145枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-12-12 00:02
顶啊
举报 回复(0) 喜欢(0)     评分
tommy200
路人甲
路人甲
  • 注册日期2004-08-03
  • 发帖数87
  • QQ
  • 铜币89枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-12-14 00:05
<img src="images/post/smile/dvbbs/em01.gif" /><img src="images/post/smile/dvbbs/em02.gif" /><img src="images/post/smile/dvbbs/em05.gif" />
举报 回复(0) 喜欢(0)     评分
ynkm
路人甲
路人甲
  • 注册日期2004-05-26
  • 发帖数264
  • QQ
  • 铜币27枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-12-14 08:27
<img src="images/post/smile/dvbbs/em01.gif" />
举报 回复(0) 喜欢(0)     评分
1303675344
路人甲
路人甲
  • 注册日期2005-10-15
  • 发帖数21
  • QQ
  • 铜币181枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-10-15 15:43
buqingchu
举报 回复(0) 喜欢(0)     评分
游客

返回顶部