2.2 .Xử lý ảnh viễn thám khí tượng MODIS
2.2.4 .Chuyển định dạng GeoTiff thành các định dạng khác
Sau quá trình chuyển ảnh từ HDF về GeoTiff (hoặc có sẵn từ trung tâm MEEO), ảnh GeoTiff này có thể dễ dàng cung cấp các thông tin về giá trị AOT tại tọa độ (x, y) của ma trận điểm ảnh hoặc tọa độ (latitude, longtitude) khi overlay lên Google Map. Tuy nhiên, định dạng ảnh Tiff vì lý do bảo mật nên trình duyệt khơng cho phép hiển thị ảnh như các định dạng (PNG, JPEG, JPG, GIF,...). Vì vậy để có thể overlay ảnh lên Google Map thì phải tạo từ ảnh GeoTiff ra các ảnh PNG. Tại vì chỉ có ảnh PNG thì mới có thể tạo các điểm ảnh trong suốt, lọc bỏ các điểm mầu đen do bị mây che phủ trên các ảnh GeoTiff. Sau đó, tạo ra ảnh có thể overlay lên Google Map theo tọa độ 4 góc của ảnh GeoTiff đã tiền xử lý (đã lọc các điểm khơng có giá trị AOT mầu đen).
Hình 2.9. So sánh ảnh GeoTiff chưa lọc phủ mầu đen và ảnh PNG đã lọc và overlay
Ở đây, từ định dạng ảnh GeoTiff ban đầu, tôi đã đọc ma trận điểm ảnh dùng Python và xử lý các điểm ảnh dựa trên giá trị AOT (những điểm có mầu khác mầu đen là có giá trị AOT) để tạo ra 4 loại ảnh và file metadata là:
Ảnh PNG giữ nguyên gốc: do ảnh GeoTiff không hiển thị được trên trình duyệt nên phải tạo ra 1 ảnh PNG lấy tất cả điểm ảnh của GeoTiff và lưu định dạng PNG để hiển thị được tính năng view ảnh.
Ảnh PNG trong suốt (ảnh Gray): giống ảnh PNG giữ nguyên gốc nhưng tất cả các điểm mầu đen (khơng có giá trị AOT) khơng đưa vào ma trận điểm ảnh đầu ra nên ảnh đầu ra là ảnh trong suốt tại những tọa độ (x, y) có AOT = 0. Khó phân biệt giá trị điểm AOT bằng mắt vì chỉ có mầu từ đen đến trắng, khơng trực quan.
Ảnh PNG mầu: giống ảnh PNG trong suốt nhưng để tăng tính trực quan, dựa trên giá trị của AOT theo khoảng từ 0 → 5 (chia làm các khoảng, ví dụ: (0, 0.5), (0.5, 1),...,(4.5, 5)). Mục đích là người sử dụng dễ dàng nhận thấy các vùng có các điểm có
giá trị AOT đạt mức cao hay thấp. Mầu của từng khoảng dựa trên tham khảo về chỉ số chất lượng khơng khí (AQI – Air Quality Index) của vương quốc Anh17. Mầu càng đậm thể hiện giá trị AOT càng cao, phổ biến giá trị AOT nằm trong khoảng từ 0 → 2.
Ảnh PNG nhiệt (heatmap): ảnh này nhằm mục đích thể hiện sự phân bố tập trung của các điểm ảnh có giá trị theo từng khu vực. Nếu vùng nào có nhiều điểm ảnh AOT thì mầu sắc sẽ nóng hơn là các điểm AOT rời rạc nhau. Cách thực hiện là sử dụng thư viện heatmap của Python chuyển ma trận điểm ảnh từ PNG trong suốt sang dạng PNG heatmap, liên kết các vùng đệm của từng điểm ảnh để tạo sự tập trung giá trị AOT.
Hình 2.10. Ảnh AOT mầu và ảnh AOT heatmap tạo ra từ ảnh GeoTiff
Tách dữ liệu file metadata: dùng Linux shell thực hiện lệnh gdalinfo để lấy thông tin của file GeoTiff, các thơng tin này mục đích chỉ là để view lên khi người dùng muốn xem dữ liệu metadata của ảnh trên hệ thống WebGIS. Ngoài ra, để có thể overlay ảnh lên được Google Map, ta cần tách tọa độ 2 góc dưới trái và góc trên phải từ dữ liệu metadata, chuyển từ dạng (longtitude, latitude) sang dạng Google Map hỗ trợ là (latitude, longtitude). Sau đó, ví dụ Hình 2.11, lưu tọa độ vào 1 file text tên là position.txt và mỗi lần khi muốn xem ảnh viễn thám, ta sẽ load ảnh đó lên Google Map với tọa độ 2 góc từ file position.txt (giảm thời gian đọc và bóc tách dữ liệu metadata nếu muốn overlay ảnh output trên Google Map).
Sau khi đã xây dựng các Python Script có khả năng tạo ra các ảnh như trên, tơi viết 1 hàm Python được xây dựng với nội dung là: đọc toàn bộ cấu trúc folder lưu trữ ảnh có dạng ngày tháng là: AOT/2010/08/01 → AOT/2010/08/31. Trong mỗi folder có 1 ảnh GeoTiff, hàm này sẽ đọc lần lượt từng folder ngày và tạo ra các file ảnh output, file metadata, file position của ảnh. Kết quả là mỗi thư mục theo ngày đều có đầy đủ
các file ảnh GeoTIFF và ảnh output để có thể trực quan hóa khi overlay trên Google Map hoặc download về máy tính người sử dụng.
Hình 2.11 Tách dữ liệu metadata từ GeoTiff để hỗ trợ overlay lên Google Map