当前位置:
文档之家› 遥感影像有效覆盖范围自动提取方法研究
遥感影像有效覆盖范围自动提取方法研究
提供的 ArcPy 开发包,分别研究了通过影像产品元数据文件和栅格文件像素分析构建影像范围多边形矢量的方法,可以满足查
询定位和准确覆盖分析的需求,实现不同工作环境条件下相关业务的自动化和批量化,有助于提高作业效率。
关键词:遥感影像;覆盖范围;GDAL;ArcPy
中图分类号:P237
文献标志码:B
文章编号:1672-4623(2019)08-0033-03
图 1 资源三号影像产品元数据四角坐标段示例
1.2 通过影像分析提取范围 对于元数据不可用,或者卫星影像产品在二次加
工过程中范围发生变化的情况,需要对影像的像素值 特征进行分析,提取覆盖范围。假设影像背景值为 N, 则需要逐一判断影像每个波段中对应位置的所有像素 是否均为 N,满足的为 0,否则为 1,生成与原始影像 尺寸一致的掩膜影像,再转换为多边形矢量即可。
2 实验与结果
本文选取了一幅资源三号整景影像,并对其进行 不规则裁剪,用于开展有效覆盖范围提取的实验。实 验采用的程序开发语言为 Python,分别采用开源的 GDAL 库和商业软件 ArcGIS 提供的 ArcPy 库。GDAL 是著名的开源栅格空间数据转换库 [6],利用抽象数据 模型来表达所支持的各种栅格数据格式,并通过 OGR 子项目提供对矢量数据的支持,许多 GIS 类产品在底 层都使用了 GDAL/OGR 库 [7]。同时考虑到目前测绘地 理信息行业中 ArcGIS 软件已较为普及,也使用了其提 供的 ArcPy 库进行工具开发。ArcPy 是 ArcGIS 提供的 执行地理数据分析、转换、管理和自动化制图等功能 的 Python 站点包 [8],它对地理处理工具和函数进行了 集成,便于批量化自动处理。
itemLong = root.getElementsByTagName(tag[0])[0] itemLat = root.getElementsByTagName(tag[1])[0] x = float(itemLong.firstChild.data) y = float(itemLat.firstChild.data) coords.append((x, y)) return cords 读取坐标标签时应注意使 4 个角点保持顺时针方
1 技术思路
1.1 通过元数据提取范围 元数据文件以结构化标签的形式记录了数据产品
的有关信息 [5],一般随卫星影像产品一起分发,详细 提供了影像产品的卫星平台、传感器类型、接收站、 轨道号、拍摄时间、卫星及相机的姿态、太阳位置、 波段等多类信息,其中也包括影像四角地理坐标。不 同卫星产品的标签字段不一定相同,图 1 展示了资源 三号 Level 一级影像产品的元数据示例。通过这 4 个角 点坐标,可以构建多边形矢量,实现整景影像的落图 文件提取。
知的坐标标签文本,从卫星产品元数据文件提取四角
坐标数值,以坐标对的形式存于列表中,将其封装为
getGeoFromMeta 函数,主要代码和注释如下:
from xml.dom.minidom import * def getGeoFromMeta(metafile):
dom = parse(metafile) root = dom.documentElement tags = [ (‘dataUpperLeftLong’,‘dataUpperLeftLat’), (‘dataUpperRightLong’,‘dataUpperRightLat’),(‘dataLower RightLong’,‘dataLowerRightLat’), (‘dataLowerLeftLong’, ‘dataLowerLeftLat’)]# 资源三号影像四角坐标标签 coords = [] for tag in tags:
(1. 江苏省测绘工程院,南京 210013;2. 卫星测绘技术与应用国家测绘地理信息局重点实验室,南京 210013)
摘 要:遥感影像有效范围提取是影像管理、分发和应用工作中经常遇到的问题。根据实际需求一般可分为整景卫星影像产品
落图文件提取和影像实际覆盖范围提取 2 个方面。利用 Python 开发语言,基于开源空间数据处理库 GDAL 和商业软件 ArcGIS
2019 年 8 月 第 17 卷第 8 期
doi:10. 3969 / j. issn. 1672 - 4623. 2019. 08. 009
地理空间信息
GEOSPATIAL INFORMATION
Aug.,动提取方法研究
高 磊 1,2,许 康 1,2
收稿日期:2018-03-23。 项目来源:国家测绘地理信息局 2017 年度青年学术和技术带头人科技活动资助课题([2017]17 号文件)。
·34·
地理空间信息
第 17 卷第 8 期
2.1 读取元数据构建影像范围
2.1.1 由元数据文件提取坐标
利用 Python 自带的 xml 文件解析标准库,根据已
根据用户感兴趣区域查询遥感存档数据是各类 影像服务平台和海量影像管理系统提供的基本功能 之一 [1-2],这就需要对影像数据的实际有效范围进行准 确地提取。对于数据提供商分发的各级别卫星影像产 品,一般都带有包含四角坐标的元数据文件或者矢量 落图文件 [3],但用户在使用过程中,通常会对原始影 像产品进行正射校正、镶嵌、裁剪、融合等二次加工, 由此造成影像变形及范围发生变化,需要对有效覆盖 区域进行重新确定。在影像制图时也需要对有效区域 外的部分进行掩膜美化 [4],以遮盖背景部分。常规的做 法是在数字化平台中目视移屏,沿影像边界手工勾绘 矢量图形,相当耗时耗力。本文利用 Python 语言,基于 GDAL(Geospatial Data Abstraction Library)开源空间 数据处理库和商业软件 ArcGIS 提供的 ArcPy 开发包, 从元数据解析和影像分析 2 个方面分别实现了影像有 效范围提取方法,从而满足不同工作环境用户的需求。