基于Python的地表覆盖数据逐级自动缩编
2022-08-25张华剑
张华剑
中国建筑材料工业地质勘查中心江西总队,江西 上饶 334000
0 引 言
地表覆盖数据[1]是影响地理国情监测服务能力、资源匹配格局层次[2]和地方可持续发展水平的重要资源。如何对地表覆盖数据信息进行有效挖掘成为重要课题和应用前提。地表覆盖数据属于一种地理空间数据,对其缩编涉及概括与选取两个方面,传统的人工缩编方法主要包括[3]选取、化简、概括、位移,作业方式存在精度低、工作量大、耗时长等弊端,难以及时高质量地满足数据更新需求。伴随计算机、地理信息技术的进步,不少从事数据处理、地图制图或GIS 应用的开发者,参与到地理空间数据的缩编研究中来。如文献[4-6]分别借助GISidMAP、WJ-III 功能等对地形数据、农村地籍居民地和房屋要素进行综合;文献[7]运用Gentools功能综合化简等高线数据;文献[8-11]分别通过自制图系统、EPS、CASS 功能对不同比例尺地形图进行缩编;文献[12-14]采用FME、ArcGIS 人机交互缩编土地利用数据。这些研究实现了一定程度的地理空间数据缩编,但存在以下几个问题:缩编对象侧重在地形、土地利用或房屋、等高线等基础地理要素数据,这些要素的分类体系与地表覆盖数据不同;缩编工作大多是对软件现有功能的直接辅助性应用,处理过程较复杂;缩编目标的比例尺普遍比较大,而对小比例尺的缩编研究不够、部分方法通用性不强;部分软件使用成本较高,自动化处理能力不强,用这些方法缩编地表覆盖数据,效果欠佳。
为更好地实现地表覆盖数据的缩编,本文提出逐级自动缩编思路,制定控制策略,设计技术路线,在ArcGIS 软件下,利用Python[15]编程实现地表覆盖数据的逐级自动缩编,形成相应的工具集,并成功应用于图集编制。成果拓展了ArcGIS 的数据处理功能,也为其他相关数据的处理工作提供了一定的参考。
1 研究分析
1.1 缩编重点、难点分析
为有效缩编地表覆盖数据,还需解决好以下重点、难点问题。按照缩编要求,各要素的缩编均须准确合理,既要保持要素原有的分布规律,又要合理控制各要素缩编后的面积。道路、水系等要素在不同比例尺下的表达方式不同,比如一条大比例尺的面状道路在小比例尺下可能被表达为线状。在同一张图中有多种地表覆盖要素,须在数据处理过程中合理解决要素间的位置冲突问题。若将数据从大比例尺直接大跨度地缩编至小比例尺,将导致原始数据内在规律丢失,成果数据也相应失真,则须在缩编过程中逐级控制尺度。
1.2 缩编几个关键点
为有效解决重难点问题,地表覆盖数据缩编需遵循以下指标、原则与要求。
1)缩编指标设计。鉴于地表覆盖数据缩编无规范可循,且缩编成果比例尺、用途也不尽相同,需要重点参考文献[16]中的规定来设计相关指标。同时考虑到地表覆盖信息属于认知和监测地方自然资源、生态环境等的重要基础性数据源,为提高地表覆盖数据缩编成果的详实准确度,本文采用较土地利用数据缩编[12]更为严格的缩编指标来缩编地表覆盖数据,即图斑最小面积为1 mm2,图斑最小间距为0.5 mm,最小宽度为0.5 mm等。
2)图斑合并原则。根据图斑分布情况,灵活运用基本缩编方法合理综合。若图斑未达到最小面积(以下简称微小图斑)且不改变类别,则将微小图斑就近融入相邻的较大图斑中;若相邻图斑中有与微小图斑属不同小类,但属同一大类的要素图斑,则应将微小图斑优先融入同类要素图斑中(即存在约束条件);若图斑要素具有代表性,则予以保留并可适当夸张。对于狭长型面状要素,若宽度未达到最小宽度,则依据提取的图斑中心线将图斑分割,对应融合到相邻图斑里。
3)缩编尺度控制。为尽可能保持地表覆盖数据的原有分布规律,依据控制测量[17]中的逐级控制、分级布设工作原则,本文提出了逐级缩编的思路来开展缩编工作,通过Python 编程,流程化控制图斑缩编过程中的逐级面积尺度,以期达到“自然演变”式的缩编效果,即通过在缩编过程中严格控制地表覆盖各类别要素的面积,保证缩编前后各类要素的面积差别不大,且各类要素分布规律保持一致、视觉效果相近。
1.3 缩编策略与技术路线
从文献[18]可知,地理空间数据缩编主要是通过依对象特征(几何形状、属性)进行归纳概括和依对象重要性不同进行选取与表达两种方式实现。因此,地表覆盖数据缩编中,地理分析与处理、编辑、制图等多项常规工作,可运用ArcGIS 原有的多个地理处理函数和模块完成。逐级自动缩编主要涉及逐级面积尺度控制(即控制每轮缩编图斑面积尺度)和自动有选择地合并图斑两个方面的策略,可运用Python 编程形成新的地理处理方法和工具实现(图1)。
图1 逐级自动缩编技术路线Fig.1 Technical flow of progressively automatic downsizing
基于Python 的地表覆盖数据逐级自动缩编技术路线。
1)开展数据预处理。包括坐标系统投影,几何修复,依需要同类归并等。
2)区分处理不同类型图斑。利用图斑特性分离狭长型(道路、河流)和非狭长型面状要素,其中,针对狭长型面状要素,若宽度大于最小宽度,则另存为.shp格式数据A1;若宽度小于最小宽度,则提取其中心线并对其进行分割,然后按照图斑合并原则将其并入周围相邻的图斑形成数据A2。针对非狭长型面状要素,若面积小于最小面积,则将其逐级自动有选择地并入与之相邻的图斑中,得到数据B1;将数据A2逐级自动有选择地并入数据B1,得到数据B2。
3)将获得的数据A1与数据B2合并编辑后,得到结果数据C。将其微小图斑逐级自动有选择地并入相邻图斑后,通过抽稀、光滑修饰各图斑边界,获得逐级自动缩编后的数据D。
4)对数据D 进行拓扑检查和属性检查并处理,最终获得符合质量要求的地表覆盖数据缩编成果。可见,逐级自动缩编涉及数据A1、A2、B1、B2、C、D,贯穿在整个缩编过程中。
2 编程实现
2.1 缩编工具开发
基于逐级自动缩编的思路,结合图斑缩编的逐级面积尺度控制和图斑合并策略,通过编程形成了用于地表覆盖数据逐级自动缩编的Python 工具箱(图2),包含24 个功能。它们是编辑处理单/多个要素文件的模块工具,主要包括对图斑的逐级筛选、提取中心线、分割、融合、合并、夸大、更新、化简、概括、平滑、拓扑检查、属性检查等数据编辑处理功能。同时,基于面向对象的编程思路,将功能组织成可主程序执行的Python 脚本程序(图2 红框),实现数据缩编的半自动化。
图2 开发工具箱Fig.2 Toolbox for development
2.2 图斑合并实现
图斑合并是逐级自动缩编的核心策略之一,即基于要素是否属于相同大/小类的判断,将微小图斑逐级自动有选择地并入到相邻大面积图斑中(图3)。
图3 图斑合并的策略Fig.3 Strategy of merging
在逐级缩编图斑面积尺度的控制下,微小图斑优先并入有相同地类编码的相邻图斑,地类编码0101 的微小图斑并入图斑0101,形成新图斑0101(图4a);否则,微小图斑并入地类编码相异但同属大类、面积最小的相邻图斑,地类编码0101 的微小图斑并入图斑0103,形成新图斑0103(图4b);当前两者都不满足时,微小图斑并入面积最小的相邻图斑,地类编码0101 的微小图斑并入图斑0302,形成新图斑0302(图4c)。本策略实现了微小图斑合并的逐级性和选择性。
图4 图斑合并示意图Fig.4 Diagram of spot merging
3 应用评价
3.1 工程实例
编制具有地方特色的地理国情地图集(以下简称图集),是发挥国情数据服务作用的一项重要举措,涉及到地表覆盖数据的缩编工作。本文以某县级区为例,使用逐级自动缩编的方法对区域地表覆盖数据进行缩编。该区水陆交通便利,区内地表覆盖类型丰富,其中耕地、建设用地面积占比排名前二[19]。
按要求,图集需要表达耕地、林地的二级类和其他用地的一级类。考虑到图集采用16 开本,图幅尺寸较小,换算出目标比例尺为1 ∶15 万。经作业准备、数据预处理(坐标换算、绘制图廓、图形纠正等)、分离、自动综合(节点处理、综合编绘各线面要素、重新编辑属性等)、合并、检查处理(ArcGIS 软件拓扑检查修改、属性信息等人机交互编辑以及地表覆盖成果检查内容与方法[20-21]等)等数据缩编与制图综合系列步骤,实现地表覆盖数据从1 ∶1 万比例尺逐级自动缩编至1 ∶15万,利用CorelDRAW[22]等软件加工整饰后形成缩编成果图件(图5)。该图以线、面状类型要素为主(行政、科教文卫等点状、注记类要素未标出),重点表达了经逐级自动缩编后的地表覆盖要素分布情况,成品图整体表达合理美观,基本保持原始数据要素分布的规律,满足图集编制和使用需求。
图5 地表覆盖要素分布图Fig.5 Geographical distribution of surface coverage factors
3.2 指标评价
为客观分析目标区域地表覆盖各类要素缩编前后的变化情况,对图斑数、面积等进行统计(表1),总体上各分类要素的缩编效果明显,主要表现为图斑数量变化较大,面积变化较小。具体缩编前后数据变化特征如下。
表1 各要素缩编前后的图斑数和面积变化情况表Tab.1 Changes of patch number and area of each element before and after Downsizing
1)图斑数变化率。道路的变化相对最大、降为0个图斑,原因是宽度小于最小宽度,面状道路被表达为线状要素。
2)图斑数占总数比例差值。耕地的变化最大,且表现为缩编后的耕地比原始的更集中连片、面积偏大,原因在于该区域内道路两边的耕地较多,逐级自动缩编时会把切碎的道路图斑并入耕地。
3)面积变化率。道路的面积降为0,原因同1),草地、构筑物、人工堆掘地、荒漠与裸露地表及部分林地等要素被综合融入耕地、园地、房屋建筑(区)等图斑,原因在于前几类要素的面积相对偏小、分布零散且周边多为后几类要素,在逐级自动缩编时易被并入后几类要素。
4)面积占总面积比例差值。缩编后的草地、林地、道路面积占总比减少比例超过1.5%,减少的面积主要被综合为耕地、园地。
结合试验区耕地多且相对集中这一现实情况,缩编成果要素的空间表达较合理。缩编前后,绝大部分要素的面积占比相差不大,考虑到微小图斑碎小零散的实际分布情况以及易被综合的特性,说明各要素分布规律在缩编后仍保持较好,各要素面积控制也相对合理。
综上,逐级自动缩编和编程形成的功能工具能够满足图集编制对地表覆盖数据缩编和表达的要求;在给定缩编指标和归类原则的基础上,缩编方法和功能工具对一般的面状地理空间数据缩编也具有一定适用性。
4 结 论
对大比例尺数据缩编是快速获取和更新小比例尺地理空间数据的重要手段之一。本文探讨了数据缩编的重难点和关键点,提出逐级自动缩编技术思路,通过图斑缩编的逐级面积尺度控制与图斑合并策略,基于ArcGIS软件,研究并设计地表覆盖数据逐级自动缩编技术路线,运用Python 编程实现逐级自动缩编,成果工具成功应用于图集编制,有效完成了图集对地表覆盖数据的缩编需求。
本文的技术思路、技术路线和功能工具等研究成果,在明确缩编指标、归类原则的基础上,可对其他面状地理空间数据实现逐级自动缩编,也能为其他地理空间数据在信息挖掘方面提供一定参考。后续可在逐级面积尺度设计与计算机及软件算力两者最优配比、运算参数设置、地理空间数据逐级自动缩编综合管理系统构建及自动化制图等方面作进一步研究与探索。