gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:1353回复:3

[转帖]ArcGIS的GeoProcessing的原理及实现

楼主#
更多 发布于:2005-09-01 17:37
ArcGIS将GIS看作3种视图:地图、数据集、空间处理模型,分别对应于其产品的ArcMap、GeoDatabase、GeoProcessing。其中,对于研究者,GeoProcessing更具有实用价值和意义,因为对于研究者,面对问题,构建的解决方案很多都是地学模型。
<P>ArcGIS 9提供了Model Builder这个工具来构建模型(ArcView 3.3也有,孤陋寡闻,从ArcGIS 9的文档里才知道的),也可以通过Python或者传统的AML(ESRI的二次开发脚本语言)来构建模型。 </P>
<P>对于初接触Model Builder,而又有程序开发背景的很多人来说,Model Builder确实是一个非常神奇的工具,可以通过类似画流程图的方式来构建模型,然后运行之。对于一般的GIS工作或研究,无须学习写程序而获得程序的能力,确实非常之好。 </P>
<P>模型界面 <BR> </P>
<P>运行界面 <BR> </P>
<P>模型中主要有2种模型,参数输入(圆圈)、输出,和运算模块(矩形)。 </P>
<P>输入可以设置为界面输入(右键,Make Parameter)或者其他运算模块的输出(通过连接工具,工具条上),这样,只要设置好了输入输出,一系列的模块就会依次运算,最后完成复杂的地学模型的模拟。 </P>
<P> 由于ArcGIS 9以上版本可以使用Python来写模型,因此,对Model Builder的实现有一个大概的想法。 </P>
<P> 首先说Python来写可以在ArcGIS中使用的分析工具,其实现大概是这样: </P>ArcGIS建立了一个GP(GeoProcessing)的COM对象,通过这个对象可以获取空间数据的性质,写入数据,返回参数等; 对于每个工具,不管是Python写的与否,可以定义其输入的参数类型,ArcGIS生成用户界面(HTML生成的,在“C:\Documents and Settings\[用户名]\Application Data\ESRI\ArcToolbox\Dlg”目录下); 调用这些工具,首先显示界面,获取参数,然后通过操作系统执行方式调用(Shell "..."),由于调用过程中与ArcGIS的交互是通过GP(GeoProcessing)这个对象来进行的,可以在界面显示信息; 而对于模型方式的工具,ArcGIS内部通过某种脚本方式来保存并执行,其前后过程由于输入、输出都是文件或者变量,并且以参数方式传递,因此可以相对容易的实现顺序执行(ArcGIS目前的建模只可以是顺序的,虽然地学模型简单的都是这样,但毕竟不完整,也许就是因为这个原因,ArcGIS 9才提供了Python脚本); 整体的思路其实应该就是操作系统的“管道”思想。
<P> 另外,ArcGIS也支持VBScript,JScript(支持COM即可),JScript我没有用过,所以不好说,VBScript虽然也简单易用,但功能等不是很好,个人也不喜欢。 </P>
<P> 而其调用,都是通过Shell方式,和在操作系统里双击运行是一样的道理和效果,如果计算机的文件关联设置有问题,那么脚本就不可以用了,本人认为这点作的非常不好。 <BR><BR>                                 author:马维峰 </P>

<P>                                                    </P>
喜欢0 评分0
GIS麦田守望者,期待与您交流。
cftao2008
路人甲
路人甲
  • 注册日期2005-03-09
  • 发帖数141
  • QQ
  • 铜币568枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-09-05 21:35
<P>好工具啊!推荐大家好好学学!</P><img src="images/post/smile/dvbbs/em03.gif" />
举报 回复(0) 喜欢(0)     评分
星期天
论坛版主
论坛版主
  • 注册日期2004-03-16
  • 发帖数1327
  • QQ16940978
  • 铜币655枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-09-11 17:12
<P>不错,看看!</P>
天天很自由!我想我能……
举报 回复(0) 喜欢(0)     评分
echodjx
路人甲
路人甲
  • 注册日期2004-06-06
  • 发帖数37
  • QQ
  • 铜币29枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-10-13 08:58
好东东,收藏了
举报 回复(0) 喜欢(0)     评分
游客

返回顶部