簡介
在本篇博客中,我們將使用Google Earth Engine (GEE) 對土地覆蓋變化進行年度和月度的分析。通過Google的Dynamic World數據集,我們可以識別2023年至2024年間土地覆蓋的類型和變化。
背景知識
Google Dynamic World數據集
Google/DYNAMICWORLD/V1數據集提供了高分辨率的土地覆蓋數據,這些數據可以用來分析土地覆蓋類型和變化。
土地覆蓋變化分析
土地覆蓋變化分析是環境監測和土地管理的重要組成部分,有助于了解地表覆蓋和利用模式的轉變。
完整代碼
// 定義研究點坐標
var cor = [49.349581955929196, 37.390543498162955];
var loc = ee.Geometry.Point(cor);// 加載FAO GAUL數據集并篩選研究區域
var roi = ee.FeatureCollection("FAO/GAUL/2015/level1").filterBounds(loc);
Map.centerObject(roi);
Map.addLayer(roi);// 加載Google Dynamic World土地覆蓋數據集
var map = ee.ImageCollection("GOOGLE/DYNAMICWORLD/V1").filterDate('2023', '2024').filter(ee.Filter.calendarRange(1, 12, 'month')).filterBounds(roi);// 計算年度土地覆蓋
var annual_map = map.select('label').mode();
var VIS_PALETTE = ['419bdf', '397d49', '88b053', '7a87c6', 'e49635', 'dfc35a', 'c4281b','a59b8f', 'b39fe1'
];Map.addLayer(annual_map.clip(roi), {min: 0, max: 8, palette: VIS_PALETTE}, 'map2013', false);// 導出年度土地覆蓋圖像
Export.image.toDrive({image: annual_map.clip(roi),description: 'annual_map',scale: 30,maxPixels: 1e13,region: roi,crs: annual_map.getInfo().crs
});// 定義時間序列集合函數
function temporal_collection(collection, start, count, interval, unit) {var seq = ee.List.sequence(0, ee.Number(count).subtract(1));var origin_date = ee.Date(start);return ee.ImageCollection(seq.map(function (i) {var start_date = origin_date.advance(ee.Number(interval).multiply(i), unit);var end_date = origin_date.advance(ee.Number(interval).multiply(ee.Number(i).add(1)), unit);return collection.filterDate(start_date, end_date).mode().set('system:time_start', start_date.millis()).set('system:time_end', end_date.millis());}));
}// 創建月度土地覆蓋集合
var monthly = temporal_collection(map.select('label'), '2023', 12, 1, 'month');Map.addLayer(monthly.toBands().clip(roi), [], 'monthly_map', false);// 更新月度土地覆蓋圖像的波段名稱
var monthly_updated = monthly.map(function (img) {var date = img.date().format('YYYY-MM-dd');return img.rename(date);
});print(monthly_updated.toBands());// 導出月度土地覆蓋圖像
Export.image.toDrive({image: monthly_updated.toBands().clip(roi),description: 'monthly_lc',scale: 30,maxPixels: 1e13,region: roi,crs: monthly_updated.toBands().getInfo().crs
});
代碼詳解
1. 定義研究點
創建一個點對象loc
,用于確定研究區域。
2. 加載FAO GAUL數據集
加載并篩選與研究點相交的區域roi
。
3. 加載Google Dynamic World土地覆蓋數據集
加載指定時間范圍內的Google Dynamic World土地覆蓋數據。
4. 計算年度土地覆蓋
使用mode
方法計算2023年的土地覆蓋類型。
5. 導出年度土地覆蓋圖像
將年度土地覆蓋圖像導出到Google Drive。
6. 定義時間序列集合函數
定義temporal_collection
函數,用于生成時間序列的土地覆蓋圖像集合。
7. 創建月度土地覆蓋集合
使用temporal_collection
函數創建2023年的月度土地覆蓋集合。
8. 更新月度土地覆蓋圖像的波段名稱
將每個月份的圖像波段重命名,以反映對應的日期。
9. 導出月度土地覆蓋圖像
將月度土地覆蓋圖像導出到Google Drive。
結論
本教程展示了如何使用GEE對Google Dynamic World數據集進行年度和月度土地覆蓋變化分析。通過這些分析,我們可以了解土地覆蓋類型的分布和隨時間的變化。
進一步探索
GEE提供了多種工具和方法來進行土地覆蓋變化分析。在后續的教程中,我們將繼續探索GEE在不同領域的應用。