使用GEE对Sentinel-2A数据进行重采样、波段合成、导出并下载

//选择数据集
var geometry = ee.FeatureCollection('users/lijingyu990820/wudinghe')
Map.centerObject(geometry,14);
var sentinel2 = ee.ImageCollection('COPERNICUS/S2_SR')//2A
//'COPERNICUS/S2'为1C
                  .filterDate('2020-03-01', '2020-12-31')
                  // 预先过滤以获得较少的云量。小于10%
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))
                  .filterBounds(geometry);
var imageMedian = sentinel2.median().clip(geometry);

// 定义重采样函数
var resampleTo10m = function(image) {
  // 重采样到 10 米分辨率,使用双线性插值
  var resampledImage = image.resample('bilinear').reproject({
    crs: 'EPSG:4326', //指定目标投影
    scale: 10
  });
  return resampledImage;
};

// 使用重采样函数对单个图像进行重采样
var resampledImage = resampleTo10m(imageMedian);


// 合并所有波段
// 选择要导出的波段
var bandB2 = resampledImage.select('B2');
var bandB3 = resampledImage.select('B3');
var bandB4 = resampledImage.select('B4');
var bandB5 = resampledImage.select('B5');
var bandB6 = resampledImage.select('B6');
var bandB7 = resampledImage.select('B7');
var bandB8 = resampledImage.select('B8');
var bandB9 = resampledImage.select('B9');
var bandB11 = resampledImage.select('B11');
// 将所选波段合并为一个多波段图像
var mergedImage = bandB2.addBands([bandB3, bandB4,bandB5, bandB6,bandB7, bandB8,bandB9, bandB11]);
//可视化 
Map.addLayer(mergedImage, {bands: ['B4', 'B3', 'B2'], min: 0,max: 3000,gamma: 1.4,}, "432");
Map.addLayer(geometry);
//Map.addLayer(dataset.median().clip(geometry), visualization, 'RGB');


// 导出图像
Export.image.toDrive({
  image: mergedImage,
  description: 'sentinel2_merged',
  crs: 'EPSG:4326',
  scale: 10,
  region: geometry,
  maxPixels: 1e13,
  folder: 'sentinel-2'
});

以下是使用Sentinel-1数据进行土壤湿度反演的代码: ```python import ee ee.Authenticate() ee.Initialize() # 定义AOI aoi = ee.Geometry.Polygon( [[[-114.05, 37.0], [-114.05, 36.9], [-113.90, 36.9], [-113.90, 37.0]]]) # 定义时间范围 start_date = ee.Date('2020-01-01') end_date = ee.Date('2020-12-31') # 加载Sentinel-1数据 collection = ee.ImageCollection('COPERNICUS/S1_GRD') \ .filterBounds(aoi) \ .filterDate(start_date, end_date) \ .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV')) \ .filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH')) \ .filter(ee.Filter.eq('instrumentMode', 'IW')) # 计算VV/VH比值 def get_vv_vh_ratio(image): vv = image.select('VV').multiply(100) vh = image.select('VH').multiply(100) ratio = vv.divide(vh) return ratio.rename('VVVH') collection_ratio = collection.map(get_vv_vh_ratio) # 加载土壤湿度参考数据 reference_data = ee.Image('OpenLandMap/SOL/SOL_TEXTURE-CLASS_USDA-TT_M/v02') \ .select('b0') # 合Sentinel-1和土壤湿度参考数据 def join_image(image): date = image.date().format('YYYY-MM-dd') reference = reference_data \ .rename('reference') \ .set('system:time_start', ee.Date(date).millis()) joined = image.addBands(reference) return joined collection_joined = collection_ratio.map(join_image) # 训练土壤湿度模型 dependent = 'reference' independents = ['VVVH'] training_data = collection_joined.select([dependent] + independents) \ .sample(region = aoi, scale = 30, numPixels = 5000) trained = ee.Classifier.smileRandomForest(10) \ .train(training_data, dependent, independents) # 应用土壤湿度模型 def apply_soil_moisture_model(image): date = image.date().format('YYYY-MM-dd') input_data = image.select(independents) \ .rename(independents) output = image.select(dependent) \ .rename('soil_moisture') \ .set('system:time_start', ee.Date(date).millis()) soil_moisture = input_data.classify(trained) \ .select('classification') \ .multiply(10.0) \ .add(0.0) \ .rename('soil_moisture') return output.addBands(soil_moisture) collection_soil_moisture = collection_joined.map(apply_soil_moisture_model) # 显示土壤湿度结果 soil_moisture_vis = {'min': 0, 'max': 500} image = collection_soil_moisture \ .select('soil_moisture') \ .filterDate(start_date, end_date) \ .mosaic() Map = geemap.Map(center=[37.0, -114.0], zoom=9) Map.addLayer(image, soil_moisture_vis, 'Soil Moisture') Map.addLayer(aoi, {}, 'AOI') Map.addLayerControl() Map``` 在这个代码中,我们首先定义了一个感兴趣区域(AOI),然后加载了Sentinel-1数据。我们选择了VV和VH极化,以及IW仪器模式,过滤了数据集。接下来,我们计算了VV/VH比值,将其与土壤湿度参考数据。然后,我们训练了一个随机森林模型,将其应用于Sentinel-1数据,得到土壤湿度结果。最后,我们将结果可视化在地图上。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值