GEE图表:分析特定区域的海表叶绿素浓度(Chlorophyll-a, Chl-a)的时间序列变化

使用Google Earth Engine (GEE) 分析海表叶绿素浓度的时间序列变化

在这篇博客中,我们将介绍如何使用Google Earth Engine (GEE) 分析特定区域的海表叶绿素浓度(Chlorophyll-a, Chl-a)的时间序列变化。叶绿素浓度是衡量海洋浮游植物生物量的重要指标,对于研究海洋生态系统和气候变化具有重要意义。我们将使用JAXA提供的GCOM-C卫星数据,并通过GEE的JavaScript API来实现这一过程。


1. 定义感兴趣区域(ROI)

首先,我们定义了一个点作为感兴趣区域(ROI),即我们要分析的区域。这里我们选择了日本附近的一个点:

var geometry = ee.Geometry.Point([135.08430617765364, 39.39949021776264]);

为了更清晰地展示区域范围,我们还加载了该点所在的国家边界:

var country = ee.FeatureCollection("FAO/GAUL/2015/level0").filterBounds(geometry);
Map.addLayer(country); // 将国家边界添加到地图
Map.centerObject(geometry, 4); // 将地图中心设置为该点,缩放级别为4

2. 加载叶绿素浓度数据

我们使用JAXA提供的GCOM-C卫星数据,选择了CHLA_AVE(叶绿素浓度平均值)波段,并过滤了2021年12月24日至2022年12月20日的数据:

var Vaporpressure = ee.ImageCollection("JAXA/GCOM-C/L3/OCEAN/CHLA/V3")
  .select('CHLA_AVE')
  .filterBounds(geometry)
  .filterDate('2021-12-24', '2022-12-20');

为了确保数据的一致性,我们对每幅影像进行了裁剪和单位转换:

var Vaporpressure = Vaporpressure.map(function(img) {
  return img.clip(geometry)
    .multiply(1) // 单位转换(如果需要)
    .subtract(0) // 数据偏移(如果需要)
    .add(0) // 数据偏移(如果需要)
    .copyProperties(img, ['system:time_start']);
});

打印影像集合的大小以确认数据加载成功:

print(Vaporpressure.size());

3. 可视化叶绿素浓度

我们将叶绿素浓度的平均值添加到地图中,并使用颜色条带表示浓度范围:

Map.addLayer(Vaporpressure.mean(), {
  min: -10897.557992254591,
  max: 17662.01839438519,
  palette: ['#00007f', '#0000ff', '#007fff', '#00ffff', '#7fff7f', '#ffff00', '#ff7f00', '#ff0000', '#7f0000']
}, 'chl');

4. 创建叶绿素浓度时间序列图

为了分析叶绿素浓度随时间的变化,我们创建了一个时间序列图:

print(ui.Chart.image.series({
  imageCollection: Vaporpressure,
  region: geometry,
  reducer: ee.Reducer.mean(),
  scale: 4638.3,
  xProperty: 'system:time_start'
}).setSeriesNames(['海表浮游植物中叶绿素-a的浓度'])
  .setOptions({
    title: '海表浮游植物中叶绿素-a的浓度',
    hAxis: {title: '时间'},
    vAxis: {title: '浓度 (mg/m^3)'},
    interpolateNulls: true,
    lineWidth: 1,
    pointSize: 2,
    curveType: 'function'
  }));

5. 添加图例

为了更直观地理解地图中的颜色条带,我们添加了一个图例:

// 创建图例面板
var legend = ui.Panel({
  style: {
    position: 'bottom-right', // 将面板放置在右下角
    padding: '8px 13px' // 添加内边距
  }
});

// 添加图例标题
var legendTitle = ui.Label({
  value: '叶绿素浓度', // 标题文本
  style: {
    fontWeight: 'bold', // 字体加粗
    fontSize: '18px', // 字体大小
    margin: '0 0 4px 0', // 外边距
    padding: '0' // 无内边距
  }
});
legend.add(legendTitle);

// 创建垂直颜色条
var makeColorBar = function(palette) {
  var colorBar = ui.Thumbnail({
    image: ee.Image.pixelLonLat().select(1), // 使用纬度作为渐变图像
    params: {
      bbox: [0, 0, 0.1, 1], // 创建垂直颜色条
      dimensions: '10x100', // 设置颜色条大小
      format: 'png', // 图像格式
      min: 0, // 颜色条最小值
      max: 1, // 颜色条最大值
      palette: palette // 使用提供的颜色条带
    },
    style: {stretch: 'vertical', margin: '8px 0'} // 垂直拉伸颜色条
  });
  return colorBar;
};

// 定义颜色条带
var palette = ['#00007f', '#0000ff', '#007fff', '#00ffff', '#7fff7f', '#ffff00', '#ff7f00', '#ff0000', '#7f0000'];

// 添加最小值和最大值标签
var minLabel = ui.Label({
  value: '172', // 最小值标签
  style: {margin: '4px 8px'}
});
var maxLabel = ui.Label({
  value: '162', // 最大值标签
  style: {margin: '4px 8px'}
});

// 将标签和颜色条添加到图例面板
legend.add(minLabel); // 添加最小值标签
legend.add(makeColorBar(palette)); // 添加颜色条
legend.add(maxLabel); // 添加最大值标签

// 将图例添加到地图
Map.add(legend);

总结

通过以上步骤,我们成功地使用Google Earth Engine分析了特定区域的海表叶绿素浓度时间序列变化。通过地图可视化和时间序列图,我们可以直观地观察到叶绿素浓度的空间分布和时间变化趋势。这些数据对于研究海洋生态系统健康、浮游植物动态以及气候变化的影响具有重要意义。

结果

单点的chla的时序变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值