UERFLsOptimizer是一款基于Windows操作系统的应用软件,用于优化城市应急物流设施的位置。开发UERFLsOptimizer的主要动机是方便对Geospatial-MOP的处理和操作,UERFLsOptimizer也为访问、编辑和管理地理空间数据以及数据综合提供了必要的支持。
UERFLsOptimizer的概念设计模型如图6-4所示。从图6-4中可以看到,第2章中建立的方法框架以核心组件的形式进行了封装,并实现了与外部GIS进行交互的接口,以提供函数调用和数据互操作等功能。
图6-4 概念设计模型[35]
1.系统架构
UERFLsOptimizer的系统架构如图6-5所示。UERFLsOptimizer的系统组件采用松散耦合(loosely-coupled)的架构,确保了其灵活性。第2章中构建的决策优化模型、NSGA-Ⅱ以及建立的空间表征和编码策略被封装为COM组件。同时,UERFLsOptimizer以一系列开源应用编程接口(API)的形式提供了GIS功能,并通过开发第三方数据分析程序提供了数据的统计分析功能。此外,地理空间数据被存储在桌面版地理空间数据库中,地理数据集可以通过应用编程接口被外部工具访问。所有模块和组件最终被集成到一个统一的.NET应用程序中。
图6-5 UERFLsOptimizer的系统架构[35]
2.图形用户界面
UERFLsOptimizer的图形用户界面(Graphical User Interfaces,GUIs)与多数桌面GIS软件的相似,如图6-6所示。UERFLsOptimizer采用了较为简洁的图形用户界面设计,提高了人机交互效率,使数据的可视化和分析变得直观且易于操作,无论用户对标准GIS软件的熟悉程度和认知水平如何,都能够方便地使用其完成相应的操作。
Ribbon风格的菜单和工具条使得UERFLsOptimizer的用户界面十分友好,进一步提升了用户体验[36,37],如图6-6所示。选项卡式的面板上嵌入了各种工具按钮,组成了软件的不同功能模块。软件主界面的大部分区域被地图显示控件占据,其他区域则放置着各种用于地理空间数据管理、编辑和分析的工具按钮。
图6-6 UERFLsOptimizer的主界面[35]
UERFLsOptimizer的GIS功能模块主要是基于DotSpatial开源GIS平台开发的。DotSpatial的前身是著名的开源GIS平台——Map Window,它提供了众多的基础GIS功能组件和第三方插件,使得开发者不用将大量的精力耗费在基础GIS功能的开发上,从而可以更多地专注于系统的核心功能设计和实现,十分有利于系统的快速开发[38,39]。
通过交互式GIS地图控件,UERFLsOptimizer实现了地理空间数据的可视化显示,它支持常用的矢量或栅格格式的地理数据,如shapefile文件,此外,它还提供了地图导航、缩放、平移等基础GIS功能,相关工具可以在“File”菜单中找到。交互式GIS地图控件的主要功能是显示和操纵地理空间数据,同时,它还允许使用者根据实际需要设置地理空间优化的范围,如选中某一个数据层或勾画出研究区边界等。通常情况下,我们使用“感兴趣区”(Area Of Interest,AOI)作为一种“空间过滤器”来缩小空间优化的范围。使用者选择好所需要的地理范围后,UERFLsOptimizer为其提供了查看要素数据属性信息和识别要素数据的工具,如图6-7所示,使用者只需右击选中的地理数据,即可在弹出的菜单中选择相关的功能。
图6-7 UERFLsOptimizer提供的属性信息查询和要素数据识别功能
同时,数据导出功能支持使用者将选中的要素数据导出为常用的GIS数据格式,如shapefile等,如图6-8所示。
图6-8 要素数据导出功能(www.xing528.com)
UERFLsOptimizer还提供了对地理空间数据的查询功能,如图6-9所示,使用者可以在查询表达式编辑器中输入标准的SQL表达式来获取满足一定查询条件的地理数据。
图6-9 基于SQL的地理空间数据查询功能
UERFLsOptimizer的“Edit”菜单提供了对空间和属性数据的编辑功能,使用者可以根据需要增加或删除空间数据要素,如点、弧段或多边形等。在属性表编辑器中,用户可以查看和编辑相关的属性数据,并得到相关字段的描述性统计信息。此外,用户可以使用“Run”“Results”“Analysis”菜单触发优化引擎的运行、获取运行结果的Pareto最优前沿面、得到收敛性和多样性指标曲线,最终实现应急物流设施的选址。
3.选址优化组件
选址优化组件是UERFLsOptimizer的核心功能模块,它封装了多目标优化决策模型、NSGA-Ⅱ以及空间表征与编码策略。该组件的UML类图如图6-10所示,图6-10显示了其内部各局部函数的构造关系。
图6-10 UERFLsOptimizer选址优化组件的UML类图[35]
选址优化组件采用模块化设计模式进行设计,总体上来说,它包括4类模块:优化模型模块、算法模块、选项模块和主函数模块。具体地:
①优化模型模块包括多目标优化选址决策模型(即决策变量、目标函数和约束),以及用于自动读取地理空间数据的接口函数;
②算法模块涉及模型求解中使用的NSGA-Ⅱ,包括种群操作(初始化、评估、排序、抽取等)、进化操作(选择、交叉、变异等)以及结果操作(图形绘制、结果输出等)的相关功能;
③选项模块包括与多目标优化选址决策模型和NSGA-Ⅱ相关的参数设置、结果导出等功能;
④主函数模块主要用于将上述模块串联起来协同工作,并提供了整个组件的入口函数。
模块化设计提升了选址优化组件的灵活性和鲁棒性,使得未来将此组件应用于解决其他的地理空间多目标优化问题时,只需重新编写个别目标函数代码,而不需要重新设计优化组件的架构。
在实现过程中,优化组件的具体代码可以使用通用编程语言(如C、Java或MATLAB等)进行编写,然后通过C++编译器和相应的部署工具生成标准的COM组件。最后,将此组件以动态链接库(Dynamic Link Library,DLL)的形式与外部的GIS平台进行集成,进而开发出基于.NET框架的应用程序。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。