Open_EarthData_Tools/GEE_Scripts/Sentinel-1_download.js

75 lines
2.2 KiB
JavaScript

/**
* Sentinel-1 哨兵一号数据下载 —— 以下载 2023-2024 年云南省边境影像为例
*
* @author CVEO Team
* @date 2025-12-18
*
* 1. 加载 Sentinel-1 数据
* 2. 导出COG云优化并填补缺失值的GeoTIFF影像分块
*/
// 加载研究区域和影像
// var region_name = "德宏傣族景颇族自治州"; // 瑞丽县所在
var region_name = "保山市"; // 德宏州东侧
var region_name_en = "baoshan";
var region = allCites.filter(ee.Filter.eq("市", region_name));
var yunnan = allCites.filter(ee.Filter.eq("省", "云南省"));
var year = 2023;
var start_date = year + "-04-09";
var end_date = year + "-04-11";
var region_geo = region.geometry();
var bounds = region_geo.bounds();
var common_filter = ee.Filter.and(
ee.Filter.bounds(bounds),
ee.Filter.date(start_date, end_date)
);
// 加载Sentinel-1 GRD数据
var S1dataset = ee
.ImageCollection("COPERNICUS/S1_GRD")
.filter(common_filter)
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
.filter(ee.Filter.eq('instrumentMode', 'IW'))
.select('VV');
print(start_date + " - " + end_date + " S1dataset", S1dataset);
var s1_img = ee.Image(S1dataset.median());
var s1_vis = {
min: -25,
max: 5
};
var styling1 = {
color: "blue",
fillColor: "00000000",
};
var styling2 = {
color: "red",
fillColor: "00000000",
};
Map.centerObject(region, 7);
Map.addLayer(s1_img, s1_vis, start_date + " Sentinel-1 GRD");
Map.addLayer(yunnan.style(styling2), {}, "云南省");
Map.addLayer(region.style(styling1), {}, region_name);
// 导出 Sentinel-1 影像
// 明确设置数据类型为Float32, 否则默认类型为Float64, 会占用更多内存
// 并对缺失值进行填充, 否则默认为nan不便于后续本地处理
var processed_img = S1dataset.first().toFloat().unmask(-9999.0);
Export.image.toDrive({
image: processed_img,
description: "S1A_IW_GRDH_1SDV_" + start_date,
folder: "Sentinel-1",
// region: region,
scale: 10,
maxPixels: 1e13, // GEE 最多支持 1e8 像素, 当超过时会自动分块
fileFormat: "GeoTIFF",
// 导出COG云优化的GeoTIFF影像, 并明确设置缺失值为-9999.0
formatOptions: {
cloudOptimized: true,
noData: -9999.0,
},
});