top of page

VoxCity – Mô hình hóa đô thị 3D bằng voxel trong Python

  • Writer: Tâm Minh
    Tâm Minh
  • Apr 18
  • 5 min read

Updated: Apr 23

Nếu bạn là một người làm việc trong lĩnh vực liên quan đến đô thị thì hẳn bạn đã từng muốn tạo ra những mô hình thành phố 3D chi tiết để phân tích ánh sáng, tầm nhìn, hoặc vi khí hậu. Nhưng không phải công cụ nào cũng dễ dùng, miễn phí và mang lại cảm giác “smooth” cho “bộ não thứ hai” của mình. Gần đây khi la cà trên Linkedln thì tôi tìm ra VoxCity trong bài đăng của ông anh Kunihiko Fujiwara (nếu bạn hứng thú với Urban Science thì đây là một người có thể cung cấp các thông tin hữu ích cho đến những innovative ideas).


Setting up for Google Earth Engine Authenticate to star a "Voxcity project" in Google Colab notebook


Google Earth Engine (GEE) là một nền tảng điện toán đám mây khá là mạnh được Google phát triển để phân tích và xử lý dữ liệu địa lý quy mô lớn, đặc biệt là ảnh viễn thám và dữ liệu không gian. Trong notebooke này thì nó được tích hợp nhằm giúp bạn tính toán và thực hiện truy xuất các kết quả từ ảnh viễn thám, metadata và xuất ra kết quả trên Notebook, các kết quả có thể trả về như Land use/ Land cover, building height, tree canopy, Digital Elevation Model.


Bạn cần có một tài khoản Google Earth Engine và tạo một cloud project để thực hiện bước Authenticate Google Earth Engine, bằng cách thêm các vai trò cho các tài khoản mà bạn sử dụng trong notebook "Service Customer Usage" and "Earth Engine Resources Admin". Bạn có thể tham khảo thêm ở đây về các set up của một tài khoản GGE tại https://developers.google.com/earth-engine/guides/access.



Example


Cùng chạy thử một khu vực ở phố cổ Hội An (Notebook) để so sánh được các kết quả khác biệt nếu chúng ta thay đổi các tùy chọn trong Step 3: Set variables

Phạm vi khu vực khảo sát
Phạm vi khu vực khảo sát

Setting box ở bước 3: Tôi sử dụng dữ liệu các công trình (building footprint) từ OSM, vì dữ liệu này ở Hôi An được đóng góp khá đầy đủ nếu tham chiếu với ảnh chụp vệ tinh.


Theo DEM (dem_source): Tôi chỉ thấy DeltaDTM cung cấp dữ liệu DEM cho các vùng đồng bằng và khu vực ven biển, chẳng hạn như Đồng bằng sông Cửu Long, Khu vực Duyên hải Trung Bộ, Đồng bằng sông Hồng, cùng một số khu vực khác. Bạn có thể kiểm tra khu vực có sẵn của mình thông qua liên kết sau: gge-deltadtm.




Bạn có thể thấy được một số kết quả trả về gồm 4 hình ảnh như trên, nếu bạn chọn dem_source và building_source khác đối với cùng một khu vực nghiên cứu thì kết quả hiển thị sẽ khác biệt do tính đầy đủ của dữ liệu và phương pháp tính toán để có có dược của mỗi nguồn có thể không giống nhau.


Visualize a simulation result on a 3D city model


Tính toán bức xạ mặt trời trên bề mặt tòa nhà (tích lũy)

Bức xạ mặt đất tích lũy (Ground-level Solar Irradiance - Cumulative)




View index (chỉ số tầm nhìn)

Phần lớn khu vực có giá trị chỉ số trung bình đến thấp (từ 0.2 đến 0.6), thể hiện mức độ quan sát bị hạn chế do mật độ xây dựng dày đặc và chiều cao công trình tương đối đồng đều. Những khu vực có chỉ số cao (màu xanh nhạt, trên 0.6) tập trung gần các trục đường chính và không gian mở ven sông, nơi có ít vật cản tầm nhìn. Điều này phản ánh rõ mối liên hệ giữa cấu trúc không gian đô thị với khả năng quan sát và trải nghiệm thị giác của du khách trong khu di sản.
Phần lớn khu vực có giá trị chỉ số trung bình đến thấp (từ 0.2 đến 0.6), thể hiện mức độ quan sát bị hạn chế do mật độ xây dựng dày đặc và chiều cao công trình tương đối đồng đều. Những khu vực có chỉ số cao (màu xanh nhạt, trên 0.6) tập trung gần các trục đường chính và không gian mở ven sông, nơi có ít vật cản tầm nhìn. Điều này phản ánh rõ mối liên hệ giữa cấu trúc không gian đô thị với khả năng quan sát và trải nghiệm thị giác của du khách trong khu di sản.

Trong phần Landmark Visibility vì dữ liệu các công trình của khu vực không thể xác định được những landmark nên tôi quyết định sẽ truy xuất những công trình, địa điểm thu hút khách du lịch bằng tag: Tourism, công trình có thể là museum, attraction, viewpoint, bạn có thể sử dụng các dòng lệnh sau:


Python
# Filter only selected categories from the 'tourism' column
tourism_points = building_gdf[building_gdf['tourism'].isin(['museum', 'attraction', 'viewpoint'])
].copy()
# OR
# Filter for historical places from 'historic' tag
historic_categories = building_gdf['historic'].notnull()
# Combine both filters
tourism_points = building_gdf[tourism_categories | historic_categories].copy()

Hình ảnh mô phỏng cho thấy các công trình trong phố cổ Hội An phần lớn có chiều cao thấp (1–3 tầng), phản ánh đúng đặc trưng kiến trúc truyền thống và quy định bảo tồn di sản vì đã từ rất lâu quy định mới (khoảng từ nhưng năm 2010) hầu như các công trình mặt phố cổ đều không được phép cao quá 12m, chỉ trừ một số ít những tuyến phố như Phan Đình Phùng, Trần Nhật Duật có những công trình cao từ 16m đến 20m. Bên cạnh đó Mô hình hóa mức độ hiển thị du lịch (tourism visibility) cho thấy các khu vực ven sông và trung tâm phố cổ có tầm nhìn cao, là những điểm thu hút chính đối với du khách. Ở ví dụ trong này tôi chỉ thực sự chọn lựa chọn một phương thức truy vấn để tìm ra địa điểm thu hút khác du lịch bằng các tag kể trên, tuy nhiên nếu có sự nghiên cứu kĩ lưỡng hơn thì sẽ có nhiều địa điểm mà khách du lịch thường lui tới hơn. Nếu như có thể thì nên phân loại các địa điểm thu hút khách du lịch theo khung thời gian trong ngày ví dụ như vào ban ngày sẽ diễn ra vào các điểm tham qua trại nghiệm ở các nhà cổ, chợ, bảo tàng ngược lại vào ban đêm thì các hoạt động trên phố như chợ đêm, show nghệ thuật dân gian, chèo thuyền trên sông sẽ là những điểm thu hút hơn. Dựa trên mô hình, ta thấy sự phân bố màu sắc từ xanh đến tím thể hiện mức độ hiển thị tăng dần, giúp xác định các không gian công cộng quan trọng và hỗ trợ quy hoạch cảnh quan, bảng chỉ dẫn hoặc tổ chức các hoạt động du lịch hiệu quả hơn.


Các ứng dụng sắp tới mà tôi có thể nghĩ đến đó là việc áp dụng các phân tích mạng lưới đô thị, sử dụng mô hình phân tích hình ảnh đường phố hay khảo sát về urban perception để hiểu rõ hơn về các yếu tố tạo nên đô thị ở nhiều góc độ khác nhau từ city scale đến human scale.


References

  1. Google Colab. (n.d.). Untitled Notebook. Retrieved April 18, 2025, from https://colab.research.google.com/drive/1yVf3l2wKYH3iJXjIEkWcVkKWNDvqwoSS

  2. Fujiwara, K. (n.d.). VoxCity. GitHub repository. Retrieved April 18, 2025, from https://github.com/kunifujiwara/VoxCity

  3. Nguyen, D. M., & Hoang, A. H. (2021). Inclusive Urban Development: A Case of Vietnamese City Region. International Journal of Contemporary Urban Affairs, 5(2), 53–68. https://ijcua.com/ijcua/article/view/201/362

  4. Lao Động. (2019, May 20). Quy định xây dựng tại khu phố cổ: Không tầng hầm, không trung tâm thương mại lớn. Retrieved April 18, 2025, from https://laodong.vn/archived/quy-dinh-xay-dung-tai-khu-pho-co-khong-tang-ham-khong-trung-tam-thuong-mai-lon-668700.ldo

 
 
 

Comments


© 2023 by Minh Tam Pham

bottom of page