geemap学习笔记 05 geemap 基于shapefile矢量的影像和影像集导出

2023-10-27 23:20

本文主要是介绍geemap学习笔记 05 geemap 基于shapefile矢量的影像和影像集导出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、shapefile 矢量数据的使用
  • 二、在geemap中导出影像或影像集
    • 1. 在geemap中导出单景影像
    • 2. 在geemap中导出影像数据集
    • 3. 将像元提取为Numpy数组
  • 总结


前言

本节主要介绍两部分内容:1)shapefile 矢量数据的使用; 2) 在geemap中导出影像或影像集。


一、shapefile 矢量数据的使用

① 提前在自己的jupyter notebook的文件夹中上传shapefile矢量数据,得到对应的存放路径。
上传shp数据
② 在geemap中加载地图底图,详细代码如下:

# class 10 使用shapefile 矢量数据的使用
import geemap
Map = geemap.Map()
Map

底图加载
③ 在geemap中加载黄河口自然保护区shapefile矢量范围,详细代码如下:

# class_10 在geemap中加载黄河口自然保护区矢量范围(需提前在自己的jupyter中上传shp矢量数据,得到对应的存放路径)
huanghekouClip_shp = '../gee/shptest/huanghekouClip.shp'
huanghekouClip = geemap.shp_to_ee(huanghekouClip_shp)
Map.addLayer(huanghekouClip, {}, 'huanghekouClip')

shapefile矢量范围

二、在geemap中导出影像或影像集

1. 在geemap中导出单景影像

利用已有的shapefile矢量裁剪影像后,并导出单景影像,详细代码如下:
① 在geemap中加载Landsat-7多光谱影像数据;

# part 1 导出单景影像import ee
import geemap
import os
Map = geemap.Map()
Map
image = ee.Image('LE7_TOA_5YEAR/1999_2003')landsat_vis = {'bands': ['B4', 'B3', 'B2'], 'gamma': 1.4}
Map.addLayer(image, landsat_vis, "LE7_TOA_5YEAR/1999_2003", True, 0.7)

Landsat-7多光谱影像
② 利用shp裁剪Landsat-7影像,详细代码如下:

# 使用shapefile矢量数据,shapes on the map using the Drawing tools before executing this code block
huanghekouClip_shp = '../gee/shptest/huanghekouClip.shp'
feature = geemap.shp_to_ee(huanghekouClip_shp)if feature is None:geom = ee.Geometry.Polygon([[[-115.413031, 35.889467],[-115.413031, 36.543157],[-114.034328, 36.543157],[-114.034328, 35.889467],[-115.413031, 35.889467],]])feature = ee.Feature(geom, {})roi = feature.geometry()
Map.addLayer(feature, {}, 'huanghekouClip')
out_dir = os.path.join(os.path.expanduser('E:\Project\gee'), 'exportmap1')
filename = os.path.join(out_dir, 'hhklandsat.tif')
#裁剪影像导出
image = image.clip(roi).unmask()
Map.addLayer(image, {}, 'image')

裁剪后的影像加载
③ 导出通过shapefile裁剪导出单景影像,详细代码如下:

# 导出单景影像
image = image.clip(roi).unmask()
geemap.ee_export_image(image, filename=filename, scale=90, region=roi, file_per_band=False
)

2. 在geemap中导出影像数据集

① 在影像中导出2008-2020年”USDA/NAIP/DOQQ“对应loc的影像数据集,详细代码如下:

import ee
import geemap
import os
loc = ee.Geometry.Point(-99.2222, 46.7816)
collection = (ee.ImageCollection('USDA/NAIP/DOQQ').filterBounds(loc).filterDate('2008-01-01', '2020-01-01').filter(ee.Filter.listContains("system:band_names", "N"))
)
out_dir = os.path.join(os.path.expanduser('~'), 'Downloads')
geemap.ee_export_image_collection(collection, out_dir=out_dir)
geemap.ee_export_image_collection_to_drive(collection, folder='export', scale=10)

导出的影像数据集
Geometry 2008-2020年共有9景影像,依次下载9景影像数据。


3. 将像元提取为Numpy数组

① 将ROI矢量范围内的像元提取为numpy数组,以Landsat-8 2018.08.10的影像为例,选在三个波段展示,在Geometry的ROI范围裁剪下,得到对应裁剪后的影像,后提取shape的Numpy数组。

# class 11_03 将矢量范围内的像元提取为numpy数组
import ee
import geemap
import numpy as np
import matplotlib.pyplot as pltimg = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_038029_20180810').select(['B4', 'B5', 'B6'])aoi = ee.Geometry.Polygon([[[-110.8, 44.7], [-110.8, 44.6], [-110.6, 44.6], [-110.6, 44.7]]], None, False
)rgb_img = geemap.ee_to_numpy(img, region=aoi)
print(rgb_img.shape)

提取结果
② 将数据范围设置在[0,255]之间,展示为RGB图像

rgb_img_test = (255 * ((rgb_img[:, :, 0:3] - 100) / 3500)).astype('uint8')
plt.imshow(rgb_img_test)
plt.show()

rgb结果图

总结

以上就是今天要讲的内容,本文仅仅简单介绍了基于shapefile矢量的影像和影像集导出,后续会继续更新使用geemap的具体实例~
哈哈哈

这篇关于geemap学习笔记 05 geemap 基于shapefile矢量的影像和影像集导出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/289091

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同

MySQL Workbench工具导出导入数据库方式

《MySQLWorkbench工具导出导入数据库方式》:本文主要介绍MySQLWorkbench工具导出导入数据库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录mysql Workbench工具导出导入数据库第一步 www.chinasem.cn数据库导出第二步

Java如何根据word模板导出数据

《Java如何根据word模板导出数据》这篇文章主要为大家详细介绍了Java如何实现根据word模板导出数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... pom.XML文件导入依赖 <dependency> <groupId>cn.afterturn</groupId>