GEE:哨兵数据下载,将不同景按同一天日期合成

37 篇文章 91 订阅
25 篇文章 49 订阅

输入:

在这里插入图片描述

输出:

在这里插入图片描述
源代码:https://code.earthengine.google.com/dc1c75bdbeb215d4671db79862acbffb?noload=true

如图所示,输入的影像集合里面有四幅影像,其中三幅是S2卫星同一天(5月7号)拍摄的,将同一天拍摄的s2数据按中值合成为一副。7月21号的合成为一副。最终输出两幅影像。


//#    哨兵数据下载,将不同景按同一天日期合成 
// date: 2021-06-03
// author: Ruan xiaohao  

var xcqbuf = table

function NDVI(img) {

var nir = img.select("B8");

var red = img.select("B4");

var ndvi = nir.subtract(red).divide(nir.add(red));

return ndvi;
}

var s2img = sen2.filterBounds(xcqbuf)

.filterDate('2020-12-01','2020-12-31')

.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10))

.map(NDVI).sort('system:index')

print(s2img)  
            
Map.addLayer(s2img.first())

// 影像集合导出方法
function exportImageCollection(imgCol) {

  var indexList = imgCol.reduceColumns(ee.Reducer.toList(), ["system:index"])
                        .get("list");
                        
  // print(indexList)
  indexList.evaluate(function(indexs) {
  
    for (var i=0; i<indexs.length; i++) {
      
      var image = s2img.filter(ee.Filter.stringStartsWith('system:index', indexs[i].slice(0,31))).median()
      
      if(i>0)
      
      {
      var a = indexs[i].slice(0,31)
      
      var b = indexs[i-1].slice(0,31)}
      
      print(a)
      
      print(b)
      
      if (i>0&a==b)
      
        {continue;}

      Export.image.toDrive({
      
        image: image.clip(xcqbuf),
        
        description: indexs[i],
        
        fileNamePrefix: indexs[i],
        
        folder: 'shl',
        
        region: xcqbuf,
        
        scale: 10,
        
        // crs: "EPSG:32652",
        
        maxPixels: 1e13
      });
    }
  });
}

exportImageCollection(s2img);

Map.addLayer(xcqbuf,{},'roi_Boundary');

Map.centerObject(xcqbuf, 7);
GEE(Google Earth Engine)是一个强大的云平台,用于存储、处理和分析地理空间数据哨兵一号(Sentinel-1)是欧空局(ESA)推出的一组雷达卫星,用于获取地球表面的时间序列数据。 在GEE中,可以使用JavaScript或Python编写代码来处理哨兵一号时间序列数据。以下是一个简单的Python代码示例,用于获取哨兵一号时间序列数据并进行可视化: ```python import ee import geemap # 初始化GEE ee.Initialize() # 定义感兴趣区域 roi = ee.Geometry.Point([经度, 纬度]).buffer(5000) # 以点为中心创建一个半径为5000米的缓冲区 # 定义时间范围 start_date = '2021-01-01' end_date = '2021-12-31' # 获取哨兵一号数据集 sentinel1 = ee.ImageCollection('COPERNICUS/S1_GRD') \ .filterBounds(roi) \ .filterDate(start_date, end_date) \ .select('VV', 'VH') # 选择VV和VH波段 # 创建时间序列图表 chart = geemap.ee_timeseries(sentinel1, roi) # 显示图表 chart.renderWidget(width='800px') # 显示地图 Map = geemap.Map() Map.centerObject(roi, zoom=10) Map.addLayer(roi, {'color': 'red'}, 'ROI') Map.addLayer(sentinel1.median(), {'min': -20, 'max': 0}, 'Sentinel-1') Map.addLayerControl() Map ``` 这段代码使用了geemap库,它是一个用于在Jupyter Notebook中可视化GEE数据的Python库。首先,我们需要导入ee和geemap库,并初始化GEE。然后,我们定义了感兴趣区域(roi)和时间范围(start_date和end_date)。接下来,我们使用.filterBounds()和.filterDate()函数筛选出符合条件的哨兵一号数据集,并选择了VV和VH波段。最后,我们使用geemap.ee_timeseries()函数创建时间序列图表,并使用chart.renderWidget()函数显示图表。同时,我们还使用geemap.Map()创建地图,并添加了感兴趣区域、哨兵一号数据和图层控制器。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_养乐多_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值