GEE入门篇|遥感专业术语(实践操作2):空间分辨率(Spatial Resolution)

news2024/9/22 19:29:25

目录

空间分辨率(Spatial Resolution)

1.MODIS(搭载在Aqua 和 Terra 卫星上)

2. TM(搭载在早期LandSat卫星上)

3.MSI(搭载在在Sentinel-2 卫星上)

4.NAIP


空间分辨率(Spatial Resolution)

        空间分辨率与单个像素覆盖的地球表面面积有关。 它通常以线性单位表示,用于方形像素的单边:例如,我们通常说 Landsat 7 具有30 m彩色图像,这意味着每个像素边长为 30 m,覆盖地球表面的总面积为 900㎡。 空间分辨率通常也称为尺度,正如我们在本章中打印该值时所看到的那样。 当您在地球表面查看图像时,给定数据集的空间分辨率会极大地影响图像及其信息的外观。

        接下来,我们将可视化来自以不同空间分辨率捕获数据的多个传感器的数据,以比较不同像素大小对图像中的信息和细节的影响。 我们将从每个 ImageCollection 中选择一个图像进行可视化。 为了查看图像,我们将它们分别绘制为彩色红外图像,这是一种使用红外、红色和绿色波段的伪彩色图像。 当您浏览练习的这一部分时,放大和缩小以查看像素大小和图像大小的差异。

1.MODIS(搭载在Aqua 和 Terra 卫星上)

        正如前面内容中所讨论的,MODIS采集的红外、红、绿波段常用分辨率为500m,这意味着每个像素的边长为 500m,因此一个像素代表地球表面 0.25平方千米的面积。 使用以下代码将地图置于旧金山机场的中心,缩放级别为 16。

//
// Explore spatial resolution
//
// Define a region of interest as a point at San Francisco airport.
var sfoPoint = ee.Geometry.Point(-122.3774, 37.6194);
// Center the map at that point.
Map.centerObject(sfoPoint, 16);

        让我们使用上一节中学到的知识来搜索 MODIS 数据、获取相关信息并将其导入到 Earth Engine 工作区中。 首先在地球引擎搜索栏中搜索“MODIS 500”(图1)。

图1 使用搜索栏 搜索MODIS数据集

        使用它导入“MOD09A1.061 Terra Surface Reflectance 8-day Global500 m”图像集合,导入的默认名称出现在脚本的顶部, 将导入的名称更改为 mod09(图2)。 探索新数据集时,您可以通过阅读数据集的摘要文档(称为元数据)来查找该集中图像中的波段名称。 在此数据集中,彩色红外图像的三个波段是“sur_refl_b02”(红外)、“sur_refl_b01”(红色)和“sur_refl_b04”(绿色)。 

图2 重命名导入的MODIS数据集 

// MODIS
// Get an image from your imported MODIS MYD09GA collection.
var modisImage = mod09.filterDate('2020-02-01', '2020-03-01').first();
// Use these MODIS bands for near infrared, red, and green,respectively.
var modisBands = ['sur_refl_b02', 'sur_refl_b01','sur_refl_b04'];
// Define visualization parameters for MODIS.
var modisVis = {
    bands: modisBands,
    min: 0,
    max: 3000
    };
// Add the MODIS image to the map.
Map.addLayer(modisImage, modisVis, 'MODIS');

        在地图窗口中,您现在应该看到类似这样的内容(图3)。

图3 查看旧金山机场的 MODIS 图像

        您可能会惊讶地发现通常称为“正方形”的像素显示为平行四边形。 像素的形状和方向由数据集的“投影”以及我们查看它们的投影控制。大多数用户不必非常关心 Earth Engine 中的不同投影,它会自动在不同的投影之间传输数据。

        让我们查看相对于地面物体的像素大小。 单击地图窗口右上角的卫星,打开卫星底图以查看高分辨率数据进行比较。 然后,降低图层的不透明度:使用图层滑块在图层管理器中设置不透明度。 结果将如图 4 所示。

图 4 使用透明度查看 MODIS 像素大小与旧金山机场高分辨率图像的关系 

        通过运行以下代码打印像素的大小(以米为单位):

// Get the scale of the data from the NIR band's projection:
var modisScale = modisImage.select('sur_refl_b02').projection().nominalScale();
print('MODIS NIR scale:', modisScale);

        在那次调用中,我们在访问 MODIS NIR 波段的投影信息后使用了nominalScale 函数。 该函数以适合打印到屏幕的格式从投影信息中提取空间分辨率。 由于 MODIS 数据的正弦投影以及像素距天底(即卫星直接指向地球表面的位置)的距离,nominalScale 函数返回的值略低于规定的 500 m 分辨率(图5)。

图5  nominalScale 函数返回的值

2. TM(搭载在早期LandSat卫星上)

        Landsat 4 和 5 上搭载了专题制图仪(TM) 传感器。TM 数据已处理为 30 m 的空间分辨率,并在 1982 年至 2012 年期间处于活动状态。搜索“Landsat 5 TM”并导入名为“USGS Landsat 5 TM Collection 2 Tier 1 Raw Scenes”的结果。 以与重命名 MODIS 集合相同的方式,重命名为tm。在此数据集中,彩色红外图像的三个波段称为“B4”(红外)、“B3”(红色)和“B2”(绿色)。 现在让我们可视化机场的 TM 数据并将其与 MODIS 数据进行比较。 请注意,我们可以将可视化参数定义为变量(如前面的代码片段所示),也可以将它们放在 Map.addLayer 函数中的大括号中(如此代码片段所示)。当您运行此代码时,TM 图像将 展示。 请注意与 MODIS 图像相比,屏幕上显示的像素多了多少(图6)。

// TM
// Filter TM imagery by location and date.
var tmImage = tm.filterBounds(Map.getCenter()).filterDate('1987-03-01', '1987-08-01').first();
// Display the TM image as a false color composite.
Map.addLayer(tmImage, {
    bands: ['B4', 'B3', 'B2'],
    min: 0,
    max: 100
    }, 'TM');

 图6 可视化来自 Landsat 5 卫星的 TM 图像

        正如我们对 MODIS 数据所做的那样,让我们检查一下比例。 比例尺以米表示:

// Get the scale of the TM data from its projection:
var tmScale = tmImage.select('B4').projection().nominalScale();
print('TM NIR scale:', tmScale);

 图6  nominalScale 函数返回的值

3.MSI(搭载在在Sentinel-2 卫星上)

        多光谱仪器 (MSI) 搭载在欧洲航天局运营的 Sentinel-2 卫星上。 红色、绿色、蓝色和近红外波段以 10 m 分辨率捕获,而其他波段以 20 和 30 m 捕获。 Sentinel-2A 卫星于 2015 年发射,2B 卫星于 2017 年发射。在搜索栏中搜索“Sentinel 2 MSI”,并将“Sentinel-2 MSI:MultiSpectral Instrument,Level-1C”数据集添加到您的工作区 。 将其命名为 MSI。 在此数据集中,彩色红外图像的三个波段称为“B8”(红外)、“B4”(红色)和“B3”(绿色)。 

// MSI
// Filter MSI imagery by location and date.
var msiImage = msi.filterBounds(Map.getCenter())
.filterDate('2020-02-01', '2020-04-01').first();
// Display the MSI image as a false color composite.
Map.addLayer(msiImage, {
    bands: ['B8', 'B4', 'B3'],
    min: 0,
    max: 2000
}, 'MSI');

         使用不透明度滑块将 MSI 影像与 TM 和 MODIS 影像进行比较。 请注意您可以看到机场航站楼和周围景观的更多细节。 10 m 空间分辨率意味着每个像素覆盖地球表面约 100㎡,比 TM 影像(900㎡)或 MODIS 影像(0.25 km²)小得多(图7)。 显示的 MSI 图像也比我们见过的其他仪器要小。 缩小直到您可以看到整个旧金山湾,MODIS 图像覆盖了整个地球,TM 图像覆盖了整个旧金山湾和蒙特雷以南的周边地区,而 MSI 图像捕获的区域要小得多(图8)。

图7 可视化MSI图像 

图8 MODIS、Landsat 5(TM 仪器)和 Sentinel-2(MSI 仪器)数据集的图像大小可视化 

        检查MSI传感器的分辨率(以米为单位),如图9所示:

// Get the scale of the MSI data from its projection:
var msiScale = msiImage.select('B8').projection().nominalScale();
print('MSI scale:', msiScale);

图9 MSI传感器的分辨率

4.NAIP

        国家农业图像计划 (NAIP) 是美国政府的一项计划,旨在使用机载传感器获取美国大陆的图像, 大约每三年收集一次每个州的数据。 图像的空间分辨率为 0.5–2 m,具体取决于州和收集的日期。 搜索“naip”并导入“NAIP:国家农业影像计划”的数据集。 将导入命名为 naip,在此数据集中,彩色红外图像的三个波段称为“N”(红外)、“R”(红色)和“G”(绿色)。 

/ NAIP
// Get NAIP images for the study period and region of interest.
var naipImage = naip.filterBounds(Map.getCenter())
.filterDate('2018-01-01', '2018-12-31')
.first();
// Display the NAIP mosaic as a color-IR composite.
Map.addLayer(naipImage, {
  bands: ['N', 'R', 'G']
  }, 'NAIP');

         NAIP 图像比 Sentinel-2 MSI 图像在空间上更加详细。 然而,我们可以看到我们的一张 NAIP 图像并未完全覆盖旧金山机场。 如果您愿意,可以缩小以查看 NAIP 图像的边界,就像我们对 Sentinel-2 MSI 图像所做的那样(图 10)。并获取比例,就像我们之前所做的那样。

图10 旧金山机场上空的 NAIP 彩色红外合成图 

// Get the NAIP resolution from the first image in the mosaic.
var naipScale = naipImage.select('N').projection().nominalScale();
print('NAIP NIR scale:', naipScale);

        我们检查的每个数据集都有不同的空间分辨率。 通过比较空间中同一位置的不同图像,您可以看到 MODIS 大像素、TM (Landsat 5) 和 MSI (Sentinel-2) 中型像素以及 NAIP 小像素之间的差异,大像素的数据集也称为“粗分辨率”,中等像素的数据集也称为“中分辨率”,小像素的数据集也称为“精细分辨率”。

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

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

相关文章

Unity中.Net与Mono的关系

什么是.NET .NET是一个开发框架,它遵循并采用CIL(Common Intermediate Language)和CLR(Common Language Runtime)两种约定, CIL标准为一种编译标准:将不同编程语言(C#, JS, VB等)使用各自的编译器,按照统…

C++ STL vector详解

1. vector简介 template<class T, class Alloc allocator<T>> class vector; vector是一个可以动态增长的数组&#xff0c;T是要存储的元素类型。vector可以像数组一样&#xff0c;用下标[]来访问元素&#xff0c;如&#xff1a; int arr[] {1,2,3,4}; for (i…

[极客挑战2019]HTTP

这道题考察的是http请求头字段的含义和使用&#xff1b; 具体如下 Referer:来源地址 User-Agent:客户端配置信息&#xff1a;浏览器类型、版本、系统类型等 X-Forwarded-For:代理地址&#xff0c;即数据发出的地址 开始解题&#xff1a;&#xff08;对我这初学者真的烧脑&a…

【机器学习】特征工程之特征选择

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

抖音视频评论数据提取软件|抖音数据抓取工具

一、开发背景&#xff1a; 在业务需求中&#xff0c;我们经常需要下载抖音视频。然而&#xff0c;在网上找到的视频通常只能通过逐个复制链接的方式进行抓取和下载&#xff0c;这种操作非常耗时。我们希望能够通过关键词自动批量抓取并选择性地下载抖音视频。因此&#xff0c;为…

Pycharm服务器配置与内网穿透工具结合实现远程开发的解决方法

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…

STM32CubeMX FOC工程配置(AuroraFOC)

一. 简介 哈喽&#xff0c;大家好&#xff0c;今天给大家带来基于AuroraFOC开发板的STM32CubeMX的工程配置&#xff0c;主要配置的参数如下: 1. 互补PWM输出 2. 定时器注入中断ADC采样 3. SPI配置 4. USB CDC配置 5. RT Thread配置 大家如果对这几部分感兴趣的话&#xff0c…

C语言——实用调试技巧——第2篇——(第23篇)

坚持就是胜利 文章目录 一、实例二、如何写出好&#xff08;易于调试&#xff09;的代码1、优秀的代码2、示范&#xff08;1&#xff09;模拟 strcpy 函数方法一&#xff1a;方法二&#xff1a;方法三&#xff1a;有弊端方法四&#xff1a;对方法三进行优化assert 的使用 方法五…

浅析DPDK内存管理:Mempool

文章目录 前言Mempool工作机制Mempool数据结构rte_mempool_opsMempool操作接口rte_mempool_create&#xff1a;创建Mempoolrte_mempool_get&#xff1a;申请对象rte_mempool_put&#xff1a;释放对象 相关参考 前言 DPDK提供了一套内存池管理机制&#xff0c;以提供高效分配固…

了解人工智能的13个细分领域

人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;作为当今最热门和前沿的技术之一&#xff0c;已经在各种领域发挥着越来越重要的作用。随着人工智能技术的不断进步和应用&#xff0c;AI的细分领域也越来越多。目前&#xff0c;根据AI的应用领域和特…

flink源码分析 - 获取调用位置信息

flink版本: flink-1.11.2 调用位置: org.apache.flink.streaming.api.datastream.DataStream#flatMap(org.apache.flink.api.common.functions.FlatMapFunction<T,R>) 代码核心位置: org.apache.flink.api.java.Utils#getCallLocationName() flink算子flatmap中调用了一…

【深度学习笔记】3_6 代码实现softmax-regression

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 3.6 softmax回归的从零开始实现 这一节我们来动手实现softmax回归。首先导入本节实现所需的包或模块。 import torch import torchvision import numpy as np import…

神经网络系列---权重初始化方法

文章目录 权重初始化方法Xavier初始化&#xff08;Xavier initialization&#xff09;Kaiming初始化&#xff0c;也称为He初始化LeCun 初始化正态分布与均匀分布Orthogonal InitializationSparse Initializationn_in和n_out代码实现 权重初始化方法 Xavier初始化&#xff08;X…

java面试题之SpringMVC篇

Spring MVC的工作原理 Spring MVC的工作原理如下&#xff1a; DispatcherServlet 接收用户的请求找到用于处理request的 handler 和 Interceptors&#xff0c;构造成 HandlerExecutionChain 执行链找到 handler 相对应的 HandlerAdapter执行所有注册拦截器的preHandler方法调…

Java知识点一

hello&#xff0c;大家好&#xff01;我们今天开启Java语言的学习之路&#xff0c;与C语言的学习内容有些许异同&#xff0c;今天我们来简单了解一下Java的基础知识。 一、数据类型 分两种&#xff1a;基本数据类型 引用数据类型 &#xff08;1&#xff09;整型 八种基本数…

计算机网络-网络互联与互联网(一)

1.常用网络互联设备&#xff1a; 1层物理层&#xff1a;中继器、集线器2层链路层&#xff1a;网桥、交换机3层网络层&#xff1a;路由器、三层交换机4层以上高层&#xff1a;网关 2.网络互联设备&#xff1a; 中继器Repeater、集线器Hub&#xff08;又叫多端口中继器&#xf…

一分钟 由浅入深 学会Navigation

目录 1.官网正式概念 1.1 初认知 2.导入依赖 2.1 使用navigation 2.2 safe Args插件-> 传递数据时用 3.使用Navigation 3.1 搭建初始框架 3.2 确定action箭头的属性 3.3 为Activity添加NavHostFragment控件 3.4 NavController 管理应用导航的对象 3.5 数据传递(单…

leetcode单调栈

739. 每日温度 请根据每日 气温 列表&#xff0c;重新生成一个列表。对应位置的输出为&#xff1a;要想观测到更高的气温&#xff0c;至少需要等待的天数。如果气温在这之后都不会升高&#xff0c;请在该位置用 0 来代替。 例如&#xff0c;给定一个列表 temperatures [73, …

基于SpringBoot的停车场管理系统

基于SpringBootVue的停车场管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 前台首页 停车位 个人中心 管理员界面 摘要 摘要&#xff1a;随着城市化进程的…

基于django的购物商城系统

摘要 本文介绍了基于Django框架开发的购物商城系统。随着电子商务的兴起&#xff0c;购物商城系统成为了许多企业和个人创业者的首选。Django作为一个高效、稳定且易于扩展的Python web框架&#xff0c;为开发者提供了便捷的开发环境和丰富的功能模块&#xff0c;使得开发购物商…