【GEE】2、探索数据集
1简介
在本单元中,我们将讨论以下概念:
Google 地球引擎中可用的潜在数据来源。
通过生态示例显示的数据集采样用例。
如何使用 Google 地球引擎访问重要的元数据。
2背景
要将遥感集成到您的研究和分析中,学习如何解析 Google 地球引擎上可用的大量栅格数据集非常重要。了解这些数据的分类方式有助于开始此过程。如果您完全不知道从哪里开始,这里有一个非常有用的资源来细读Google 地球引擎数据目录中可用的一般栅格类别。对 Google 地球引擎中可用的所有栅格执行各种级别的数据清理和图像预处理,但对于本模块,我们将专注于更广泛的探索,为一些示例生态应用程序寻找合适的数据集。更多关于预处理差异和分析的信息可以在模块 5中找到。
2.1数据类别:气候和天气
这些是传达有关温度、降水、蒸散以及其他大气和气象现象的信息的栅格。这些数据集通常用于帮助了解基于适当栖息地的衍生范围的物种或群落的生态位。重要的是要了解其中一些是通过插值方法创建的,该方法估计监测站点之间地理空间中的值,而不是仅提供直接测量值的许多其他栅格。
示例集合:CHIRPS
该数据集包含各种气候层,包括温度和降水,由俄勒冈州立大学的 PRISM 小组开发和监测。当我们试图在景观层面了解一个物种或一组物种的潜在生态位时,对气候因素的空间理解是无价的。

使用 CHIRPS 数据集的 2018 年 5 月中非月降雨总量。
2.2数据类别:影像
在该组中,栅格捕获与被动收集的太阳能有关的景观特征,通常提供有关地面上真实世界元素(包括植物和土壤)的增强信息。需要注意的是,图像栅格通常被分成许多子图像(波段),这些子图像(波段)对应于特定的光波长范围。许多图像数据集用于创建可通过预建集合访问的光谱索引(第8单元中对此进行了更多介绍)。
收集示例:MODIS
MODIS(中分辨率成像光谱仪)程序从两个星载传感器 Aqua 和 Terra 以及两者的组合收集数据。除了表面反射率数据(包括积雪、地表温度、叶面积指数和总初级生产力)之外,Google 地球引擎上还提供了许多衍生的 MODIS 产品。尽管其空间分辨率比其他一些影像数据集更粗糙,但许多 MODIS 产品具有较高的时间分辨率,从而导致时间序列密集。同一地理区域上的图像之间的窗口低至八天。

MODIS 衍生的日本北部北海道岛叶面积指数预测。
2.3数据类别:地球物理
该组中的栅格涵盖范围广泛的地图类型。海拔和地形索引图对于定义物种栖息地的环境限制很有用,而土地覆盖图是方便的、预先打包的图层,可用作分类数据或与您自己生成的图像分类进行比较(更多内容见第7单元)。
示例集合:NED
国家高程数据集 (NED) 是一个高质量的数字高程模型 (DEM),它横跨美国大陆以及阿拉斯加和夏威夷的部分地区。该数据集由来自美国各地的不同高程数据编译而成,并经过编辑以确保一致的空间分辨率、高程单位和坐标系。NED 等高程图像可用于创建地形指数、为洪水模型提供信息或对地貌特征进行分类。
华盛顿和爱达荷州边界上的美国国家高程数据集。
3图像采集探索
现在我们已经了解了我们可以使用的数据集的深度和广度,我们可以花点时间详细探索一个集合。我们将探索 Google Earth Engine 中更独特的可用数据集之一:MODIS Daily Snow Cover 集合。这些数据使我们能够查看一年中任何一天给定像素的积雪百分比。这些数据还可以创建每周、每月和每年的平均值,并已在以前的研究中用于分析和监测积雪深度、积雪范围和融雪。
3.1查找和加载集合
要开始探索 MODIS 积雪数据集,您可以通过以下两种方式之一加载集合。首先,使用搜索栏,开始输入“MYD10A1.006 Aqua Snow Cover Daily Global 500m”。

在搜索栏中输入数据集名称的结果。
如果我们点击数据集的名称,我们会看到一个弹出窗口,其中包含一个“导入”按钮(以红色突出显示)。单击此按钮将自动将数据集加载到脚本工作区中。
单击“导入”按钮(以红色突出显示)将加载 MODIS 积雪集合。
虽然使用导入按钮很方便,但加载数据集的命令实际上并未写入我们的脚本中。导入集合的另一种方法是复制它们的“ImageCollection ID”(在下面突出显示)并将速记名称粘贴到您的脚本中,如下所示:
// Load the image collection.
var dataset = ee.ImageCollection('MODIS/006/MYD10A1');
3.2快速地理搜索
现在我们已经找到并加载了我们的图像集合,运行下面的脚本来快速加载一些示例数据:
// Load the image collection.
var dataset = ee.ImageCollection('MODIS/006/MYD10A1');// Limit the collection date range to 2018.
var dataset = dataset
.filterDate('2018-01-01', '2018-12-31');// Select the snow cover layer and compute the mean.
var snowCover = dataset
.select('NDSI_Snow_Cover')
.mean();// Define the visualization parameters and add the collection to the map.
var snowCoverVis = {min: 0.0, max: 100.0, palette: ['black', '0dffff', '0524ff', 'ffffff']};
Map.addLayer(snowCover, snowCoverVis, 'Snow Cover');
随意放大到各个全球位置,以比较世界不同地区的数据。一个简单的方法就是使用搜索栏。输入“阿留申群岛”或“冰岛”或“尼泊尔”,您将看到潜在地理位置的列表。单击任何名称以自动重定向到该位置。请记住,您的脚本可能包含缩放到特定地理位置的代码。所以要小心重新点击那个运行按钮!
在搜索栏中,输入“尼泊尔”并放大以查看与此类似的图像。
3.3探索集合属性
找到并加载我们的集合后,了解对使用遥感数据感兴趣的生态学家可用的图像集合元数据非常重要。元数据对于我们如何确定给定特定研究系统或感兴趣区域的图像或图像集合的适当性很重要。以下主题讨论了在 Google 地球引擎中图像集合的元数据中发现的一些基本信息。
3.3.1空间分辨率
研究生态过程的最重要方面之一是对规模的理解。在遥感的背景下,这被称为分辨率。具体来说,在栅格数据集中,这是像素大小的基本欧几里德测量值,通常报告为栅格中像素一侧的长度。了解空间分辨率与生态应用的物理规模之间的关系很重要,可以快速帮助您缩小对适当数据集的搜索范围。
要查找我们数据集的空间分辨率,请再次键入数据集名称并单击搜索栏中的结果(即“MYD10A1.006 Aqua Snow Cover Daily Global 500m”)。有时,如果栅格中的所有波段都具有相同的分辨率,则此信息(以及比例单位)将显示在标题下。如果数据集中有多个分辨率,通常会有一个表格指示每个波段的空间分辨率。

MODIS 数据集的空间分辨率,以米为单位。这是一个相对较低的分辨率,更适合区域或全球分析。
3.3.2时间分辨率
在遥感领域,有许多数据集代表了在数天、数月或数年内分析和解释值的机会。时间分辨率是我们描述传感器重访周期的方式。如果一颗卫星有一个既定的轨道模式,我们可以确定预计它经过同一地理位置的日期甚至时间。例如,Landsat 计划在两周内重新访问同一位置,数据采集之间的特定时间分辨率为 16 天。Google Earth Engine 中可用的一些数据集可用于每日测量(即 MODIS),而其他数据集可能是每月(即 WorldClim)。
确定您研究区域中可用/可用图像的日期范围是否与您的观察结果一致,或者计算有多少图像落在您的 AOI + 日期范围内,这可能是收集数据以进行潜在分析的重要第一步。从上面添加我们的脚本和下面的代码,我们将打印出这些信息。要查找您自己的坐标,请单击“检查器”选项卡,然后单击地图。然后检查员将获取该点的坐标(下面以红色突出显示)。

在“检查器”选项卡处于活动状态的情况下,单击地图可为我们提供纬度和经度坐标配对。
您的结果将根据您使用的坐标而有所不同(尝试几个不同的坐标!)但以下代码应将记录总数(“计数”)和记录的日期范围打印到“控制台”选项卡。您的结果可能会因您的坐标而异,但格式应类似于下图。
var dataset = dataset
.filterBounds(ee.Geometry.Point(27.5487, 41.2568)); // Use your own coordinates here!// Print the number of images in the collection
print('Count: ', dataset.size());// Print the whole date range of the filtered collection.
var range = dataset.reduceColumns(ee.Reducer.minMax(), ["system:time_start"])
print('Date range: ', ee.Date(range.get('min')), ee.Date(range.get('max')));

Google Earth Engine 的“控制台”选项卡中的输出,指示我们集合中的图像数量以及它们所涵盖的日期范围。
4结论
总之,我们刚刚开始探索使用 Google 地球引擎触手可及的海量数据。我们还介绍了一些重要的元数据,它们可以增强您的搜索并帮助确定您的图像集是否已准备好进行分析。有可能适合您的研究领域的数据集就在那里。但是,如果您找不到合适的,请不要担心!只需跳至第 4 单元,了解如何将您自己的数据引入 Google 地球引擎生态系统。
4.1完整的图像采集探索脚本
// Load the image collection.
var dataset = ee.ImageCollection('MODIS/006/MYD10A1');// Limit the collection date range to 2018.
var dataset = dataset
.filterDate('2018-01-01', '2018-12-31');// Select the snow cover layer and compute the mean.
var snowCover = dataset
.select('NDSI_Snow_Cover')
.mean();// Define the visualization parameters and add the collection to the map.
var snowCoverVis = {min: 0.0, max: 100.0, palette: ['black', '0dffff', '0524ff', 'ffffff']};
Map.addLayer(snowCover, snowCoverVis, 'Snow Cover');var dataset = dataset
.filterBounds(ee.Geometry.Point(27.5487, 41.2568)); // Use your own coordinates here!// Print the number of images in the collection
print('Count: ', dataset.size());// Print the whole date range of the filtered collection.
var range = dataset.reduceColumns(ee.Reducer.minMax(), ["system:time_start"])
print('Date range: ', ee.Date(range.get('min')), ee.Date(range.get('max')));
相关文章:
【GEE】2、探索数据集
1简介 在本单元中,我们将讨论以下概念: Google 地球引擎中可用的潜在数据来源。 通过生态示例显示的数据集采样用例。 如何使用 Google 地球引擎访问重要的元数据。 2背景 要将遥感集成到您的研究和分析中,学习如何解析 Google 地球引擎上…...
开发一款直播弹幕游戏需要多少钱?
开发一款直播弹幕游戏需要多少钱?有好多朋友在咨询过弹幕游戏的开发价格后,都会比较吃惊,一款体量这么小的游戏为什么动辄就要几万块甚至十几万? 我来给你们说分析一下原因,这种游戏如果脱离开直播间,可以…...
STM32F103C8T6第一天:认识STM32 标准库与HAL库 GPIO口 推挽输出与开漏输出
1. 课程概述(297.1) 课程要求:C语言熟练,提前学完 C51 2. 开发软件Keil5的安装(298.2) 开发环境的安装 编程语言:C语言需要安装的软件有两个:Keil5 和 STM32CubeMX Keil5 的安装…...
selenium元素定位 —— 提高篇 CSS定位元素
CSS (Cascading Style Sheets) 是一种用于渲染 HTML 或者 XML 文档的语言,CSS 利用其选择器可以将样式属性绑定到文档中的指定元素。理论上说无论一个元素定位有多复杂都能够定位到元素。 因为不同的浏览器 XPath 引擎不同甚至没有自己的 Xpath 引擎,这…...
隔离和非隔离电源的区别
一、电源隔离与非隔离 电源的隔离与非隔离,主要是针对开关电源而言,业内比较通用的看法是: 1、隔离电源:电源的输入回路和输出回路之间没有直接的电气连接,输入和输出之间是绝缘的高阻态,没有电流回路。 …...
C语言自定义数据类型
一、构造数据类型 构造数据类型:用户自己建立的数据类型(自定义数据类型) C语言中的自定义数据类型有:数组类型、结构体类型、共用体类型和枚举类型。 1.1. 结构体 C语言允许用户根据需要自己建立的由不同类型数据组成的组合型…...
SoftwareTest5 - 你就只知道功能测试吗 ?
你就只知道功能测试吗 ? 一 . 按照测试对象划分1.1 文档测试1.2 可靠性测试1.3 容错性测试1.4 安装卸载测试1.5 内存泄漏测试1.6 弱网测试 二 . 按是否查看代码划分2.1 黑盒测试2.2 白盒测试2.3 灰盒测试 三 . 按照开发阶段划分3.1 单元测试3.2 集成测试3.3 冒烟测试3.4 系统测…...
Uniapp 中,能够同时兼容H5、web、app、微信小程序的引入高德地图的语法格式
在 Uniapp 中,可以通过使用 uni-app 统一的 API 来同时兼容 H5、web、App 和微信小程序,而引入高德地图则有以下两种语法格式供选择: 使用 Vue.js 的语法格式: <template><view><map :longitude"longitude&…...
基于nodejs+vue网上鲜花销售系统
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
stm32 ETH
1 How do I create a project for STM32H7 with Ethernet and LwIP stack working? STM32 LWIP 接收大数据包导致Hardfault问题解决记录 Trying to get Ethernet, LWIP and FreeRTOS working on the STM32H745. Testing on the NUCLEO-H745ZI-Q using FW_1.7 and the STM32Cub…...
【深度学习基础】Pytorch框架CV开发(2)实战篇
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
C语言--输出1-100以内同时能被3和5整除的数
首先我们要有1-100的数字. for(int i1;i<100;i) 如何表示同时能被3和5同时整除呢? 如果这个数i,i%30&&i%50,那么这个数就可以同时被3和5整除 if(i%30&&i%50) 最后输出即可 完整代码: #include<stdio.h> void Sh…...
Linux--jdk、tomcat、环境配置,mysql安装、后端项目搭建
前言 上期我们讲到了安装linux虚拟机,这期我们来讲一下如何使用xshell和xftp在linux系统上搭建我们的单体项目 一、软件的传输 1.1 xftp Xftp是一款功能强大的文件传输软件,用于在本地主机和远程服务器之间进行快速、安全的文件传输。它是由南京帆软科…...
NOIP2023模拟10联测31 迷路
题目大意 你在野外迷路了, 你手里只有一张你当前所在的区域的地图。地图将整个区域表示为 n m n\times m nm的网格,你就在其中的某一个格子里。每个格子里要么有树,要么就什么都没有。地图显示了每个格子中是有树还是空的。当然,地图只记载…...
React Query + Redux toolkit 封装异步请求
当你需要进行 Redux 和 React Query 的组合时,除了常规的 Redux 方法(例如手动派发 action 和更新 state),还可以使用 createSlice 和 React Query 进行组合,这可以让你更方便地封装异步请求和更容易地更新状态。 使用…...
CSS基础知识点速览
1 基础认识 1.1 css的介绍 CSS:层叠样式表(Cascading style sheets) CSS作用: 给页面中的html标签设置样式 css写在style标签里,style标签一般在head标签里,位于head标签下。 <style>p{color: red;background-color: green;font-size…...
Windows 时间服务配置和配置工具
文章目录 Windows 时间服务保留Portw32tm 命令配置 Windows 时间服务配置客户端使用两个时间服务器配置客户端自动从域源同步时间检查客户端时间配置使用本地组策略编辑器配置Windows 时间注册表参考推荐阅读 Windows 时间服务 (W32Time) 为 Active Directory 域服务 (AD DS) 管…...
cmake find_package、引用GDAL 初步学习
上次的源码的CMakeLists.txt文件里有 find_package(GDAL REQUIRED) 这句; 从字面意思看此源码需要GDAL库; 查了一下,find_package 指令的基本功能是查找第三方库,并返回其细节; 我当前GDAL安装在D:\GDAL; 先把它的CMakeLists.txt重命名为别的,不使用; 新建一个C…...
紫光同创FPGA编写的8画面分割器演示
适用于板卡型号: 紫光同创PGL50H开发平台(盘古50K开发板) 图(1) 盘古50K开发板 TOP 层逻辑框 图(2) TOP层逻辑框 video_copy_ux 将输入的一路RGB888信号复制成8份,每份画面内容相同,各路颜色有些差异: 第…...
openLayers--绘制多边形、获取视图的中心点、获取当前地图等级、设置地图等级
openLayers绘制多边形、获取视图中心点 前言效果图1、导入LineString2、创建添加多边形3、定义多变形样式4、获取当前视图的中心点5、获取当前视图等级6、设置地图等级 前言 上一篇文章在vue项目中绘制了openlayers绘制了地图和标记点,本篇文章讲解openlayers绘制多…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
