设施网络分析 |
设施网络分析环境的设置,直接影响到设施网络分析的结果。设施网络分析所需要的参数包括:用于进行设施网络分析的数据集、结点 ID 字段、弧段 ID 字段、弧段起始结点 ID 字段、弧段终止结点 ID字段、权值信息、点到弧段的距离容限、障碍结点、障碍弧段、流向字段等。
设施网络分析环境的设置是通过设施网络分析(FacilityAnalyst)类的 AnalystSetting 属性实现的,我们需要为该属性设置一个 FacilityAnalystSetting 对象,该对象提供了设施网络分析所需要的参数信息,包括用于进行设施网络分析的数据集、结点 ID 字段、弧段 ID 字段、弧段起始结点 ID 字段、弧段终止结点 ID字段、权值信息、点到弧段的距离容限、障碍结点、障碍弧段、流向字段等。这些参数的设置,直接影响到设施网络分析的结果。表 6.1 列出了 FacilityAnalystSetting 类的各个属性及其含义。
表 6.1 FacilityAnalystSetting 类的属性列表
类型 |
名称 |
描述 |
DatasetVector |
NetworkDataset |
获取或设置用于进行设施网络分析的网络数据集。必设。 注意,在创建流向时,此处指定的可以是不具有流向的网络数据集;但创建等级以及进行设施网络分析时,必须指定已经创建了流向的网络数据集。 |
String |
NodeIDField |
获取或设置网络数据集中标识结点 ID 的字段。必须正确设定标识网络结点 ID 的字段。仅支持 16 位整型、32 位整型字段。 |
String |
EdgeIDField |
获取或设置网络数据集中标识弧段 ID 的字段。必须正确设定标识网络弧段 ID 的字段。仅支持 16 位整型、32 位整型字段。 |
String |
FNodeIDField |
获取或设置网络数据集中标识弧段起始结点 ID 的字段。必须正确设定标识弧段起始结点 ID 的字段。仅支持 16 位整型、32 位整型字段。 |
String |
TNodeIDField |
获取或设置网络数据集中标识弧段终止结点 ID 的字段。必须正确设定标识弧段终止结点 ID 的字段。仅支持 16 位整型、32 位整型字段。 |
Double |
Tolerance |
获取或设置点到弧段的距离容限。单位与 NetworkDataset 属性指定的网络数据集的单位一致。该属性为下一版本保留。 |
Int32[] |
BarrierNodes |
获取或设置障碍点列表。可选。 |
Int32[] |
BarrierEdges |
获取或设置障碍弧段的 ID 列表。可选。 |
String |
DirectionField |
获取或设置流向字段。如果不指定,在进行设施网络分析时,默认流向均为 0,即与数字化方向相同。注意,在创建流向时,必须设置该属性。 |
WeightFieldInfos |
WeightFieldInfos |
获取或设置权值字段信息集合对象。 |
下面对设施网络分析环境的部分参数做进一步的说明。
网络数据集及其拓扑关系字段(NetworkDataset、NodeIDField、EdgeIDField、FNodeIDField、TNodeIDField)
网络数据集中表达其拓扑关系的字段包括:结点ID字段、弧段ID字段、弧段的起始结点ID字段和终止结点ID字段。必须指定用于分析的网络数据集及其拓扑关系字段,才能够保证网络的可用性,从而进一步完成设施网络分析。有关网络数据集及其拓扑关系字段的介绍,请参阅第4章。
FacilityAnalystSetting 对象的 NetworkDataset 属性用于指定网络数据集,NodeIDField、EdgeIDField、FNodeIDField、TNodeIDField 属性分别用于设置网络数据集中的结点 ID 字段、弧段 ID 字段、起始结点 ID 字段和终止结点 ID 字段。
弧段权值字段信息(WeightFieldInfos)
弧段权值是指通过该弧段的花费,分为正向权值和反向权值,从该弧段的起始结点到达终止结点的花费称为正向权值(或正向阻力),反之为反向权值(或反向阻力)。弧段权值需要从网络数据集的弧段属性表中指定两个字段,分别为正向权值字段和反向权值字段。弧段权值可以是任意类型,如经过该弧段所需的时间、该弧段的长度等,也可以是对多个因素进行加权得到的权值。
在设施网络分析环境设置(FacilityAnalystSetting)类中,通过 WeightFieldInfos 属性来设置弧段权值,并且为该属性指定的是一个权值字段信息集合(WeightFieldInfos)对象,该对象是权值字段信息(WeightFieldInfo)对象的一个集合,其中的每一个 WeightFieldInfo 对象可以指定一对权值字段(正向权值字段和反向权值字段),并为此权值字段信息命名,该名称是该权值字段信息的唯一标识。表 6.2 列出了 WeightFieldInfo 类的三个属性及其含义。
虽然在设施网络分析时只能使用一种弧段权值,但在分析环境中可以通过 WeightFieldInfos 属性指定权值字段信息的集合,从而为网络关联多种权值,然后在分析时再通过参数指定具体使用哪种权值,这样就可以方便地变换弧段权值,而不需要重新设置交通网络分析环境。例如,在水系网络中,以河段 A 作为起始弧段,河段 B 作为终止弧段进行路径分析,可以将弧段权值设置为河段的长度,分析结果就是最短路径;将弧段权值设置为通过该河段花费的时间,那么分析结果就是时间最短的路径。由此也可见,弧段权值直接影响的分析结果的含义。
在分析时也可以不使用权值,可以通过设置权值字段的值为 0 来实现。
表 6.2 WeightFieldInfo 类的属性列表
类型 |
名称 |
描述 |
String |
Name |
获取或设置权值字段信息的名称。 |
String |
FTWeightField |
获取或设置正向阻力字段。 |
String |
TFWeightField |
获取或设置反向阻力字段。 |
障碍结点、边(BarrierNodes、BarrierEdges)
障碍,顾名思义,是网络中不能通行的部分,可以是障碍边(也称障碍弧段)、障碍结点。通过设置障碍,可以对设施网络的连通性进行修改。在设施网络分析环境中,可以通过 BarrierEdges 属性将某些弧段设置为障碍边,通过 BarrierNodes 属性将若干结点设置为障碍点。一旦一条弧段被设置为障碍边,就表示这条边在分析过程中是失效的。同样,一旦某结点被设置为障碍点,则分析时该结点是禁止通行的。