目錄
1 代碼解析
2 完整代碼
3 運行結果
1 代碼解析
(1)定義研究區:
// 研究區的范圍需要自己提前上傳
var dataset = table;// 將研究區顯示在中心,后面的數字為縮放等級,范圍從1 - 24
Map.centerObject(dataset, 6);// 將圖層添加到地圖中
Map.addLayer(dataset);// 打印數據集信息
print(dataset);
(2)導入地表溫度數據:
本文采用的地表溫度數據為MOD11A2 V6.1地表溫度產品,其包含2000年至今全球的地表溫度數據,時間分辨率為8天,空間分辨率為1km。
// 定義 MODIS 地表溫度影像集
var modis = ee.ImageCollection('MODIS/061/MOD11A2');// 定義起始日期
var start = ee.Date('2019-01-01');// 定義日期范圍,從起始日期開始,持續 1 年
var dateRange = ee.DateRange(start, start.advance(1, 'year'));// 根據日期范圍篩選影像集
var mod11a2 = modis.filterDate(dateRange);// 從篩選后的影像集中選擇日間地表溫度波段
var modLSTday = mod11a2.select('LST_Day_1km');
(3)轉換溫度單位:
由于MOD11A2 V6.1地表溫度產品的單位為開爾文,所以需要將其轉化成攝氏度。
// 對 modLSTday 影像集里的每張影像進行處理
var modLSTc = modLSTday.map(function(img) {// 將影像乘以 0.02// 再減去 273.15,實現溫度從開爾文轉換為攝氏度// 最后復制原影像的 'system:time_start' 屬性return img.multiply(0.02).subtract(273.15).copyProperties(img, ['system:time_start']);
});
(4)數據可視化:
// 計算 modLSTc 影像集的均值,并將其裁剪到研究區范圍內
var clippedLSTc = modLSTc.mean().clip(dataset);// 將裁剪后的均值影像添加到地圖中
Map.addLayer(clippedLSTc,{// 影像顯示的最小值min: 0,// 影像顯示的最大值max: 35,// 影像顯示的顏色映射,從藍色到紅色palette: ['blue', 'limegreen', 'yellow', 'darkorange', 'red']},// 圖層名稱'Mean temperature, 2019'
);
(5)導出數據:
將數據導入到Google Drive中,若有進一步處理的需要可從Google Drive中下載。
// 導出裁剪后的影像到 Google Drive
Export.image.toDrive({// 要導出的影像image: clippedLSTc,// 導出影像的描述信息description: 'LST_2019',// Google Drive 中存儲影像的文件夾名稱folder: 'my_folder',// 導出影像的區域范圍region: dataset,// 影像的空間分辨率(單位:米)scale: 1000,// 影像的坐標參考系統crs: 'EPSG:4326',// 允許處理的最大像素數maxPixels: 1e10
});
2 完整代碼
// 研究區的范圍需要自己提前上傳
var dataset = table;// 將研究區顯示在中心,后面的數字為縮放等級,范圍從1 - 24
Map.centerObject(dataset, 6);// 將圖層添加到地圖中
Map.addLayer(dataset);// 打印數據集信息
print(dataset);// 定義 MODIS 地表溫度影像集
var modis = ee.ImageCollection('MODIS/061/MOD11A2');// 定義起始日期
var start = ee.Date('2019-01-01');// 定義日期范圍,從起始日期開始,持續 1 年
var dateRange = ee.DateRange(start, start.advance(1, 'year'));// 根據日期范圍篩選影像集
var mod11a2 = modis.filterDate(dateRange);// 從篩選后的影像集中選擇日間地表溫度波段
var modLSTday = mod11a2.select('LST_Day_1km');// 對 modLSTday 影像集里的每張影像進行處理
var modLSTc = modLSTday.map(function(img) {// 將影像乘以 0.02// 再減去 273.15,實現溫度從開爾文轉換為攝氏度// 最后復制原影像的 'system:time_start' 屬性return img.multiply(0.02).subtract(273.15).copyProperties(img, ['system:time_start']);
});// 計算 modLSTc 影像集的均值,并將其裁剪到研究區范圍內
var clippedLSTc = modLSTc.mean().clip(dataset);// 將裁剪后的均值影像添加到地圖中
Map.addLayer(clippedLSTc,{// 影像顯示的最小值min: 0,// 影像顯示的最大值max: 35,// 影像顯示的顏色映射,從藍色到紅色palette: ['blue', 'limegreen', 'yellow', 'darkorange', 'red']},// 圖層名稱'Mean temperature, 2019'
);// 導出裁剪后的影像到 Google Drive
Export.image.toDrive({// 要導出的影像image: clippedLSTc,// 導出影像的描述信息description: 'LST_2019',// Google Drive 中存儲影像的文件夾名稱folder: 'my_folder',// 導出影像的區域范圍region: dataset,// 影像的空間分辨率(單位:米)scale: 1000,// 影像的坐標參考系統crs: 'EPSG:4326',// 允許處理的最大像素數maxPixels: 1e13
});
3 運行結果

