CHƢƠNG 3 PHƢƠNG PHÁP NGHIÊN CỨU
3.3. Phƣơng pháp xử lý ảnh bằng nền tảng trực tuyến Google EarthEngine
Sử dụng các thuật tốn lập trình trên nền tảng ngơn ngữ JavaScript trên giao diện nền tảng Web trực tuyến để làm việc, bao gồm các bƣớc xử lý cơ bản: nhập dữ liệu ảnh, xử lý ảnh, phân tích ảnh và xuất kết quả, .v.v. Tùy theo mục tiêu nghiên cứu mà có những phân tích ảnh khác nhau. Đối với mục tiêu nghiên cứu của đề tài khảo sát nhiệt
29
độ bề mặt đất thì dựa trên dữ liệu chr số thực vật (NDVI) và chỉ số nhiệt độ bề mặt (LST) theo thời gian để hỗ trợ cho việc khảo sát nhiệt độ bề mặt đất và thành lập mối tƣơng quan giữa nhiệt độ bề mặt (LST) và chỉ số thực vật (NDVI). Phƣơng pháp này bao gồm các quy trình sau:
Nhập bộ dữ liệu ảnh landsat 8 và vùng nghiên cứu vào Google Earth Engine (GEE)
Bộ dữ liệu ảnh đƣợc sử dụng trong đề tài có dạng “USGS Landsat 8 TOA Reflectance (Orthorectified)”, điểm nối bật của bộ sƣu tập này là đã đƣợc Google Earth Engine hiệu chỉnh khí quyển. bộ sƣu tập này có tên ID là :
“LANDSAT/LC08/C01/T1_TOA”.
Chuyển dữ liệu shapefile của vùng nghiên cứu (tỉnh Bình Định) vào định dạng KML trên ArcGis, sử dụng ID của KML trên Google Fusion Tables để kết nối với nền tảng Google Earth Engine.
Hình 3.4. Nhập bộ dữ liệu Landsat 8 TOA
Lọc ảnh theo vùng nghiên cứu và thời gian nghiên cứu
Lọc bộ ảnh trong một năm bất lỳ và sử dụng địa chỉ ID của tỉnh Bình Định đã đƣợc kết nối với nền tảng Google Earth Engine qua công cụ Google Fusion Tables cắt bộ dữ liệu ảnh để hạn chế thời gian xử lý.
Loại bỏ mây cho ảnh vệ tinh
Dữ liệu tập ảnh thu nhận đƣợc là liên tục trong năm, nên có một tháng dữ liệu ảnh có mây che phủ, nên khơng thể tiến hành phân tích ảnh bƣớc kế tiếp. vì vậy phải tiến hành xử lý mây để quá trình xử lý đạt độ chính xác cao.
//chọn ngƣỡng mây var cloud_thresh = 30;
30 //xây dựng hàm lọc mây
var cloudfunction = function(image){ // tính kênh chỉ số mây
Var CloudScore = ee.Algorithms.Landsat.simpleCloudScore(image); //tách riêng kênh chỉ số mây
var quality = CloudScore.select('cloud');
// Tạo raster nhị phân với 1 là vƣợt ngƣỡng mây, 0 là dƣới ngƣỡng mây var cloud01 = quality.gt(cloud_thresh);
// Tạo lớp mặt nạ của những pixel vƣợt ngƣỡng mây var cloudmask = image.mask().and(cloud01.not()); // Áp mặt nạ để loại bỏ điểm mây
return image.updateMask(cloudmask); };
// Chạy hàm loại bỏ mây cho ảnh l8img = l8img.map(cloudfunction);
Hình 3.5. Lọc mây cho ảnh Landsat 8 TOA
Phân tích chỉ số NDVI cho tập dữ liệu ảnh
Sử dụng đoạn code sau để phân tích chỉ số thực vật cho tập ảnh vệ tinh: //tạo hàm tính chỉ số NDVI cho ảnh Landsat 8
function L8NDVI(img) {
var ndvi =img.normalizedDifference(['B5','B4']).rename('NDVI'); return img.addBands(ndvi);
31 // Tính chỉ số thực vật cho ảnh landsat8 var l8ndvi = l8img.map(L8NDVI);
var ndvi_l8 = l8ndvi.select("NDVI").max().clip(binhdinh); print(l8ndvi);
//hiển thị màu cho chỉ sô NDVI
var ndviParams_l8 = {min: -1, max: 1, palette: ['blue', 'white', 'green']}; // thể hiện bản đồ chỉ số thực vật
Map.addLayer(ndvi_l8, ndviParams_l8, 'NDVIl8');
Hình 3.6. Tính chỉ số NDVI cho ảnh Landsat 8
Phân tích chỉ số LST cho tập dữ liệu ảnh
//nhập dữ liệu nhiệt độ sáng trong một năm var temps2013 = l8.filterBounds(binhdinh) .filterDate('20**-1-1', '20**-12-31') .select('B10');
// chuyển đổi nhiệt độ thành độ C.
temps2013 = temps2013.map(function(image) { return image.addBands( image.subtract(273.16). select([0], ['Band10'])); }); print(temps2013);
// thể hiện bản đồ chỉ số nhiệt độ trong một năm
32
0000ff,32cd32,ffff00,ff8c00,ff0000 "}, "ảnh nhiệt độ");
// chọn khu vực nghiên cứu kết hợp với band 10 để tiến hành xuất ảnh var studyArea1 = studyarea.select('Band10');
print(studyArea1);
Hình 3.7. Tính chỉ số nhiệt độ bề mặt
Phân lớp các đối tƣợng trong ảnh để tiến hành thành lập biểu đồ
//khai báo lớp đối tƣợng đặt trƣng là thành phố var city = ee.Feature( // tp quy nhơn.
ee.Geometry.Point([109.14710998535156, 13.78314260370316]), {label: 'City'});
//khai báo lớp đối tƣợng đặt trƣng là rừng var forest = ee.Feature( // bình định Forest.
ee.Geometry.Point([109.13492202758789, 13.763375516867432]), {label: 'Forest'});
// tiến hành xây dựng biếu đồ phân bố chỉ số nhiệt độ của rừng và thành thị
var tempTimeSeries = ui.Chart.image.seriesByRegion( temps2013, Regions, ee.Reducer.mean(), 'Band10', 200, 'system:time_start', 'label')
.setChartType('ScatterChart') .setOptions({
title: 'Nhiệt độ theo thời gian ở các khu vực của Bình Định', vAxis: {title: 'Nhiệt Độ (Celsius)'},
33 lineWidth: 1, pointSize: 4, series: { 0: {color: COLOR.CITY}, 1: {color: COLOR.FOREST} }}); // thể hiện bản đồ lớp rừng với thành phố
Map.addLayer(forest, {color: COLOR.FOREST}) Map.addLayer(city, {color: COLOR.CITY});
Xuất dữ liệu ảnh từ Google Earth Engine
Kết quả giải đoán từ GEE sẽ đƣợc xuất sang Google Drive để thuận tiện trong việc biên tập bản đồ trên ArcGis
// Export the image NDVI Export.image.toDrive({ image: ndvi_l8, description: "NDVI_20**", region: binhdinh, scale: 30, crs:'EPSG:32649', folder: 'GEE export', maxPixels: 1e13}); // Export the image LST Export.image.toDrive({ image: studyArea1, description: "TEMP_20**", region: binhdinh, scale: 30, crs:'EPSG:32649', folder: 'GEE export', maxPixels: 1e13});
34
Hình 3.8. Xuất dữ liệu LST & NDVI