3.5.2.1. Use case 01: Cập nhật dữ liệu thuộc tính vào cơ sở dữ liệu
− Mô tả: hệ thống tự động cập nhật dữ liệu thông tính vào CSDL PostGIS
− Actor: người có vai trò là quản trị hệ thống
− Đầu vào: tập các ảnh GeoTiff được thu thập hàng ngày (Ví dụ: ảnh DPT thu thập vào ngày 01/01/2020: DPT_2020-01-01.tif, riêng với dữ liệu gió cần phải có đầy đủ 2 tệp là hướng và vận tốc gió).
− Đầu ra:
o Bản ghi (record) về loại ảnh, tên ảnh, ngày tháng thu thập ảnh, địa chỉ dịch vụ bản đồ của ảnh, độ phân giải ảnh, tọa độ 4 góc ảnh dạng Polygon, tên bảng giá trị và bảng chỉ số được lưu trong PostGis database
o Với dữ liệu gió: thông tin dữ liệu của từng ô trong ảnh được kết xuất thành tệp dạng JSON và được lưu trên FTP server
o Dữ liệu khác: thông tin dữ liệu của từng ô trong ảnh được lưu vào 2 bảng giá trị và chỉ số tương ứng được lưu trong PostGis database
− Luồng xử lý:
o Người quản trị tiếp nhận dữ liệu khí tượng và chất lượng không khí mới và chuyển vào GeoTiffStore
o Hệ thống sử dụng bộ thư viện GDAL để đọc tập dataset của ảnh GeoTiff. Từ ảnh, xác định các thông tin metadata của ảnh, ) từ tên của tệp, xác định ngày thu nhận ảnh, phân loại loại dữ liệu đó là loại gì (chẳng hạn là gió, độ ẩm, pm2.5),…. Sau đó tiến hành đọc dữ liệu thuộc tính chứa trong từng ô của ảnh để đưa vào CSDL hoặc xuất thành tệp vật lý đưa lên FTP server trong trường hợp là dữ liệu gió. Kết quả là có được thông tin về loại dữ liệu đó là gì, được thu nhận vào ngày nào, thông tin metadata của ảnh và thông tin thuộc tính của ảnh để cung cấp tới người sử dụng.
3.5.2.2. Use case 02: Xuất thành các dịch vụ bản đồ
− Mô tả: h thống đọc và đưa thông tin về ảnh GeoTIFF gốc thành các dịch vụ bản đồ dưới dạng địa chỉ URL trên ArcGIS Server
− Actor: người có vai trò là quản trị hệ thống
− Đầu vào: tập các ảnh GeoTiff được thu thập hàng ngày (Ví dụ: ảnh DPT, RH thu thập vào ngày 01/01/2020: DPT_2020-01-01.tif, RH_2020-01-01.tif). Riêng với dữ liệu gió thì không cần đưa vào do là loại dữ liệu không được trích xuất thành các dịch vụ bản đồ
− Đầu ra: một dịch vụ bản đồ mới trên ArcGIS Server tương ứng với một loại ảnh GeoTiff được đưa vào
− Luồng xử lý:
o Người quản trị tiếp nhận dữ liệu khí tượng và chất lượng không khí mới và chuyển vào GeoTiffStore
o Hệ thống sử dụng bộ thư viện ArcPy, với ngôn ngữ Python Script để đọc tập dataset của ảnh GeoTiff. Từ tên của tệp, xác định ngày thu nhận ảnh, phân loại loại dữ liệu đó là loại gì, chẳng hạn là gió, độ ẩm, pm2.5,…. Nếu là loại dữ liệu gió thì bỏ qua, ngược lại, tiến hành tạo raster dataset và mosaic dataset từ tệp ảnh GeoTiff vào trong file geodatabase. Sau đó tiến hành xuất bản các dịch vụ bản đồ từ raster dataset và mosaic dataset. Kết quả là có được các dịch vụ bản đồ mới nhất được đưa lên hệ thống WebGIS tới người sử dụng.
3.5.2.3. Use case 03: Tương tác bản đồ Phóng to/ thu nhỏ bản đồ
− Actor: người sử dụng
− Đầu vào: bản đồ nền được kích hoạt
− Đầu ra: trạng thái bản đồ mong muốn của người sử dụng
− Luồng xử lý: người sử dụng truy cập vào bản đồ, sử dụng con lăn chuột để cuộn lên hoặc xuống, khi đó đối tượng map trên bản đồ sẽ lắng nghe và thực hiện phóng to hoặc thu nhỏ bản đồ
Giữ phạm vi bản đồ trong lần vào trang web tiếp theo
− Mô tả: trong lần tiếp theo truy cập vào hệ thống, phạm vi bản đồ phải là phạm vi lần cuối cùng mà người dùng đã tương tác với hệ thống
− Actor: người sử dụng
− Đầu vào: bản đồ nền được kích hoạt
− Đầu ra: bản đồ được mở lên với phạm vi là phạm vi lần cuối cùng mà người dùng đã tương tác với hệ thống
− Luồng xử lý:
o Người sử dụng truy cập vào bản đồ , di chuyển bản đồ, phóng to/ thu nhỏ. Mỗi lần như vậy, đối tượng map sẽ lắng nghe và tự động nhớ lại phạm vi (boundary) của bản đồ trong lần thực hiện cuối cùng.
o Người sử dụng mở lại hệ thống WebGIS, đối tượng map sẽ lấy thông tin về phạm vi của bản đồ lần cuối cùng đã lưu để hiển thị lên trên bản đồ.
Bật/tắt các lớp bản đồ
− Mô tả: người sử dụng muốn bật một lớp bản đồ lên hoặc tắt không cho hiện lên trên bản đồ nữa. Ví dụ người dùng muốn bật lớp dữ liệu gió lên và tắt lớp nhiệt độ điểm sương trên bản đồ
− Actor: người sử dụng
− Đầu vào: bản đồ nền được kích hoạt, có đầy đủ danh sách các lớp bản đồ hiện lên trên hệ thống
− Đầu ra: trạng thái mong muốn của người dùng với lớp bản đồ được chọn, có thể là hiện lên hoặc tắt đi trên bản đồ
− Luồng xử lý: người sử dụng truy cập vào bản đồ, tích chọn hoặc bỏ tích chọn cho từng loại dữ liệu trên giao diện hiển thị danh sách các lớp dữ liệu. Đối tượng map
sẽ lắng nghe lớp nào được chọn và lớp nào không được chọn. Cuối cùng, lớp được chọn sẽ được hiển thị trên bản đồ, lớp không được chọn sẽ bị ẩn đi trên bản đồ.
Hiển thị thông tin tọa độ khi di chuyển con trỏ trên bản đồ
− Mô tả: khi người sử dụng di chuyển chuột trên bản đồ thì hiển thị tọa độ bản đồ tương ứng với vị trí của chuột
− Actor: người sử dụng
− Đầu vào: bản đồ nền được kích hoạt
− Đầu ra: hiển thị tọa độ bản đồ tương ứng với vị trí của chuột
− Luồng xử lý: người sử dụng di chuyển chuột trên bản đồ, đối tượng map sẽ lắng nghe tọa độ màn hình của chuột trên bản đồ và đưa ra cho người sử dụng tọa độ bản đồ tương ứng
Vẽ khu vực để phân tích, thống kê dữ liệu
− Mô tả: cho phép người sử dụng vẽ một đối tượng dạng đa giác Polygon (hoặc Rectangle - trường hợp đặc biệt của Polygon) để tạo 1 vùng chọn hoặc vẽ một đối tượng Polyline (các đoạn thẳng liên tiếp nhau), mục đích để truy vấn mối liên hệ không gian với ảnh viễn thám trong phần phân tích, thống kê dữ liệu.
− Actor: người sử dụng
− Đầu vào: bản đồ nền được kích hoạt, người sử dụng lựa chọn tính năng vẽ polyline, polygon hoặc rectangle để thực hiện quá trình phân tích, thống kê dữ liệu.
− Đầu ra: người sử dụng vẽ được đa giác Polygon (hoặc Rectangle), Polyline lên bản đồ
− Luồng xử lý: hệ thông sẽ sử dụng các tính năng vẽ Polygon, Rectangle, Polyline của đối tượng Draw Tool trong bộ thư viện ArcGIS API JavaScript để vẽ các đối tượng này lên bản đồ.
3.5.2.4. Use case 04: Trực quan hóa dữ liệu khí tượng và chất lượng không khí PM2.5
Hiển thị được loại dữ liệu được cấu hình từ cơ sở dữ liệu
− Mô tả: người quản trị lựa chọn một hoặc nhiều loại dữ liệu sẽ được hiển thị, người sử dụng ngay khi vào trang web sẽ nhìn thấy loại dữ liệu tương ứng đã được chỉ
định từ người quản trị.Ví dụ người quản trị lựa chọn dữ liệu gió và PM2.5 sẽ được hiển thị ngay từ khi bắt đầu vào trang web, lúc đó, người sử dụng khi vào trang web sẽ chỉ nhìn thấy 2 loại dữ liệu này được hiển thị trên bản đồ, còn các loại khác sẽ bị ẩn đi.
− Actor: người quản trị, sử dụng
− Đầu vào: danh sách các loại dữ liệu khí tượng và chất lượng không khí để người quản trị lựa chọn
− Đầu ra: danh sách loại dữ liệu được chọn sẽ hiển thị lên trên bản đồ ngay từ khi người sử dụng vào trang web
− Luồng xử lý:
o Người quản trị vào CSDL, vào bảng type_category - danh mục các loại dữ liệu khí tượng và chất lượng không khí, lựa chọn loại nào được hiển thị mặc định lên trên bản đồ thì sẽ thiết lập trường active = true, ngược lại thì không được hiển thị
o Người sử dụng khi vào hệ thống WebGIS sẽ chỉ nhìn thấy một số loại dữ liệu được hiển thị lên trên bản đồ, muốn hiển thị các lớp khác thì sử dụng tính năng bật/tắt lớp bản đồ trong UC3
Hiển thị được dữ liệu mới nhất lên trên bản đồ
− Mô tả: hệ thống đảm bảo việc hiển thị dữ liệu là ngày được cập nhật mới nhất
− Actor: người quản trị, người sử dụng
− Đầu vào: người quản trị kiểm tra dữ liệu thuộc tính và dịch vụ bản đồ là mới nhất được đưa vào từ ảnh GeoTiff tại UC1 và UC2
− Đầu ra: người sử dụng khi vào trang web sẽ thấy được dữ liệu khí tượng và chất lượng không khí mới nhất được hiển thị lên trên bản đồ
− Luồng xử lý: hệ thống đọc thông tin về ngày cập nhật dữ liệu để lấy ngày cập nhật mới nhất. Sau đó lấy được thông tin về các dịch vụ bản đồ, dữ liệu thuộc tính của ngày mới nhất đó để hiển thị và trích xuất thông tin trên bản đồ
Biểu diễn dữ liệu gió lên bản đồ theo hướng và tốc độ gió
− Mô tả: hệ thống có khả năng biểu diễn được các luồng gió theo hướng và tốc độ gió.
− Đầu vào: thông tin về ngày cập nhật dữ liệu và tệp JSON chứa dữ liệu gió được đưa lên FTP server từ ảnh GeoTiff tại UC1 và UC2
− Đầu ra: dữ liệu gió được biểu diễn trên bản đồ, các luồng gió sẽ được vẽ lên màn hình với hướng gió và tốc độ gió tương ứng
− Luồng xử lý:
o Hệ thống lấy thông tin tên tệp chưa dữ liệu gió mới nhất trên FTP server và đọc dữ liệu để lấy thông tin về 2 thành phần [u,v], từ đó xây dựng lưới tọa độ mhàng x ncột cho toàn bộ ảnh GeoTiff, với mỗi cột j trong hàng i chứa thành phầ [uij, vij]
o Từ lưới tọa độ trên và phạm vi (extent) của bản đồ, tại mỗi 1 ô hệ thống sẽ sử dụng phương pháp nội suy song tuyến để tính toán và sinh ra vector v[u, v, m]. Sau đó, hệ thống sẽ tính toán ra được hướng và tốc độ gió và sử dụng đối tượng Canvas trong HTML5 để vẽ ra được luồng gió trên bản đồ.
Biểu diễn dữ liệu khí tượng và chất lượng không khí theo thời gian
− Mô tả: hệ thống có khả năng biểu diễn được dữ liệu khí tượng và chất lượng không khí theo thời gian. Khoảng thời gian được tính từ ngày cập nhật dữ liệu mới nhất trở về trước (d - 1) ngày, trong đó d là số lượng ngày được hiển thị mà hệ thống thiết lập
− Actor: người sử dụng
− Đầu vào: dữ liệu thuộc tính và dịch vụ bản đồ trong vòng d ngày được đưa vào từ ảnh GeoTiff tại UC1 và UC2, tính từ ngày dữ liệu được cập nhật mới nhất trở về trước
− Đầu ra: dữ liệu khí tượng và chất lượng không khí được biểu diễn theo chuỗi thời gian trên bản đồ. Với từng loại dữ liệu, ngày nào trong phạm vi d ngày mà không được cập nhật sẽ mặc định là không hiển thị lên trên bản đồ
− Luồng xử lý:
o Người sử dụng chọn một vào lớp dữ liệu khí tượng và chất lượng không khí để hiển thị trên bản đồ
o Người sử dụng chọn nút Play trên giao diện. Khi đó, hệ thống sẽ xác định loại dữ liệu nào được hiển thị lên trên bản đồ, xác định khoảng thời gian hiển thị, xác định được dịch vụ bản đồ (sử dụng mosaic dataset như đã mô
tả trong UC2) hỗ trợ biểu diễn theo thời gian tương ứng cho từng loại dữ liệu.
3.5.2.5. Use case 05: Phân tích dữ liệu khí tượng và chất lượng không khí PM2.5
Xem thông tin dữ liệu tại một vị trí được kích trên bản đồ
− Mô tả: cho phép người sử dụng truy vấn thông tin về giá trị dữ liệu khí tượng và chất lượng không khí PM2.5. Người sử dụng có thể lấy được giá trị trong trường hợp lớp dữ liệu tương ứng cho loại dữ liệu đó phải được bật lên trên bản đồ.
− Actor: người sử dụng
− Đầu vào: bản đồ nền được kích hoạt, có ít nhất một loại dữ liệu khí tượng hoặc chất lượng không khí được bật (hiển thị) lên trên bản đồ và người sử dụng click chuột vào 1 vị trí trên bản đồ
− Đầu ra:
o Nếu vị trí click chuột bên ngoài ảnh thì hiển thị giá trị NoData (mặc định là -9999). Nếu vị trí click chuột trong ảnh thì sẽ có 1 infowindow thể hiện: tọa độ (latitude, longtitude), tọa độ (x, y), giá trị của loại dữ liệu khí tượng và chất lượng không khí tại điểm người sử dụng vừa click chuột – là lớp bản đồ tương ứng được bật lên trên bản đồ.
o Ví dụ: lớp gió và PM2.5 là 2 lớp bản đồ được bật trên bản đồ, khi đó người dùng sẽ chỉ nhìn thấy giá trị của 2 loại dữ liệu này tại vị trí người sử dụng click chuột.
− Luồng xử lý:
o Người sử dụng click chuột tại một vị trí trên bản đồ. Với lớp bản đồ nào được hiển thị lên, hệ thống sẽ xác định loại dữ liệu nào cần được hiển thị lên hệ thống. Sau đó, hệ thống sẽ lấy dữ liệu thông qua Web API, với đầu vào là tọa độ bản đồ được click, loại dữ liệu và ngày cần lấy dữ liệu (mặc định là ngày được cập nhật dữ liệu mới nhất)
o Tại phần xử lý để lấy dữ liệu trong WebAPI:
▪ Với mỗi loại dữ liệu, từ vị trí tọa độ dạng (latitude, longtitude), hệ thống sẽ chuyển đổi sang dạng tọa độ (x, y) tương ứng trên ảnh nhằm xác đinh được nằm ở hàng nào, cột nào của ảnh. Từ đó, truy vấn vào bảng chỉ số để xác định được chỉ số, sau đó truy vấn vào
bảng giá trị để lấy tập giá trị dạng mảng của hàng tương ứng. Từ tập giá trị và chỉ số sẽ lấy được giá trị của loại dữ liệu.
▪ Với địa chỉ địa lý thì hệ thống sử dụng một lớp web map service lưu trữ dữ liệu đơn vị hành chính Việt Nam nhằm xác định xem vị trí tọa độ thuộc vào tỉnh/thành phố, quận/huyện nào
Xác định tập giá trị dữ liệu nằm trong một vùng được chọn được vẽ trên bản đồ
− Mô tả: cho phép người sử dụng thống kê các giá trị của 1 loại dữ liệu đã được chọn tại một vùng chọn mới dạng đa giác thông qua công cụ vẽ một polygon hoặc rectangle trên bản đồ. Sau khi người sử dụng vẽ xong đa giác này, nếu đa giác có cắt ảnh đang được overlay trên bản đồ thì sẽ thống kê giá trị dữ liệu tương ứng tại vùng giao nhau giữa vùng chọn và ảnh – là tất các các ô (cell) thuộc cả vùng chọn và ảnh GeoTiff của loại dữ liệu đã được chọn. Điều này giúp người sử dụng chủ động hơn trong việc thống kê theo ý muốn thay vì thống kê tại một khu vực cố định như quận/huyện, tỉnh/thành phố.
− Actor: người sử dụng
− Đầu vào: bản đồ nền được kích hoạt, lớp bản đồ tương ứng với loại dữ liệu được chọn được bật (hiển thị) trên bản đồ và người sử dụng chọn công cụ vẽ đa giác và vẽ lên 1 đa giác trên lớp bản đồ đó – chính là ảnh GeoTiff tương ứng, chọn loại dữ liệu khí tượng hoặc chất lượng không khí muốn phân tích và thống kê dữ liệu
− Đầu ra: một bảng dữ liệu chứa các thông tin về diện tích của đa giác, thời gian phân tích để lấy dữ liệu, số lượng các ô trên ảnh GeoTiff nằm trong vùng chọn, thông tin giá trị của dữ liệu theo từng ô sẽ được hiển thị lên trên hệ thống
− Luồng xử lý:
o Người sử dụng lựa chọn một loại dữ liệu khí tượng hoặc chất lượng không