当前位置: 首页 > news >正文

(未完)超超超详版Sentinel2-L1C 数据获取及预处理 | hello,GEE!

2025年11月5号傍晚编者注:

        已完成对GEE和哨兵数据的介绍,今晚应该无法继续推进,待明后考试结束再来补上!(小编硬盘烧过一次之后的习惯,万事不过夜哈哈哈哈哈)

前言

        初探GEE🏄

        这一篇小编从零开始讲起,首先跟大家介绍GEE是什么、能干什么,先解决认识层面的问题。然后跟大家介绍全文将基于的数据:Sentinel-2 L1C,了解数据什么样的,我们要用GEE来做怎样的处理,得到什么样的结果。第三第四部分就是超超超详细且完整的在GEE获取Sentinel-2L1C并完成云掩膜处理的流程及代码。

一、认识GEE

        Google Earth Engine 是一款用于大规模地理空间分析的 Google Cloud 产品。它将 PB 级的卫星图像和地理空间数据集目录与行星级计算相结合,以加快环境研究和应用的速度。下面小编从主要功能、开发环境、包含的数据集、支持的Earth Engine对象类来向大家介绍。

(一)主要功能

        GEE 以 “数据云端化 + 计算分布式 + 分析智能化” 为核心,覆盖地理空间分析的全流程需求:

1. 大规模数据整合与管理

  • 集成全球多源遥感、气象、地形等数据(PB 级规模),无需本地下载即可直接调用(如用户研究中直接调用 Sentinel-2、MERRA2 等数据)。(这个真的很硬,尤其是研究的时间跨度很大的时候)
  • 支持自定义数据上传(如 Shapefile 行政区边界、CSV 点数据),实现 “自有数据 + 云端数据” 的融合分析。(比如我们要研究北京区域,就可以先导入我们得到的北京区划,和云端的影像数据等协同处理。)

2. 分布式计算加速

  • 依托 Google 云平台的分布式架构,处理时间序列分析、大范围空间统计时效率比本地计算高 10-100 倍(如年度 AOD 反演、全球植被变化监测可在小时级完成)。
  • 内置并行计算逻辑,无需手动配置集群,代码层面即可实现大规模数据的并行处理。

3. 遥感分析工具链

  • 内置上千个遥感专用函数:包括去云(如 Sentinel-2 Cloud Score+)、指数计算(NDVI、EVI、AOD 反演模型)、机器学习(随机森林、深度学习框架接口)等。
  • 支持栅格与矢量数据的无缝交互:可快速实现 “遥感影像提取特征→矢量边界裁剪→统计分析” 的全流程。

4. 多领域应用支撑

  • 环境监测:全球森林覆盖变化、冰川消融、城市扩张监测。
  • 气候变化:长时间序列气象数据(如 MERRA2、ERA5)与遥感数据融合,分析气候要素对生态系统的影响。
  • 农业与生态:作物物候监测、植被生产力估算、生态保护区评估。
  • 灾害应急:洪涝、火灾的实时监测与损失评估(如结合 Sentinel-1 雷达数据监测洪水范围)。

(二)开发环境

        GEE 提供在线代码编辑器本地 Python 环境两种开发方式,兼顾易用性与灵活性:

1. 在线代码编辑器(JavaScript 为主)

  • 界面组成:
    • 代码编辑区(new script):编写 JavaScript 代码,支持语法高亮、自动补全。
    • 地图显示区:实时预览数据可视化结果(如遥感影像、矢量边界)。
    • 控制台(Console):输出代码运行结果、调试信息。
    • 资产(Assets):管理自定义上传的数据(如 Shapefile、CSV、自有遥感影像)。
  • 优势:零配置即可上手,适合快速验证分析思路、可视化结果。而且代码规则要求比较宽泛,对小白友好哈哈。

2. 本地 Python 环境(earthengine-api)

        通过 pip install earthengine-api 安装 Python 库,再通过 earthengine authenticate 完成账号授权。

        这个小编目前没有试,之后需要移到本地处理的话,再来更新!

(三)数据集

        GEE 集成了全球覆盖、多源异构的地理空间数据集,涵盖以下类别:

1. 光学遥感数据

数据集 ID来源 / 传感器分辨率 / 时间分辨率典型用途
COPERNICUS/S2_L1C欧空局 / Sentinel-210-60m/5 天(双星)高分辨率 AOD 反演、土地覆盖分类
LANDSAT/LC09/C02/T1_L2美国地质调查局 / Landsat-930m/16 天长时间序列地表变化分析
MODIS/061/MCD43A4NASA/MODIS500m/16 天全球植被指数(NDVI)监测

2. 雷达遥感数据

数据集 ID来源 / 传感器分辨率 / 时间分辨率典型用途
COPERNICUS/S1_GRD欧空局 / Sentinel-110-100m/6 天洪水监测、地表形变分析
JAXA/ALOS/PALSAR-2日本宇航局 / ALOS-210-100m/46 天森林生物量估算、地形测绘

3. 气象与气候数据

数据集 ID来源分辨率 / 时间分辨率典型用途
NASA/MERRA-2NASA0.5°/ 逐小时大气参数(TQV、TO3)提取
ECMWF/ERA5/HOURLY欧洲中期天气预报中心0.25°/ 逐小时高精度气象再分析(风、温、压)
NOAA/PERSIANN-CDRNOAA0.25°/ 日全球降水监测

4. 地形与地理数据

数据集 ID来源分辨率典型用途
COPERNICUS/DEM/GLO30欧空局30m地形高程分析、流域提取
OpenStreetMapOSM 社区矢量数据路网、建筑、行政边界提取

5. 社会经济与生态数据

数据集 ID来源分辨率 / 时间分辨率典型用途
WORLDPOPS/POPWorldPop100m / 年人口密度分析
FAO/GAEZ/v4/land suitability粮农组织1km土地适宜性评估

        这一篇我们只拿哨兵数据来认识认识GEE,之后小编用到大气再分析等数据的时候再跟大家一起分享~

(四)Earth Engine 对象类

        GEE 以对象化编程为核心,所有数据和操作都围绕以下核心对象展开:

1. ee.Image(栅格影像对象)

  • 定义:表示单幅栅格影像(如 1 景 Sentinel-2 影像、1 幅 DEM)。
  • 核心操作:
    • 波段选择:image.select(['B2', 'B3', 'B4'])
    • 数学运算:image.add(10)(所有像元加 10)、image.multiply(2)
    • 空间裁剪:image.clip(beijing)(裁剪到北京边界)
  • 2. ee.ImageCollection(栅格影像集合对象)
  • 定义:表示多幅栅格影像的集合(如多年 Sentinel-2 影像、多景 MODIS 影像)。
  • 核心操作:
    • 时间筛选:col.filterDate('2024-01-01', '2024-12-31')
    • 空间筛选:col.filterBounds(beijing)
    • 聚合运算:col.mean()(计算集合中影像的均值合成)
  • 3. ee.Feature 与 ee.FeatureCollection(矢量对象)
  • ee.Feature:表示单个矢量要素(如一个测站点、一条河流)。
  • ee.FeatureCollection:表示多个矢量要素的集合(如多个测站、行政边界)。

4. ee.Geometry(几何对象)

  • 定义:表示点、线、面等几何形状,是矢量要素的空间基础。
  • 常用几何类型:Point(点)、LineString(线)、Polygon(面)。

        OK相信现在大家应该对GEE有了一些了解,知道它能为我们提供什么之后,接下来我们就来看看我们要处理的数据👀👀👀😎

        (编者注:GEE官方文档中给出了详细的入门指南,包含GEE的简介、相关概念、数据的分析处理、数据管理等全方位的介绍,大家可以点击下方链接获取详情,小编就不在此过多赘述啦👇)

GEE官方文档https://developers.google.com/earth-engine/guides


二、Sentinel-2 L1C 简介

        哨兵二号(Sentinel-2)是欧洲航天局(ESA)哥白尼计划的核心卫星任务之一,旨在提供高分辨率多光谱遥感数据,服务于陆地监测、环境管理、农业和灾害应急等领域。L1C 是其数据产品的一个关键级别,以下从数据定义、技术参数、获取方式、处理流程等维度详细介绍。

(一)数据基本定义与分级

1. 哨兵二号卫星概况

  • 卫星组成:由两颗卫星(Sentinel-2A、Sentinel-2B)组成,分别于 2015 年和 2017 年发射,形成双星星座。
  • 重访周期:单颗卫星重访周期为 10 天,双星协同后重访周期缩短至5 天,可实现全球陆地(除极区)的高频次观测。

2. L1C 数据的定义与定位

        Sentinel-2 数据分为多个级别,L1C 属于 “大气表观反射率产品”,是经过以下预处理的原始数据:

  • 正射校正(Orthorectification):消除地形起伏导致的几何畸变。
  • 亚像元级几何校正:确保像元定位精度在 10m 以内。
  • 辐射定标:将传感器原始数据转换为大气表观反射率(Top-of-Atmosphere Reflectance)。

对比其他级别:

  • L2A:在 L1C 基础上完成大气校正(去云、气溶胶、水汽等影响),输出地表反射率,适合直接用于地表参数反演。
  • L1B:仅完成辐射定标,未进行几何校正,一般不直接用于科研。

(二)技术参数:光谱、空间与时间分辨率

1. 光谱波段(13 个波段,覆盖可见光到短波红外)

        哨兵二号 L1C 数据包含 13 个光谱波段,不同波段的波长、空间分辨率和应用场景差异显著。以下是做研究高频使用的波段(尤其是气溶胶、植被、水体研究):

波段编号波长范围(nm)空间分辨率(m)带宽(nm)典型应用
B14436020气溶胶监测、海岸带分析
B24961065蓝波段,植被、水体识别
B35601035绿波段,植被健康监测
B46651030红波段,植被覆盖与分类
B883510115近红外波段,植被生物量估算
B1116102090短波红外 1,土壤湿度、雪识别
B12220020180短波红外 2,云与冰区分

2. 空间与时间分辨率

  • 空间分辨率:分为 10m(B2-B4、B8)、20m(B5-B7、B11-B12)、60m(B1、B9、B10)三个级别,可满足从精细地物(如建筑、农田)到宏观格局(如区域植被覆盖)的观测需求。
  • 时间分辨率:双星协同下 5 天 / 次,单星 10 天 / 次,能捕捉短时间尺度的地表变化(如作物物候、洪水演进)。

(三)数据获取方式(依托 Google 账号或欧空局平台)

1. Google Earth Engine(GEE)

        若你有 Google 账号,可通过 GEE 直接调用哨兵二号 L1C 数据,步骤如下:

  1. 登录 GEE 平台:https://earthengine.google.com/
  2. 调用数据集:在代码中使用ee.ImageCollection("COPERNICUS/S2_L1C")加载数据。
  3. 筛选条件:按时间、空间、云量筛选数据。(现有脚本是很丰富的,家人们可以根据自己的需要在官方提供的脚本或网站自行检索获取)
  4. 处理与导出:在 GEE 中完成去云、波段提取等操作后,可导出像元值或影像到 Google Drive(15G固定可用)。

2. 欧空局 Copernicus Data Space 获取(适合下载完整影像本地处理)

        若需下载完整影像到本地,可通过欧空局数据平台:

  1. 注册账号:访问Copernicus Data Space,完成免费注册。
  2. 数据筛选:
    • 选择 “Sentinel-2” 产品,数据级别选 “L1C”;
    • 按 “地理范围”(如北京市边界)、“时间范围”(如 2024 年)、“云量”(如≤20%)筛选;
  3. 下载数据:选择符合条件的影像,下载为.zip压缩包,解压后包含 L1C 数据文件(如.SAFE格式)。

        如非必要,大数据量不推荐!(10年118g哈哈哈哈)

(四)数据处理流程

        哨兵二号 L1C 数据在使用前需进行去云、波段重采样、时空匹配等处理,以下是典型流程(均基于java脚本):

1. 去云处理(核心步骤,保障数据质量)

        L1C 数据自带云量信息,但需进一步筛选清晰像元。推荐使用 GEE 内置的S2_CLOUD_SCORE_PLUS模型:

var cloudMask = function(image) {// 加载Cloud Score+云掩膜数据var cloudScore = ee.ImageCollection("COPERNICUS/S2_CLOUD_SCORE_PLUS/V1").filterDate(image.date().advance(-1, "day"), image.date().advance(1, "day")).first().select("cs_cdf"); // cs_cdf:0=全遮挡,1=全清晰// 筛选cs_cdf≥0.6的像元(视为无云)return image.updateMask(cloudScore.gte(0.6));
};
var s2Clear = s2L1C.map(cloudMask);

2. 波段提取与重采样

        由于不同波段分辨率不同(10m、20m、60m),需将所有波段重采样至同一分辨率(如 10m):

// 提取目标波段(如B1、B2、B3、B4、B8、B11、B12)
var s2Bands = s2Clear.select(["B1", "B2", "B3", "B4", "B8", "B11", "B12"]);// 重采样:将60m(B1)、20m(B11、B12)波段重采样至10m
var resample10m = function(image) {return image.reproject({crs: image.projection(), scale: 10}) // 重采样到10m.set(image.toDictionary(image.propertyNames())); // 保留元数据
};
var s2Resampled = s2Bands.map(resample10m);

3. 时空匹配(与其他数据协同分析)⭐

        若需结合气象数据(如 MERRA2)或地基观测(如 AERONET),需确保时空一致性:

// 加载MERRA2气象数据(示例:匹配可降水蒸汽TQV)
var merra2 = ee.ImageCollection("NASA/MERRA-2").filterDate("2024-01-01", "2024-12-31").select("TQV");// 时空匹配函数:为每景Sentinel-2匹配同期MERRA2
var matchMerra2 = function(s2Img) {var time = s2Img.date();var merra2Img = merra2.filterDate(time.advance(-1, "hour"), time.advance(1, "hour")).first().resample("bilinear") // 重采样到10m.clip(s2Img.geometry());return s2Img.addBands(merra2Img);
};
var s2Merra2 = s2Resampled.map(matchMerra2);

        ok现在大家对哨兵二号也有了一定的了解,那接下来,我们就要进入动手阶段啦,如何在GEE中获取想要的数据呢?请继续看!


三、Sentinel-2 L1C 获取

四、Sentinel-2 L1C 云掩膜处理

五、总

http://www.dtcms.com/a/573580.html

相关文章:

  • wordpress企业网站入门嘉兴网站建设多少钱
  • 国外网站为啥速度慢为企业规划网络促销方案
  • 25微软MOS认证考试|时间 + 科目 + 备考攻略全梳理
  • 数控直流电流源设计指南:基于MCU+FPGA的精密控制与低功耗优化
  • mlir 编译器学习笔记之五 -- 开发避坑
  • 对接网站建设是什么意思网站的实用性
  • 深圳网站优化页面全功能多国语言企业网站
  • web开发之前后端分离的优势
  • 外贸网站推广平台有哪些网站建设公司南京
  • Linux 常用命令大全:从入门到精通
  • Linux-通过端口转发访问数据库
  • IPD PDT 团队月例会
  • 网站如何被百度收录之探索笔记
  • 番茄小说畅听红果短剧提示“低版本不安全“解决方案 【巨魔篇】
  • 付网站建设服务费什么科目查关键词排名软件
  • k8s——service详解
  • 【高阶数据结构】map,set,multiset,multimap的使用和介绍
  • Spring Boot + Spring Security ACL实现对特定领域对象的细粒度权限控制
  • 大模型应用03 || 函数调用 Function Calling || 概念、思想、流程
  • 从 Spring Boot 到 NestJS:模块化设计的哲学差异
  • WebSocket 使用
  • 郑州网络营销网站app上架应用市场需要什么条件
  • 百度网站官方认证怎么做郑州网站建设贴吧
  • Spring定时任务cron表达式解析
  • 做网站通过什么赚钱wordpress 主题 下载
  • MATLAB视觉检测系统详细介绍
  • 网络工程基础
  • 【NXP i.MX91】 RT-Linux移植
  • 怕随身 WiFi 虚量断连?格行随身wifi拆箱测评:1500G 真不虚标?
  • 门户网站建设摘要强大的wordpress瀑布流主题