GEE数据类型——ImageCollection
GEE数据类型——ImageCollection
1.创建
//通过搜索框搜索再导入、或是通过Catalog搜索
2.编辑
2.1 筛选 .filter~()
var china= ee.FeatureCollection("projects/ee-wn1206/assets/china");
var L8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA")
.filterBounds(china.geometry())//边界删选=ee.Filter.Bounds(china.geometry())
.filterDate('2018-01-01','2018-12-31')//日期删选=ee. .Filter.Date('2018-01-01','2018-12-31')
.filterMetadata('CLOUD_COVER','less_than',0.1);//云量删选=ee. Filter.Metadata('CLOUD_COVER','less_than',0.1)
Map.setCenter(116.5,39.9,3);
Map.addLayer(L8,{"bands":'B4,B3,B2',min:0,max:0.2},'Original Image');
Map.addLayer(L8)
2.2 限量和选择 imageCollection.limit()/select()
var china= ee.FeatureCollection("projects/ee-wn1206/assets/china");
var L8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA")
.filterBounds(china.geometry())
.filterDate('2018-01-01','2018-12-31')
.filterMetadata('CLOUD_COVER','less_than',0.1);
//.limit(10)
Map.setCenter(116.5,39.9,3);
Map.addLayer(L8,{"bands":'B4,B3,B2',min:0,max:0.2},'Original Image');//只是显示是3个波段在属性里还是原来波段数
var L8_Limit=L8.limit(10)//只选择10个features
print('L8',L8,'L8_Limit',L8_Limit)//print('信息名',变量名)
var L8_Select= L8_Limit.select(['B5','B4','B3'],['Near infrared','Red','Green'])//修改属性波段数和命名
print('Select',L8_Select);//要求select数据类型一致这里都是L8
2.3 合并与设置属性 .combine(Image2)、 .setMulti()
var L8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA")
.filterBounds(ee.Geometry.Point(106,29))
.filterDate('2018-01-01','2018-12-31')
.limit(1);//注意分号位置
var Combine_1=L8.select(['B1'],['Coastal aerosol'])
var Combine_2=L8.select(['B2'],['Blue'])
var Combine = Combine_1.combine(Combine_2)//bands为2个元素
var Set_Property=Combine.set('Name','L8')
.setMulti({'Time':'2018',
'bands':'two'});//属性重新设置从原来112个变为3个
print(Combine_1,Combine_2,Set_Property)
2.4 mosaci()
var L8_1=ee.Image('LANDSAT/LC08/C01/T1_RT/LC08_127040_20130422').select('B5');
var L8_2=ee.Image('LANDSAT/LC08/C01/T1_RT/LC08_127039_20130422').select('B5');
var L8 = ee.ImageCollection([L8_1,L8_2])
var L8_Mosaic=L8.mosaic()//重叠部分后者覆盖
print(L8_1,L8_2,L8_Mosaic)
Map.setCenter(106.5,29.9,6);
Map.addLayer(L8_1)
Map.addLayer(L8_2)
Map.addLayer(L8_Mosaic)
2.5 数据格式转变 .toList()/ .toArray()
//主要是改变数据格式进行数学处理
var L8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA")
.filterBounds(ee.Geometry.Point(106,29))
.filterDate('2018-01-01','2018-12-31')
.select('B[3-5]')//=.select('B3','B4','B5')
.sort('DATE_ACQUIRED');
var L8_List=L8.toList(5)//把栅格集变为list列表
var Time_No_1=ee.Image(L8_List.get(0))//通过引用列表利用图像,list(0)开始
var Time_No_2=ee.Image(L8_List.get(1))
var Time_No_3=ee.Image(L8_List.get(2))
var L8_Array=L8.toArray()
Map.addLayer(Time_No_1)
Map.addLayer( L8_Array)//变成一个list 且图像有锯齿
print(Time_No_1,Time_No_2,Time_No_3, L8_Array)
2.5 统一操作.map()
var L8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA")
.filterBounds(ee.Geometry.Point(106,29))
.filterDate('2018-01-01','2018-12-31')
.select('B[4,5]')
.limit(3)
function add_NDVI(image){
var NDVI = image.normalizedDifference(['B5','B4'])//顺序是否注意
// var NDVI_2= L8.expression('(B5-B4)/(B4+B5)',{'B4':L8.select('B4'),'B5':L8.select('B5')})
return image.addBands(NDVI)
}
var L8_NDVI=L8_map(add_NDVI)
print(L8,L8_NDVI)
//print出两个数据集,每个数据集都三个feature对应limit(3)
//L8每个feature都有2个波段B4和B5,L8_NDVI有三个波段加上NDVI 对应.addBands(ndvi)
Map.addLayer(L8_NDVI.first())//Map.addLayer(L8_NDVI)这样显示不准确 因为由三个图像
var NDVI_Quality=L8_NDVI.qualityMosaic('nd')//选择三幅中最大的NDVI作为像素,云层ndvi很低相当于去云
Map.addLayer(NDVI_Quality)
littletreewu: LANDSAT/LC08/C02/T1_L2 landsat8的LST数据空间分辨率是30m
正义的伙伴: 大佬,求救~我用法一最后只得到了一张图,且报错Error in h(simpleError(msg, call)) : 在为'writeRaster'函数选择方法时评估'x'参数出了错: not a valid subset ,我网上搜了很久也没解决这个报错,还请大佬解惑
大白成长记Jan: input_nc = 'surfout_d03_2020-07-01_00_00_00' varname = 'T2' raster1 = stack(input_nc, varname = varname) 文章有对应code,你改改
pass397: 大佬,我想提取wrf输出的降水(包含四个变量)转tif,但是不需要站点数据,可以咨询大佬怎么做吗
大白成长记Jan: 有缩放因子,不同数据集scale不同