1、第 46 卷 第 1 期2023 年 1 月测绘与空间地理信息GEOMATICS&SPATIAL INFORMATION TECHNOLOGYVol.46,No.1Jan.,2023收稿日期:2021-05-24作者简介:崔正刚(1987-),男,山东临沂人,工程师,学士,主要从事摄影测量、地理信息系统应用开发等方面的工作。基于 Google Earth Engine 和 pydeck 的遥感云数据三维可视化研究崔正刚,王米山(山东省地质矿产勘查开发局第七地质大队,山东 临沂 250013)摘要:采用云计算技术,整合各种遥感信息和技术资源的遥感云服务正以前所未有的速度发展。本文基于谷歌地球引擎
2、 Google Earth Engine 提供的海量遥感云存储数据,研究通过 Google Earth Engine 的 Python API 以及空间可视化库 pydeck、第三方 earthengine-layers 库提供的图层拓展能力,完成从遥感数据筛选、实时数据云计算到三维场景展示、网页端页面自动导出的全流程实践,旨在快速高效地实现遥感云数据三维可视化方案。关键词:谷歌地球引擎;pydeck;遥感云数据;三维可视化中图分类号:P237 文献标识码:A 文章编号:1672-5867(2023)01-0142-03Remote Sensing Cloud Data 3D Visualiz
3、ation Research Based onGoogle Earth Engine and pydeckCUI Zhenggang,WANG Mishan(No.7 Geological Brigade of Shandong Provincial Bureau of Geology and Mineral Resources,Linyi 250013,China)Abstract:Based on cloud computing technology,the integration of all kinds of remote sensing information and technol
4、ogy resources of remote sensing cloud services is developing at an unprecedented rate,based on the Google Earth Engine,massive remote sensing cloud storage data provided by Google Earth Engine,this paper uses the Google Earth Engine Python API and spatial visualization library py-deck,third-party ea
5、rthengine-layers library which provides layer expansion capability to complete the whole process practice from re-mote sensing data screening,real-time data cloud computing,3D scene display,webpage side page automatic export,it aims to ac-complish fast and efficient implementation of remote sensing
6、cloud data 3D visualization.Key words:Google Earth Engine;pydeck;remote sensing cloud data;3D visualization0 引 言当今遥感领域正处于数据井喷式增长的阶段,多样化的传感器以及不同分辨率的数据,不断增大遥感数据处理的复杂性,同时针对海量遥感数据进行实时处理与应用的需求日益突出,这些都对传统的遥感数据存储与处理提出了挑战。谷歌地球引擎 Google Earth Engine 作为现今遥感云计算领域的翘楚,可以整合世界范围海量的遥感数据:据统计该引擎囊括 200 多个公共数据集,其中包括 50
7、0 多万张遥感影像数据,每天新增接近 4 000 张影像数据,总数据容量超过 5 PB。Google Earth Engine 将遥感数据的存储、处理以及传输部署于云端,通过 Python 等编程语言为媒介提供算法接口,为全世界的用户提供地球空间服务。依托谷歌地球引擎 Google Earth Engine 提供的数据资源进行三维可视化,避免了大量数据下载获取、线下处理以及上线发布的时间损耗,对于遥感数据的处理与应用具有十分重要的示范意义1-2。1 关键技术1.1 Google Earth EngineGoogle Earth Engine 是 Google 研发的对海量全球尺度的地球科学资料
8、(特别是卫星遥感资源)进行在线存储计算和分析处理的云端平台。该平台能够存取卫星遥感数据资源和其他地球观测数据库中的数据资源并提供足够的分布式计算算力对这些数据进行处理。相比于 ENVI等传统的处理影像工具,Google Earth Engine 可以快速、批量处理海量的遥感影像资源。通过 Google Earth Engine可以快速计算如 NDVI 等植被指数,可以分析预测各种作物的产量,研判旱情条件下作物的长势变化,监测全球尺度的森林时序变化等。Google Earth Engine 不仅提供在线的 JavaScript API,同时也提供了离线的 Python API,通过这些 API
9、可以快速地建立基于 Google Earth Engine 以及 Google 云的 Web服务3-4。1.2 pydeckdeck.gl 是由 Uber 公司开源的基于 WebGL 的地理信息可视化库,旨在基于浏览器端实现高性能大型数据集的可视化,deck.gl 具有高度可配置可拓展的设计模式,全部图层都带有灵活的 API 拓展方式,可以对渲染的各个环节进行编码控制。用户可以通过组合任意图层或使用deck.gl 的可扩展体系架构来满足相关定制需求,以经济高效的方式快速获取令人印象深刻的视觉效果。pydeck 库是 deck.gl 对应接口的 python 版 API 实现,用户可以通过 Py
10、thon 实现 deck.gl 的可视化效果,同时针对 Jupyter 环境进行定制优化,方便 Python 使用者进行开发展示。除此之外,支持 Python 脚本生成导出 Web 端HTML 页面,最大限度地提高可视化开发效率和效果。1.3 earthengine-layerspydeck 库拥有强大的地理数据可视化能力,但目前官方没有提供接口支持 Google Earth Engine 在线遥感云数据的渲染。第三方 earthengine-layers 库提供 pydeck 的拓展图层接口(包括 JavaScript 和 Python2 个版本),可以借助 earthengine-laye
11、rs 实现基于 pydeck 的 Google Earth Engine 在线遥感云数据的渲染。2 研究区实验数据概况本文三维地形实验数据选择 SRTM(Shuttle Radar To-pography Mission)地形数据,由美国太空总署(NASA)和国防部国家测绘局(NIMA)合作进行测量。2000 年 2 月11 日,美国发射的“奋进”号航天飞机上挂载 SRTM 系统,全程完成 222 h 23 min 的数据采集任务,SRTM 遥感系统接收的雷达影像的数据量约 9.8 万亿字节,通过 2 年多的数据处理,制成数字地形高程模型产品。SRTM 产品自2003 年开始向公众发布,历经多
12、次修订,当前最新的版本为 V4.1 版本。本文三维地表遥感数据选择哨兵 2 号(Sentinel-2)数据,Sentinel-2 是高分辨率多光谱成像卫星,单颗卫星的访问频次为 10 d,2 颗互补,重访频次为 5 d。Sentinel-2卫星分为 2A 和 2B 2 颗卫星,两者共同投入运行阶段后,相隔 5 d 可覆盖一次对地球赤道地区的全面成像,而对于高纬度的地域,访问频次则为 3 d。Sentinel-2 地表遥感数据主要用于监测土地地表环境,可分析得出有关土地植被健康情况、土壤覆盖状况、内陆河流和沿海周边环境等信息,不仅对改善农林业种植、预测粮食产量、保证粮食安全具有重要意义,还可用于
13、监测洪水、火山喷发、山体滑坡等自然灾害,为人道主义救援提供帮助。3基于 Google Earth Engine 和 pydeck 的三维可视化方案3.1 基础环境配置首先注册 Google Earth Engine 账号,注册完成后下载配置 Python 开发环境并导入 Google Earth Engine 的 Py-thon 接口包,通过 Python 接口包完成 Google Earth Engine遥感云服务各项功能使用前的认证:import eetry:ee.Initialize()except Exception as e:ee.Authenticate()ee.Initializ
14、e()3.2 遥感云数据的获取在 Google Earth Engine 的云存储数据,均有唯一的数据集名称,根据官方文档可以查询到相关遥感数据集名称,通过 Google Earth Engine 的 Python 接口方法 ee.Image获取相关遥感云数据集资源。选择 Google Earth Engine提供的 SRTM 30 m 分辨率全球范围可用的数据作为地形数据源,数据集名称为“USGS/SRTMGL1_003”:terrain=ee.Image(USGS/SRTMGL1_003).select(elevation)此外遥感影像数据源哨兵 2 号数据,在 Google Earth
15、Engine 中数据集名称为“COPERNICUS/S2_SR”,加载哨兵 2 号数据集时,我们可以通过 Google Earth Engine 的Python 接口,使用时间、云量、范围、波段等限定条件筛选哨兵 2 号数据集,所有的筛选计算过程都在云端完成。如下所示,可筛选出包含坐标点(127.562 404,45.315 538)、日期在2020 年5 月1 日至2020 年8 月30 日之间、云量少于 5%的影像,并选取 4、3、2 的波段进行组合:image=ee.ImageCollection(COPERNICUS/S2_SR).filterBounds(ee.Geometry.Po
16、int(127.562404,45.315538).filterDate(2020-05-01,2020-08-30).sort(cloundMetadata).filterMetadata(CLOUDY_PIX-EL_PERCENTAGE,less_than,5).first().select(B4,B3,B2)3.3 pydeck 加载遥感云数据进行三维展示首先引入 pydeck 以及 pydeck_earthengine_layers,主要通过函数 EarthEngineTerrainLayer 引用 Google Earth Engine遥感云数据作为三维可视化的地形数据 terrai
17、n 以及覆盖地形之上的影像数据 image;通过 pdk.ViewState 函数设置三维场景的中心点以及视角等参数;通过 pdk.Deck 函数完成 pydeck 功能初始化并最终调用 show 实现三维场景的显示:ee_layer=EarthEngineTerrainLayer(341第 1 期崔正刚等:基于 Google Earth Engine 和 pydeck 的遥感云数据三维可视化研究image,terrain,vis_params,id=EETerrainLayer)view_state=pdk.ViewState(latitude=45.315538,longitude=127
18、.562404,zoom=13.5,bearing=86,pitch=80)r=pdk.Deck(layers=ee_layer,initial_view_state=view_state)r.show()本研究设置 SRTM30 m 分辨率数据同时作为地形数据 terrain 以及覆盖地形之上的影像数据 image。本研究设置 SRTM 30 m 分辨率数据作为地形数据terrain,选取 Google Earth Engine 遥感云数据资源中的哨兵 2 号数据作为覆盖地形之上的影像数据 image。除此之外,Google Earth Engine 提供遥感云计算所需的函数接口,同时支持将
19、遥感云计算的结果实时输出。这里我们以 NDVI(归一化植被指数)的实时计算输出展示为例,NDVI 全称为 Normalized Difference Vegetation In-dex,是遥感影像中近红外波段的反射值与红光波段的反射值之差比上两者之和,计算公式即(NIR-R)/(NIR+R),其中 NIR 为近红外波段的反射值,R 为红光波段的反射值,归一化植被指数是反映植物长势和营养信息的重要参考指标之一。研究该参数的数值与变化情况,对探究不同季节、不同自然条件下植物的生长情况,具有关键的指示作用。Google Earth Engine 本身已提供 NDVI 计算接口以及其他众多遥感相关的实
20、时函数计算接口,为遥感工作者提供了便利。此处设置 SRTM 30 m 分辨率数据作为地形数据 ter-rain,选取 Google Earth Engine 的 NDVI 函数计算接口 nor-malizedDifference,将哨兵 2 号数据的波段 B8 以及 B4 作为参数传入,实时 NDVI 云计算结果作为覆盖地形之上的影像数据 image。对于三维可视化结果,pydeck 提供 to_html(demo.ht-ml)接口函数,可以将可视化 python 代码导出生成 Web端 HTML 页面,无须安装插件即可通过浏览器端浏览。4 结束语本文利用 Google Earth Engin
21、e 提供的遥感分布式实时计算能力以及遥感云数据资源,基于 pydeck 库的三维空间可视化功能以及第三方 earthengine-layers 库的拓展图层功能进行设计与实现,进行了无须本地储存的遥感云数据以及实时计算结果三维可视化的探索与研究,支持导出 Web 端 HTML 页面进行浏览器端无插件浏览,通过电脑端或移动端均可以访问,具有开放、跨平台的优势。本文方案丰富了遥感数据的可视化表达方式,对于未来基于云计算的遥感应用具有一定的参考意义。参考文献:1 左尧,王少华,蔡文文,等.基于 D3 的空间数据可视化设计与实现J.测绘与空间地理信息,2016,39(12):80-82.2 朱德海,刘
22、逸铭,冯权泷,等.基于 GEE 的山东省近 30年农业大棚时空动态变化研究J.农业机械学报,2020,51(1):168-175.3 娄佩卿,付波霖,何宏昌,等.基于 GEE 的桂林市主城区热环境变化定量遥感分析J.桂林理工大学学报,2020(2):330-337.4 徐新山,张志华.基于 WebGL 的地层体信息三维可视化J.测绘与空间地理信息,2016,39(11):65-68.编辑:刘莉鑫(上接第 141 页)参考文献:1 桂德竹,程鹏飞,文汉江,等.在自然资源管理中发挥测绘地理信息科技创新作用研究J.武汉大学学报(信息科学版),2019,44(1):97-100.2 自然资源部.关于印
23、发自然资源科技创新发展规划纲要的通知J.自然资源通讯,2018(22):13-31.3 黑龙江省人民政府办公厅.关于印发黑龙江省推进卫星应用产业发展专项行动计划(20172020 年)的通知G.哈尔滨:黑龙江省人民政府办公厅,2017.4 黑龙江省人民政府办公厅.关于印发黑龙江省基础测绘“十三五”规划的通知G.哈尔滨:黑龙江省人民政府办公厅,2016.5 许大力.测绘地理信息技术在自然资源管理中的应用研究J.通讯世界,2021,28(7):151-152.6 王瑜.全国地理信息管理工作会议提出:围绕“两支撑、一提升”推进“十四五”地理信息管理J.资源导刊,2021(8):45.编辑:刘莉鑫441 测绘与空间地理信息 2023 年