周明刚 袁希平 甘淑 刘延 朱沾斌
摘 要:区域农作物秸秆资源收集已成为秸秆规模化综合利用的瓶颈问题,为了合理收集秸秆资源,降低运输成本,基于Model Builder建模生成器与Python脚本功能对农作物秸秆资源收集选址及路径优化分析,并以江川县理论秸秆资源量的收集运输过程为实验案例,完成选址、最短路径分析、最佳运输路线规划。结果表明,该研究对秸秆资源合理收集具有较好的现实指导意义。
关键词:Model Builde;Python;选址;路径优化
DOI:10.11907/rjdk.173184
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2018)005-0146-05
Abstract:The collection of regional crop straw resources has become the bottleneck of large-scale utilization of straw. In order to collect straw resources reasonably and reduce transportation cost, this paper employs the Model Builder modeling generator and Python script function and analyzes the location and path optimization of crop straw resource collection with the process of collecting and transporting straw resources in Jiangchuan County as an example to complete the location selection, shortest path analysis, and the best route planning. The results show that the study has practical guiding significance for reasonable collection of straw resources.
Key Words:model builde; python; location; path optimization
0 引言
我国秸秆资源特点为量大、种类多,各种农作物秸秆年产量约6~8 亿t[1-6]。秸秆中含有较多的氮、磷、钾等多种微量元素 ,是可供开发利用的宝贵资源,由于土地资源紧缺,土地复种指数在 90%以上,农作物的交替种植使得秸秆无法即地存放晾晒,为了不影响下一季农作物种植,必须对田间秸秆快速处理[7]。我国每年废弃和露天燃烧的秸秆约占秸秆总产量的 1/3,秸秆弃置燃烧造成资源浪费 ,带来严重的环境污染[8-9]。
除山区、丘陵地区及经济欠发达地区外,目前中国大部分地区使用联合收割机收割小麦,2005 年全国机收面积比重已经达到 80%[7]。我国的秸秆机械化收集不成体系,无专用的装卸和运输机械,田间装卸靠人工,其它作业靠通用机械,影响了秸秆的收集效率,增加了秸秆的收集成本,使秸秆综合利用产业化、集约化、规模化发展缓慢。
江川县地处云南省中部,属于山区,农作物秸秆收获机械化程度低,收集运输调度管理方法落后,运输路径规划不太合理,致使运输时间长、费用较高,农民基本没利润,因此造成秸秆直接田间燃烧、丢弃。很多企业秸秆资源严重不足,给秸秆的收集、贮运带来很大困难,服务市场难以形成,制约着秸秆收集处理产业化发展[10]。
因此,本研究以江川县为例,结合草谷系数法,计算出秸秆理论资源量,利用GIS中的Model Builder建模生成器与Python腳本功能完成秸秆资源的收集选址与路径优化。
1 研究方法及模型
1.1 收集选址模型
选址优化模型建立的原理主要依据于ArcGIS “位置分配” 应用最大化覆盖范围模型、 最小化阻抗模型以实现秸秆资源集中处理位置选取。“位置分配(Locational-location)”,即在给定需求和已有设施空间分布的情况下,在用户指定的系列候选设施选址中,根据特定的优化模型,让系统从中挑选出指定个数的设施选址[11]。“位置分配”工具进行优化布局,模拟服务范围需求的空间分布,找出可能的秸秆处理厂位置点,根据位置分配的优化模型及实地调查,挑选出合适的秸秆处理厂位置。ArcGIS典型的优化模型有:最小化设施点数、最小化阻抗、最大化覆盖范围、最大化人流量、最大化市场份额、目标市场份额。本研究应用Model Builder建模平台与最小化设施点数模型,简单直观地求出数目最少的处理厂数量,使得位于秸秆处理厂最大半径之内的秸秆资源最多。
最小化阻抗模型是在候选设施点中,按给定数目挑选设施空间位置,使所有需求者到最近设施出行距离之和最短[12]。模型表示如下:
最大化覆盖范围模型的目标是在所有候选设施选址中挑选出给定数目的设施空间位置,使得位于设施最大服务半径之内的设施需求点最多[13-14]。模型表示如下:
1.2 路径优化模型
国内外使用算法研究最优路径问题的有Dijkstra[15]、蚁群算法、分支定界算法、模拟退火法、动态规划算法、节约法、Floyd法、扫描法、遗传算法等[16],但其算法比较复杂,不熟悉编程及算法则很难实现最优化路径分析。使用GIS研究最优路径,具有可视化功能,能够对空间数据进行管理和储存,建立拓扑,具有网络分析功能,GIS的Network Analyst虽然简单直观,但不能批量处理,只适用于数据量少的情况。为了解决其不足,本文利用Arcgis中Model Builder功能建立最优化路径模型。模型的路径分析模块基于原有DijKstra算法,以起始点为中心向外层扩展访问节点直至终点的工作原理[17-18],实现点与点之间的最短路径分析并间接生成脚本,引入Python语言工具[19],利用其脚本功能完成数据的批量处理,从而实现复杂的空间分析功能。本研究较传统的编程算法简化了编程思想,以模型形式可更为直观地展现用户设计思路,用户只需掌握Python基本语法即可进行项目的设计[20]。同时利用批量处理功能,可解决Model builder无法自身循环的不足,有效减少了工作量与工作时间。
2 实验案例
2.1 实验区概况
江川县位于云南中部偏东,地跨东经102°35′~102°55′,北纬24°12′~24°32,总面积807.64km2,其中山区、半山区占71.67%,坝区占15.96%,湖面占12.37%,形成“七山一水二分田”的格局。江川县辖1个街道、4个镇、2个乡、2个湖,详见图1。本文以江川县为例,通过GIS模型手段和 Python 脚本功能结合实际数据,完成江川县秸秆资源收储点选址与最优收集运输路线分析。
2.2 数据预处理
本文数据由统计数据与地理数据组成,根据地理数据将研究区的遥感影像图校正、数字化,建立GIS数据库,将道路网信息、处理厂点、秸秆资源点及运输量信息存储入库;将道路矢量图构建交通网络图层,创建GIS库形成节点位置图层;基于最小化阻抗,最大化覆盖范围构建选址点;在最短路径、最少运输时间等的约束条件下构建路程最优模型和时间最少模型。
统计数据来源于2016年《江川县统计年鉴》中江川县各类农作物经济产量。本研究借鉴中国农村能源行业协会,钟华平、牛若峰、王晓玉[22-35] 等按研究者的小麦、蚕豆、稻谷、包谷、油料、洋芋、烟秆所得草谷比取值的均值计算,借鉴毕于运[31]将蔬菜草谷比系数取值为 0.1。根据2016年江川县各类农作物经济产量和各类农作物草谷比系数,求出2016年各类农作物秸秆产量为122 512.80t,如表1所示。
2.3 建模思路
由于收集资源量分布不均,如果一个普通的收储点秸秆处理规模在2~3万t,则规模是秸秆收储企业风险和收益的平衡点,那么江川县的秸秆收储点数应为 4~6个,在设施处理能力允许的情况下,应尽量减少设施点数。本文应用最大覆盖范围模型(2、3)及最小阻抗模型(1)研究秸秆存储点最优选址,应用时间最优路径模型(4)与路程最优路径模型(5)研究运输最优路径,构思详见图2。
3 Model Builder建模分析
应用ArcGIS软件提供的创建地理处理工作流和脚本的图形化建模工具Model Builder,构建虚拟秸秆处理厂选址点和秸秆运输路径最优化模型,对江川县秸秆资源区域分析,从而实现秸秆资源的合理开发与快速廉价运输。
3.1 建模过程
选择TooIbox工具箱,建立Model Buider平台,拖入构建网络工具和江川县道路数据,设置参数生成江川县交通网图层;拖入创建位置分配工具连接江川县交通网图层生成位置分配图层;再拖入添加位置工具,添加建厂候选点数据、秸秆资源请求点数据,连接位置分配图层;拖入求解工具连接位置分配图层,求出秸秆处理厂选址点图层。
在生成道路网络图层基础上,拖入创建路径分析工具连接生成的江川县交通网图层生成路径图层,再拖入添加位置工具,添加秸秆资源区数据、处理厂数据,连接路径图层,拖入求解工具连接路径图层,求出最优路径图层完成建模。
创建位置分配工具设定阻抗参数为6,即选址存储点个数为6个;连接创建路径分析工具需要设定阻碍参数,参数可以为时间或成本,本文设为40,即秸秆装车后,行车到秸秆收储站的车行时间上限是40min,阻抗变换:线性函数。所建立的模型即设施点最少、时间最短模型或路程最短模型。基于Model Builder平台构建秸秆运输路径分析模型,如图3所示。
3.2 Python脚本
# Import arcpy module
import arcpy
# Check out any necessary licenses
arcpy.CheckOutExtension("Network")
# Local variables:
江川县道路 = "C:\\Users\\Administrator\\Desktop\\江川.gdb\\交通网\\道路网络"
秸秆资源区 = "C:\\Users\\Administrator\\Desktop\\江川.gdb\\交通网\\资源点"
处理厂 = "C:\\Users\\Administrator\\Desktop\\江川.gdb\\交通网\\处理厂"
建厂候选点 = "C:\\Users\\Administrator\\Desktop\\江川.gdb\\交通网\\交通网络点"
秸秆资源请求点 = "C:\\Users\\Administrator\\Desktop\\江川.gdb\\交通网\\中心点"
江川县交通网 = "C:\\Users\\Administrator\\Desktop\\江川.gdb\\交通网\\交通网络"
路径 = "路径"
路径2 = "路径"
路径3 = "路径"
位置分配 = "位置分配"
位置分配1 = "位置分配"
位置分配2 = "位置分配"
# Process: 构建网络
arcpy.BuildNetwork_na(江川縣道路)
# Process: 创建路径分析图层
arcpy.MakeRouteLayer_na(江川县交通网, "路径", "路程", "USE_INPUT_ORDER", "PRESERVE_BOTH", "NO_TIMEWINDOWS", "", "ALLOW_UTURNS", "", "NO_HIERARCHY", "", "TRUE_LINES_WITH_MEASURES", "")
# Process: 添加位置(4)
arcpy.AddLocations_na(路径, "停靠点", 秸秆资源区, "Name # #;RouteName # #;TimeWindowStart # #;TimeWindowEnd # #;CurbApproach # 0;Attr_Minutes # 0;Attr_路程 # 0", "5000 Meters", "", "交通 SHAPE;交通网络_Junctions NONE", "MATCH_TO_CLOSEST", "APPEND", "NO_SNAP", "5 Meters", "INCLUDE", "交通 #;交通网络_Junctions #")
# Process: 添加位置 (5)
arcpy.AddLocations_na(路径2, "停靠点", 处理厂, "Name Name #;RouteName # #;TimeWindowStart # #;TimeWindowEnd # #;CurbApproach # 0;Attr_Minutes # 0;Attr_路程 # 0", "5000 Meters", "", "交通 SHAPE;交通网络_Junctions NONE", "MATCH_TO_CLOSEST", "APPEND", "NO_SNAP", "5 Meters", "INCLUDE", "交通 #;交通网络_Junctions #")
# Process: 解决(2)
arcpy.Solve_na(路径3, "SKIP", "TERMINATE")
# Process: 创建位置分配图层
arcpy.MakeLocationAllocationLayer_na(江川县交通网, "位置分配", "Minutes", "FACILITY_TO_DEMAND", "MINIMIZE_FACILITIES", "1", "40", "LINEAR", "1", "10", "", "ALLOW_UTURNS", "", "NO_HIERARCHY", "STRAIGHT_LINES")
# Process: 添加位置
arcpy.AddLocations_na(位置分配, "设施点", 建厂候选点, "Name # #;FacilityType # 0;Weight # 1;CurbApproach # 0", "5000 Meters", "", "交通 SHAPE;交通网络_Junctions NONE", "MATCH_TO_CLOSEST", "APPEND", "NO_SNAP", "5 Meters", "INCLUDE", "交通 #;交通网络_Junctions #")
# Process: 添加位置 (2)
arcpy.AddLocations_na(位置分配1, "请求点", 秸秆资源请求点, "Name Name #;Weight # 1;GroupName # #;ImpedanceTransformation # #;ImpedanceParameter # #;CurbApproach # 0;Cutoff_Minutes # #;Cutoff_路程 # #", "5000 Meters", "", "交通 SHAPE;交通网络_Junctions NONE", "MATCH_TO_CLOSEST", "APPEND", "NO_SNAP", "5 Meters", "INCLUDE", "交通 #;交通网络_Junctions #")
# Process: 解决
arcpy.Solve_na(位置分配2, "SKIP", "TERMINATE")
3.3 模型检验
确认建模正确后,使用Validate Entire Model检验模型,点击Run按钮运行,运行模型结果如图4、图5所示。
在Model Builder建好的模型基础上,用户还可根据实际需要,比如时间、路程、秸秆处理厂规模,直接修改选址参数、路程参数、时间参数等约束条件,实现动态化模拟。
4 结语
(1)本文利用Model Builder 建立了选址优化模型与最短路径分析模型,结合 Python 语言脚本功能实现了对江川县12万T秸秆资源最优收集点选址及最佳运输路线的选取,并实现了模型数据的批量处理。
(2)实验模拟了秸秆资源区到处理厂选址点的最佳运输路线,得出秸秆资源到处理厂运输路程最短和时间最优化路径的结论。实现了秸秆运输路线选择中基于地图数据的动态化模拟,并可根据秸秆存储点规模对秸秆能力的动态变化选择最优路径的收集区域,进行最佳收集点的判断与设立。
(3)解决了GIS网络分析的复杂性及无法实现循环处理的缺陷,用Model Builder实现了数据简单直观的循环处理及动态模拟,弥补了网络分析的不足。
实验验证了资源优化运输模型,把资源优化提高到空间层面,今后应该更加注重资源可收集量及经济成本估算,用GIS建模建立更加完善的秸秆资源开发利用体系。
参考文献:
[1] 钟华平,岳燕珍,樊江文.中国作物秸秆资源及其利用[J].资源科学,2003,25(4):62-67.
[2] 王麗,李雪明,许妍.中国大陆秸秆露天焚烧的经济损失研究[J].干旱区资源与环境,2008,22(2):170-175.
[3] 汪海波,秦元萍,余康.中国农作物秸秆资源的分布、利用与开发策略[J].国土与自然资源研究,2008(2):92-93.
[4] 中华人民共和国农业部.农业生物质能产业发展规划 (2007-2015年) [R]. 2007:24-26.
[5] 中华人民共和国发展计划委员会基础产业发展司.中国新能源与可再生能源 1999年白皮书[M].北京: 中国计划出版社,2000.
[6] 曹国良,张小曳,郑方成,等.中国大陆秸秆露天焚烧的量的估算[J].资源科学,2006,28(1):9-13.
[7] 吕宸,吕建强,王国平,等.我国农作物秸秆收集存在的问题及对策[J].现代农业科技,2012(22):203-204.
[8] 张晓阳,周汶,康新凯,等.开发利用秸秆和种植能源促进能源、经济、环境协调发展[J].中国能源,2016,38(10):5-11.
[9] 柴民杰,李磊,李金民.我国秸秆的利用现状及发展趋势分析[J].硅谷,2009,19:158.
[10] 左娟.农作物秸秆综合利用之瓶颈与对策[J].植物医生,2010(6):51-52.
[11] 牛强.城市规划GIS技术应用指南[M].北京:中国建筑工业出版社,2012.
[12] MIQUEL CARRERAS,DANIEL SERRACARRERAS M, SERRA D.On optimal location with threshold requirements[J].Socio-Economic Planning Sciences,1999,33(2):91-103.
[13] CHURCH R L, REVELLE C.Theoretical and computational links between the median, location set-covering and the maximal covering location problem[J].Geographical Analysis,1976(8):406-415.
[14] CHURCH R L,REVELLE C S.The maximal covering location problem papers[J].Regional Science Association,1974,32:101-108.
[11] 康苹,刘高焕.基于耗费距离的公路网络路径分析模型研究——以珠江三角洲公路网为例[J].地球信息科学,2007(6):54-58.
[15] 刘伟华,刘文华,刘松涛.论城市物流配送发展的新趋势[J].重庆交通学院学报,2003(3):86-89.
[16] 吴秀芹,何政伟,许辉熙,等.ArcGIS 9地理信息系统应用与实践[M].北京:清华大学出版社,2007.
[17] 马德涛,刘建忠,王锐,等.基于ArcGIS Server的城市道路最短路径分析方法研究[J].海洋测绘,2007(5):58-61.
[18] 吴柏清,何政伟,许辉熙,等.城市交通网络最佳路径分析[J].资源开发与市场,2008(4):309-311.
[19] 王亚卿,方龙.浅析python在地图处理中的运用[J].华东森林经理,2008(1):83-84.
[20] 张展,王利生,张培栋,等.区域秸秆资源最优化收集路径与运输成本分析[J].可再生能源,2009,27(3):102-106.
[21] 魏众,申金升,黄爱玲,等.多式联运的最短时间路径——运输费用模型研究[J].中国工程科学,2006,8(8):61-64.
[22] 牛若峰.农业技术经济手册[M].北京:农业出版社,1984.
[23] 梁业森.非常规饲料资源的开发与利用[M].北京:农业出版社,1996.
[24] 张福春,朱志辉.中国作物的收获指数[J].中国农业科学,1990,23(2):83-87.
[25] 李京京,任東明,庄幸.可再生能源资源的系统评价方法及实例[J].自然资源学报,2001,16(4):373-380.
[26] 韩鲁佳,闫巧娟,刘向阳,等.中国农作物秸秆资源及其利用现状[J].农业工程学报,2002,18(3):87-91.
[27] 张培栋,杨艳丽,李光全,等.中国农作物秸秆能源化潜力估算[J].可再生资源,2007,25(60):80-83.
[28] 刘刚,沈镭.中国生物质能源的定量评价及其地理分布[J].自然资源学报,2007,22(1):9-18
[29] 田宜水,孟海波.农作物秸秆开发利用技术[M].北京: 化学工业出版社,2008.
[30] 高利伟,马林,张卫峰,等.中国作物秸秆养分资源量估算及其利用状况[J].农业工程学报,2009,25(7):173-179.
[31] 毕于运.秸秆资源评价与利用研究[D].北京:中国农业科学院,2010.
[32] 王琛,胡玉福,魏晋,等.区域农业废弃物资源存量估算及利用现状[J].四川农业大学学报,2011,29(1):119-123+135.
[33] 谢光辉,韩东倩,王晓玉,等.中国禾谷类大田作物收获指数和秸秆系数[J].中国农业大学学报,2011,16(1):1-8.
[34] 谢光辉,王晓玉,韩东倩,等.中国非禾谷类大田作物收获指数和秸秆系数[J].中国农业大学学报,2011,16(1):9-17.
[35] 王晓玉,薛帅,谢光辉.大田作物秸秆量评估中秸秆系数取值研究[J].中国农业大学学报,2012,17(1): 1-8.
(责任编辑:何 丽)