|
VNU LogoHCMUSSH Logo

[Bài 3] Xử lý dữ liệu địa lý với thư viện Geopandas

01/04/2025
CHIA SẺ:
[Bài 3] Xử lý dữ liệu địa lý với thư viện Geopandas

 


Bạn đã từng ngồi cả tiếng đồng hồ click chuột trong QGIS để xử lý dữ liệu shapefile? 🤯 Hôm nay mình sẽ giới thiệu "phù thủy" Geopandas giúp bạn làm điều đó chỉ với vài dòng code Python! Cùng khám phá nhé!


1. Geopandas - "Cánh tay phải" của dân GIS

Geopandas là thư viện Python giúp:
✔️ Đọc/ghi file shapefile nhanh như chớp
✔️ Xử lý dữ liệu không gian "ngon hơn QGIS"
✔️ Tích hợp với các thư viện data science khác

💡 Ví dụ vui: Nếu QGIS là xe máy thì Geopandas + Python là siêu xe - cùng đi đến đích nhưng tốc độ khác hẳn!


2. Cài đặt siêu tốc

Chỉ cần 1 lệnh:

bash

pip install geopandas

P/S: Nhớ activate môi trường ảo đã tạo ở Bài 2 nha!


3. Thực hành "chất như nước cất"

3.1 Đọc file shapefile

python

import geopandas as gpd

# Đọc file ranh giới các tỉnh (link tải ở cuối bài)

df = gpd.read_file("tinh_vietnam.shp")

# Xem thử xem có gì

print(df.head())

👉 Output: Bảng dữ liệu gồm tên tỉnh, diện tích và hình học

3.2 Lọc dữ liệu "chuẩn chef"

python

# Lọc các tỉnh diện tích > 5000 km2

tinh_lon = df[df['dientich'] > 5000]

# Vẽ bản đồ

tinh_lon.plot(figsize=(10,8), color='red', edgecolor='black')

3.3 Tính toán spatial join

python

# Đọc file điểm dân cư

diem_dan_cu = gpd.read_file("diem_dan_cu.shp")

# Đếm số điểm dân cư mỗi tỉnh

joined = gpd.sjoin(df, diem_dan_cu, how='left')

count = joined.groupby('ten_tinh').size()


4. Bảng so sánh Geopandas vs QGIS

Tính năng QGIS Geopandas
Tự động hóa 👎 Cần plugin 👍 Code ngắn gọn
Xử lý big data 👎 Chậm 👍 Nhanh vượt trội
Khả năng tùy biến 👎 Hạn chế 👍 Không giới hạn

 


 

📌 Bài tập tự làm:

  1. Tạo 2 môi trường ảo:

    • python_gis cho phân tích không gian

    • python_rs cho viễn thám

  2. So sánh tốc độ khi chạy cùng script trên 2 môi trường

 

Bài tập về nhà:

  1. Tải shapefile quận/huyện từ OpenStreetMap

  2. Tính diện tích từng quận bằng Geopandas

  3. Vẽ bản đồ phân cấp theo diện tích

Chuẩn bị cho Bài 4:
Tải trước bộ dữ liệu mẫu tại: github.com/geopandas/geopandas

💡 Pro tip: Dùng df.to_file('output.geojson', driver='GeoJSON') để xuất file siêu dễ!

 

Bài tiếp theo: [Bài 4] Phân tích không gian cơ bản: Buffer, Intersect, Union 

Bài trước: [Bài 2] Cài đặt môi trường Python cho GIS: Bắt đầu từ con số 0

 

5. Tài liệu tham khảo

  1. Jordahl, K. (2020). GeoPandas: Python tools for geographic data. Journal of Open Source Software, 5(45), 1921. https://doi.org/10.21105/joss.01921

  2. Pandas Development Team. (2023). Pandas documentationhttps://pandas.pydata.org/docs/

  3. QGIS.org (2023). PyQGIS Developer Cookbookhttps://docs.qgis.org/3.28/en/docs/pyqgis_developer_cookbook/

  4. OpenStreetMap Contributors. (2023). Vietnam administrative shapefileshttps://download.geofabrik.de/asia/vietnam.html

  5. McKinney, W. (2010). Data Structures for Statistical Computing in Python. Proceedings of the 9th Python in Science Conference.

CHIA SẺ:
Ngày cập nhật: 01/04/2025

Bài viết liên quan