版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Modell
01.HelloWorld
print('HelloWorld');
//Variables
varcity='Bengaluru";
varcountry='India';
print(city,country);
varpopulation=8400000;
print(population);
//List
varmajorCities=['Mumbai','Delhi','Chennai','Kolkata'];
print(majorCities);
//Dictionary
varcityData={
'city':city,
,population':8400000,
,elevation':930
):
print(cityData);
//Function
vargreet=function(name){
return'Hello'+name;
};
print(greet('World'));
//Thisisacomment
Inspector1*一1•Tasks
Usetowritetothisconsole.print(...)
HelloWorld
Bengaluru
India
8400000
►[*Mumbai*.*Delhi*.*Chennai*t*Kolkata*]
►Object(3properties)
HelloWorld
//excise1
//Thesearethe5largestcitiesintheworld:
//Tokyo,Delhi,Shanghai,MexicoCity,SaoPaulo
//Createalistnamed'largeCities'
//Thelistshouldhavenamesofalltheabovecities
//Printthelist
varlargeCities=['Tokyo','Delhi','Shanghai','MexicoCity'.'SaoPaulo'];
print(largeCities);
InspectorConsole
Usetowritetothisconsole,print(...)
▼List(5alomants)
0:Tokyo
1:Delhi
2:Shanghai
3:MexicoCity
4:SaoPaulo
02.图像集合WorkingwithImageCollections
从Sentinel-2,1C级页面中复制而来:
/**
*FunctiontomaskcloudsusingtheSentinel-2QAband
*@param{ee.Image}imageSentinel-2image
*@return{ee.Image}cloudmaskedSentinel-2image
*/
functionmaskS2clouds(image){
varqa=image.select('QA60'):
//Bits10and11arecloudsandcirrus,respectively.
varcloudBitMask=1«10;
varcirrusBitMask=1«11;
//Bothflagsshouldbesettozero,indicatingclearconditions.
varmask=qa.bitwiseAnd(cloudBitMask).eq(0)
.and(qa.bitwiseAnd(cirrusBitMask).eq(O));
returnimage.updateMask(mask).divide(10000);
)
//Mapthefunctionoveronemonthofdataandtakethemedian.
//LoadSentinel-2TOAreflectancedata.
vardataset=ee.lmageCollection('COPERNICUS/S2,)
.filterDatef^OlS-Ol-Ol','2018-01-31,)
//Pre-filtertogetlesscloudygranules.
flter(ee.FilteMt('CLOUDY_PIXEL_PERCENTACE',20))
.map(ma$kS2clouds);
varrgbVis={
min:0.0,
max:0.3,
bands:['B4','B3','B2'],
);
Map.setCenter(91695,38.6917,12);〃该函数采用X坐标(经度)、Y坐标(纬度)
和缩放级别参数。取代X和Y与您所在城市的坐标坐标,然后单击“运了以查
看您所在城市的图像Map.setCenter()
Map.addLayer(dataset.median(),rgbVis,'RGB');
可修改经纬度查看自身所在城市,图为广州
MHip.(114.22.544$741112);
35~p.>ddl・y««*(d・t”,t・xdL8(),rfbVls,'**>;
03.过滤FilteringImageCollections
//excise3
varShenzhen=ee.Geometry.Point([114.0545429,22.5445/41]);
vars2=ee.lmageCollection('COPERNICUS/S2_HARMONIZED');
varfiltered=s2
.filtertee.Filter.ltCCLOUDY-PIXEL-PERCENTAGE',30))
.filter(ee.Filter.date('2023-01,))
.filter(ee.Filter.bounds(shenzhen));
print{filtered.size());
y"*MnXMn■««.Oewetry.Wolfit([:11Usetowritetothiscoasoe.piiat
vacs2•C”
v«rfilter^■12
•Jilt-“2W1)》
.fliter(*«.Filt«r.eowvlt(^Mnxh»n));
prlnt(fliters.
04.马赛克、合成图像CreatingMosaicsand
CompositesfromImageCollections
//excise4
varshenzhen=ee.Geometry.Point([114.0545429,22.5445741]);
vars2=ee.lmageCollectionCCOPERNICUS/SZ.HARMONIZED');
vara={
min:0.0,
max:3000,
bands:['B4','B3','B2'],
);
varfiltered=s2.filter(ee.Filter.lt:'CL0UDY_PIXEL_PERCENTAGE',30))
.filterfee.Filter.dateCZOZl-Ol-Ol'^O?2^!^1'))
.filter(ee.Filter.bounds(shenzhen));〃过滤函数
varmosaic=filtered.mosaic。;//马赛克生成
varmedianComposite=filteredmedian。;//合/J戈
Map.center0bject(shenzhen,10);
Map.addLayer(filtered,a,'FilteredCollection');
Map.addLayer(mosaic,a,'Mosaic');
Map.addLayer(medianComposite,a,'MedianComposite');
04b.Mosaic8.and.Composhes.(comp4«te),G»1Unk▼■Run
1varshenxhetwM.Geometry.Point([114.•545429^22.5445741]);
2v«rs2=e«.Iii«cKollection(CCP[P<ICUS/S2.HARM0RIZE0);
4-vara■{
5ain:e.0«
IMX:wee,
bands:[W,B3,,82],
10v«rfiltered=52.filter(ee.Filter.lt(CLOUOV.PIxei.PERCEWTAOE',M))
11.fnxer(«<.Filter.dattC2021-eier,2e22-eier))
12.filter(ee.Filter.bound$(Shenzhen));//:146IV
13
14v«rmosaic»filtered.»»osalc();//
05.特征集合WorkingwithFeatureCollections
varadmin2=ee.FeatureCollection('FAO/GAUL_SIMPLIFIED_500m/2015/level2');
varkarnataka=admin2.filter(ee.Filter.eq('ADM2_NAME','Shenzhen'));
varvisParams={color:'red'};
Map.addLayer(karnataka,visParams,'ShenzhenDistric');
06.引入数据ImportingData
//Importthecollection
varurban=ee.FeatureCollection('users/ujavalgandhi/e2e/ghs_urban_centers');
//Visualizethecollection
Map.addLayer(urban,{color:'blue'},'UrbanAreas');
varurban=ee.FeatureCollection('users/ujavalgandhi/e2e/ghs_urban_centers');
print(urban.first());
vara=urban.filter(ee.Filter.eq(,CTR_MN_NM','China,));
//Map.addLayerfaXcolori'blue'J/Urban');
varb-a.filterfee.Filter.metadataCPlS'/greate^than',1000000));
Map.addLayerfb^colorz'blue'J/rban');
//Exercise
//Applyafiltertoselectonlylargeurbancenters
//inyourcountryanddisplayitonthemap.
//Selectallurbancentersinyourcountrywith
//apopulationgreaterthan1000000
//Hintl:Usetheproperty'CTR_MN_NM'containingcountrynames
//Hint2:Usetheproperty'P15'containing2015Population
//Exercise
//Applyafiltertoselectonlylargeurbancenters
//inyourcountryanddisplayitonthemap.
//Selectallurbancentersinyourcountrywith
//apopulationgreaterthan1000000
//Hintl:Usetheproperty'CTR_MN_NM'containingcountrynames
//Hint2:Usetheproperty'P15'containing2015Population
07.剪裁图像ClippingImages
vars2=ee.lmageCollection('COPERNICUS/S2_HARMONIZED');
varurban=ee.FeatureCollection('users/ujavalgandhi/e2e/ghs_urban_centers');
MapaddLayer(urbar),{colQired'},'lipped');
varfiltered=urban.filter(ee.Filter.eq('UC_NM_MN,,'Guangzhou'));
vargeometry=filtered.geometry();
varrgbVis={
min:0.0,
max:3000,
bands:('B4','B3','B2'],
);
varfiltered=s2.filter(ee.Hlter.lt:'CLUUUY_PixtL_PtKCtNiAbt'z3U))
.filtertee.Filter.dateCZOig-Ol-Ol','2020-01-01,))
.filter(ee.Filter.bounds(geometry));
varimage=filtered.median();
varclipped=image.clip(geometry);
Map.addLayer(clipped,rgbVis,'Clipped');
//Exercise
//Changethefiltertoyourhomecityoranyurbanareaofyourchoice
//Hint:Findthenameoftheurbancentrebyaddingthe
//'urban'layertothemapandusingInspector.
08.导出数据ExportingData
vars2=ee.lmageCollection('COPERNICUS/S2_HARMONIZED');
varurban=ee.FeatureCollection('users/ujavalgandhi/e2e/ghs_urban_centers');
varfiltered=urban.filter(ee.Filter.eq('UC_NM_MN,,'Guangzhou'));
vargeometry=filtered.geometry();
varrgbVis={
min:0.0,
max:3000,
bands:['B4','B3','B2'],
);
varfiltered=s2.filter(ee.Filter.lt:'CLOUDY_PIXEL_PERCENTAGE',30)1
.filterfee.nlter.datef7Oiy-Ul-ul','2020-01-01,))
.filter(ee.Filter.bounds(geometry));
varimage=filtered.median();
varclipped=image.clip(geometry);
Map.centerObject(geometry);
Map.addLayer(clipped,rgbVis,'Clipped');
varexportimage=clipped.select('B.*');
//Exercise
//Changethefiltertoselectyourcity
//Writetheexportfunctiontoexporttheresults
Export.image.toDrive({
image:exportimage,
description:'Guangzhou_Composite_Raw',
folder:'earthengine',
fileNamePrefix:'guangzhou_composite_raw',
region:geometry,
scale:10,
maxPixels:le9
});
作业1:
//Assignment
//ExporttheNightLightsimagesforMay,2015andMay,2020
//Workflow:
//LoadtheVIIRSNighttimeDay/NightBandCompositescollection
//Filterthecollectiontothedaterange
//Extractthe'avg_rad'bandwhichrepresentsthenighttimelights
//Cliptheimagetothegeometryofyourcity
//ExporttheresultingimageasaGeoTIFFfile.
//Hintl:
//Thereare2VIIRSNighttimeCay/Nightcollections
//Usetheonethatcorrectsforstraylight
vardataset=ee.lmageCollectionCNOAA/VIIRS/DNB/MONTHLY-Vl/VCMSLCFG')
.filter(ee.Filter.date('2015-05-01','2020-05-31,));
//Extractthe'avg_rad'bandwhichrepresentsthenighttimelights
varnighttime=dataset.select('avg_rad');
varnighttimeVis={min:0.0,max:60.0};
Map.setCenter(-77.1056,38.8904,8);
Map.addLayer(nighttime,nighttimeVis,'Nighttime');
//Thecollectioncontains1globalimagepermonth
//Afterfilteringforthemonth,therewillbeonly1imageinthecollection
//Youcanusethefollowingtechniquetoextractthatimage
//varimage=ee.lmage(filtered.first());
varurban=ee.FeatureCollection;'users/ujavalgandhi/e2e/ghs_urban_centers')
varguangzhou=urban.filter(ee.Filter.eq(,UC_NM_MN',,Guangzhou'));
vargeometry=guangzhou.geometry();
varimage=nighttime;
varimage=image.median();
varclipp=image.clip(geometry);
vara={min:0.0,max:60};
Map.centerObject(geometry);
Map.addLayer(clipp,a,'CLIP');
Export.image.toDrive({
image:clipp,
description:'Guangzhou_Composite_Raw',
folder:'earthengine,,
fileNamePrefix:'bangalore_composite_raw',
region;geometry,
scale:10,
maxPixels:le9
});
InspectorConsoleTasksI
Searchorcancelmultipletasksin
theTaskManagerM
SUBMITTEDTASKS
BGuangzhou_Composite_RawK3m
BGuangzhou_Composite_Raw11m
BGuangzhou_Composite_Raw18m
BBangalore_Composite_Visualized8m
常用集合:
vars2=ee.lmageCollection「COPERNICUS/S2_HARMONIZED');〃图像集合
varadminl=ee.FeatureCollection('FAO/GAUL_SIMPLIFIED_500m/2015/levell');〃特
征集合
可获得某个城市的地理坐标
取地理坐标
vargeometry=ee.Geometr/.Point([114,22]);
取某个城市的坐标(数据集---Filter.eq------.geometry())
varadmin2=ee.FeatureCollection('FAO/GAUL_SIMPLIFIED_500m/2015/level2,);
varfilteredAdmin2=admin2.filter(ee.Filter.eq('ADM2_NAME\'Guangzhou'));
vargeometry=filteredAdmin2.geometry();
作用:
筛选
varfilteredS2=s2
.filterfee.Filter.ltCCLOUDY.PIXEL.PERCENTAGE',35))
.filterlee.Filter.dateCZOig-Ol-Ol','2020-01-01,))
.filter(ee.Filter.bounds(geometry));
定位
Map.centerObject(geometry);
显示特定图像
Map.addLayerfndvi.clipIgeometry),ndviVis,'ndvi*);
first。函数:
在gee中,first。函数用于获取图像集合中的第一张图像。它可以用于检索图像
集合中的最早时间的图像,或者按照特定条件筛选出符合要求的第一张图像。
first。函数的使用方法如下:
image=ee.lmageCollection("XXX").first()
其中,上.||^8"。归(:甘。4)乂犬)表不一个图像集合对象,可以根据需要替换为具
体的图像集合。通过调用first。函数,可以获取该图像集合中的第一张图像。
sort()函数
在gee中,sort。函数用于对图像集合或特定维度的图像进行排序。它可以按照
指定的属性对图像进行升序或降序排序。sort。函数常用于时间序列分析、数据
可视化和特定屈性的筛选等场景。
语法如下:
、、、
sortfproperty,ascending)
、、、
其中,property表示要排序的属性,可以是图像集合中的任意属性,比如时间、
云量等;ascending表示排序方式,为布尔值,True表示升序排序,False表示降
序排序。
例如,如果要对一个图像集合按照时间进行升序排序,可以使用以下代码:
、、、
varsortedCollection=imageCollection.sortCsystemitime-Start',true);
、、、
云量:'CLOUDY_PIXEL_PERCENTAGE'
Module2:EarthEngineIntermediate
01.对象EarthEngineObjects
//Let'sseehowtotakealistofnumbersandadd1toeachelement歹ij表
varmyList=ee.List.sequence(l,10);
//Defineafunctionthattakesanumberandadds1toit
varmyFunction=function(number){
returnnumber+1;
);
print(myFunction(l));
//Re-DefineafunctionusingEarthEngineAPI
varmyFunction=function(number){
returnee.Number(number).add(l);
};
print(myFunction(l));
//Mapthefunctionofthelist
varnewList=myList.map(myFunction);
print(newList);
〃Extractingvaluefromalist
varvalue=newList.get⑷;〃选择第几个数字
print(345);
print(value);
//Casting
〃Let'strytodosomecomputationontheextractedvalue选出的数字
//varnewValue=value.addll)//Line30:value.addisnotafunction
//print(newValue)
//YougetanerrorbecauseEarthEnginedoesn'tknowwhatisthetypeof'value'
//Weneedtocastittoappropriatetypefirst
varvalue=ee.Number(value);
varnewValue=value.add(li;
print(newValue);
//Dictionary
//ConvertjavascriptobjectstoEEObjects!!!!!!
vardata={'city':'Bengaluru','population':8400000,'elevation':930};
vareeData=ee.Dictionary(data);
//Onceconverted,youcanusethemethodsfromthe
//ee.Dictionarymodule
print(eeData.get('city'));
//Dates
//Foranydatecomputation,youshoulduseee.Datemodule
vardate=ee.Date('2019-01-01');
varfutureDate=date.advance。,'year');〃可换成daymonth
print(futureDate);
InspectorTasks
AUseprintC..)towntetothisconsole.
2
U2.3.4.5.6.0.11]jsos
345
6
I
Bengalurujsas
♦Date(202001-0100:00:00)JSOS
02.计算指数CalculatingIndices
vars2=ee.lmageCollectioni'COPERNICUS/S2_HARMONIZED');
varadmin2=ee.FeatureCollection('FAO/GAUL_SIMPUFIED_500m/2015/level2');
,,
Map.addLayer(admin2/{color:'grey}/'A);
varfilteredAdmin2=admin2.filter(ee.Filter.eq('ADM2_NAME'/'Guangzhou'));
vargeometry=filteredAdmin2.geometry();
Map.centerObject(geometry);
,
varfilteredS2=s2.filter(ee.Filter.lt('CL0UDY_PIXEL_PERCENTAGE,30))
.filterlee.Filter.datel7OlS-Ol-Ol;'2020-01-01,))
.filter(ee.Filter.bounds(geometry));
varimage=filteredS2.median();
Map.addLayer(image.clip(geometry)zrgbVis,'Image');
//
varrgbVis={min:0.0,max:3000,bands:['B4'z'B3','B2']};
varndviVis={min:0,max:l,palette:['white','green']};
varndwiVis={min:0,max:0.5,palette:['white','blue']};
//normalizedDifference()expression()
//'NIR'(B8)and'RED'(B4)'GREEN'(B3)and'SWIR1'(Bll)
//CalculateNormalizedDffereneeVegetationIndex(NDVI)归一化差异植被指数
〃'NIR'(B8)and'RED'(B4)
//varndvi=image.normalizedDifference(['B8\'BA'D.renamed'ndvi']);
Map.addLayer(ndvi.clip(geometry),ndviVis,'ndvi');
//CalculateModifiedNormalizedDifferenceWaterIndex(MNDWI)归♦化差异水指
数
//'GREEN'(B3)and'SWIR1'(Bll)
varmndwi=image.normalizedDifferenced'BS','Bll']).rencme(['mndwi']);
Map.addLayerfmndwi.clipfgeometry),ndwiVis,'mndwi');
//CalculateSoil-adjustedVegetationIndex(SAVI)土壤调整植被指数
//1.5*((NIR-RED)/(NIR+RED+0.5))
//FortheSAVIformula,thepixelvalues像素值needtoconverted转换成to
reflectances反射率,Multiplyng乘thepixelvaluesby'scale'刻度值givesusthe
reflectancevalue
//Thescalevalueis0.0001forSentinel-2dataset
varsavi=image.expression(
'1.5*((NIR-RED)/(NIR+RED+0.5)),,{
'NIR':image.select('B8').multiply(0.0001),
'RED':image.selectfBA'I.multiplylO.OOOl),
}).rename('savi');
Map.addLayerfsavi.clipfgeometry),ndviVis,'savi');
Exercise
vars2=ee.lmageCollection「COPERNICUS/S2_HARMONIZED');
varadmin2=ee.FeatureCollection('FAO/GAUL_SIMPLIFIED_500m/2015/level2');
,
varfilteredAdmin2=admin2.filter(ee.Filter.eq('ADM2_NAME/'Guangzhou'));
vargeometry=filteredAdmin2.geometry();
Map.centerObject(geometr/);
varfilteredS2=s2.filter(ee.Filter.lt(,CLOUDY_PIXEL_PERCENTAGE,,30))
.filterlee.Filter.dateCZOig-Ol-Ol','2020-01-01,))
.filter(ee.Filter.bounds(geometry));
varimage=filteredS2.median();
varndviVis-{min:0zmax:l,palette:['white','red']};
varrgbVis={min:0.0,max:3000,bands:['B4'z'B3','B2']};
Map.addLayer(image.clip(geometry)zrgbVis,'Image');
//CalculatetheNormalizedDifferenceBuilt-UpIndex(NDEI)fortheimage
//Hint:NDBI=(SWIR1-NIR)/(SWIR1+NIR)
varndbi=image.expressionf
,(SWIR1-NIR)/(SWIR1+NIR)',{
'NIR':image.selectfBS'),
'SWIR1':image.selectCBll'),
}).rename('ndbi');
Map.addLayer(ndbi.clip(geometry),ndviVis,'ndbi');
清远市
小完市
界
,佛山O市1
江门市।土
o由山市
03.指数ComputationonImageCollections
vars2=ee.lmageCollectionrcOPERNICUS/SZ—HARMONIZED');〃图像集合
varadminl=ee.FeatureCollection('FAO/GAUL_SIMPLIFIED_500m/2015/levell');//^
征集合一一
//SelectanAdminlregion
varfilteredAdminl=adminl.filterfee.Filter.eqCADM^NAME','Guangdong
Sheng'));〃选择广州
vargeometry=filteredAdminl.geometry();〃获取地理位置信息
Map.centerObject(geometiv);〃确定主要地理位置
varrgbVis={min:0.0,max:3000,bands:['B4','B3','B2']};
varfilteredS2=s2.filter(ee.Filter.lt('CL0UDY_PIXEL_PERCENTAGE'/30))
.filter(ee.Filter.date('2019-01-01','2020-01-01,))
.filter(ee.Filter.bounds(geometry));〃三层筛选
varcomposite=filteredS2.median().clip(geometry);〃取中间值+剪裁---图像
c
Map.addLayerfcomposite,rgbVis,'AdminlComposite');
//WriteafunctionthatcomputesNDVIforanimageandaddsitasaband
functionaddNDVI(image){
varndvi=image.normalizedDifferenceffBS','BA'JJ.renameCndvi');
returnimage.addBands(ndvi);
}
//Mapthefunctionoverthecollection
varwithNdvi=filteredS2.map(addNDVI);
varcomposite=withNdvi.medianf);
varndviComposite=composite.select('ndvi');
varpalette=[
,
'FFFFFF;'CE7E45',DF923D'/'F1B555;'FCD163','99B718',
'74A901;'66A000',,529400;'3E8601;'207401;'056201,,
'004C00','023B01;'012E01','011D01','011301'];
varndviVis={miniO,max:0.5,palette:palette};
Map.addLayer(ndviComposite.clip(geometry),ndviVis,'ndvi');
vars2=ee.lmageCollectionl'COPERNICUS/S2_HARMONIZED,);
varadminl=ee.FeatureCollection('FAO/GAUL_SIMPUFIED_500m/2015/levell,);
//SelectanAdminlregion
varfilteredAdminl=adminl.filterlee.Filter.eqCADM^NAME','GuangdongSheng'));
vargeometry=filteredAdminl.geometry();
Map.centerObject(geometry);
varrgbVis={min:0.0,max:3000,bands:['B4'z"B3','B2']};
varfilteredS2=s2.filter(ee.Filter.lt('CL0UDY_PIXEL_PERCENTAGE'/30))
.filtertee.Filter.datet7Oig-Ol-Ol','2020-01-01,))
.filter(ee.Filter.bounds(geometry));
varcomposite=filteredS2.median().clip(geometry);
Map.addLayerfcomposite,rgbVis,'AdminlComposite');
varimage=filteredS2.median();
//CalculateNormalizedDfferenceVegetationIndex(NDVI)归•化差异植被指数
11'NIR'(B8)and'RED'(B4)normalizedDifference()expression()
varndvi=image.normalizecDifference(['B8','BA'JI.renameil'ndvi']);
varndviVis={min:O,max:l,palette:['white','green']};
Map.addLayerfndvi.clipIgeometry),ndviVis,'ndvi');
//ThisfunctioncalculatesbothNDVIandNDWIindices
//andreturnsanimagewith2newbandsaddedtotheoriginalimage,
functionaddlndices(image){
,
varndvi=image.normalizedDifference(['B8'zB4']).rename('ndvi');
varndwi=image.normalizedDifference(['B3','BS'D.renameCndwi');
returnimage.addBands(ndvi).addBands(ndwi);
}
//Mapthefunctionoverthecollection
varwithindices=filteredS2.map(addlndices);
//Composite
varcomposite=withlndices.median();
print(composite);
//Hint:Use.selectf)functiontoselectaband
varndviComposite=composite.select('ndwi');
varpalette=[
,FFFFFF','CE7E45','DF923D','F1B555','FCD163\'99B718',
,74A901;'66A000','529400;'3E8601;'207401;'056201,,
'004C00','023B01','012E01','OllDOl;'011301'];
varndviVis={min。max:0.5,palette:palette};
Map.addLayer(ndviComposite.clip(geometry),ndviVis,'ndvi2');
//Exercise
//DisplayamapofNDWIfortheregion
//Selectthe'ndwi'bandandclipitbeforedisplaying
//Useacolorpalettefrom/
◊XX
|HEXv.
Meb*
“Adobe5«ach
ColonhrMK*e»«e»i*)5M»*y
os
CSSclMSMfortfasuherw
QwmeWBM,加**Gr
Useacolorpalettefrom/
04.云遮罩CloudMasking
完整版:
vars2=ee.lmageCollection('COPERNICUS/S2_HARMONIZED');
vargeometry=ee.Geometr/.PointdllA,22]);
varfilteredS2=s2
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',35))
.filter(ee.Filter.date('2019-01-01','2020-01-01,))
.filter(ee.Filter.bounds(geometrv));
//Sortthecollectionandpickthemostcloudyimage
vara=filteredS2.sort({
property:'CLOUDY_PIXEL_PERCENTAGE',
ascending:false
});
varimage=a.firstf);
varb={
min:0.0,
max:3000,
bands:['B4'z'B3;'B2'],
};
Map.centerObject(image);
Map.addLayer(image,b,'FullImage',false);
//WriteafunctionforCloudmasking
functionmaskclouds(image]{
varqa=image.select('QA60');
varcloudBitMask=1«10;
varcirrusBitMask=1«11;
varmask=qa.bitwiseAnd(cloudBitMask).eq(0).and(
qa.bitwiseAnd(cirrusBitMask).eq(O));
returnimage.updateMask(mask)
.selectfB.*')
.copyProperties(image,['system:time_start']);
}"
varimageMasked=ee.lmage(maskclouds(image));
Map.addLayerfimageMasked,b,'MaskedImage');
荧光显示的等同于下面这一段:
varqa=image.select('QA60');
varcloudBitMask=1«10;
varcirrusBitMask=1«11;
varmask=qa.bitwiseAnd(cloudBitMask).eq(0).and(
qa.bitwiseAnd(cirrusBitMask).eq(O));
vara=image.updateMask(mask)
.selectCB.*')
.copyPropertiesfimage,['system:time_start']);
varimageMasked=ee.lmage(a);
解析版:
vars2=ee.lmageCollectioni,COPERNICUS/S2_HARMONIZED,);//WS/g|Sf®
vargeometry=ee.Geometr/.Point([114,22]);〃选取地理坐标
varfilteredS2=s2
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE'/35))
.filtertee.Filter.datet7Oig-Ol-Ol','2020-01-01,))
.filter(ee.Filter.bounds(geometry));〃三层筛选
//Sortthecollectionandpickthemostcloudyimage
vara=filteredS2.sort({
property:'CLOUDY_PIXEL_PERCENTAGE',
ascending:false
});//sort函数对图像进行排序按照云量升降序
varimage=a.first();〃图像集的第一张
varb={这段代码定义了一个变量b,其中包含了一些参数设置:
min:0.0,・.in:e.e:表示数嘉的最小值为0.0.
・ax::表示数据的最大值为3000.
max:3000,•bands:['W,-8J-,82):表示选择了三个波段,分别是
bands:['B4;'B3\'B21伏;'B3'和82'.这五常用于指定由1感影像中显示的波段顺序,
这里选择了红、绿.匹个波段,通常用于自然彩色显示.
);
这样的设置通常用于在可视化遥影像时指定显示的波段就DS1版序.
以满保合适的显示效果和色彩表现.在实际应用中,这些参数可以根据
Map.centerObject(image);具体需求进行,,例如丽最小值最大值或选择不同的波段姐合来
实现不同的显示效果.
Map.addLayer(image,b,'FullImage',false);
//WriteafunctionforCloudmasking
functionmaskclouds(image;{
varqa=image.selectCQA6(T);〃选择名为QA60'的波段
〃定义了用于提取云和卷云的位掩码(bitmask)
varcloudBitMask=1«10;//数字i左移io位,即在第io位上设评为3用J提取匚估日
varcirrusBitMask=1«11;〃同汨.j提取卷云伤息.
1.:这出水Mt»as«And()雷
BWtq-W这两个遥。像皿进行按位与j1作.
varmask=qa.bitwiseAnd(cloudBitMask).eq(0)这个i射向电为了m个!««■»«««*池与运现
2
qa.bitwiseAnd(cirrusBitMask).eq-*«,>:M•*»<,>防《«»1桁圻
厚的比1。发竹.炉司院屋有7M新祐代'曲心写手
//零・
returnimage.updateMask(mask)3g…":
再次送行按位与■作.这次黑格8Kcirn.Uitm.kifi行按位与
.selectCB.*')//拂作,并列《陶知8否等于零.
在Gee中,这棒的表达式通常用于选择以3开头的所有列或字段.这种语法类似于SQL
中的通配符选择.反中.•表示选择所有以特定字符或字符串开头的列或字段.
举个例子,假设有一个朗8集包含以下列:从10»/8<011丁B_col2丁C_co「.如果你使用
这样的表达式,它会选择所有以B.开头的列.即和0coi2、
在Gee中,这的语法可以用于快速选择符合特定馒式的列,而不需要逐一列出列名,特别是在有大■见需
//要处理时更为方便.
.copyPropertiesfimage,['systemitime-Start']);
)
4.return
image.updateMask(mask).select('B・♦').copyPropertie$(image,
['system:ti«e_starf]);:这段代码将生成的掩膜应用到输入影像
image上,并保留影像中所有波段(通过selectCB.-)),最后
豆制脂像的属性,包括'system:time_start'等.
//
varimageMasked=ee.lmage(maskclouds(image));
Map.addLayer(imageMasked,b,'MaskedImage');
Sentinel-2掩码功能,将其应用丁图像
ImagebeforeImageafter
cloudmaskcloudmask
应用像素级QA位掩码
在Google的Gee库中,bitwiseAnd。是一个位运算函数,用于执行按位与操作。
按位与操作是指将两个数的二进制表示中相应的位进行逻辑与运算,只有当两个
对应位都为1时,结果位才为1,否则为0。在Gee库中,bitwiseAnd。函数可以
用来对整数进行按位与操作,返回两个整数按位与的结果。
intnuml-5;//
intnum2=3;//
intresult=bitwiseAnd(numl>nuii2);
print("按位与的结果为:"+result);/.
Exercise
vars2=ee.lmageCollectionl'COPERNICUS/S2_HARMONIZED,);
vargeometry=ee.Geometr/.Point([114,22]);
〃常规选取一张特定时间特定位置的图片
varfilteredS2=s2
〃云量低于的影像
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE'/35))35%
.filter(ee.Filter.date('2019-01-01'z'2020-01-01,))
.filter(ee.Filter.bounds(geometry));
〃选取最多云量的一张图
〃做法:先对图片根据云量从多到少排序再挑选第一张
vara=filteredS2.sort({
property:'CLOUDY_PIXEL_PERCENTAGE',
ascending:false
});
varimage=a.first();
〃定义一个可视化参数,包含图像选定的波段,控制显示的亮度范围
〃有助于直观理解影像
varrgbVis={
min:0.0,
max:3000,
bands:['B4;'B3','B2'],
);
〃将地图挪到选定照片的中间
Map.centerObject(image);
〃显示的图像是哪一张、如何显示、图层命名
//false:不立即显示图像,需要手动选择该图层
Map.addLayerfimage,rgbVis,'FullImage',false);
//不变的这个函数
functionmaskS2clouds(image){
〃选取特定波段的图像,与云的信息有关
varqa=image.select('QA60');
〃定义两个位掩码
〃云卷云
varcloudBitMask=1«10;〃在第十位上写1
varcirrusBitMask=1«11;〃在第H—位上写1
〃特定波段的图像跟云、卷云两个变量进行位运算,与。比较
varmask=qa.bitwiseAnd(cloudBitMask).eq(0).and(
qa.bitwiseAnd(cirrusBitMask).eq(O));
〃返回
returnimage.updateMask(mask)
.selectfB.*')
.copyPropertiesfimage,[,system:time_start,]);
)
〃经过处理的新图像
varimageMasked=ee.lmage(maskS2clouds(image));
〃显示出来
Map.addLayerfimageMasked,rgbVis,'MaskedImage(QA60Band),,false);
//UseGoogle'sCloudScore+Mask
//CloudScorePlus数据集中获取的Sentinel-2影像数据集。这里使用的数据集是
版本VI中的Sentinel-2Harmonized数据。
varcsPlus=
ee.lmageCollection('GOOGLE/CLOUD_SCORE_PLUS/Vl/S2_HARMONIZED');
〃获取第一幅影像的波段名称列表
varcsPlusBands=csPlus.first().bandNames();
〃LinkS2andCS+results.将Sentinel-2影像数据image与CloudScorePlus数据
集csPlus的结果进行关联
〃关联数据集+关联波段
varimageWithCs=image.linkCollection(csPlus,csPlusBands);
//FunctiontomaskpixelswithlowCS+QAscores.
〃cs+QA分数代表像素的质量或可信度评估,可在影像处理时排除质量差的像素
〃将CS+QA分数低于某个阈值的像素视为低质量数据,并将这些像素标记为无
效或屏蔽掉
functionmaskLowQA(image){
〃阈值,当质量评分大于阈值的时候认为是高质量的像素
varclearThreshold=0.65;
〃从image图像中选择cs波段来进行评分
〃mask:布尔类型的蒙版照片,标记了CS+QA分数大于等于阈值的像素为true,
低于阈值的像素为false
varmask=image.selsct('cs').
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子电路逻辑布线工岗前客户关系管理考核试卷含答案
- 劳务派遣管理员岗位责任制知识考核试卷含答案
- 客运车辆驾驶员班组考核能力考核试卷含答案
- 儿童发育指导师岗中技术操作考核试卷含答案
- 酒精发酵工班组管理考核试卷含答案
- 排岩机操作工岗前安全实操考核试卷含答案
- 保健刮痧师岗位事故处理考核试卷含答案
- 2025年甘肃省庆阳市镇原县三年级数学第二学期期末检测模拟试题含答案
- 护士综合竞赛常见试题及对应答案
- 药店系统基础试题及对应答案
- 煤矿单轨吊司机技能理论考试题库150题(含答案)
- 2025过敏性休克抢救指南
- T∕CEC 442-2021 直流电缆载流量计算公式
- 【MOOC】研究生学术规范与学术诚信-南京大学 中国大学慕课MOOC答案
- 新版中国食物成分表
- 电力系统分析 第2版 习题答案 穆钢 第9-12章
- 自然科学基金项目依托单位注册申请书
- 医院感染管理手册(2022年临床、医技版)
- 《田螺姑娘》儿童故事ppt课件(图文演讲)
- 元器件降额标准(参考)
- 投资者赎回申请书
评论
0/150
提交评论