Quyền tự do khám phá dữ liệu Lidar: Visual hóa đám mây điểm của Thụy Điển trên trình duyệt
Bài viết chia sẻ hành trình xây dựng công cụ visual hóa dữ liệu Lidar khổng lồ của Thụy Điển trực tiếp trên trình duyệt web. Bằng cách chuyển đổi sang định dạng Cloud Optimised Point Cloud (COPC), tác giả đã cho phép người dùng khám phá hàng trăm triệu điểm dữ liệu địa hình một cách mượt mà, mở ra "quyền tự do đi lại" trong thế giới số.

Thụy Điển nổi tiếng với luật pháp "Allemansrätten" — quy tắc cho phép mọi người tự do đi lại và khám phá thiên nhiên, bất kể đất đai đó thuộc sở hữu của ai. Tôi cảm thấy đây là một cái tên rất hay để đặt cho dự án Lidar của mình: liệu chúng ta có thể tạo ra một nơi mà mọi người có thể khám phá đất nước của họ dưới dạng ảo, sử dụng những dữ liệu mở vốn đã có sẵn nhưng lại bị "khóa chặt" và khó tiếp cận?
Giao diện trình xem dữ liệu Lidar
Tôi đã chia sẻ một vài cái nhìn nhỏ về dữ liệu Lidar của Thụy Điển từ Cơ quan Khảo sát Địa chính (Lantmäteriet) trong các tuần trước, nhưng đều bị giới hạn ở khoảng 200.000 điểm dữ liệu. Sự giới hạn này không phải do trình duyệt không xử lý được — vì nó có thể xử lý dễ dàng gấp 10 đến 100 lần con số đó — mà là do thể tích dữ liệu quá lớn. Cục bộ, tôi có thể tải toàn bộ một ô (tile) quét Lidar của Lantmäteriet, bao phủ khu vực 2,5km x 2,5km với khoảng 20 triệu điểm, nhưng tệp tin đó nặng tới 200 MB ngay cả khi đã nén.
Bứt phá về quy mô dữ liệu
Thành tựu của tuần vừa qua là tôi không chỉ tải được một ô, mà là một lưới 3x3 các ô (tổng cộng khoảng 194 triệu điểm, khu vực 7,5km mỗi cạnh). Quan trọng hơn, tôi đã thay đổi cách lưu trữ dữ liệu để cho phép tải theo phân cấp (hierarchical). Điều này có nghĩa là bất kỳ ai cũng có thể tự mình khám phá góc nhỏ của Thụy Điển này.
Để đạt được sự gia tăng đáng kể về thể tích dữ liệu này, tôi đã chuyển từ sử dụng định dạng Point Cloud Data (PCD) sang Cloud Optimised Point Cloud (COPC). COPC là một chuyên biệt hóa của các định dạng tệp LAS hoặc LAZ phổ biến — thực chất đây là định dạng dữ liệu gốc mà Lantmäteriet cung cấp (họ dùng LAZ, không phải COPC).
Chi tiết dữ liệu và phân loại
COPC tổ chức dữ liệu nội bộ bên trong tệp LAZ theo một hệ thống phân cấp cụ thể. Điều này cho phép bạn nhanh chóng truy cập dữ liệu để có cái nhìn tổng quan khi thu nhỏ (zoom out) mà không cần đọc toàn bộ tệp. Tương tự, khi phóng to (zoom in) vào các khu vực cụ thể, các điểm dữ liệu được phân cụm trong tệp theo cách mà bạn chỉ lấy ra đúng khu vực đó. Chỉ riêng sự thay đổi này đã giải quyết phần lớn công việc, sau đó là việc tinh chỉnh lượng dữ liệu cần tải vào thời điểm nào.
Tối ưu hóa và nén dữ liệu
Một tác dụng phụ bất ngờ khi chuyển sang COPC là khả năng nén dữ liệu tốt hơn. Vì các điểm tương tự nằm gần nhau hơn và do đó có các thuộc tính dữ liệu tương tự, chúng nén tốt hơn. Việc chuyển sang COPC đã giúp giảm ô dữ liệu gốc 15 triệu điểm từ 600 MB (định dạng LAZ) — vốn tôi đã chuyển thành 200 MB (PCD) — xuống còn chỉ 105 MB. Đây là một kết quả ấn tượng khi chúng ta đạt được kích thước gần bằng 1 byte cho mỗi điểm!
Ở phía client (trình duyệt), dữ liệu được tải theo từng ô và sau đó theo phân cấp bên trong các ô đó khi chúng ta điều chỉnh cấp độ chi tiết dựa trên mức thu phóng. Các dữ liệu không còn nhìn thấy hoặc không cần thiết ở một mức độ thu phóng cụ thể sẽ bị loại bỏ. Tôi chưa cố gắng làm cho quá trình này quá hiệu quả yet, nhưng nó cho thấy một sự đánh đổi trong việc xây dựng loại hệ thống này.
Trải nghiệm người dùng và Ứng dụng thực tế
Bên cạnh việc xử lý nhiều dữ liệu Lidar hơn, tôi cũng thay đổi cách hiển thị dữ liệu. Bản đồ độ cao màu giả (false colour height map) không còn là lựa chọn duy nhất. Bây giờ bạn có thể thấy các danh mục dữ liệu Lidar trong nguồn dữ liệu gốc, và xem nó được ánh xạ theo phân loại đất đai sử dụng cùng nhãn và sơ đồ màu từ tập dữ liệu cơ sở (đây là lý do tại sao các nhãn lại bằng tiếng Thụy Điển).
Tôi cũng đã mở rộng dữ liệu phát hiện cây mẫu để bao phủ nhiều khu vực hơn, giúp việc xem các thuật toán làm gì thú vị hơn, bao gồm cả những lỗi rõ ràng:
Ví dụ về lỗi trong phát hiện cây
Ngoài ra, tôi đã bao gồm cả các vị trí camera từ chương trình "The Great Moose Migration" (Đại di cư của Nai sừng tấm) của đài SVT như một lớp dữ liệu khác (được gọi là DSÄ kameror). "Đại di cư của Nai sừng tấm" năm nay dự kiến bắt đầu vào ngày 22 tháng 4 và đây là một phần nguồn cảm hứng cho dự án này.
Tôi nhận ra rằng dù đã xem chương trình này trên TV hơn 5 năm nay, nhưng khi bắt đầu nhìn vào các bản đồ 3D của dữ liệu địa hình, tôi nhìn thấy khu vực đó dưới một ánh sáng hoàn toàn mới. Tôi có thể hiểu tại sao những chú nai lại chọn bơi qua một khu vực này thay vì khu vực khác vì tôi thực sự thấy được khoảng cách liên quan. Trên TV, họ sử dụng những ống kính zoom tuyệt vời để bao phủ một khu vực rộng, nhưng ống kính zoom lớn lại nén khoảng cách theo cách khiến rất khó để cảm nhận được thực tế, nhưng trên bản đồ này, tôi có thể thấy rõ nơi dòng sông hẹp hơn và rộng hơn gần các camera.
Cải thiện tính sử dụng
Tôi cũng đã thực hiện một số tinh chỉnh về tính khả dụng. Điều chính là khi bạn di chuyển xung quanh, vị trí sẽ được lưu trữ trong URL để bạn có thể chia sẻ những gì bạn tìm thấy với người khác. Tôi thực sự nghĩ rằng sức mạnh của loại trình xem này là cho phép mọi người từ các lĩnh vực khác nhau tương tác với dữ liệu và bắt đầu đặt câu hỏi về những gì ở đó, và để làm được điều đó, họ cần một cách để ghi lại những gì họ thấy và chia sẻ nó với người khác.
Hiện tại, thuật toán tải dữ liệu vẫn còn khá cồng kềnh và cần nhiều công việc nữa, nhưng đó là một khởi đầu tốt đẹp. Phần khó khăn là xác định xem liệu chúng ta có thể làm được điều này hay không đã được giải quyết xong xuôi.



