本发明涉及计算机图形和空间地理信息领域,具体涉及了一种地块智能化处理及净面积量算后批量自动生成方法。
背景技术:
城乡建设用地增减挂钩复垦项目是依据土地利用总体规划及村镇建设规划要求,将拟整理复垦为耕地的废弃农村居民点用地和工矿用地,通过采取工程措施、技术措施和生物化学措施,使原有的土地形态发生改变,达到复垦为耕地的标准,从而实现项目区内建设用地总量不增加,耕地面积不减少,质量不降低,用地布局更合理的土地整理工作目标。城乡建设用地增减挂钩是国家推出的支持社会主义新农村建设、促进城乡统筹发展、破解保护与保障“两难”困境的一项重要管理措施。旨在稳步推进我国农村废弃宅基地、工矿用地及废弃的砖瓦窑场的整治,以达到破解村镇一级用地紧张和农村建设用地粗放利用等难题,进一步优化农村用地结构和改善乡村综合环境,从而推进美丽乡村建设并助力脱贫攻坚。然而,现阶段关于城乡建设用地增减挂钩方面的研究多停留于政策、制度、机制等方面,主要研究视角从城市化发展、农村居民点用地集约化、农民生活水平改善等方面出发,很少涉及到城乡建设用地增减挂钩复垦项目信息化、智能化、自动化数据处理技术方面的研究,因此亟需一种高效地数据处理方法来支撑我国城乡建设用地增减挂钩复垦项目的开展,从而解决工作中的任务量大、工作繁琐、时间紧、效率低等方面的难题。
现有技术,在城乡建设用地增减挂钩复垦项目技术领域,目前只有关于地图制图领域方面有相关研究,如名称为“一种城乡建设用地可复垦资源调查图批量生成方法”(申请号:201910929048.3、公开号:cn110688687a),该研究主要针对现有城乡建设用地复垦资源图缺乏具体批量制作方法等问题,提出一种城乡建设用地复垦项目图批量生成方法。该方法可以实现批量出图,但是没有涉及在城乡建设用地增减挂钩复垦项目地块的标准化处理、是否符合入库标准的智能化判定、复垦项目的自动编码以及拆旧地块的净面积量算、地块报备坐标按项目批量生成。
技术实现要素:
本发明的目的在于至少解决现有技术中存在的技术问题之一,提供了一种地块智能化处理及净面积量算后批量自动生成方法,以实现项目类型的工作效率,减少城乡建设用地增减挂钩复垦项目的人力成本投入,促进土地资源的合理、高效利用。
本发明的技术方案包括一种地块智能化处理及净面积量算后批量自动生成方法,包括以下步骤:s100,将拆旧地块原图层进行自动识别,根据土地现状图获取项目所涉及的地类图斑图层;s200,根据所述拆旧地块原图层及所述地类图斑图层执行地块标准化自动处理;s300,根据城乡建设用地增减挂钩项目立项要求,判断经过标准化处理的待选地块是否符合项目立项要求,遍历所有待选的拆旧地块,并将不符合条件的拆旧地块进行过滤;s400,根据定义规则对符合立项要求的地块进行按项目顺序自动编号;s500,对符合拆旧要求的地块进行扣减现状地物面积和拆旧地块净面积量算处理;s600,根据项目编号按顺序批量输出每个项目计算之后的净面积表格;s700,根据报备系统坐标格式的要求批量生成每个项目报备坐标表格。
根据所述的地块智能化处理及净面积量算后批量自动生成方法,其中s100包括:s110,加载所述拆旧地块的原图层、地类图斑图层、现状地物图层、行政区图层、图幅号图层、耕地后备资源库图层、村庄建设用地控制区图层及建设用地管制区图层;s120,将行政区图层属性赋值给地类图斑图层,将地类图斑图层和行政区图层添加进窗口中,根据设置的输出要素类及输出要素保存位置,进行输出;s130,将图幅号图层属性赋值给地类图斑图层,将地类图斑图层和图幅号图层添加进窗口中,根据设置的输出要素类及输出要素保存位置,进行输出;s140,将村镇一级提供的拆旧地块原图层的面进行转点,得到点图层;s150,根据生成的点图层来按照位置属性选择地类图斑图层,生成对应的图层文件,得到相关联的项目区地类图斑图层。
根据所述的地块智能化处理及净面积量算后批量自动生成方法,其中地块标准化自动处理包括:s210,初始化数据,获取所述s100中的项目区地类图斑图层及挂钩项目待选拆旧地块图层;s220,遍历拆旧复耕图层获得要素c,获取地类图,图层中与c相交的要素集d,如果d为空集,将c写入异常要素图层e,否则进入s230;s230,从d中选取与c重叠面积最大的要素f,f和c相交得到要素g,f擦除c得到要素h;s240,将h由多部件转为单部件要素集i,并删除i中面积大于阈值的要素;s250,将i和g合并成一个要素j,如果j面积小于阈值,将j写入碎面要素图层k,否则s260;s260,判断j与f是否有交点,如果没有,将j写入孤岛要素图层l,否则进入207;s270,统计j顶点落在f边界上的数量m,如果m<=1,将j写入异常要素图层n,否则进入s280;s280,以j和f的重合顶点为锚点,使用滑动匹配算法修正图形j,将j上与f不重合的碎边拟合到f上,得到要素o,将要素o写入结果图层p;s290,f擦除o得到要素q,将q写入要素图层r,以及返回所述s220,处理拆旧地块图层的下一个要素,循环执行直至所有要素处理完成。
根据所述的地块智能化处理及净面积量算后批量自动生成方法,其中s300包括:s310,对s200中得到的项目区地类图斑图层进行拓扑检查;s320,检查s310中得到的项目区地类图斑图层是否在耕地后备资源库中;s330,检查s320中得到的项目区地类图斑图层是否在村庄建设用地控制区范围内;s340,检查s330中得到的项目区地类图斑图层是否在允许建设区范围内;s350,检查s340中得到的项目区地类图斑是否存在开天窗情况;s360,检查s350中得到的项目区地类图斑图层的用地现状属性是否为农村居民点用地或工矿用地;s370,检查s360中得到的项目区地类图斑图层的单个地块面积是否大于200平方米。
5、根据权利要求1所述的地块智能化处理及净面积量算后批量自动生成方法,其特征在于,所述s400包括:s410,通过要素转点方式,s300中项目区地类图斑图层进行面转点,生成中心点xi,其中1≤i≤n;s420,以镇行政区划边界为数据处理单元,使用具有簇大小约束的数据聚类改进的k-means算法将镇界线内n个地块分成k组,簇大小设置为10,其中1≤k≤n,10*k≥n;s430,对组内的点按照横坐标值的大小升序排序后,使用arcpy为每个点自动分配项目编号;s440,使用arcpy将中心点的编号赋值给对应的拆旧地块。
根据所述的地块智能化处理及净面积量算后批量自动生成方法,其中s420包括:s421,初始化,使用数据集选中心点的先验知识来分配初始化簇cj的质心uj,中心点从密集区选择;s422,分配处理,将每个数据点分配给群集,其质心产生的群集内平方和最小,即xp在时间步t中分配给一个群集cjc;s423,更新处理,在另一个时间步中,将xp分配给最小化集群内平方和的另一个集群,即当第t次簇个数c,t<10并且所有组阈值和大于等于镇界线内点数n时,才将每个数据点分配给其质心产生最小簇内平方和的簇,通过对所有(xp-ui)2的值升序排序并遍历排序后的数组,直到找到满足大小的簇。
根据所述的地块智能化处理及净面积量算后批量自动生成方法,其中s500包括:s510,判断项目区范围内每个拆旧地块的线状地物是否完全落入地块范围内或与拆旧地块边界共线,包括:以s100中得到的项目区地类图斑图层为中心搜索完全包括在该项目区范围内的所有线状地物,把搜索出来的所有线状地物面积累加到项目区拆旧地块标准化处理之后图层中的某个临时字段,命名为扣除线状地物面积s1;以s100中得到的项目区地类图斑图层为中心搜索与拆旧地块边界共线的所有线状地物,并将搜索出来的所有线状地物面积的一半累加到项目区拆旧地块标准化处理之后图层中的某个临时字段,命名为扣除线状地物面积s2;将s1和s2的面积求和得到扣除线状地物总面积s;s520,通过sql查询语句执行以下处理根据扣除线状地物面积比例将线状地物扣减面积图层分为两个图层xzdw1和xzdw2;分别将s500中得到的项目区拆旧地块图层与xzdw1和xzdw2图层进行叠加分析,得到dltb1和dltb2图层;给xzdw1和xzdw2图层的每条搜索记录进行赋值;将xzdw1和xzdw2图层合并为最终扣减的xzdw图层;s530,通过空间连接方式批量计算拆旧地块净面积,包括:关联最终扣减的线状地物图层获取最终项目区拆旧地块图层的属性字段扣减线状地物面积s,包括:将所述s500中得到的项目区拆旧地块图层和最终扣减的线状地物图层进行空间连接,即将落在项目区范围内同一拆旧地块内的多条线状地物面积累加后,再赋值到与该拆旧地块对应的扣除线状地物总面积s字段中,求得各拆旧地块扣除的线状地物面积s,并输出最终项目区拆旧地块图层;通过几何计算功能给属性表中图斑面积字段赋值,得到各拆旧地块的毛面积,再根据几何计算功能计算拆旧地块的净面积。
根据所述的地块智能化处理及净面积量算后批量自动生成方法,其中s600包括:s610,python调用arcpy.searchcursor分别读取扣减线物图层中的dlbm、tbbh、扣减面积、地块编号字段和图斑净面积图层中的dlbm、tbbh、xzqmc、zldwmc、tfh、fkhdl、净面积及地块编号字段,并存入数组备用;s620,采用字符串操作结合项目所处地区、项目时间及项目编号等信息构造完整表名并写入表格文件;s630,按照标准要求构造表头,依次为序号、项目所含地块位置、图幅号、图斑号、项目实施前面积、项目实施前地类、项目实施后面积、项目实施后地类、新增耕地面积及地块编号,表头构造完成后写入表格文件;s640,遍历图斑净面积图层的要素,依次按标准组织数据,并逐条插入表格文件,其中序号为从1开始自增,项目地块位置由xzqmc和zldwmc字段拼接而成,图幅号和图斑号分别取自tfh与tbbh字段,项目实施前面积和项目实施前地类分别取自净面积与dlbm字段,项目实施后面积、项目实施后地类分别取自净面积与fkhdl字段,新增耕地面积从净面积字段取值,地块编号从地块编号字段取值;s650,依次遍历扣减线物图层的要素,若线要素的地块编号与表格中面要素的地块编号相同,则在所选面要素下方插入空行,并在空行内按标准要求插入该线要素的相关属性信息,其中图斑号取自tbbh字段,项目实施前面积、项目实施前地类分别取自扣减面积与dlbm字段,项目实施后面积、项目实施后地类分别取自扣减面积与dlbm字段;s660,对项目实施前面积、项目实施后面积、新增耕地面积等列求和,写入表格文件,然后将填表人、审核人、填表日期等信息写入表格文件的最后一行,并将地块编号列删除;s670,循环针对各个项目按照以上步骤进行操作,实现挂钩复垦项目实施前后地类变化情况表的自动化批量输出。
根据所述的地块智能化处理及净面积量算后批量自动生成方法,其中s700包括:s710,利用python读取项目增减挂钩入库图层,并采用arcpy.addfield函数为该图层的属性表增加坐标串字段wkt,字段长度定义时候应考虑要素拐点数;s720,遍历图层中的要素,调用要素的exporttowkt函数提取要素的拐点坐标并写入属性表的wkt字段中;s730,通过arcpy.searchcursor读取增减挂钩入库图层的属性表中的地块净面积、地块编号、图幅号、wkt等字段;s740,针对wkt字段中存储的坐标串采用字符串操作将各点的x、y坐标分别提取,并存储在二维数据中;s750,根据自然资源部的数据提交模板,将格式版本号、数据生产单位、数据生产日期、坐标系、几度分带、投影类型、计量单位、带号、精度、转换参数等属性描述信息按要求存储并写入表格文件;s760,遍历数据图层中的要素,每个空间要素应将拐点个数、地块净面积、地块要素编号、地块编号、地块类型、图幅号及拐点x、y坐标依次按模板要求写入表格文件;s770,循环针对各个项目按照以上步骤进行操作,实现自动化批量生成表格文件。
本发明的有益效果为:减少城乡建设用地增减挂钩复垦项目的人力成本投入,促进土地资源的合理、高效利用。
附图说明
下面结合附图和实施例对本发明进一步地说明;
图1为本发明实施方式的总体流程图。
图2为本发明实施方式的待选挂钩复垦拆旧地块标准化自动处理流程图。
图3为本发明实施方式的智能判别是否符合城乡建设用地增减挂钩复垦项目的入库条件流程图。
图4为本发明实施方式的挂钩复垦项目和地块实现自动编号流程图。
图5为本发明实施方式的现状地物扣除比例的示意图。
图6为本发明实施方式的增减挂钩复垦项目净面积量算方法流程图。
图7为本发明实施方式的批量输出各挂钩复垦项目实施前后地类变化情况表的步骤流程图。
图8为本发明实施方式的基于python实现自动化批量输出各项目报备坐标表格的步骤流程图。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
在本发明的描述中,对方法步骤的连续标号是为了方便审查和理解,结合本发明的整体技术方案以及各个步骤之间的逻辑关系,调整步骤之间的实施顺序并不会影响本发明技术方案所达到的技术效果。
本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
术语解释:
增减挂钩:城镇增加和农村减少用地相挂钩
拆旧区:是指现状为农村建设用地,可以是居民点(203)也可以是工矿用地(204),在规划后拟整理复垦为耕地的地块。
建新区:根据规划使用挂钩指标进行城镇项目建设的地块。
安置区:是指在旧村拆除后,用来安置拆迁群众,建设新村(社区)的地块。
图1为本发明实施方式的总体流程图。该流程包括:s100,将拆旧地块原图层进行自动识别,根据土地现状图获取项目所涉及的地类图斑图层;s200,根据拆旧地块原图层及地类图斑图层执行地块标准化自动处理;s300,根据城乡建设用地增减挂钩项目立项要求,判断经过标准化处理的待选地块是否符合项目立项要求,遍历所有待选的拆旧地块,并将不符合条件的拆旧地块进行过滤;s400,根据定义规则对符合立项要求的地块进行按项目顺序自动编号;s500,对符合拆旧要求的地块进行扣减现状地物面积和拆旧地块净面积量算处理;s600,根据项目编号按顺序批量输出每个项目计算之后的净面积表格;s700,根据报备系统坐标格式的要求批量生成每个项目报备坐标表格。
对于s100,本发明提供了以下具体实施方式,如下步骤101~步骤105所示:
步骤101:打开arcgis软件,加载村镇一级提供的拆旧地块原图层和最新土地利用现状的dltb(地类图斑)、xzdw(现状地物)、xzq(行政区)、bztf(图幅号)、hbzytbgx(耕地后备资源库)、czjskzq(村庄建设用地控制区)、jsydgzq(建设用地管制区)图层;
步骤102:把行政区划属性(镇名、村名等)赋值给dltb(地类图斑)图层,利用arctoolbox中的analysistools(分析工具)——overlay(叠加分析)——intersect(相交工具),将dltb(地类图斑)图层和xzq(行政区)图层添加进窗口中,设置输出要素类选择输出要素保存位置,连接属性选择all(默认),xy容差不填写(默认),输出类型input(默认)。
步骤103:把图幅号属性(tfh)赋值给dltb(地类图斑)图层,利用arctoolbox中的analysistools(分析工具)——overlay(叠加分析)——intersect(相交工具),将dltb(地类图斑)图层和bztf(图幅号)图层添加进窗口中,设置输出要素类选择输出要素保存位置,连接属性选择all(默认),xy容差不填写(默认),输出类型input(默认)。
步骤104:将村镇一级提供的拆旧地块原图层面转点;
步骤105:根据生成的点图层来按照位置属性选择dltb图层,并导出*shape格式,即得到相关联的项目区地类图斑(dltb)图层。
结合提取的相关联的项目区地类图斑和村镇一级提供的拆旧地块原图层进行地块标准化自动处理,图2是本发明实施例待选挂钩复垦拆旧地块标准化自动处理流程图,具体详细步骤为:
步骤201:初始化数据,获取s100中的项目区地类图斑(dltb)图层和挂钩项目待选拆旧地块图层;
步骤202:遍历拆旧复耕图层获得要素c,获取地类图斑(dltb)图层中与c相交的要素集d,如果d为空集,将c写入异常要素图层e,否则进入203;
步骤203:从d中选取与c重叠面积最大的要素f,f和c相交得到要素g,f擦除c得到要素h;
步骤204:将h由多部件转为单部件要素集i,并删除i中面积大于阈值的要素;
步骤205:将i和g合并成一个要素j,如果j面积小于阈值,将j写入碎面要素图层k,否则进入206;
步骤206:判断j与f是否有交点,如果没有,将j写入孤岛要素图层l,否则进入207;
步骤207:统计j顶点落在f边界上的数量m,如果m<=1,将j写入异常要素图层n,否则进入208;
步骤208:以j和f的重合顶点为锚点,使用滑动匹配算法修正图形j,尽量将j上与f不重合的碎边拟合到f上,得到要素o,将要素o写入结果图层p;
步骤209:f擦除o得到要素q,将q写入要素图层r;
步骤210:进入202,处理拆旧地块图层下一个要素。
智能判别标准化处理之后的地块是否符合城乡建设用地增减挂钩复垦项目的入库条件,图3是本发明实施例智能判别是否符合城乡建设用地增减挂钩复垦项目的入库条件流程图,具体详细步骤为:
步骤301:拓扑检查其算法如下:
a.建立拓扑检查地理数据库(personalgeodatabase),命名为“dltb_topo”,在该数据库中新建一个要素数据集(featuredataset),命名也为“dltb_topo”,之后导入将要进行检查的数据,命名仍是“dltb_topo”;
b.运行拓扑处理,在要素数据集上右键——新建——拓扑(topology),之后选择参与拓扑检查的要素类,选定需要的拓扑规则,该方法统一使用“不能重叠”(mustnotoverlap)的拓扑规则;
c.查看拓扑问题,在目录(catalog)里要素数据集中拖动拓扑结果到内容列表,打开拓扑错误查看器,查看拓扑问题,选择“所有规则错误(errorsfromallrules)”,勾选“错误(errors)”、“异常(exceptions)”,不勾选“只可见范围(visibleextentonly)”,点击“搜索(searchnow)”即可在错误列表显示所有错误。
d.进行拓扑修改,拓扑修改地块则返回到步骤s200中的地块标准化自动处理流程,修改完成后将要素类导出为*shape格式。
步骤302:检查上述步骤301中得到的项目区地类图斑(dltb)图层是否在耕地后备资源库中,其处理方法是与耕地后备资源库图层(hbzytbgx)进行相交分析(intersect),之后输出*shape格式,进行下一步。
步骤303:检查上述步骤302中得到的项目区地类图斑(dltb)图层是否在村庄建设用地控制区范围内,其处理方法是与村庄建设用地控制区图层(hbzytbgx)进行相交分析(intersect),之后输出*shape格式,进行下一步。
步骤304:检查上述步骤303中得到的项目区地类图斑(dltb)图层是否在允许建设区范围内,其处理方法是与建设用地管制区图层(jsydgzq)进行相交分析(intersect),之后按属性选择字段为管制区类型代码(gzqlxdm)中值为010的地块图斑,最后输出*shape格式,进行下一步。(注:代码010代表允许建设区,代码020代表有条件建设区,代码030代表限制建设区,代码040代表禁止建设区,城乡增减挂钩项目拆旧地块要求,必须为允许建设区(010))。
步骤305:检查上述步骤304中得到的项目区地类图斑(dltb)是否存在开天窗(复垦拆旧地块四周全部为建设用地)情况,其算法如下:
a.打开arcgis软件,加载步骤④中得到的项目区地类图斑(dltb)图层和土地利用现状的dltb图层;
b.利用按照位置选择工具(selectbylocation),把土地利用现状的dltb图层设置为目标图层(targetlayer),步骤④中得到的项目区地类图斑(dltb)拆旧地块图层作为源图层(sourcelayer),空间选择方法为相交(intersect),即可得到与步骤④中得到的项目区地类图斑(dltb)拆旧地块边界相交的所有地块图层;
c.将上述步骤(b)所提取的图层进行面转线,利用datamanagementtools工具中的featuretoline工具,得到线图层。
d.再利用按照位置选择工具(selectbylocation),把步骤④中得到的项目区地类图斑(dltb)拆旧地块图层设置为目标图层(targetlayer),上述步骤(c)得到的线图层所作为源图层(sourcelayer),空间选择方法为相交(intersect),之后导出*shape格式,进行下一步。
步骤306:检查上述步骤305中得到的项目区地类图斑(dltb)图层其用地现状属性是否为农村居民点用地(203)和工矿用地(204),其处理方法是按属性选择字段为地类编码(dlbm)中值为203和204的地块图斑,最后输出*shape格式,进行下一步。(注:城乡增减挂钩项目拆旧地块要求,必须为农村居民点用地(203)和工矿用地(204))。
步骤307:检查上述步骤306中得到的项目区地类图斑(dltb)图层中的单个地块面积是不是大于200平方米。其处理方法是按属性选择字段为净面积中的地块面积大于200平方米的图斑,最后输出*shape格式。
根据定义规则实现项目自动编号,项目编号遵循不打破镇行政区划边界线,相邻地块进行优先组合,并且地块数量小于等于10个,图4是本发明实施例挂钩复垦项目和地块实现自动编号流程图,具体详细步骤为:
步骤401:使用arcgis软件arctoolbox提供的要素转点工具,将s300中项目区地类图斑(dltb)图层进行面转点,即生成中心点xi(1≤i≤n);
步骤402:以镇行政区划边界为数据处理单元,使用具有簇大小约束的数据聚类改进的k-means算法将镇界线内n个地块分成k(1≤ik≤n)组,簇大小设置为10(10*k≥n)。具有簇大小约束的数据聚类改进的k-means算法可以按以下三个步骤进行描述:①在初始化步骤中,使用数据集选中心点的先验知识(从密集区选择)来分配初始化簇cj的质心uj;②在分配步骤中,将每个数据点分配给群集,其质心产生的群集内平方和最小,即xp在时间步t中分配给一个群集cjc;③在更新步骤中,在另一个时间步中,将xp分配给最小化集群内平方和的另一个集群,即当第t次簇个数c,t<10并且所有组阈值和大于等于镇界线内点数n时,才将每个数据点分配给其质心产生最小簇内平方和的簇。实施时,通过对所有(xp-ui)2的值(即组内点与质心的欧式距离的平方)升序排序并遍历排序后的数组,直到找到满足大小的簇;
步骤403:对组内的点按照横坐标值的大小升序排序后,使用arcpy为每个点自动分配项目编号;
步骤404:使用arcpy将中心点的编号赋值给对应的拆旧地块。
将符合条件的拆旧地块进行净面积批量计算,图5是本发明实施方式的现状地物扣除比例的示意图。
图6是本发明实施例增减挂钩复垦项目净面积量算方法图,根据城乡建设用地增减挂钩复垦项目标准要求按照项目编号批量输出每个项目计算之后的净面积excel表格,具体详细步骤为:
具体详细步骤为如下步骤501~步骤503:
步骤501:首先判断项目区范围内每一个拆旧地块的线状地物(xzdw)是完全落入地块范围内还是与地块边界共线两种情况,其算法如下:
a.以s100中得到的项目区地类图斑(dltb)图层为中心搜索完全包括在该项目区范围内的所有线状地物,把搜索出来的所有线状地物(xzdw)面积累加到项目区拆旧地块标准化处理之后图层中的某个临时字段,命名为扣除线状地物面积s1;
b.以s100中得到的项目区地类图斑(dltb)图层为中心搜索与拆旧地块边界共线的所有线状地物,把搜索出来的所有线状地物(xzdw)面积的一半累加到项目区拆旧地块标准化处理之后图层中的某个临时字段,命名为扣除线状地物面积s2;
c.将a、b两步求得的面积求和得到扣除线状地物总面积为s,即s=s1+s2。
步骤502:采用基于arcgis软件的sql语句更新实现,其算法如下:
a.根据扣除线状地物面积比例将线状地物扣减面积图层分为两个图层:xzdw1和xzdw2;
b.分别把s500中得到的项目区拆旧地块图层与xzdw1和xzdw2图层进行叠加分析,得到dltb1和dltb2图层;
c.使用arcgis软件的sql语句给xzdw1和xzdw2图层的每条搜索记录进行赋值;
d.将xzdw1和xzdw2图层合并为最终扣减的xzdw图层;
步骤503:使用arcgis软件的空间连接(spatialjoin)功能批量计算拆旧地块净面积,其算法如下:
a.关联最终扣减的xzdw图层获取最终项目区拆旧地块图层(xmq_dltb2)图层的属性字段扣减线状地物面积s,具体操作步骤为包括:将步骤(5)中得到的项目区拆旧地块图层(xmq_dltb1)和最终扣减的xzdw图层进行空间连接,目标要素类和连接要素类分别为xmq_dltb1,xzdw,指定空间关系为包含(contains)类型,设置连接合并规则为(joinmergerule)的求和方式(sum),即将落在项目区范围内同一拆旧地块内的多条线状地物面积累加后,再赋值到与该拆旧地块对应的扣除线状地物总面积s字段中,求得各拆旧地块扣除的线状地物面积s,并输出最终项目区拆旧地块*shape图层xmq_dltb2。
b.调用arcgis软件属性表中的几何计算(caculategeometry)功能给属性表中tbmj字段赋值,得到各拆旧地块的毛面积,再根据几何计算(caculategeometry)功能计算拆旧地块的净面积,即cjdk_mj=tbmj-kjxzdw_s。
图7是本发明实施方式的批量输出各挂钩复垦项目实施前后地类变化情况表的步骤流程图。如下步骤601~607所示:
步骤601:python调用arcpy.searchcursor分别读取扣减线面积图层中的dlbm、tbbh、扣减面积、地块编号等字段与图斑净面积图层中的dlbm、tbbh、xzqmc、zldwmc、tfh、fkhdl、净面积、地块编号等字段存入数组备用;
步骤602:采用字符串操作结合项目所处地区、项目时间及项目编号等信息构造完整表名并写入excel;
步骤603:按照标准要求构造表头,依次为序号、项目所含地块位置、图幅号、图斑号、项目实施前面积、项目实施前地类、项目实施后面积、项目实施后地类、新增耕地面积及地块编号,表头构造完成后写入excel;
步骤604:遍历图斑净面积图层的要素,依次按标准组织数据,并逐条插入excel,其中序号为从1开始自增,项目地块位置由xzqmc和zldwmc字段拼接而成,图幅号和图斑号分别取自tfh与tbbh字段,项目实施前面积和项目实施前地类分别取自净面积与dlbm字段,项目实施后面积、项目实施后地类分别取自净面积与fkhdl字段,新增耕地面积从净面积字段取值,地块编号从地块编号字段取值;
步骤605:依次遍历扣减线面积图层的要素,若线要素的地块编号与excel表中面要素的地块编号相同,则在所选面要素下方插入空行,并在空行内按标准要求插入该线要素的相关属性信息,其中图斑号取自tbbh字段,项目实施前面积、项目实施前地类分别取自扣减面积与dlbm字段,项目实施后面积、项目实施后地类分别取自扣减面积与dlbm字段;
步骤606:对项目实施前面积、项目实施后面积、新增耕地面积等列求和,写入excel,然后将填表人、审核人、填表日期等信息写入excel表的最后一行,并将地块编号列删除。
步骤607:循环针对各个项目按照以上步骤进行操作,实现挂钩复垦项目实施前后地类变化情况表的自动化批量输出。
图8是本发明实施例基于python实现自动化批量输出各项目报备坐标excel表的步骤流程图,具体详细步骤为如下步骤701~步骤706所示:
步骤701:python读取项目增减挂钩入库图层,采用
arcpy.addfield_management函数为该图层的属性表增加坐标串字段wkt,字段长度定义时候应考虑要素拐点数;
步骤702:遍历图层中的要素,调用要素的exporttowkt函数提取要素的拐点坐标并写入属性表的wkt字段中;
步骤703:通过arcpy.searchcursor读取增减挂钩入库图层的属性表中的地块净面积、地块编号、图幅号、wkt等字段;
步骤704:针对wkt字段中存储的坐标串采用字符串操作将各点的x、y坐标分别提取,并存储在二维数据中;
步骤705:根据自然资源部的数据提交模板,将格式版本号、数据生产单位、数据生产日期、坐标系、几度分带、投影类型、计量单位、带号、精度、转换参数等属性描述信息按要求存储并写入excel表;
步骤706:遍历数据图层中的要素,每个空间要素应将拐点个数、地块净面积、地块要素编号、地块编号、地块类型、图幅号及拐点x、y坐标依次按模板要求写入excel表;
步骤707:循环针对各个项目按照以上步骤进行操作,实现自动化批量生成excel表。
上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。