GEE提取長時間水體變化
參考資料:使用google earth engine(GEE)提取2000年到2019年長江下游水體(河流、湖泊)數(shù)據(jù)_銳多寶的地理空間-CSDN博客_gee提取水體。
以下將以洛陽市內(nèi)的水體提取為例,提取2000-2019年的水體面積。

第一步:upload需要提取的面積shapefile文件。

選擇需要上傳的文件

第二步:運行代碼
貼上代碼:
function get_yearly_water(year) {
? ? //設(shè)置需要提取的區(qū)域,由于是上傳的shp文件,需要轉(zhuǎn)為geometry的格式
? ? var luoyang_region = luoyang.geometry();
? ? //設(shè)置需要提取的年份
? ? var startDate = ee.Date.fromYMD(year, 1, 1);
? ? var endDate = ee.Date.fromYMD(year, 12, 31);
? ??? ? //篩選JRC水體數(shù)據(jù)
? ? var myjrc = jrc.filterBounds(luoyang_region).filterDate(startDate, endDate);
? ??? ? //在每個月份的影像中添加一個obs屬性的波段,一個像素如果有數(shù)據(jù),則為1,沒有數(shù)據(jù)則為0
? ? myjrc = myjrc.map(function(img){
? ? ? var obs = img.gt(0);
? ? ? return img.addBands(obs.rename('obs').set('system:time_start', img.get('system:time_start')));
? ? });
? ? //在每個月份的影像中添加一個onlywater屬性的波段,一個像素如果有水則為1,沒有水則為0
? ? myjrc = myjrc.map(function(img){
? ? ? var water = img.select('water').eq(2);
? ? ? return img.addBands(water.rename('onlywater').set('system:time_start', img.get('system:time_start')));
? ? });
? ??? ? //計算每個像素點在一年12景影像中, 有數(shù)據(jù)的次數(shù)
? ? var totalObs = ee.ImageCollection(myjrc.select('obs')).sum().toFloat();
? ??? ? //計算每個像素點在一年12景影像中, 有水的次數(shù)
? ? var totalWater = ee.ImageCollection(myjrc.select('onlywater')).sum().toFloat();
? ??? ? //統(tǒng)計每個像素點在一年中有水的比例
? ? var floodfreq = totalWater.divide(totalObs).multiply(100);
? ??? ? //刪除沒有值的像素
? ? var myMask = floodfreq.eq(0).not();
? ? floodfreq = floodfreq.updateMask(myMask);
? ??? ? var viz = {min:0, max:50, palette: ['blue', 'white', 'green']};
? ? var floodfreq1=floodfreq.clip(luoyang_region);
? ? var year_folder=year+"folder_gte";
? ??? ? //如果某個像素一年有7個月有水,則為水體
? ? var gte60=floodfreq1.gte(60)
? ? //加載范圍
? ? Map.addLayer(luoyang_region)
? ? //加載影像
? ? Map.addLayer(floodfreq.clip(luoyang_region),viz,year_folder)
? ??? ? //導(dǎo)出影像
? ? Export.image.toDrive({
? ? ? image: gte60,
? ? ? region: luoyang_region,
? ? ? // fileDimensions:2560,
? ? ? scale: 30,
? ? ? maxPixels : 1e13,
? ? ? folder:year_folder,
? ? ? description:year_folder});?
? ? //計算洛陽市水體面積
? ? var stats2 = gte60.reduceRegion({
? ? ? reducer: ee.Reducer.sum(),
? ? ? geometry: luoyang_region,
? ? ? scale: 30,
? ? ? maxPixels: 1E13
? ? });
? ? print(year_folder);
? ? print(stats2);
? ? }
//獲取2000年到2019年水系
for(var i=0;i<20;i++){
? if (i<10){? var year='200'+i;}
? if (i>10||i==10){? var year='20'+i;}
? var yearn = parseInt(JSON.parse(year));
? get_yearly_water(yearn);
}
第三步,在google云端硬盤下載需要的影像,之后可使用arcgis打開


