簡介
在本篇博客中,我們將使用Google Earth Engine (GEE) 對長時間序列的風速數據進行分析。通過ERA5再分析數據集,我們可以計算2010年至2024年間的平均風速,并與1980年至2020年的風速數據進行比較。
背景知識
ERA5數據集
ERA5是ECMWF(European Centre for Medium-Range Weather Forecasts,歐洲中期天氣預報中心)提供的全球氣候再分析數據集,具有高空間和時間分辨率。
風速計算
風速是風向的兩個分量(u和v分量)的矢量合成,通常使用平方和的平方根來計算。
完整代碼
// 定義研究區域的坐標點
var cor = [[52.24091120672926, 28.94538993989301],[59.00848933172926, 28.94538993989301],[59.00848933172926, 33.89295282767506],[52.24091120672926, 33.89295282767506],[52.24091120672926, 28.94538993989301]
];// 創建多邊形區域
var roi = ee.Geometry.Polygon(cor);// 加載ERA5數據集并選擇風速分量
var era5 = ee.ImageCollection("ECMWF/ERA5/DAILY").select('u_10m', 'v_10m').filterDate('2010', '2024');// 計算風速
var windspeed = era5.map(function (img) {var u = img.select('u_10m');var v = img.select('v_10m');var wind_speed = u.pow(2).add(v.pow(2)).sqrt().rename('wind_speed');return wind_speed.copyProperties(img, img.propertyNames());
});// 繪制風速時間序列圖表
print(ui.Chart.image.series(windspeed, roi, ee.Reducer.mean(),27000, 'system:time_start')
);// 加載1980年至2020年的ERA5數據集
var wind40 = ee.ImageCollection("ECMWF/ERA5/DAILY").select('u_10m', 'v_10m').filterDate('1980', '2020');// 計算風速
var windspeed40 = wind40.map(function (img) {var u = img.select('u_10m');var v = img.select('v_10m');var wind_speed = u.pow(2).add(v.pow(2)).sqrt().rename('wind_speed');return wind_speed.copyProperties(img, img.propertyNames());
});// 定義函數提取風速平均值和日期
function get_value(img) {var date = ee.Date(img.get('system:time_start')).format().slice(0, 10);var value = img.reduceRegion({reducer: ee.Reducer.mean(),geometry: roi,scale: 27000}).get('wind_speed');return [date, value];
}// 提取風速數據列表
var size = windspeed40.size();
var windlist = windspeed40.toList(size).map(get_value);// 將風速數據轉換為特征集合
var wind_feature = ee.FeatureCollection(windlist.map(function (el) {el = ee.List(el);return ee.Feature(null, {'date': el.get(0),'windspeed': el.get(1).getInfo()});
}));// 導出風速數據表至Google Drive
Export.table.toDrive({collection: wind_feature,description: 'windspeed40',fileFormat: 'CSV'
});
代碼詳解
1. 定義研究區域
創建一個多邊形區域roi
,用于限定分析的地理范圍。
2. 加載ERA5數據集
加載ERA5數據集,并選擇風速的u和v分量。
3. 計算風速
使用平方和的平方根公式計算風速,并為結果重命名。
4. 繪制風速時間序列圖表
使用ui.Chart.image.series
繪制風速的時間序列。
5. 加載更長時間序列的ERA5數據集
加載1980年至2020年的ERA5數據集,用于更長時間尺度的風速分析。
6. 提取風速平均值和日期
定義函數get_value
提取每張圖像的日期和平均風速。
7. 導出風速數據表
將風速數據轉換為特征集合,并導出為CSV格式的表格。
結論
本教程展示了如何使用GEE對ERA5數據集進行風速分析。通過計算風速分量的矢量合成,我們可以了解特定區域內風速的時空變化。
進一步探索
GEE提供了多種工具和方法來進行氣象數據分析。在后續的教程中,我們將繼續探索GEE在不同領域的應用。