Use case 07: Trực quan hóa ảnh viễn thám

Một phần của tài liệu Xây dựng hệ thống Web trực quan hóa, hỗ trợ quản lý và phân tích ảnh viễn thám dựa trên nền tảng mã nguồn mở (Trang 93)

a) Use case 07.01: Overlay ảnh PNG Transparent (Gray, Color, Heatmap)

Tóm tắt:

o Use case này cho phép người dùng chọn loại ảnh viễn thám output đã được xử lý (Gray, Color, Heatmap) và overlay lên bản đồ Google Map. Mỗi loại ảnh này có 1 mục đích sử dụng khác nhau tuy nhiên điểm giống nhau là đã lọc bỏ các điẻm bị mây che phủ mầu đen. Trong đó ảnh Gray là ảnh gốc GeoTiff, ảnh Color là ảnh đã được thay đổi mầu sắc theo khoảng giá trị AOT, ảnh Heatmap là ảnh thể hiện mức độ phân bổ của giá trị AOT (càng nhiều điểm thì vùng lân cận sẽ có mầu càng sáng).

o Người sử dụng cũng có thể tắt chức năng này để ảnh đang overlay bị ẩn đi, sau đó có thể hiển thị lại nếu muốn.

o Ngoài ra, sau khi overlay ảnh lên thì sẽ có 1 infowindow với các thông tin về diện tích, vị trí địa lý, tọa độ của trung tâm ảnh được hiển thị. Nếu vùng chọn là quốc gia thì tại mỗi đa giác của quốc gia giao nhau với ảnh sẽ có 1 marker để cho phép người dùng thống kê gía trị AOT tại vùng giao nhau này.

Input:

o Bản đồ nền hiện tại.

o Với ảnh Gray: người sử dụng chọn click chuột vào ảnh thumbnail ở phần slide ảnh. Hoặc người sử dụng kéo thanh trượt JQuery UI Slide để load ảnh theo số thứ tự (không dịch chuyển slide ảnh).

o Với cả 3 loại ảnh: người sử dụng chọn tính năng “Overlay ảnh” và chọn loại ảnh muốn overlay.

o Ẩn ảnh overlay: người sử dụng chọn tính năng “Ẩn ảnh hiện tại” để tạm thời không hiển thị ảnh trên bản đồ.

Output:

o Tùy theo người sử dụng chọn ảnh nào để overlay lên thì ảnh đó sẽ được xuất hiện trên Google Map. Có 1 hình chữ nhật bao quanh ảnh, thể hiện đường viền ảnh.

o Ngoài ra, bởi vì chỉ sau khi tìm kiếm ảnh theo vùng chọn thì mới có ảnh viễn thám, nên khi overlay ảnh lên sẽ có 1 đa giác mầu tím thể hiện vùng giao nhau giữa ảnh và vùng chọn.

o Nếu chọn ẩn ảnh overlay thì ảnh đang overlay sẽ bị ẩn đi.

o Nếu vùng chọn là quốc gia và overlay ảnh viễn thám lên sẽ có các marker ở giữa từng đa giác giao nhau với ảnh để thống kê giá trị AOT của đa giác.

Giải thuật:

o Tính năng overlay ảnh lên Google Map: tạo đối tượng Ground Overlay với đầu vào là link ảnh output (Gray, Color, Heatmap) và 2 thông số quan trọng là tọa độ góc dưới trái (SouthWest – SW) và tọa độ góc trên phải (NorthEarth – NE). Các tọa độ này lấy ra từ dữ liệu metadata của ảnh được lưu trong thẻ input hidden HTML. Ngoài ra, để thể hiện hình chữ nhật bao quanh ảnh thì tạo ra đối tượng Rectangle với 2 thông số như trên. Google Map xem overlay ảnh là ở tầng dưới cùng nên khi overlay Rectangle lên ảnh thì mọi sự kiện người dùng thao tác trên ảnh chính là sự kiện người dùng kích hoạt ở trên Rectangle.

o Tính năng thể hiện vùng giao nhau giữa ảnh và vùng chọn: dựa trên dữ liệu truy vấn không gian PostGIS trả về dạng Polygon hoặc MultiPolygon, sau đó lưu vào thẻ input hidden HTML theo từng ảnh. Vì vậy khi overlay ảnh lên thì tạo đối tượng shape với các điểm thuộc các đa giác trên và hiển thị trên Google Map với mầu tím (phân biệt với mầu vàng hoặc đỏ của vùng đã chọn để tìm kiếm). Riêng với dạng Mutipolygon của quốc gia thì đọc từng đa giác trong chuỗi đa giác giao nhau với ảnh, mỗi đa giác tạo 1 marker để bắt sự kiện cho phép người dùng thống kê giá trị AOT tại đa giác này.

o Ẩn ảnh thì là tính năng xóa ảnh nhưng có lưu số thứ tự của ảnh đang hiển thị để sau đó người dùng có thể overlay lại ảnh này nếu muốn.

b) Use case 07.02: Xem đường bao của tất cả các ảnh trên Google Map

Tóm tắt:

o Use case này cho phép người sử dụng thấy được (bật, tắt) đường bao của tất cả các ảnh theo loại ảnh tìm kiếm. Mục đích là thể hiện được vùng tập trung giá trị AOT giao nhau nhiều nhất giữa các ảnh.

Input:

o Bản đồ nền hiện tại.

o Người sử dụng chọn chức năng “xem vùng bao tất cả ảnh” hoặc “xóa vùng bao tất cả ảnh”.

Output:

o Đường bao của tất cả các ảnh dạng hình chữ nhật và nền mầu vàng được hiển thị, vùng giao nhau nhiều nhất sẽ có mầu đậm hơn.

o Đường bao của tất cả các ảnh bị xóa nếu người dùng tắt chức năng này.

Giải thuật:

o Đọc 2 thông số góc dưới trái và góc trên phải của tất cả các ảnh thuộc loại ảnh muốn hiển thị. Sau đó tạo ra một mảng đối tượng Rectangle với các thông số đầu vào ở trên. Mỗi lần tạo một đối tượng thì overlay đối tượng đó lên Google Map. Do mầu nền để mức độ trong suốt là 0.5 (0 là trong suốt hoàn toàn, 1 là không trong suốt) nên càng nhiều Rectange overlay lên 1 vùng thì vùng đó sẽ có mầu đậm hơn.

o Người sử dụng tắt chức năng này thì các đối tượng Rectangle sẽ được gán = (adsbygoogle = window.adsbygoogle || []).push({});

null và không còn hiển thị trên Google Map.

c) Use case 07.03: Overlay tự động lần lượt ảnh theo loại trên Google Map

Tóm tắt:

o Use case này cho phép người sử dụng thấy được sự thay đổi theo thời gian tại 1 vùng địa lý qua việc overlay lần lượt tất cả các ảnh trong cùng 1 loại. Mỗi ảnh được overlay sau 5 giây và người sử dụng có thể chọn 1 trong 3 loại ảnh là (Gray, Color, Heatmap) để hiển thị.

Input:

o Bản đồ nền hiện tại.

o Người sử dụng chọn chức năng “Overlay lần lượt ảnh tự động” để hiển thị ảnh lần lượt.

o Hoặc người sử dụng chọn chức năng này 1 lần nữa để dừng quá trình hiển thị ảnh lần lượt.

Output:

o Tùy theo loại ảnh mà các ảnh sẽ được hiển thị lần lượt sau 5 giây, góc nhìn bản đồ giữ nguyên tại vùng muốn theo dõi, không thay đổi theo tọa độ của ảnh.

o Thanh trượt JQuery Slide cũng thay đổi giá trị tùy theo số thứ tự của ảnh.

o Nếu người sử dụng chọn chức năng này 1 lần nữa thì sẽ dừng quá trình hiển thị ảnh lần lượt. Ảnh overlay gần nhất sẽ hiển thị trên Google Map và là ảnh hiện tại để người sử dụng tương tác.

Giải thuật:

o Duyệt toàn bộ các ảnh theo loại ảnh mà người sử dụng muốn hiển thị lần lượt, overlay các ảnh này lên bản đồ Google Map dựa trên hàm setInterval() với thời gian timeout là 5 giây. Quá trình này dừng lại khi không còn ảnh nào trong tập ảnh được duyệt nữa.

o Đối với tính năng thanh trượt JQuery slide thì mỗi khi duyệt 1 ảnh thì lấy số thứ tự của ảnh đó để đặt vào giá trị của slide. Vì vậy khi dừng tính năng hiển thị lần lượt thì thanh trượt cũng có giá trị là số thứ tự ảnh gần nhất (đồng bộ quá trình hiển thị lần lượt và giá trị trên thanh trượt).

d) Use case 07.04: Overlay lưới ảnh để xem tọa độ ảnh

Tóm tắt:

o Use case này cho phép người sử dụng overlay 1 lưới ảnh lên ảnh viễn thám đang được overlay. Mục đích là thể hiện chính xác tọa độ (x, y) của ảnh tại vị trí con trỏ mà ngưới sử dụng di chuyển trên ảnh, khác với tọa độ (x, y) của Google Map. Với tính năng này người sử dụng có thể biết rõ là tại vị trí (latitude, longtitude) ứng với giá trị (x, y) nào trên ảnh qua một bảng thông tin hiển thị mỗi khi di chuyển chuột trên ảnh, từ đó có thể lấy giá trị AOT tại điểm này nếu muốn.

Input:

o Bản đồ nền hiện tại.

o Người sử dụng chọn chức năng “Overlay ảnh” → “Hiển thị lưới ảnh”.

Output:

o Lưới ảnh được hiển thị trên bản đồ và ở bên trên ảnh.

o Mỗi khi di chuyển chuột trên ảnh thì 1 bảng legend sẽ thể hiện tọa độ dạng (latitude, longtitude) và tọa độ (x, y) của ảnh. Nếu di chuyển chuột ra bên ngoài ảnh thì bảng này không hiển thị.

Giải thuật:

o Tương tự với tính năng tạo ảnh output từ ảnh GeoTiff, để có 1 lưới ảnh thì với mỗi ảnh đọc ma trận điểm ảnh để lấy kích cỡ chiều dài, chiều rộng. Mỗi pixel ảnh

ứng với 1 ô lưới và áp dụng công thức chuyển đổi từ (latitude, longtitude) sang dạng (x, y) ở chương 2 để hiển thị tọa độ một cách chính xác.

o Sau khi có lưới ảnh thì ảnh này cũng là 1 đối tượng Ground Overlay nên muốn overlay lên cũng cần có 2 thông số là tọa độ góc dưới trái và góc trên phải lấy từ metadata của ảnh GeoTiff. Overlay ảnh này trên ảnh viễn thám đang hiển thị và ta có lưới ảnh phân tách từng điểm ảnh trên Google Map.

e) Use case 07.05: Lấy giá trị AOT tại vị trí click chuột

Tóm tắt: (adsbygoogle = window.adsbygoogle || []).push({});

o Use case này cho phép người sử dụng truy vấn thông tin về giá trị AOT khi đã overlay ảnh viễn thám trên Google Map. Người sử dụng chỉ có thể lấy giá trị AOT nếu click chuột trong phạm vi của ảnh, nếu click chuột ngoài ảnh không có sự kiện nào xẩy ra.

Input:

o Bản đồ nền hiện tại.

o Ảnh viễn thám đang được overlay.

o Người sử dụng click chuột vào 1 vị trí trên ảnh viễn thám.

Output:

o Nếu vị trí click chuột bên ngoài ảnh thì không có sự kiện gì.

o Nếu vị trí click chuột trong ảnh thì sẽ có 1 infowindow thể hiện: địa chỉ địa lý, tọa độ (latitude, longtitude), tọa độ (x, y), mầu sắc, giá trị AOT tại điểm người sử dụng vừa click chuột. Nếu click chuột vào vị trí ảnh trong suốt (đã lọc mầu đen do mây che phủ) thì giá trị AOT là không có và mầu sắc là null.

Giải thuật:

o Quan trọng nhất là áp dụng công thức chuyển từ tọa độ dạng (latitude, longtitude) sang dạng tọa độ (x, y) trên ảnh. Từ đó thực thi shell script

gdallocationinfo với đầu vào là đường dẫn ảnh và tọa độ (x, y) là sẽ lấy được giá trị AOT. Với địa chỉ địa lý thì dùng tính năng georeference của Google Map API để chuyển tọa độ dạng (latitude, longtitude) sang địa chỉ địa lý thật sự để người sử dụng biết được.

o Còn với lấy mầu sắc của ảnh tại vị trí click chuột thì sử dụng đối tượng canvas

trong HTML5 để vẽ ảnh viễn thám lên đối tượng này. Sau khi đã vẽ lên canvas thì dễ dàng truy vấn được mầu sắc của ảnh (red, green, blue) thông qua mảng ma trận tại vị trí (x, y).

f) Use case 07.06: Ẩn các Marker trên Google Map

Tóm tắt:

o Mục đích chính của use case này cho phép người sử dụng ẩn danh sách các marker của các vùng đa giác thuộc quốc gia giao nhau với ảnh viễn thám đang được overlay. Bởi vì có thể có rất nhiều marker tương ứng với các đảo nên người sử dụng có thể ẩn nó đi nếu không muốn thống kê giá trị AOT của các đa giác giao nhau này.

Input:

o Bản đồ nền hiện tại với các marker thể hiện sự giao nhau của các đa giác thuộc quốc gia với ảnh viễn thám.

o Người sử dụng chọn chức năng “Overlay ảnh” → “Ẩn các marker”.

o Hoặc chọn “Hiện cac marker” nếu đã ẩn trước đó.

Output:

o Danh sách các marker này sẽ bị ẩn (hoặc hiển thị) trên Google Map.

o Nếu marker bị ẩn thì người sử dụng không thống kê giá trị AOT tại đa giác chứa marker nữa.

Giải thuật:

o Duyệt danh sách các marker thuộc các đa giác trong tập danh sách các đa giác giao nhau với ảnh viễn thám. Sau đó gán thuộc tính map của các marker này = null, các marker này sẽ bị ẩn đi trên Google Map. Muốn hiển thị lại thì duyệt lại mảng marker ở trên và gọi phương thức setMap() để hiển thị trên Google Map.

Một phần của tài liệu Xây dựng hệ thống Web trực quan hóa, hỗ trợ quản lý và phân tích ảnh viễn thám dựa trên nền tảng mã nguồn mở (Trang 93)