基于 GEE 计算研究区年均地表温度数据

目录

1 代码解析

2 完整代码

3 运行结果



1 代码解析

(1)定义研究区:

// 研究区的范围需要自己提前上传
var dataset = table;// 将研究区显示在中心,后面的数字为缩放等级,范围从1 - 24
Map.centerObject(dataset, 6);// 将图层添加到地图中
Map.addLayer(dataset);// 打印数据集信息
print(dataset);

(2)导入地表温度数据:

本文采用的地表温度数据为MOD11A2 V6.1地表温度产品,其包含2000年至今全球的地表温度数据,时间分辨率为8天,空间分辨率为1km。

// 定义 MODIS 地表温度影像集
var modis = ee.ImageCollection('MODIS/061/MOD11A2');// 定义起始日期
var start = ee.Date('2019-01-01');// 定义日期范围,从起始日期开始,持续 1 年
var dateRange = ee.DateRange(start, start.advance(1, 'year'));// 根据日期范围筛选影像集
var mod11a2 = modis.filterDate(dateRange);// 从筛选后的影像集中选择日间地表温度波段
var modLSTday = mod11a2.select('LST_Day_1km');

(3)转换温度单位:

由于MOD11A2 V6.1地表温度产品的单位为开尔文,所以需要将其转化成摄氏度。

// 对 modLSTday 影像集里的每张影像进行处理
var modLSTc = modLSTday.map(function(img) {// 将影像乘以 0.02// 再减去 273.15,实现温度从开尔文转换为摄氏度// 最后复制原影像的 'system:time_start' 属性return img.multiply(0.02).subtract(273.15).copyProperties(img, ['system:time_start']);
});

(4)数据可视化:

// 计算 modLSTc 影像集的均值,并将其裁剪到研究区范围内
var clippedLSTc = modLSTc.mean().clip(dataset);// 将裁剪后的均值影像添加到地图中
Map.addLayer(clippedLSTc,{// 影像显示的最小值min: 0,// 影像显示的最大值max: 35,// 影像显示的颜色映射,从蓝色到红色palette: ['blue', 'limegreen', 'yellow', 'darkorange', 'red']},// 图层名称'Mean temperature, 2019'
);

(5)导出数据:

将数据导入到Google Drive中,若有进一步处理的需要可从Google Drive中下载。

// 导出裁剪后的影像到 Google Drive
Export.image.toDrive({// 要导出的影像image: clippedLSTc,// 导出影像的描述信息description: 'LST_2019',// Google Drive 中存储影像的文件夹名称folder: 'my_folder',// 导出影像的区域范围region: dataset,// 影像的空间分辨率(单位:米)scale: 1000,// 影像的坐标参考系统crs: 'EPSG:4326',// 允许处理的最大像素数maxPixels: 1e10
});

2 完整代码

// 研究区的范围需要自己提前上传
var dataset = table;// 将研究区显示在中心,后面的数字为缩放等级,范围从1 - 24
Map.centerObject(dataset, 6);// 将图层添加到地图中
Map.addLayer(dataset);// 打印数据集信息
print(dataset);// 定义 MODIS 地表温度影像集
var modis = ee.ImageCollection('MODIS/061/MOD11A2');// 定义起始日期
var start = ee.Date('2019-01-01');// 定义日期范围,从起始日期开始,持续 1 年
var dateRange = ee.DateRange(start, start.advance(1, 'year'));// 根据日期范围筛选影像集
var mod11a2 = modis.filterDate(dateRange);// 从筛选后的影像集中选择日间地表温度波段
var modLSTday = mod11a2.select('LST_Day_1km');// 对 modLSTday 影像集里的每张影像进行处理
var modLSTc = modLSTday.map(function(img) {// 将影像乘以 0.02// 再减去 273.15,实现温度从开尔文转换为摄氏度// 最后复制原影像的 'system:time_start' 属性return img.multiply(0.02).subtract(273.15).copyProperties(img, ['system:time_start']);
});// 计算 modLSTc 影像集的均值,并将其裁剪到研究区范围内
var clippedLSTc = modLSTc.mean().clip(dataset);// 将裁剪后的均值影像添加到地图中
Map.addLayer(clippedLSTc,{// 影像显示的最小值min: 0,// 影像显示的最大值max: 35,// 影像显示的颜色映射,从蓝色到红色palette: ['blue', 'limegreen', 'yellow', 'darkorange', 'red']},// 图层名称'Mean temperature, 2019'
);// 导出裁剪后的影像到 Google Drive
Export.image.toDrive({// 要导出的影像image: clippedLSTc,// 导出影像的描述信息description: 'LST_2019',// Google Drive 中存储影像的文件夹名称folder: 'my_folder',// 导出影像的区域范围region: dataset,// 影像的空间分辨率(单位:米)scale: 1000,// 影像的坐标参考系统crs: 'EPSG:4326',// 允许处理的最大像素数maxPixels: 1e13
});

3 运行结果

研究区年均地表温度数据可视化结果
点击RUN即可下载数据

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

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

相关文章

docker compose快速部署kafka-connect集群

先部署kafka集群,启动 参考:docker compose部署kafka集群-CSDN博客 创建timezone文件,内容填写Asia/Shanghai 再部署kafka-connect集群 networks: net: external: true services: kafka-connect1: restart: always image:…

Hutool - BloomFilter:便捷的布隆过滤器实现

1. 布隆过滤器简介 布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否存在于一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,但缺点是有一定的误判率,即判断元素存在…

日常知识点之遗留问题梳理(定时器/时间轮定时器)

1:简单基础 定时器的核心知识点,对我来说就是获取当前时间和设置回调函数。 简单练习: ​ c语言通过gettimeofday 获取当前时间并进行处理 ​ 回调函数的定义(函数参数有必要适当存储) typedef void(Timerfunc)(vo…

Python + WhisperX:解锁语音识别的高效新姿势

大家好,我是烤鸭: 最近在尝试做视频的质量分析,打算利用asr针对声音判断是否有人声,以及识别出来的文本进行进一步操作。asr看了几个开源的,最终选择了openai的whisper,后来发现性能不行,又换了…

$ npx electron-forge import 一直报权限问题 resource busy or locked,

jackLAPTOP-7DHDAAL0 MINGW64 /e/project/celetron-project/my-electron-app (master) $ npx electron-forge import > Checking your system > Checking git exists > Checking node version > Checking packageManager version √ Found node22.14.0 √ Found gi…

mapbox 从入门到精通 - 目录

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀总目录1.1 ☘️ mapbox基础1.2 ☘️…

Kotlin 2.1.0 入门教程(十五)继承、重写、派生类初始化顺序

继承 所有类都有一个共同的超类 Any,对于没有声明超类型的类来说,Any 是其默认的超类: // 隐式继承自 Any。 class ExampleAny 有三个方法:equals()、hashCode() 和 toString()。因此,所有类都定义了这些方法。 默认…

sqlilabs--小实验

一、先盲注判断 ?id1 and sleep(2)-- 如果发现页面存在注点,使用时间盲注脚本进行注入 import requestsdef inject_database(url):name for i in range(1, 20): # 假设数据库名称长度不超过20low 48 # 0high 122 # zmiddle (low high) // 2while low &l…

【数字】异步FIFO面试的几个小问题与跨时钟域时序约束

入门数字设计的时候,跨时钟域的数据处理是绕不开的课题,特别是多比特数据跨时钟域时,都会采用异步FIFO的方法。 异步FIFO中涉及较多的考点这里记录几个以供大家参考。 1. 异步FIFO的空满判断分别在哪个域? 根据异步FIFO的结构&…

浅谈Java Spring Boot 框架分析和理解

Spring Boot是一个简化Spring开发的框架,它遵循“约定优于配置”的原则,通过内嵌的Tomcat、Jetty或Undertow等容器,使得开发者能够快速构建独立运行的、生产级别的基于Spring框架的应用程序。Spring Boot包含了大量的自动配置功能&#xff0c…

算法06-回溯算法

一、回溯算法详解 回溯算法是一种通过逐步构建解决方案来解决问题的算法。它通常用于解决组合问题、排列问题、子集问题等。回溯算法的核心思想是“试错”,即在每一步尝试所有可能的选项,如果发现当前选择无法达到目标,就回退到上一步&#…

RabbitMQ学习—day2—安装

目录 普通Linux安装 安装RabbitMQ 1、下载 2、安装 3. Web管理界面及授权操作 Docker 安装 强力推荐学docker,使用docker安装 普通Linux安装 安装RabbitMQ 1、下载 官网下载地址:https://www.rabbitmq.com/download.html(opens new window) 这…

降本增效 - VGF 构建轻量高性能日志管理平台

VFG 技术架构 Filebeat 接收Syslog ,并进行日志分段,VictoriaLogs 持久化存储日志 ,Grafana 可视化、数据查询、告警、数据导出。 为什么要用VictoriaLogs ? 与Elasticsearch /Grafana Loki相比几十倍的CPU/内存/存储资源占用的…

初识camel智能体(一)

同目录下配置环境变量.env,内容如下, apikey从魔搭社区获取 QWEN_API_KEY4ff3ac8f-aebc******** 先上干货代码,主代码如下: from colorama import Forefrom camel.societies import RolePlaying from camel.utils import prin…

介绍 Liquibase、Flyway、Talend 和 Apache NiFi:选择适合的工具

在现代软件开发中,尤其是在数据库管理和数据集成方面,选择合适的工具至关重要。本文将介绍四个流行的工具:Liquibase、Flyway、Talend 和 Apache NiFi,分析它们的应用、依赖以及如何选择适合的工具。 1. Liquibase 简介&#xff…

Docker使用指南与Dockerfile文件详解:从入门到实战

Docker使用指南与Dockerfile文件详解:从入门到实战 文章目录 **Docker使用指南与Dockerfile文件详解:从入门到实战****引言****第一部分:Docker 核心概念速览****1. Docker 基础架构****2. Docker 核心命令****第二部分:Dockerfile 文件深度解析****1. Dockerfile 是什么?…

Qt工作总结03 <qSort按某一属性进行排序>

1. 代码样例 QList<QGraphicsTextItem *> Lst;qSort(Lst.begin(),Lst.end(),[](const QGraphicsTextItem *itemA,const QGraphicsTextItem *itemB) {return itemA->toPlainText().toDouble() < itemB->toPlainText().toDouble(); }); 2. 参考 QList 按结构体…

深度学习|表示学习|Instance Normalization 全面总结|26

如是我闻&#xff1a; 1. Instance Normalization&#xff08;IN&#xff09; Instance Normalization&#xff08;IN&#xff09;最早由 Ulyanov et al.&#xff08;2017&#xff09; 提出&#xff0c;主要用于 风格迁移&#xff08;Style Transfer&#xff09; 任务。它的核…

如何保持 mysql 和 redis 中数据的一致性?PegaDB 给出答案

MySQL 与 Redis 数据保持一致性是一个常见且复杂的问题&#xff0c;一般来说需要结合多种策略来平衡性能与一致性。 传统的解决策略是先读缓存&#xff0c;未命中则读数据库并回填缓存&#xff0c;但方式这种维护成本较高。 随着云数据库技术的发展&#xff0c;目前国内云厂商…

探索ELK 的魅力

在大数据时代&#xff0c;海量日志和数据的收集、存储、处理与可视化分析变得越来越重要。而 ELK 堆栈&#xff0c;由 Elasticsearch、Logstash、Beats 和 Kibana 组成&#xff0c;正是一个强大的开源解决方案&#xff0c;帮助开发者和运维人员高效管理和分析日志数据。本文将详…