使用ArcGIS GP服务之二手工建模
前面打一个小广告,欢迎关注WebGIS微博
建模,是我们发布GP服务的第一步,这是基础功。我们为什么要建模呢?
对于现实的GIS业务来说,基本上都有相应的流程和规范,具体怎么做,都得按照步骤来。步骤少还好说,要是步骤多了,不仅效率低下,而且还容易出现工作错误,每一步都会产生中间文件。例如我们的天气预报,将收集各个气象站站点定位到地图上,然后剪出中国的版图来,再然后进行克里金差值等等,一些步骤以后,就可以得到相应的温度线或者降雨线。步骤都是规定好的,为什么不做成一个工具,然后直接输出结果呢?
对,这就是建模的好处,我们通过将多个工具组合起来,生成一个工具,来完成整体的步骤化。
上一篇博客介绍了,我们首先打开Model Builder。如果不知道怎么打开,请看上一篇博客吧。
首先介绍一下,我们要实现的一个过程,某一个地方发生污染,周围哪些城市将受影响,我们这里只考虑距离吧。
下面是我们整个建模的思想。
1:得到受污染的区域 2:进行缓冲 3:将在缓冲区的城市选出来。
第一步,新建模型 |
最右侧的按钮。
第二步,拖入工具 |
我们可以将现有的工具,直接拖到这里面来。比如我拖一个Buffer工具。
其实如果找不到的话,我们可以进行一个搜索,快捷键Ctrl+F。
拖进之后的样子。
我们双击Buffer,我们可以看到Buffer的很多参数,前面带绿点的参数是必填的。
第三步,设置参数 |
参数分为两种方式填,一种直接填在这里面,另外一种是作为参数。有绿点是必填的,如果不输入这些参数,这个工具是黑白色的,不是彩色的。
比如我在这里输入Linear unit :1 单位选择为Decimal degrees。
如果是以参数的方式,来添加的话,有两种方法添加。
- 先说第一种,右键buffer,选择Make Variable-From Parameter。我们看到后面的参数,和上图的参数是一样的。不过还是缺少了一个Output Feature Class。看一下Buffer右侧是什么?这是拖进来,自动就把这个参数添加进来了,我这里点击选择Distance[value or field]。
由于之前,这个参数,我已经设好值,所以说显示的是彩色的。后面的两个还是没有变成彩色,说明这个buffer还缺少一个必填参数。就是Input Features。
注意,我们点击这个Distance参数,也是可以修改这个参数值的。
我们这时候,使用第二种方式。
在这里建模空白区域,右键选择Create Variable(创建变量),选择我们需要使用的参数类型,我们这里选择Feature Set。
点击,然后点击Feature Set,一直拖着鼠标不放到Buffer,然后松开。
然后会出现和这个类型匹配的,参数名字,这里我选择Input Features。
按理说,这里我已经完所有的参数,应该变成彩色才对。回头想一下,应该是Feature Set没有设置成功,应该一些参数没有设置对。我们点击Feature Set。
在这里我选择了一个区的shp文件。点击确定。
我们再去看一下,我们的模型,都变成了彩色。说明我们这个必须参数已经设置正确,正确与否,还不能确定。
我们先点击那个,进行检验一下啊,是否正确。争取的话,我们点击。
运行完毕之后,可是并知道结果怎么样。
这个时候,我们可以右键这个Out Feature Class,选择Add To Display。
如果不这么办的话,也是可以采用其他的方法的,点击Out Feature Class,我们这样就可以知道整个的输出地址什么了,当然作为参数我们也可以自己进行手动的设置。
现在完了吗?其实对于输入Feature Set,我想进行一个手动画一些区域,然后进行一个缓冲区生成,来在Desktop上的一个检验。
把原来的"Input Features"参数还原成最初的样式吧。
在这之前,我们需要在Geodatabase文件中新建一个Feature Class,其中类型选择Polygon Feature。为什么要建立这个呢?因为我们需要将这个模板引入到这个参数中,让Desktop知道我们要输入的是点、线还是面之类的。
右键这个属性,选择Properties。进入Data Type标签,然后刚才我们新建的Feature Class。
稍等,还有一 步需要完成,右键这个参数,然后选择Model Parameter。这个时候,就会出现一个P。所有出现P的,这个模型作为使用,都需要在使用的时候,作为其中一个参数出现,没有把它写死。那个缓存长度,由于没有加P,使用的时候,参数都是死的,不能进行改变,除非重新编辑这个Model,但是一旦发布成服务,就不能更改了。所以说,在使用之前,一旦要想好,那些参数是死的,哪些参数是在使用的时候,才能确定的。
为了GP服务的使用,参数的名字将会作为参数名称来提交的,为了更好的理解意思,最好更改一下名字,比如说,上图的"Feature Set",更改为"ContaminatedAreas"。
这个时候,我们来保存这个模型吧。
第四步,初入验证模型 |
打开这个模型。
然后在Desktop画区域吧。
然后点击"OK",等待整个的运行完毕。
到了这里,我们缓冲区域基本上就够完成了。下面我们就要整体构建我们模型了。根据模型选择城市。
第五步,完成模型 |
我们这个时候,需要添加一个新的工具,select layer by location。把第一步的输出结果,作为第二个工具的参数Selecting Features。然后再添加一个Input Features参数,选择相应的图层。等等。。。。。
最后我们实现整个模型,是这样的。
第六步,最后验证模型 |
10.1版本,为了更加保证模型,没有错误,需要先进行跑一遍才可以发布。
在这里我添加了原来画的区域,我是怎么做到的呢?很简单。点击Geoprocessing-results。
然后把选中的,直接拖进去,就可以显示了,就能检验我们输入正确与否。
这一博客,确实有些长了。
下一个博客,我们就要做发布前的准备了。
这是我的数据文件 下载