基于行政区划边界的农业统计数据自动匹配与校正的方法

文档序号:28447121发布日期:2022-01-12 04:01阅读:250来源:国知局
1.本发明属于资源环境
技术领域
:,尤其涉及一种基于行政区划边界的县级农业统计数据自动匹配的方法。
背景技术
::2.每年行政区划都发生变更,例如由于乡镇、县市的合并或拆分,行政区划的边界会发生相应的变化,行政区划代码也常常发生相应的变化。县级统计数据通常以县市作为统计单元,每个年份的统计数据也是在当年的行政区划基础上进行统计汇总。由于省份、县市行政区划变化,在使用农业统计数据进行多年的趋势分析时,会出现行政区划不一致、数据不一致的情况,如某个县市由于行政区划的拆分,耕地面积相应减少,进而引起变更前后年份统计的粮食总产数据差异过大的现象。总之,由于行政区划的变更,对农业统计数据的使用主要存在以下三方面的问题:1)行政区划名称变更引起的匹配问题;2)由于行政区划的合并、拆分、变更,引起在变更年份前后统计数据的不一致问题;3)以某一年行政区划代码的为基准进行长时间序列分析时,其他年份都需要与该年份的行政区划代码进行匹配,工作量大。技术实现要素:3.本发明所要解决的技术问题是针对现有技术的不足提供一种基于行政区划边界的农业统计数据自动匹配与校正的方法。4.本发明的技术方案如下:5.一种基于行政区划边界的农业统计数据自动匹配与校正的方法,包括以下步骤:6.第1步:标准数据库准备7.第2步:统计数据库与行政区划数据挂接8.第3步:类型a统计数据的栅格化9.第4步:类型b统计数据的栅格化10.第5步:类型c统计数据的栅格化,与耕地不相关或不受耕地影响的类型c数据挂接;11.第6步:生成其他年份的统计栅格数据12.按照以上步骤,选择相应年份的农业统计数据、土地利用数据和行政区划数据,生成该年份的统计栅格数据,保存在不同的目录下;13.第7步:对不同年份的栅格数据提取属性表并进行合并。14.所述的方法,所述的第1步,具体方法为:15.a11、准备行政区划数据库:准备与农业统计数据相对应年份的行政区划矢量数据,矢量图中的行政区划代码与名称与当年行政区划代码发布的标准代码和名称保持一致,数据保存为filegdb格式的数据库,gdb数据库名称为adminzone,矢量图层命名方式为:bount+四位年份;同时将行政区划转换为栅格格式,输出栅格图层名为rbount+四位年份;行政区划空间数据若是地理坐标系,需要进行投影转换,根据行政区划范围,转换为相应的投影坐标系;16.a12、准备土地利用数据库:准备与行政区划范围相一致仅且包含耕地的土地利用栅格格式数据,数据保存为filegdb格式的数据库,数据库名为landuse,数据库图层命名方式:landuse+四位年份;耕地栅格大小与行政区划栅格大小保持一致;若土地利用数据为矢量格式,使用arcgis中的featuretoraster工具,转换为栅格数据;若不能获取所有年份土地利用数据,可以采用最近年份土地利用数据或者选择不同年代的土地利用数据替代;17.a13、准备农业统计数据库:提取与行政区划矢量图年份一致的农业统计数据,农业统计数据指粮食、经济不同作物的播种面积、单位面积产量、总产量,猪、牛、羊存栏量养殖相关数据,氮、磷、钾、复合肥折纯施用量;农业统计数据分为以下三类:类型a:与耕地相关的单位强度农业统计数据;类型b:与耕地相关非强度的总产类型数据;类型c:与耕地不相关的农业统计数据;农业统计数据库为access格式的数据库,数据库名称为agridata,数据表命名方式为:stat+四位年份,不同年份的农业统计数据保存为一个独立的数据表;18.a14、数据库字段标准化:对字段名称进行标准化,字段名称采用英文字母名称,符合数据库字段命名规范,不使用特殊字符;19.a15、创建属性表:在农业统计数据库中增加数据表desc,desc数据表包含两个字段fieldname、fieldtype,分别表示需要处理的数据项以及该数据项所归属的类别;20.a16、字段分类:根据数据属性对每个字段分别划分为不同的类别,类别为a13中所描述的类别,用字母a、b、c分别表示不同类型的数据;21.a17、数据表提取:将步骤a13中的stat表根据类型提取生成stat+年份_a、stat+年份_b、stat+年份_c表,可保存在agridata数据库中;22.a18、栅格数量提取:使用zonalstatisticsastable分区统计工具,以该年份的行政区划作为分区图层,以行政区划id作为分区统计字段,对土地利用栅格数据进行分区统计,获得每个行政单元下的耕地栅格数;输出表格式:zl+年份;同样,对行政区划栅格数据进行统计,获得每个行政单元的栅格数,输出表格式:zb+年份;23.a19、统计数据更新:通过对统计数据表b(stat+年份_b)的每个字段除以土地利用栅格统计表(zl+年份)的count字段进行更新,通过对统计数据表c(stat+年份_c)的每个字段除以行政区划栅格统计表(zb+年份)中的count字段进行更新,换算得出每个栅格所代表的数据。24.所述的方法,所述的第2步,具体方法为:25.a20、描述表提取:根据步骤a16将desc表根据类型提取生成desc_a、desc_b、desc_c表,可保存在临时数据库temp中。26.a21、属性数据与空间数据挂接:使用关联(addjoin)工具,基于公共字段,将stat+年份_a、stat+年份_b、stat+年份_c属性数据表与矢量行政区划图层bount2000挂接,输出图层命名方式分别为:bount+年份a、bount+年份b、bount+年份c。27.所述的方法,所述的第3步,具体方法为:使用modelbuilder中的迭代字段值(iteratefieldvalues)迭代器工具,以desc_a表作为输入表,设置fieldname作为输入字段,循环读取desc_a表中fieldname的每一条记录,每条记录即为图层(bount+年份a)属性表所对应的字段名;使用要素转栅格(featuretoraster)工具,将图层(bount+年份a)属性表中所对应的字段转换为浮点类型的栅格图层;再使用extractbymask工具将耕地栅格数据作为掩膜对栅格数据进行裁切,输出图层用字段名作为图层名,输出图层名格式为:字段名.tif,统一保存在rastera目录下。28.所述的方法,所述的第4步,具体方法为:使用字段迭代器(iteratefields)循环读取每一个字段,以desc_b表作为输入表,设置fieldname作为输入字段,循环读取desc_b表中fieldname的每一条记录,每条记录即为图层(bount+年份b)属性表所对应的字段名;使用要素转栅格(featuretoraster)工具,将图层(bount+年份b)属性表中所对应的字段转换为浮点类型的栅格图层;输出图层用字段名作为图层名,输出图层名格式为:字段名.tif,统一保存在rasterb目录下。29.所述的方法,所述的第5步,具体方法为:使用字段迭代器(iteratefields)循环读取每一个字段,以desc_c表作为输入表,设置fieldname作为输入字段,循环读取desc_c表中fieldname的每一条记录,每条记录即为图层(bount+年份b)属性表所对应的字段名;使用要素转栅格(featuretoraster)工具,将图层(bount+年份c)属性表中所对应的字段转换为浮点类型的栅格图层;输出图层用字段名作为图层名,输出图层名格式为:字段名.tif,统一保存在rasterc目录下。30.所述的方法,所述的第7步,具体方法为:31.a71、采用iteraterasters栅格迭代器,对类型a(rastera内目录下)循环读取每个栅格图层,基于zonalstatisticsastable分区统计工具,使用某一年份的行政区划图作为基准,进行分区统计,统计类型选择平均值(mean),输出属性表,并进行属性表的合并;32.a72、采用iteraterasters栅格迭代器,对类型b(rasterb内目录下)循环读取每个栅格图层,基于zonalstatisticsastable分区统计工具,使用基准行政区划图,进行分区统计,统计类型选择合计(sum),输出属性表,并进行属性表的合并;33.a73、采用iteraterasters栅格迭代器,对类型c(rasterc内目录下)循环读取每个栅格图层,基于zonalstatisticsastable分区统计工具,使用基准行政区划图,进行分区统计,统计类型选择合计(sum),输出属性表,并进行属性表的合并;34.a74、对步骤a71-a73的属性表进行合并,形成该年份的统计数据表;35.a75、同样,对其他年份的统计栅格数据,按照步骤a71-a74进行分区统计,形成其他年份的统计数据表。36.本发明专利采用数据库、地理空间分析技术,实现对不同年份的县级农业统计数据实现自动匹配,从而实现基于行政区的统计数据校正。该方法可以用于全国范围或者省级范围的农业统计数据的匹配处理与校正。附图说明37.图1为本发明的方法流程图;具体实施方式38.以下结合具体实施例,对本发明进行详细说明。39.本发明的方法流程如图1所示:40.第1步:标准数据库准备41.a11、准备行政区划数据库:准备与农业统计数据相对应年份的行政区划矢量数据(若统计数据为县级,行政区划也为县级),矢量图中的行政区划代码与名称与当年行政区划代码发布的标准代码和名称保持一致,数据保存为filegdb格式的数据库,gdb数据库名称为adminzone,矢量图层命名方式为:bount+四位年份;同时将行政区划转换为栅格格式,输出栅格图层名为rbount+四位年份;行政区划空间数据若是地理坐标系,需要进行投影转换,根据行政区划范围,转换为相应的投影坐标系;42.a12、准备土地利用数据库:准备与行政区划范围相一致仅且包含耕地的土地利用栅格格式数据,数据保存为filegdb格式的数据库,数据库名为landuse,数据库图层命名方式:landuse+四位年份;耕地栅格大小与行政区划栅格大小保持一致;若土地利用数据为矢量格式,使用arcgis中的featuretoraster工具,转换为栅格数据;若不能获取所有年份土地利用数据,可以采用最近年份土地利用数据或者选择不同年代的土地利用数据替代;43.a13、准备农业统计数据库:提取与行政区划矢量图年份一致的农业统计数据(如2000年的统计数据),农业统计数据主要指粮食、经济等不同作物的播种面积、单位面积产量、总产量,猪、牛、羊存栏量等养殖相关数据,氮、磷、钾、复合肥折纯施用量等;农业统计数据分为以下三类:类型a:与耕地相关的单位强度农业统计数据,如粮食单位面积产量;类型b:与耕地相关非强度的总产类型数据,如播种面积、粮食总产、肥料折纯量;类型c:与耕地不相关的农业统计数据,如养殖存栏量数据;农业统计数据库为access格式的数据库,数据库名称为agridata,数据表命名方式为:stat+四位年份,不同年份的农业统计数据保存为一个独立的数据表。44.a14、数据库字段标准化:对字段名称进行标准化,字段名称采用英文字母名称,符合数据库字段命名规范,不使用特殊字符。45.a15、创建属性表:在农业统计数据库中增加数据表desc,desc数据表包含两个字段fieldname、fieldtype,分别表示需要处理的数据项以及该数据项所归属的类别。46.a16、字段分类:根据数据属性对每个字段分别划分为不同的类别,类别见a13中所描述,用字母a、b、c分别表示不同类型的数据。47.a17、数据表提取:将步骤a13中的stat表根据类型提取生成stat+年份_a、stat+年份_b、stat+年份_c表,可保存在agridata数据库中;48.a18、栅格数量提取:使用zonalstatisticsastable分区统计工具,以该年份的行政区划作为分区图层,以行政区划id作为分区统计字段,对土地利用栅格数据进行分区统计,获得每个行政单元下的耕地栅格数;输出表格式:zl+年份;同样,对行政区划栅格数据进行统计,获得每个行政单元的栅格数,输出表格式:zb+年份;49.a19、统计数据更新:通过对统计数据表b(stat+年份_b)的每个字段除以土地利用栅格统计表(zl+年份)的count字段进行更新,通过对统计数据表c(stat+年份_c)的每个字段除以行政区划栅格统计表(zb+年份)中的count字段进行更新,换算得出每个栅格所代表的数据。50.第2步:统计数据库与行政区划数据挂接51.a20、描述表提取:根据步骤a16将desc表根据类型提取生成desc_a、desc_b、desc_c表,可保存在临时数据库temp中。52.a21、属性数据与空间数据挂接:使用关联(addjoin)工具,基于公共字段,将stat+年份_a、stat+年份_b、stat+年份_c属性数据表与矢量行政区划图层bount2000挂接,输出图层命名方式分别为:bount+年份a、bount+年份b、bount+年份c。53.第3步:类型a统计数据的栅格化54.使用modelbuilder中的迭代字段值(iteratefieldvalues)迭代器工具,以desc_a表作为输入表,设置fieldname作为输入字段,循环读取desc_a表中fieldname的每一条记录,每条记录即为图层(bount+年份a)属性表所对应的字段名;使用要素转栅格(featuretoraster)工具,将图层(bount+年份a)属性表中所对应的字段转换为浮点类型的栅格图层;再使用extractbymask工具将耕地栅格数据作为掩膜对栅格数据进行裁切,输出图层用字段名作为图层名,输出图层名格式为:字段名.tif,统一保存在rastera目录下。55.第4步:类型b统计数据的栅格化56.使用字段迭代器(iteratefields)循环读取每一个字段,以desc_b表作为输入表,设置fieldname作为输入字段,循环读取desc_b表中fieldname的每一条记录,每条记录即为图层(bount+年份b)属性表所对应的字段名;使用要素转栅格(featuretoraster)工具,将图层(bount+年份b)属性表中所对应的字段转换为浮点类型的栅格图层;输出图层用字段名作为图层名,输出图层名格式为:字段名.tif,统一保存在rasterb目录下。57.第5步:类型c统计数据的栅格化,与耕地不相关或不受耕地影响的类型c数据挂接:58.使用字段迭代器(iteratefields)循环读取每一个字段,以desc_c表作为输入表,设置fieldname作为输入字段,循环读取desc_c表中fieldname的每一条记录,每条记录即为图层(bount+年份b)属性表所对应的字段名;使用要素转栅格(featuretoraster)工具,将图层(bount+年份c)属性表中所对应的字段转换为浮点类型的栅格图层;输出图层用字段名作为图层名,输出图层名格式为:字段名.tif,统一保存在rasterc目录下。59.第6步:生成其他年份的统计栅格数据60.按照以上步骤,选择相应年份的农业统计数据、土地利用数据和行政区划数据,生成该年份的统计栅格数据,保存在不同的目录下。61.第7步:对不同年份的栅格数据提取属性表并进行合并62.a71、采用iteraterasters栅格迭代器,对类型a(rastera内目录下)循环读取每个栅格图层,基于zonalstatisticsastable分区统计工具,使用某一年份的行政区划图作为基准,进行分区统计,统计类型选择平均值(mean),输出属性表,并进行属性表的合并;63.a72、采用iteraterasters栅格迭代器,对类型b(rasterb内目录下)循环读取每个栅格图层,基于zonalstatisticsastable分区统计工具,使用基准行政区划图,进行分区统计,统计类型选择合计(sum),输出属性表,并进行属性表的合并;64.a73、采用iteraterasters栅格迭代器,对类型c(rasterc内目录下)循环读取每个栅格图层,基于zonalstatisticsastable分区统计工具,使用基准行政区划图,进行分区统计,统计类型选择合计(sum),输出属性表,并进行属性表的合并;65.a74、对步骤a71-a73的属性表进行合并,形成该年份的统计数据表。66.a75、同样,对其他年份的统计栅格数据,按照步骤a71-a74进行分区统计,形成其他年份的统计数据表。67.下面以2000年、2010年、2020年省级农业统计数据、行政区划图、土地利用栅格数据为例,对本发明进行进一步详细描述:68.本发明的运行环境为地理信息系统软件arcgispro2.6以及modelbuilder环境下运行;69.第1步:标准数据库准备70.1.1准备行政区划数据库:要求行政区划矢量数据与农业统计数据的年份相对应,行政区划矢量数据中行政区划代码和名称与当年发布的标准代码和名称保持一致,空间数据保存为filegdb格式的数据库。行政区划图坐标系为albers投影坐标系。71.gdb数据库名称:adminzone72.矢量图层名称:bount200073.栅格图层名称:rbount200074.1.2准备土地利用数据库:提取行政区划范围相一致的仅仅包含耕地的土地利用栅格数据,保存为filegdb格式的数据库。75.gdb数据库名称:landuse76.栅格图层名称:land200077.1.3准备农业统计数据库:提取行政区划矢量图年份一致的农业统计数据,保存为mdb格式的数据库。农业统计数据包括种植、养殖、化肥等相关数据。同事对字段名称进行标准化,注意字段名称要符合字段命名规范。78.数据库名称:agridata79.数据表名称:stat200080.1.4统计数据库标准化并创建属性表::在农业统计数据库agridata中增加数据表desc,包含两个字段fieldname、fieldtype,分别表示需要处理的字段以及该数据项所归属的类别。将stat2000的字段整理到数据表desc中。81.数据库名称:agridata82.数据表名称:desc83.1.5字段分类和数据表提取:根据1.4描述的类型,从分别提取a、b、c三种不同类型数据表,保存在格式为mdb的agridata数据库。84.数据库名称:agridata85.数据表名称:stat2000_a、stat2000_b、stat2000_c86.1.6栅格数量提取:使用zonalstatisticsastable分区统计工具,使用分区统计(zonalstatistics)工具,以bount2000作为分区图层,行政区划pid作为分区统计字段,对land2000进行分区统计,获得每个行政单元下的耕地栅格数;输出表:zl2000;同样,以bount2000作为分区图层,对rbount2000进行统计,获得每个行政单元的栅格数,输出表:zb2000;87.1.7统计数据更新:通过对统计数据表b(stat+年份_b)的每个字段除以土地利用栅格统计表(zl+年份)的count字段进行更新,通过对统计数据表c(stat+年份_c)的每个字段除以行政区划栅格统计表(zb+年份)中的count字段进行更新,换算得出每个栅格所代表的数据;更新stat2000_b、stat2000_c数据表:stat2000_b、stat2000_c分别与zl2000、zb2000挂接;挂接后,stat2000_b、stat2000_c数据表分别除以对应的栅格数,换算得出每个栅格所代表的数据。88.第2步:统计数据库与行政区划数据挂接89.2.1根据1.4描述的类型,从desc分别提取a、b、c三种不同类型数据表,保存在格式为mdb的temp数据库。90.数据库名称:temp91.数据表名称:desc_a、desc_b、desc_c92.2.2属性数据与空间数据挂接:使用关联(addjoin)工具,基于公共字段(如id、省名等),将stat2000_a、stat2000_b、stat2000_c数据表与矢量行政区划图层bount2000挂接。93.gdb数据库名称:adminzone94.输出图层名称:bount2000a、bount2000b、bount2000c95.第3步:类型a统计数据的栅格化96.3.1使用modelbuilder中的迭代字段值(iteratefieldvalues)迭代器工具,以desc_a表作为输入表,字段(field)设置为fieldname,数据类型(datatype)设置为field,复选跳过空值(skipnullvalues),循环读取desc_a表中fieldname的每一条记录,每条记录即为图层bount2000a属性表所对应的字段名。97.3.2使用要素转栅格(featuretoraster)工具,将图层bount2000a属性表中所对应的字段转换为浮点类型的栅格图层,输出图层名格式为:字段名.tif。98.3.4循环读取desc_a属性表中每个字段作为栅格图层输出,统一保存在rastera目录下。99.第4步:类型b统计数据的栅格化100.4.1使用迭代字段值(iteratefieldvalues)迭代器工具,以desc_b表作为输入表,字段(field)设置为fieldname,数据类型(datatype)设置为field,复选跳过空值(skipnullvalues),循环读取table_b表中fieldname的每一条记录,每条记录即为图层bount2000b属性表所对应的字段名。101.4.2使用要素转栅格(featuretoraster)工具,将图层bount2000b属性表中所对应的字段转换为浮点类型的栅格图层,输出图层名格式为:字段名.tif。102.4.3循环读取desc_b属性表中每个字段作为栅格图层输出,统一保存在rasterb目录下。103.第5步:类型c统计数据的栅格化104.5.1使用迭代字段值(iteratefieldvalues)迭代器工具,以desc_c表作为输入表,字段(field)设置为fieldname,数据类型(datatype)设置为field,复选跳过空值(skipnullvalues),循环读取table_c表中fieldname的每一条记录,每条记录即为图层bount2000c属性表所对应的字段名。105.5.2使用要素转栅格(featuretoraster)工具,将图层bount2000c属性表中所对应的字段转换为浮点类型的栅格图层,输出图层名格式为:字段名.tif。106.5.3循环读取desc_c属性表中每个字段作为栅格图层输出,统一保存在rasterc目录下。107.第6步:生成其他年份的统计栅格数据108.按照步骤1-5,选择相应年份的农业统计数据、土地利用数据和行政区划数据,生成该年份的统计栅格数据,如选择2010、2020年农业统计数据,生成相应的栅格图层,保存在不同的目录下。109.第7步:对不同年份的栅格数据提取属性表并进行合并110.7.1选择某一年份作为基准,例如选择2020年行政区划图作为基准,分别对不同年份的农业统计栅格数据进行提取。111.7.2采用iteraterasters栅格迭代器,循环读取2000年统计数据目录下的rastera目录下的每个栅格图层,基于zonalstatisticsastable分区统计工具,统计类型选择平均值(mean),输出属性表,并进行属性表的合并;112.7.3采用iteraterasters栅格迭代器,循环读取2000年统计数据目录的rasterb目录下的每个栅格图层,基于zonalstatisticsastable分区统计工具,统计类型选择合计(sum),输出属性表,并进行属性表的合并;113.7.4采用iteraterasters栅格迭代器,循环读取2000年统计数据目录的rasterc目录下的每个栅格图层,基于zonalstatisticsastable分区统计工具,统计类型选择合计(sum),输出属性表,并进行属性表的合并。114.7.5对7.2-7.4步骤中的属性表进行合并,生成2000年的农业统计数据表。115.7.6循环7.2-7.5步骤,可生成基于2020年行政区划的2010、2020年的农业统计数据表。116.应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1