【GEE】使用GEE批量查询下载Landsat8数据

news2024/11/26 23:18:19

        刚发了一篇Landsat8地表温度反演的博文,顺便分享一下如何使用GEE批量查询、下载Landsat8数据集。代码比较简单就是查询函数和导出函数,然后还有一个显示函数。网上的教程一大堆,都差不多的代码,在这里要感谢一些前辈们的无私奉献。

踩坑1:2021年之前的C01数据集的显示函数不能直接用到C02数据集上,不然影像显示为全白。

一、代码部分

        直接导入自己的研究区即可,无需修改其他内容。然后到Tasks里面就可以看到所有符合条件的影像集合,自己点击下载即可。

var roi = table //感兴趣的区域信息
var style_set = {color:"red",fillColor:"00000000"}; //设置地图中要素的颜色和填充颜色
Map.addLayer(roi.style(style_set),{},"shape") //使用之前定义的样式集将roi添加到地图中。该地图层默认使用几何形状(例如多边形)来表示区域
Map.centerObject(roi,10) //将地图中心设置为roi对象,并设置缩放级别为10

function maskL8sr(image) {
  // 去云函数
  var qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0);
  //从输入图像中选择QA_PIXEL波段,使用位运算和掩码来识别填充、云、云影等像素
  var saturationMask = image.select('QA_RADSAT').eq(0); //从输入图像中选择QA_RADSAT波段,并识别未饱和的像素。
  // 将缩放因子应用于适当的频带
  var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
  // 从输入图像中选择光学波段,并应用归一化处理。
  var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
  // 从输入图像中选择热红外波段,并应用归一化处理。
  return image.addBands(opticalBands, null, true)
      .addBands(thermalBands, null, true)
      .updateMask(qaMask)
      .updateMask(saturationMask);}
var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
                  .filterBounds(roi)
                  .filterDate('2023-01-01', '2023-03-31')
                  .map(maskL8sr)
                  .map(function(image){
                      return image.clip(roi)//裁剪
                  })
                  
print("dataset",dataset)
var visualization = {
  bands: ['SR_B4', 'SR_B3', 'SR_B2'],
  min: 0.0,
  max: 0.3,
};
Map.addLayer(dataset, visualization, 'Image');
// 彩色合成显示

function exportImageCollection(imgCol) {
  // 导出函数
  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"])
                        .get("list");
  indexList.evaluate(function(indexs) {
    for (var i=0; i<indexs.length; i++) {
      var image = imgCol.filter(ee.Filter.eq("system:index", indexs[i])).first();
      image = image.toInt16();
      Export.image.toDrive({
        image: image,
        description: indexs[i],
        fileNamePrefix: indexs[i],
        folder: 'Landsat8',
        region: roi,
        scale: 30,
        crs: "EPSG:4326",
        maxPixels: 1e13
      });
    }
  });
}
exportImageCollection(dataset);

二、效果显示

        这个专栏开了之后也不知道怎么分享博文,感觉没什么好写的,不如直接放代码。但是有感觉光放代码有比较单调,很烦。等后期看看如何改进,大家有什么问题可以随时留言交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1177550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JUC-1-并发编程基础

一 并发编程简介 1 什么是并发编程&#xff1f; 所谓并发编程是指在一台处理器上 “同时” 处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。 并发编程&#xff0c;从程序设计的角度来说&#xff0c;是希望通过某些机制让计算机可以在一个时间段内…

技术分享 | web自动化测试-PageObject 设计模式

为 UI 页面写测试用例时&#xff08;比如 web 页面&#xff0c;移动端页面&#xff09;&#xff0c;测试用例会存在大量元素和操作细节。当 UI 变化时&#xff0c;测试用例也要跟着变化&#xff0c; PageObject 很好的解决了这个问题。 使用 UI 自动化测试工具时&#xff08;包…

LangChain+LLM实战---Embedding、从入门到生产使用

搜索功能已经深入到我们的日常生活中&#xff0c;我们常说“Google一下就知道了”&#xff0c;用户已经开始期望几乎每个应用程序和网站都提供某种类型的搜索功能。随着有效搜索变得越来越相关(双关语)&#xff0c;寻找新的方法和体系结构来改进搜索结果对于架构师和开发人员来…

Vue-SplitPane可拖拽分隔面板(随意拖动div)

npm install vue-splitpane一、使用 &#xff08;1&#xff09;局部使用&#xff1a; 在vue文件中 import splitPane from vue-splitpane export default {componnets: { splitPane } }&#xff08;2&#xff09;全局使用&#xff1a; 在main.js文件注册 import splitPane…

openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述

文章目录 openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述116.1 背景信息116.2 操作步骤 openGauss学习笔记-116 openGauss 数据库管理-设置数据库审计-审计概述 116.1 背景信息 数据库安全对数据库系统来说至关重要。openGauss将用户对数据库的所有操作…

放卷开环张力控制(伺服转矩模式应用)

收放卷张力开环闭环控制算法,请参考下面文章链接: PLC张力控制(开环闭环算法分析)_RXXW_Dor的博客-CSDN博客文章浏览阅读4k次,点赞3次,收藏3次。里工业控制张力控制无处不在,也衍生出很多张力控制专用控制器,磁粉制动器等,本篇博客主要讨论PLC的张力控制相关应用和算…

leetcode:2926. 平衡子序列的最大和 【树状数组维护最大前缀和】

题目链接 lc2926 题目描述 题目思路 定义b[i] nums[i] - i 目标是从b中找到一个非降子序列使得元素和最大 # b[i] nums[i] - i # 找到b的一个非降子序列使得元素和最大 # f[i]: 子序列最后一个数下标是i&#xff0c;对应的最大子序列 # f[i] max (max f[j], 0) nums[i] …

【2023Q3_技术考核经验】

单选题&#xff1a; 1.下列有关影刀全局变量的概念说法错误的是&#xff1a;© B.和流程参数一样&#xff0c;只有事先给全局变量赋值&#xff0c;全局变量才可以用到其他流程当中去 C.全局变量适合用在变量值频繁更换的场景 解释&#xff1a;在右下角设置全局变量&#x…

本地电脑监控软件

本地电脑监控软件是一种用于监控计算机使用行为的软件&#xff0c;它可以帮助企业管理者了解员工的工作状态和行为&#xff0c;保护企业的计算机资源。 本地电脑监控软件可以监控员工的计算机使用行为&#xff0c;包括屏幕监控、键盘记录、文件操作等。这些功能可以帮助企业管理…

ansible安装和常见模块

文章目录 ansible的安装1.1 yum install epel-release.noarch1.2配置epel源的baseurl1.3安装ansible1.4安装ansible报错问题1.5 yum卸载 ansible的安装 ansible是由epel源提供的&#xff0c;所以需要配置epel源。要么通过配置好的baseos源直接执行“yum install epel-release.…

LabelImg使用笔记

LabelImg使用笔记 文章目录 LabelImg使用笔记一、LabelImg简介1.1、特性1.2、LabelImg的热键 二、LabelImg安装三、3种格式的使用3.1、VOC格式标注3.2、yolo格式标注3.3、json格式 四、LabelMe 和 LabelImg适用场景 一、LabelImg简介 LabelImg 是一个用于图像标注的开源工具&a…

vuepress 打包后左侧菜单链接 404 问题解决办法

背景 上周看到一本开源书 《深入架构原理与实践》&#xff0c;是基于 vuepress 搭建的&#xff0c;下载了源码&#xff0c;本地部署了一下&#xff0c;本文记录如何打包该源码遇到的路径问题及思考。 结论&#xff1a; vuepress 插件的 sideBar 的菜单路径默认是相对 / 的&am…

Python学习笔记--类的继承

七、类的继承 1、定义类的继承 说到继承&#xff0c;你一定会联想到继承你老爸的家产之类的。 类的继承也是一样。 比如有一个旧类&#xff0c;是可以算平均数的。然后这时候有一个新类&#xff0c;也要用到算平均数&#xff0c;那么这时候我们就可以使用继承的方式。新类继…

牛客出bug(华为机试HJ71)

Hj71&#xff1a;字符串通配符 描述 问题描述&#xff1a;在计算机中&#xff0c;通配符一种特殊语法&#xff0c;广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。 要求&#xff1a; 实现如下2个通配符&#xff1a; *&#xff1a;匹配0个…

318. 最大单词长度乘积

318. 最大单词长度乘积 难度: 中等 来源: 每日一题 2023.11.06 给你一个字符串数组 words &#xff0c;找出并返回 length(words[i]) * length(words[j]) 的最大值&#xff0c;并且这两个单词不含有公共字母。如果不存在这样的两个单词&#xff0c;返回 0 。 示例 1&…

新版Helix QAC 100%覆盖MISRA C++:2023

Helix QAC 2023.3预期将100%覆盖在2023年第四季度发布的新的MISRA C:2023规则。 此外&#xff0c;该版本支持更多的C20语言特性&#xff0c;并改进了Perforce Validate平台和Helix QAC与Validate的集成&#xff0c;以及其他质量改进。 编码标准覆盖率&#xff08;MISRA C:202…

JDK设置编码格式UTF-8

Windows中安装的JDK默认编码格式是GBK 需要修改为UTF-8.在系统中添加系统变量 环境变量 变量名&#xff1a;JAVA_TOOL_OPTIONS 变量值&#xff1a;-Dfile.encodingUTF-8

UE问题盘点

打包后运行时应用程序崩溃 GPU崩溃&#xff08;Timed out waiting for RenderTread after 120.00 secs&#xff09; 分析&解决&#xff1a; 像素流送模式&#xff0c;部署机无显示器无分辨率所致&#xff08;接显示器或显卡欺骗器&#xff09;项目设置Targeted RHIs为Di…

七种事务传播行为,核心只有Required默认和required_new

事务的概念&#xff1a;当一个事务方法被另一个事务方法调用时&#xff0c;这个事务方法应该如何进行事务控制。 结论&#xff1a;一般情况下&#xff0c;你就用默认的把两个事务合并成一个事务&#xff0c;只有当写日志&#xff08;事物之间不互相影响&#xff09;的时候用req…

部署kubevirt教程

前提条件 已安装&#xff1a;kubernetes集群、kubectl、docker apt install -y qemu-kvm libvirt virt-install bridge-utils 【所有节点全部安装】 virt-host-validate qemu部署kubevirt 下载kubevirt-cr.yaml和kubevirt-operator.yaml 先执行&#xff1a; Kubectl apply …