|
阅读:1258回复:0
[转载]源 流 汇——ArcGIS网络建立
1概述<BR>谈网络,网络对现实世界的描述。在使用普通的GIS建立模型时,大多是在几何层次上的描述。但是在流域、电力等建模过程中还涉及到了网络。网络其实可看作是源、流、汇组成的。源表示网络中的一个起点;汇表示网络中的一个终点;而流则是网络中流与汇的连接路径。在几何上源和汇可以抽象为点,比如泵站、开关等。而流则可以抽象为线。在源流汇中,是存在拓扑关系的。并且在对流的描述中还存在方向问题。<BR><BR>l 网络其实一种基于拓扑关系的模型。<BR><BR>l 在一个网络中主要有两种要素边和连接点。<BR><BR>l 现实网络中大多都是有方向的,我们在网络中要对其进行建模。<BR><BR><BR>在ArcGIS网络模型中存在两种网络,一种是几何上的网络,一种是逻辑上的网络。地理网络实际上是由feature class的集合组成。逻辑网络是网络连接无力层次上的。每一个逻辑网络里的element与地理网络中的一个feature关联。在ArcMap和ArcCatalog中用一种特殊的方法来处理地理网络。在地理网络中编辑和绘图,管理网络中的feature都由ArcGIS自动控制了。<BR><BR>地理网络由边界特征(edge network features)和连接特征(junction network feature)组成。地理网络中的边界特征和逻辑网络中的一个边界元素关联;地理网络中的连接特征和逻辑网络中的一个连接元素关联。地理网络中的一个Simple edge feature和逻辑网络中的一个edge element关联。Simple edge feature由两个Junction feature连接而成。如果一个Simple edge feature中添加一个Junction feature,则这个Simple edge feature在地理网络中被封为了两个新的Simple edge feature。<BR><BR>地理网络中的一个Complex edge feature与逻辑网络中的一个或者多个edge element关联。Complex edge feature至少由两个Junction feature组成,但是在边界上可添加Junction feature。如果在一个Complex edge feature上添加一个Junction feature ,Complex edge feature不会被分为两个,而在逻辑上被封为了两个edge element。一个Complex junction feature在逻辑层次上可以与多个逻辑的Junction feature关联。<BR><BR>2基本概念<BR>2.1源——流——汇<BR>网络通常用来模拟现实世界。而在现实世界中网络总是具有运动方向的。例如电力网的电流方向,从发电站到用户。在水网中,水流方向不是像电流一样,但是水流可能是从一个泵站流到用户再进入水处理厂的。<BR><BR>从这个意义上来说网络可以分为有方向网络和无方向网络。<BR><BR>网络中的流向是根据一系列的源(Sources)和汇(Sinks)计算出来的。在上面的例子中电流和水流是由一系列的源与汇来驱动的。流总是从源(Sources)开始向汇(Sinks)流动。<BR><BR>Junction feature在地理网络中可以作为源(Sources)或者流(Sinks)。在ArcGIS中建立一个Junction feature class时可以指定是源还是汇,或者什么都不是。如果指定为源或者流,一个新的字段Ancillary Role被建立用来记录该特征是源还是汇。在当在ArcMap中计算流向时,流向根据网络中的源与汇计算出来的。<BR><BR>在编辑过程中可能对一个Junction feature的AncillaryRole进行修改,比如闸的开关,这是流向要重新进行计算。<BR><BR>2.2可用和不可用<BR>在地理网络中的edge feature和junction feature在逻辑网络中都可以设置为可用(Enable)或者不可用(Disable)。一个feature如果在逻辑网络中设置为Disable那么在网络中则是扮演栅栏(barriers)的角色。流在碰到任何网络中的Barrier就会停止。<BR><BR>每个feature的Enable和Disable都被保存在Enabled的属性字段中。此字段为逻辑型,其值为True或False。当由一个Simple feature class建立网络时,Enable字段被自动加入到feature class中。当使用ArcCatalog建立网络时,Enable是一个必须字段。<BR><BR>网络中存储了Weight 、Ancillary Roll 和Enable字段,这些都是用户可以在逻辑网络中看到的状态。当分析与网络特则相反时,这些字段的值不直接决定enabled 、ancillary role 和权重。这些状态描述属性存储在逻辑网络中。<BR><BR>2.3权重<BR>网络可以有一系列权重关联。权重可逻辑上以视为流动的消耗。权重是基于特征属性(attribute)计算得出的。一个网络可以具有任意数量的权重。网络中的每个feature class可以有几个权重或者全部权重或者没有与属性关联的权重。每个特征的权重由这个特征的属性决定。每个权重可以和一个或者多个属性关联,就是说可以同时和几个属性关联。<BR><BR><BR>在地理网络中的edge feature和junction feature在逻辑网络中都可以设置为可用(Enable)或者不可用(Disable)。一个feature如果在逻辑网络中设置为Disable那么在网络中则是扮演栅栏(barriers)的角色。流在碰到任何网络中的Barrier就会停止。<BR><BR>每个feature的Enable和Disable都被保存在Enabled的属性字段中。此字段为逻辑型,其值为True或False。当由一个Simple feature class建立网络时,Enable字段被自动加入到feature class中。当使用ArcCatalog建立网络时,Enable是一个必须字段。<BR><BR>网络中存储了Weight 、Ancillary Roll 和Enable字段,这些都是用户可以在逻辑网络中看到的状态。当分析与网络特则相反时,这些字段的值不直接决定enabled 、ancillary role 和权重。这些状态描述属性存储在逻辑网络中。<BR><BR>3网络建立<BR>3.1介绍<BR>一个地理网络必须建立在一个feature dataset中。地理网络是由Dataset中的feature class组成的一个拓扑关系。<BR><BR>最基本的做法是要先确定哪些feature class要参与到网络中。在ArcGIS中面feature是不能建立网络的。确定了哪些图层来组建网络后,就可以来确定网络中的权重。最后可以设置一些别的参数,如Disable和AncillaryRole等。<BR><BR>有两种方法来建立地理网络。一种是建立一个空的地理网络,第二种是在已有的feature classes的基础上的网络。<BR><BR>一、建立一个空的地理网络<BR><BR>可以用ArcCatalog建立一个地理网络。也可以使用ArcMap中的编辑工具来建立网络。当然可以采用VB、VBA或C++代码将feature加入到网络中。<BR><BR>建立一个空的网络有以下几个步骤:<BR><BR>1、使用ArcCatalog来建立一个feature dataset用来装载地理网络和网络的feature class。<BR><BR>2、使用ArcCatalog在feature dataset中建立一个空的地理网络。<BR><BR>3、使用ArcCatalog在feature dataset中建立新的feature classes做为地理网络中的元素。<BR><BR>4、使用ArcCatalog建立逻辑网络中元素的connectivity rules。<BR><BR>5、使用用户定义的脚本语言或者ArcMap编辑工具加入feature。<BR><BR>二、使用存在的数据建立地理网络<BR><BR>在ArcCatalog和ArcTools中有工具可以实现用现存数据建立地理网络。当然前提是你要这些数据并且这些数据要作为网络中的的一个角色。<BR><BR>3.2网络如何建立<BR>通过现存的数据建立网络是一个大的操作,要考虑花费时间和消耗的系统资源。这些主要由输入的特征的多少来决定。如果这些特征请求了吸附(snapping)操作,则建立网络所花的时间主要是在特征吸附上。网络建立过程有以下几个步骤:<BR><BR>1、如果选择吸附,吸附简单特征(simple feature);<BR><BR>2、如果选择吸附,吸附复杂特征(complex feature);<BR><BR>3、建立一个空的逻辑网络;<BR><BR>4、在Geodatabase中建立网络模式(network schema);<BR><BR>5、从输入的特征类中选择属性用来计算权重;<BR><BR>6、建立拓扑关系;<BR><BR>7、根据需要建立孤立连接(orphan junctions),在逻辑网络中加入连接特征(junction features),并初始化连接特征的Enable值;<BR><BR>8、给连接元素(junction features)设置权重;<BR><BR>9、在逻辑网络中加入边(edge);<BR><BR>10、设置边元素(edge elements)的权重;<BR><BR>11、在Geodatabase中建立必要的索引;<BR><BR>3.3关于吸附<BR>明智的选择是在建立网络之前要保证数据的纯净(clean)。纯净数据在这里是指所有在网络中连接的特征在几何必须保证其一致性。就是说,没有悬挂弧段和伪节点等。然而在现实中很难做到这样,那么数据就要在网络建立过程中可能进行吸附操作。<BR><BR>了解基于吸附的连接在建立网络时如何实现和特征的几何特征是如何调整来建立连接是非常重要的。<BR><BR>按照前面说的吸附可以分为以下几种来处理:简单边界吸附、复杂边界吸附、节点簇、自连接、重合连接点。<BR><BR>3.3.1简单边界吸附<BR>依靠简单边特征构成的连接只能在边特征的端点上,在中间的部分即使有节点存在也不能建立连接。<BR><BR><BR>3.3.2复杂边界吸附<BR>对于依赖复杂边的连接建立可以在边的两端或者在其中间,如果中间没有节点,那么会在连接处新建一个节点。当吸附到复杂边时,连接特征必须是一个端点。当一个中间部分和中间部分在一起时是不会建立连接的。<BR><BR><BR>3.3.3节点簇<BR>两个对象吸附时,如果一个中有多个节点在容差范围内,那么我们称这些节点为节点簇。与一个节点簇吸附时,会与其中的一个节点吸附,但不一定是最近节点。<BR><BR><BR>3.3.4自连接<BR>一个对象自身的两个节点在容差范围内这种连接不会建立。如果建立则是自连接。这种连接就是环流,在实际中不存在,或者可以用多条流来代替。<BR><BR><BR>3.3.5特征调整<BR>在建立网络过程中吸附过程中,要了解在吸附过程中几何特征是如何调整的。在用向导建立地理网络时部分或者全部的特征类被指定为可以调整的,这些是可以进行调整的。那些在不能调整的特征类中的特征在网络建立过程中固定不变。<BR><BR>在吸附调整中,所有特征类中的所有特征都具有相同的权重。这就是说,要同时调整一个吸附过程中的所有特征,且他们都移动相等的距离来相互吸附。如果其中有一个特征是不可调整特征,这只能调整可调整特征。<BR><BR>3.3.6模式锁定(Schema loaking)<BR>建立网络时,所有输入的特征类都需要有排外锁定。如果输入的特征类是共享锁定,那么网络就不能建立。
|
|