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

相关文章

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Python实现将实体类列表数据导出到Excel文件

《Python实现将实体类列表数据导出到Excel文件》在数据处理和报告生成中,将实体类的列表数据导出到Excel文件是一项常见任务,Python提供了多种库来实现这一目标,下面就来跟随小编一起学习一... 目录一、环境准备二、定义实体类三、创建实体类列表四、将实体类列表转换为DataFrame五、导出Da

Python数据处理之导入导出Excel数据方式

《Python数据处理之导入导出Excel数据方式》Python是Excel数据处理的绝佳工具,通过Pandas和Openpyxl等库可以实现数据的导入、导出和自动化处理,从基础的数据读取和清洗到复杂... 目录python导入导出Excel数据开启数据之旅:为什么Python是Excel数据处理的最佳拍档

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

java poi实现Excel多级表头导出方式(多级表头,复杂表头)

《javapoi实现Excel多级表头导出方式(多级表头,复杂表头)》文章介绍了使用javapoi库实现Excel多级表头导出的方法,通过主代码、合并单元格、设置表头单元格宽度、填充数据、web下载... 目录Java poi实现Excel多级表头导出(多级表头,复杂表头)上代码1.主代码2.合并单元格3.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]