最近毕设需要下载数据,本来懒想买现成的,发现价格实在离谱,考虑了GEE,梯子钱也不想花,一怒之下学了PIE(改的示例,没啥技术含量)
var featureCollection0 = pie.FeatureCollection('user/15069513808/bianjie/chang').first().geometry();
//先获取一个提取bit的函数
function bitwiseExtract(value, fromBit, toBit) {
if (toBit === undefined) toBit = fromBit;
var maskSize = 1 + toBit - fromBit; //位数
var mask = pie.Number(1 << maskSize).subtract(1); //3=11,即挑选位
return value.rightShift(fromBit).bitwiseAnd(mask);
}
//去云
function cloudfree_mod09a1(image) {
//提取QA波段
var qa = image.select("sur_refl_state_500m");
//提取云比特位
var cloudState = bitwiseExtract(qa, 0, 1);
//提取云阴影比特位
var cloudShadowState = bitwiseExtract(qa, 2, 2);
//提取卷云比特位
var cirrusState = bitwiseExtract(qa, 8, 9);
//叠加得到无云、无云阴影且无卷云的区域
var mask = cloudState
.eq(0) // Clear
.and(cloudShadowState.eq(0)) // No cloud shadow
.and(cirrusState.eq(0)); // No cirrus
return image.updateMask(mask);
}
//筛选影像
var imgcol_m = pie
.ImageCollection("USGS/MOD09A1/006")
.filterDate("2000-01-01", "2000-12-30")
.filterBounds(featureCollection0)
.select([
"sur_refl_b01",
"sur_refl_b02",
"sur_refl_b03",
"sur_refl_b04",
"sur_refl_b05",
"sur_refl_b06",
"sur_refl_b07",
"sur_refl_state_500m",
]);
print("imgcol_m", imgcol_m);
//var mean = imgcol_m.reduce(pie.Reducer.mean());
//var result = mean.clip(featureCollection0);
var img = imgcol_m.map(cloudfree_mod09a1)
//年度均值合成
var mean = img.reduce(pie.Reducer.mean());
var result = mean.clip(featureCollection0);
//导出数据
Export.imageToCloud({
image: result,//导出云盘的影像
description: "Exportresult",//导出任务描述
region: featureCollection0, //导出的范围,必须有
scale: 1000 //像元大小
}
);
//加载到图层窗口
// Map.addLayer(
// result,
// {
// min: 0,
// max: 3500,
// bands: ["sur_refl_b01", "sur_refl_b04", "sur_refl_b03"],
// },
// "result"
// );