基于ArcPy的闲置土地调查执法底图批量生成方法*
2023-01-18吴志春
胡 强,吴志春,程 彪
(湖南省第三测绘院,湖南 长沙 410004)
0 引言
土地闲置对应的土地管理问题是“供而未用”,超过国有建设用地使用权有偿使用合同或者划拨决定书约定的动工开发日期满1年未动工的土地,以及已动工开发但开发建设用地面积占应动工开发建设用地总面积不足三分之一或者已投资额占总投资额不足百分之二十五,中止开发建设满1年的国有建设用地[1]。造成土地闲置的原因可分为3类:不可抗力因素、政府原因、企业自身原因[2],但实际上这3类原因往往互相交织。特别是早期供应的土地,往往存在复杂难明的征地拆迁、产权纠纷、毛地出让等各种问题,闲置土地调查认定与依法处置依然任重而道远。由于需要现场调查核实现状,调查是否真正闲置,找出闲置原因,因此常需结合遥感影像制作闲置土地调查执法底图,以方便任务的分发和野外核查。
目前人工制作调查执法底图时间长,工作量大,并存在制图格式不统一等问题。为此,研究自动生成闲置土地调查执法底图的方法,自动获取闲置土地数据的空间信息和属性信息,实现闲置土地的自动定位,结合高分辨率遥感影像,按照出图模板自动编辑文本信息,完成闲置土地调查执法底图的自动生成工作,对提高土地管理水平具有重大意义。
1 核查底图模板设计与数据构成
1.1 底图模板设计
闲置土地调查执法底图模板采用ArcGIS的mxd文档格式进行存储。模板中元素包括闲置土地宗地范围内的影像图以及缩略图、项目概况信息、指南针、图例、比例尺、影像日期信息、制图单位等。影像图显示宗地范围内最近时点的遥感影像,项目概况信息显示关于闲置土地宗地项目的具体信息,便于调查执法时了解相关用地项目情况,缩略图则显示宗地周边的情况。基于日常工作考虑,幅面大小采用标准A4幅面,如图1所示。
图1 闲置土地调查执法底图模板Fig.1 Base map template of idle land investigation and law-enforcement
1.2 底图数据构成
底图所需数据由遥感影像底图、闲置土地宗地范围线、闲置土地项目情况信息构成。具体如下:
1)影像底图。采用最新的国产高分辨率的闲置土地范围区域的遥感影像,img、tiff或者goetiff格式均可。坐标系为2000国家大地坐标系,不带带号。
2)闲置土地范围线数据。可以使用闲置土地的界址点坐标串数据矢量化,形成闲置土地空间矢量数据,矢量数据中属性数据表中含有对应项目宗地的电子监管号,以便和闲置土地项目基本信息连接。空间矢量数据的坐标系为2000国家大地坐标系。
3)土地闲置宗地情况。一般来自土地利用监管部门,可从部土地动态监测监管系统中获得,闲置土地项目包括但不限于以下信息:项目所位于的具体行政区(市州、县区)、项目名称、土地的受让人、电子监管号、土地用途、土地面积、签订日期、合同价款、约定动工时间以及备注信息。表1为闲置土地项目概况信息表,具体相关信息可导入到闲置土地空间矢量的属性库中。
表1 闲置土地概况属性信息表Tab.1 Information table of idle land profile attribute
2 外业核查底图的制作流程
2.1 ArcPy数据处理模块
ArcPy是一个利用Python语言编写的ArcGIS数据处理站点包,可以高效地执行地理数据分析、数据转换、数据管理和地图自动制图[3]。ArcGIS用户可以在ArcPy的帮助下快速创建简单或复杂的工作流,开发出可用于处理地学数据的实用程序[4]。利用ArcPy进行自动化批量制作闲置土地调查执法底图有助于大大提高制图效率。
2.2 自动出图生成方法
传统的人工出图流程为:首先在ArcGIS中编辑好底图模板,定位到待出图要素确定空间范围,调整地图比例尺,然后人工提取出闲置土地矢量图层中所需的土地属性信息,并在出图文档的布局视图插入文字,填写之前提取的土地利用属性信息,最后利用ArcGIS的导出地图功能将地图导出,依次对闲置土地图层的每一个项目宗地重复上述步骤。汇总后,将闲置土地调查执法底图提交到土地利用调查执法管理部门。
闲置土地调查执法底图的自动生成方法基于人工出图过程,利用ArcPy编写脚本程序自动实现人工出图的所有步骤[5],只需准备覆盖矢量区域的卫星遥感影像、闲置土地矢量数据和调查执法底图出图模板,执行ArcPy脚本程序,即可自动生成所有闲置土地调查执法底图。在土地供应过程中,自然资源部为监管土地供应后的开发、建设、利用、确权的全过程,为每一个供应项目的土地都配备了一个电子监管号,每个项目宗地的电子监管号是唯一的。由于闲置土地矢量可能会临近在一起,为了出图效果排除其他项目矢量的干扰,按照电子监管号拆分矢量数据,得到每个项目的矢量范围数据。
在批量制图的过程中,逐一遍历拆分后的矢量数据,替换出图模板中的闲置土地矢量图层,定位到出图矢量范围,并读取矢量数据中的土地利用的属性信息,将信息写入到mxd文档的布局视图中,同时更新布局视图中的标题、比例尺等其他需要更新的元素,使用ArcGIS中的图片导出工具,导出到成果目录,遍历所有的闲置土地矢量数据后,完成闲置土地调查执法底图的批量出图。出图流程如图2所示。
图2 闲置土地调查执法底图的批量出图流程Fig.2 Batch mapping process of base map of idle land investigation and law-enforcement
实现的主要代码如下:
file_list=os.listdir(out_folderpath)
for file in file_list:
if os.path.splitext(file)[1]==".shp":
filenames.append(file)
mxd=arcpy.mapping.MapDocument(mxd_path)#加载地图文档
layer=arcpy.mapping.ListLayers(mxd)[0] #获取图层
for filename in filenames:
filepath=out_folderpath+"\"+name
shprows=arcpy.SearchCursor(filepath,shpfields)
while True:
……
text1=u"市州:{0}……:{9} 备注:{10}".format(shprow.SZ,……shprow.BZ,)
sz=u"{0}{1}".format(shprow.SZ,shprow.XQ)
layer.replaceDataSource(out_folderpath,"SHAPEFILE_WORKSPACE",name.split('.')[0] )#修改数据源
df=arcpy.mapping.ListDataFrames(mxd)[0]
df.extent=layer.getExtent()#更新布局视图范围
title=arcpy.mapping.ListLayoutElements(mxd,"TEXT_ELEMENT","标题")[0] #修改标题
title.text=u"{0}闲置土地调查执法底图" .format(sz)
day_title=arcpy.mapping.ListLayoutElements(mxd,"TEXT_ELEMENT","属性信息")[0]
day_title.text=text1
export_path=outfile_path+"//"+sz+tempname+".png"
arcpy.mapping.ExportToPNG(mxd,export_path,resolution=200)#导出图片
3 应用实例
以湖南省常德市为例,使用土地利用监管部门下发的闲置土地调查执法项目清单,根据项目清单在部土地动态监测监管系统中查询和下载对应项目的土地利用相关信息(Excel格式)以及对应的宗地界址点坐标文件(txt格式)。将各个项目的宗地界址点坐标文件在ArcGIS中使用相关脚本或工具批量矢量化,通过关联工具将各项目的土地利用信息关联到宗地矢量属性表中,得到带有土地利用信息的闲置土地矢量数据(shp格式)。使用已配置好的闲置土地调查执法底图文档(mxd格式),使用上述研发的ArcPy脚本程序,指定底图成果的存放目录,即完成闲置土地调查执法底图批量快速生产,部分成果如图3所示。经过实际测试,一般作图员采用传统作图方式制作一个地级市的闲置土地调查执法底图需要2天左右,而采用本文方法使用ArcPy脚本程序进行出图,只要配置好影像底图和闲置土地图斑数据,1 h之内即可完成,减轻了制图人员的90%以上的工作量。
图3 闲置土地调查执法底图批量制作示例Fig.3 Batch production example of base map in idle land investigation and law-enforcement
4 结束语
本文按照闲置土地调查执法底图的一般制作流程,基于ArcPy研究了闲置土地调查执法底图的自动生成方法,解决了传统的人工制作闲置土地调查执法底图中的效率问题。闲置土地调查执法底图的自动生成,包括项目宗地的自动拆分、矢量要素的自动定位和属性信息的自动填写,减少了人工的重复工作,极大地提高了制图效率。自动化出图减少了人工的繁琐操作,可以避免人为误操作,保证了闲置土地调查执法底图的统一性及数据的准确性,对从事闲置土地调查执法工作的技术人员进行大数据量的制图工作具有较好的实用性,同时对提高土地利用管理具有一定的促进作用。