Hơn cả một công cụ kỹ thuật, GIS đã trở thành một hệ thống tích hợp, giúp kết nối dữ liệu không gian với các thông tin thuộc tính, tạo nên nền tảng để đưa ra các quyết định chiến lược và
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN
HỆ THỐNG THÔNG TIN KHÔNG GIAN
ỨNG DỤNG GIS XÂY DỰNG BẢN ĐỒ BÁO CÁO HẠNH
PHÚC THẾ GIỚI Giảng viên hướng dẫn : TS.NAM ANH
ĐÀO TIẾN ĐỨC
Hà nội, tháng 11 năm 2024
Trang 2PHIẾU CHẤM ĐIỂM STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký
21810310539
Giảng viên chấm 1:
Giảng viên chấm 2:
Trang 3LỜI MỞ ĐẦU
Trong thời đại công nghệ số, Hệ thống Thông tin Địa lý (GIS) đã trở thành một công cụ quan trọng, góp phần nâng cao năng lực quản lý, phân tích và giải quyết các vấn đề không gian phức tạp Việc ứng dụng GIS không chỉ giới hạn trong các lĩnh vực như địa lý, môi trường hay quy hoạch đô thị mà còn mở rộng đến các ngành công nghiệp, nông nghiệp, và thậm chí cả đời sống hàng ngày Hơn cả một công cụ kỹ thuật, GIS đã trở thành một hệ thống tích hợp, giúp kết nối dữ liệu không gian với các thông tin thuộc tính, tạo nên nền tảng để đưa ra các quyết định chiến lược và hiệu quả
Báo cáo này được thực hiện nhằm nghiên cứu và phát triển một ứng dụng cụ thể trong GIS: Xây dựng bản đồ báo cáo hạnh phúc thế giới Dự án không chỉ giúp người học củng cố kiến thức về lý thuyết mà còn ứng dụng trực tiếp các kỹ thuật lập trình GIS Dự án đã sử dụng các công cụ như Plotly, Pandas và Seaborn để trực quan hóa dữ liệu một cách hiệu quả Với sự hỗ trợ từ các công cụ hiện đại, báo cáo này là một minh chứng cho khả năng mở rộng và linh hoạt của GIS trong thực tiễn
Để hoàn thành báo cáo này, tôi xin gửi lời cảm ơn chân thành đến TS Nam Anh, những giảng viên đã tận tình hướng dẫn, truyền đạt kiến thức cũng như định hướng cách tiếp cận hiệu quả trong việc nghiên cứu và ứng dụng GIS Sự nhiệt huyết và tận tâm của các thầy đã truyền cảm hứng lớn lao cho tôi trong quá trình học tập và thực hiện dự án này
Trang 4MỤC LỤC
CHƯƠNG 1:TÌM HIỂU VỀ HỆ THỐNG THÔNG TIN KHÔNG GIAN 6
1.1 Tổng quan về hệ thống thông tin không gian 6
1.2 Hoạt động thu thập dữ liệu của hệ thống thông tin địa lý (GIS) 6
1.2.1 Khái niệm cơ bản về GIS 6
1.2.2 Chức năng của GIS 6
1.2.3 Định dạng dữ liệu 7
1.3 Các mối quan hệ trong hệ thống thông tin địa lý GIS 7
1.4 Thiết lập bản đồ trên nền hệ thống thông tin địa lý GIS 8
CHƯƠNG 2 : TÌM HIỂU VỀ HỆ THỐNG THÔNG TIN KHÔNG GIAN 9
2.1 Tổng quan về Plugin trong QGIS 9
2.2 Lý do phát triển plugin tùy chỉnh 9
2.3 Quy trình áp dụng ứng dụng GIS 10
2.3.1 Chuẩn bị môi trường phát triển 10
2.3.2 Cài đặt và cấu hình Jupyter Notebook 10
2.3.3 Cài đặt và xử lý dữ liệu GIS 10
2.3.4 Phân tích và trực quan hóa dữ liệu không gian 11
2.3.5 Phân tích và trực quan hóa dữ liệu không gian và phi không gian 11
2.3.6 Kiểm thử và triển khai 12
2.4 Các thách thức và giải pháp 12
2.5 Mở rộng chức năng 13
CHƯƠNG 3: ỨNG DỤNG GIS XÂY DỰNG BẢN ĐỒ BÁO CÁO HẠNH PHÚC THẾ GIỚI 14
3.1 Tổng quan về dữ liệu phục vụ xây dựng bản đồ báo cáo hạnh phúc thế giới .14 3.2 Định hướng phát triển công cụ 15
Trang 53.3 Quy trình xây dựng công cụ 15
3.3.1 Xác định yêu cầu và chức năng 15
3.3.2 Phát triển chức năng tương tác cho phân tích dữ liệu 15
3.3.3 Kết quả và đánh giá 16
KẾT LUẬN 19
TÀI LIỆU THAM KHẢO 20
CHƯƠNG 1:TÌM HIỂU VỀ HỆ THỐNG THÔNG TIN KHÔNG GIAN
Trang 61.1 Tổng quan về hệ thống thông tin không gian
Hệ thống thông tin không gian (Spatial Information System) là một tập hợp các công cụ và công nghệ được thiết kế để quản lý và phân tích dữ liệu liên quan đến
vị trí địa lý Hệ thống này tích hợp dữ liệu không gian (vị trí) và phi không gian (thuộc tính), hỗ trợ xử lý, lưu trữ, và hiển thị thông tin một cách trực quan Mục tiêu của hệ thống thông tin không gian là cung cấp nền tảng phân tích cho các ngành như quy hoạch đô thị, quản lý tài nguyên thiên nhiên, nghiên cứu môi trường, và giải quyết các vấn đề xã hội phức tạp
Hệ thống thông tin không gian không chỉ dựa trên công nghệ mà còn đòi hỏi sự hiểu biết chuyên sâu về địa lý, khoa học dữ liệu, và các phương pháp quản lý cơ sở
dữ liệu Nó kết nối các yếu tố không gian của thế giới thực với thông tin chi tiết, từ
đó tạo ra những công cụ mạnh mẽ để hỗ trợ ra quyết định trong các lĩnh vực liên quan đến địa lý
1.2 Hoạt động thu thập dữ liệu của hệ thống thông tin địa lý (GIS)
1.2.1 Khái niệm cơ bản về GIS
Hệ thống thông tin địa lý (Geographic Information System - GIS) là một hệ thống công nghệ sử dụng phần mềm và phần cứng để thu thập, lưu trữ, quản lý, phân tích
và trình bày dữ liệu địa lý GIS tập trung vào việc mô hình hóa các dữ liệu liên quan đến vị trí không gian (như tọa độ, đường biên giới) và dữ liệu phi không gian (thuộc tính liên quan đến đối tượng, như tên gọi, đặc điểm kinh tế, hay dân số) Hệ thống này giúp chuyển đổi các dữ liệu phức tạp thành các bản đồ trực quan và các báo cáo phân tích hỗ trợ quyết định
1.2.2 Chức năng của GIS
GIS thực hiện năm chức năng chính như sau:
Trang 71 Thu thập dữ liệu: Xây dựng và nhập dữ liệu từ các nguồn khác nhau, bao gồm ảnh vệ tinh, GPS, khảo sát địa hình, và số hóa bản đồ giấy Đây là bước khởi đầu quan trọng để xây dựng cơ sở dữ liệu GIS chất lượng
2 Quản lý dữ liệu: Tổ chức và lưu trữ dữ liệu địa lý trong các cơ sở dữ liệu không gian Các thông tin này được phân loại và liên kết giữa các yếu tố không gian (vị trí) và phi không gian (thuộc tính), tạo điều kiện cho việc tìm kiếm và phân tích
3 Phân tích dữ liệu: Hệ thống cung cấp công cụ phân tích không gian mạnh
mẽ, như tìm kiếm các khu vực có rủi ro cao hoặc mô phỏng những thay đổi trong sử dụng đất
4 Hiển thị dữ liệu: Tạo ra các bản đồ và hình ảnh đồ họa trực quan, cho phép người dùng hiểu rõ hơn về mối quan hệ không gian giữa các đối tượng
5 Xuất dữ liệu: Kết quả phân tích có thể được lưu trữ dưới dạng bản đồ, bảng
số liệu, hoặc các tệp tin kỹ thuật số để phục vụ các ứng dụng khác
1.2.3 Định dạng dữ liệu
Dữ liệu GIS được lưu trữ dưới hai định dạng chính:
Dữ liệu raster: Dạng lưới pixel, thường được sử dụng để lưu trữ thông tin liên tục như độ cao, nhiệt độ, hoặc ảnh vệ tinh Dữ liệu raster phù hợp để phân tích các yếu tố tự nhiên như độ dốc hoặc diện tích rừng
Dữ liệu vector: Dạng điểm, đường, hoặc đa giác, biểu diễn các đối tượng có biên rõ ràng như đường phố, ranh giới hành chính, hoặc khu vực đô thị Vector rất hữu ích trong quy hoạch hạ tầng hoặc xác định ranh giới sử dụng đất
1.3 Các mối quan hệ trong hệ thống thông tin địa lý GIS
Trong GIS, các mối quan hệ không gian giữa các đối tượng đóng vai trò quan trọng trong việc phân tích dữ liệu Một số mối quan hệ cơ bản bao gồm:
Trang 8 Quan hệ gần gũi (proximity): Đánh giá khoảng cách giữa các đối tượng, ví
dụ, xác định các bệnh viện gần nhất đến một khu dân cư
Quan hệ giao cắt (intersection): Xác định các khu vực chồng lấn giữa các đối tượng không gian, chẳng hạn, các khu vực có cả giao thông và rừng
Quan hệ phân vùng (buffering): Tạo vùng ảnh hưởng xung quanh một đối tượng, ví dụ, vùng an toàn quanh các nhà máy hóa chất
1.4 Thiết lập bản đồ trên nền hệ thống thông tin địa lý GIS
Thiết lập bản đồ trong GIS bao gồm các bước:
1 Chuẩn bị dữ liệu: Thu thập và xử lý dữ liệu từ nhiều nguồn như khảo sát thực địa, ảnh vệ tinh hoặc số hóa bản đồ giấy
2 Thiết kế cơ sở dữ liệu: Tích hợp dữ liệu không gian và phi không gian vào
cơ sở dữ liệu GIS, đảm bảo tính liên kết và chính xác
3 Phân lớp dữ liệu: Sắp xếp thông tin thành các lớp (layers) như giao thông, địa hình, và sử dụng đất để quản lý hiệu quả
4 Xử lý và phân tích dữ liệu: Ứng dụng các thuật toán GIS để tạo ra các bản
đồ chuyên đề hoặc mô phỏng các kịch bản khác nhau
5 Xuất bản đồ: Bản đồ được xuất dưới dạng kỹ thuật số hoặc in ấn, với các yếu tố như tỷ lệ, chú giải, và hệ tọa độ rõ ràng
6 Tính ứng dụng trong lĩnh vực thông tin địa lý GIS
GIS có ứng dụng rộng rãi trong nhiều lĩnh vực, bao gồm:
Quy hoạch đô thị: GIS hỗ trợ phân tích sử dụng đất, quy hoạch khu dân cư,
và thiết kế hạ tầng giao thông
Nông nghiệp: Tối ưu hóa quản lý đất nông nghiệp, theo dõi tình trạng cây trồng, và dự đoán sản lượng
Quản lý thiên tai: GIS giúp xác định khu vực nguy cơ, lập kế hoạch ứng phó
và theo dõi tác động của thiên tai
Trang 9 Giao thông vận tải: Hỗ trợ lập kế hoạch mạng lưới giao thông, tối ưu hóa tuyến đường, và phân tích lưu lượng giao thông
CHƯƠNG 2 : TÌM HIỂU VỀ HỆ THỐNG THÔNG TIN KHÔNG GIAN 2.1 Tổng quan về Plugin trong QGIS
Plugins trong QGIS là các công cụ bổ trợ do cộng đồng phát triển hoặc được xây dựng riêng để mở rộng chức năng của phần mềm QGIS Các plugin này cho phép người dùng tự động hóa quy trình, tăng cường khả năng phân tích không gian, và tạo ra các ứng dụng chuyên biệt trên nền tảng QGIS Các plugin có thể được viết bằng ngôn ngữ Python , mang lại sự linh hoạt và mạnh mẽ trong việc tương tác với
dữ liệu không gian
Trong môi trường Jupyter Notebook, người dùng có thể kết hợp các thư viện Python mạnh mẽ để thực hiện phân tích và trực quan hóa dữ liệu không gian, bao gồm:
Pandas: Thư viện dùng để xử lý dữ liệu bảng, phân tích thống kê và làm sạch
dữ liệu
Matplotlib và Seaborn: Dùng để trực quan hóa dữ liệu dưới dạng đồ thị và biểu đồ
Plotly: Hỗ trợ tạo các biểu đồ tương tác và bản đồ động
2.2 Lý do phát triển plugin tùy chỉnh
Trong các dự án đặc thù, chẳng hạn như truy vấn và tách lớp dữ liệu vector dựa trên thuộc tính, các tính năng mặc định của QGIS có thể không đáp ứng đầy đủ yêu cầu Phát triển một plugin tùy chỉnh mang lại các lợi ích:
Tự động hóa quy trình: Giảm thời gian xử lý dữ liệu thủ công
Tùy chỉnh linh hoạt: Đáp ứng các yêu cầu riêng biệt của dự án
Trang 10Khả năng mở rộng: Các plugin tùy chỉnh có thể dễ dàng nâng cấp hoặc thay đổi để
bổ sung thêm các chức năng mới khi có yêu cầu, giúp mở rộng khả năng của công
cụ phân tích không gian
2.3 Quy trình áp dụng ứng dụng GIS
2.3.1 Chuẩn bị môi trường phát triển
Cài đặt và cấu hình môi trường Python:
Cài đặt Python phiên bản 3.x Python là ngôn ngữ lập trình chính cho việc phát triển ứng dụng GIS, cho phép bạn xử lý và phân tích dữ liệu không gian, cũng như tích hợp với các công cụ như QGIS.
Cài đặt các thư viện Python cần thiết, bao gồm:
NumPy: Thư viện phục vụ việc xử lý toán học và đại số tuyến tính
Pandas: Dùng để xử lý dữ liệu bảng, đọc và viết các tệp CSV, thực hiện phân tích
dữ liệu
Matplotlib và Seaborn: Các thư viện để trực quan hóa dữ liệu, vẽ biểu đồ và đồ thị, giúp phân tích dữ liệu không gian và các đặc tính xã hội
Plotly: Một thư viện mạnh mẽ giúp tạo bản đồ tương tác và trực quan hóa dữ liệu không gian
GeoPandas: Thư viện mở rộng của Pandas giúp xử lý các dữ liệu không gian, hỗ trợ nhiều định dạng dữ liệu GIS như shapefile, GeoJSON, và các phép toán không gian
2.3.2 Cài đặt và cấu hình Jupyter Notebook
Cài đặt Jupyter Notebook: Jupyter Notebook là một môi trường lập trình phổ biến cho phân tích dữ liệu, cho phép viết mã, chạy mã, và trực quan hóa dữ liệu trong một không gian tương tác
2.3.3 Cài đặt và xử lý dữ liệu GIS
Đọc và tải dữ liệu GIS vào môi trường Python: Để làm việc với dữ liệu không gian thì cần sử dụng các tệp dữ liệu như shapefile, GeoJSON, hoặc các tệp CSV
Trang 11chứa thông tin không gian Ví dụ, chúng ta có thể sử dụng thư viện GeoPandas để tải và xử lý các tệp dữ liệu không gian:
import geopandas as gpd
data = gpd.read_file("world_shapefile.shp")
2.3.4 Phân tích và trực quan hóa dữ liệu không gian
Trực quan hóa dữ liệu GIS: Sử dụng Matplotlib để vẽ các bản đồ từ dữ liệu không gian Ví dụ, để vẽ bản đồ của các đối tượng không gian từ shapefile:
data.plot(figsize=(10, 10), color='lightblue', edgecolor='black')
plt.title('GIS Data Map')
plt.show()
Tạo bản đồ tương tác: Ngoài việc tạo bản đồ tĩnh, chúng ta cũng có thể tạo bản
đồ tương tác bằng Plotly hoặc Folium để trực quan hóa dữ liệu không gian
2.3.5 Phân tích và trực quan hóa dữ liệu không gian và phi không gian
Trực quan hóa dữ liệu phi không gian: Sử dụng Seaborn và Matplotlib để trực quan hóa các dữ liệu phi không gian như chỉ số hạnh phúc (happiness index) Ví
dụ, để phân tích sự phân bố của các chỉ số hạnh phúc theo các khu vực, bạn có thể
sử dụng biểu đồ hộp (boxplot):
sns.boxplot(data=df2024.loc[:, list_features], orient='h', palette='Set3')
plt.show()
Phân tích dữ liệu không gian kết hợp với dữ liệu phi không gian: Kết hợp dữ liệu GIS với các dữ liệu phi không gian (như chỉ số hạnh phúc) để tạo các bản đồ tương
tác hoặc phân tích sâu hơn Ví dụ, chúng ta có thể sử dụng Plotly để tạo bản đồ
choropleth cho chỉ số hạnh phúc trên các quốc gia:
fig = px.choropleth(df2024,
locations='Country name',
color='Life Ladder',
locationmode='country names',
Trang 12animation_frame='year')
fig.update_layout(title='Life Ladder Comparison by Countries')
fig.show()
2.3.6 Kiểm thử và triển khai
Kiểm tra các phân tích GIS các bộ dữ liệu mẫu: Thử nghiệm với các bộ dữ liệu GIS mẫu để kiểm tra các phép toán không gian và phân tích dữ liệu
Đóng gói và triển khai ứng dụng GIS: Nếu cần, chúng ta có thể đóng gói ứng dụng GIS của mình thành một ứng dụng độc lập bằng cách sử dụng các công cụ như PyInstaller hoặc cx_Freeze để tạo các ứng dụng có thể chạy độc lập
2.4 Các thách thức và giải pháp
– Xử lý dữ liệu lớn:
Dự án thường kèm theo các bộ dữ liệu lớn, bao gồm dữ liệu không gian (shapefile, GeoJSON) và dữ liệu phi không gian (chỉ số kinh tế, xã hội) Điều này có thể gây khó khăn trong việc xử lý và phân tích một cách hiệu quả
Giải pháp:
Sử dụng GeoPandas để tải và xử lý dữ liệu không gian từng phần, kết hợp với Dask hoặc Pandas để tối ưu hóa bộ nhớ khi xử lý dữ liệu phi không gian
Tối ưu hóa các phép toán không gian như lọc, hợp nhất (merge), và nối (join) thông qua GeoPandas
– Tích hợp dữ liệu không gian và phi không gian:
Việc ghép nối các chỉ số (như GDP, tuổi thọ, hỗ trợ xã hội) với dữ liệu bản đồ có thể gặp khó khăn nếu không đồng nhất về các giá trị dữ liệu
Giải pháp:
Sử dụng phương thức GeoPandas.merge() để kết hợp dữ liệu GIS với các chỉ
số, dựa trên các cột như tên quốc gia hoặc mã ISO
Kiểm tra tính đồng nhất của các cột dữ liệu (ví dụ: xử lý tên quốc gia không đồng nhất bằng cách chuẩn hóa)
– Tạo bản đồ tương tác:
Trang 13Mặc dù việc tạo bản đồ tĩnh khá đơn giản, nhưng khi làm việc với dữ liệu lớn để xây dựng bản đồ tương tác có thể ảnh hưởng đến hiệu suất hệ thống
Giải pháp:
Sử dụng các thư viện như Plotly hoặc Folium để tạo bản đồ tương tác
Giảm kích thước dữ liệu bằng cách lọc hoặc tổng hợp trước khi đưa vào công cụ trực quan hóa
– Kiểm tra dữ liệu và xử lý lỗi:
Dữ liệu đầu vào có thể chứa lỗi hoặc thiếu sót, điều này có thể làm giảm độ chính xác của phân tích và báo cáo
Giải pháp:
Kiểm tra dữ liệu đầu vào bằng Pandas hoặc GeoPandas (ví dụ: kiểm tra giá trị null, giá trị ngoài phạm vi hợp lệ)
Tích hợp cơ chế thông báo lỗi chi tiết, giúp người dùng dễ dàng điều chỉnh khi dữ liệu không đầy đủ hoặc không hợp lệ
2.5 Mở rộng chức năng
Trong tương lai, ứng dụng có thể được mở rộng thêm các tính năng như:
Hỗ trợ các điều kiện lọc linh hoạt: Cho phép lọc dữ liệu theo nhiều tiêu chí khác nhau, chẳng hạn như GDP, tuổi thọ, hoặc các chỉ số khác, giúp người dùng tùy chỉnh phân tích theo nhu cầu với các phép toán logic phức tạp
Xuất dữ liệu sang định dạng phổ biến: Ngoài các định dạng hiện tại, ứng dụng sẽ hỗ trợ xuất dữ liệu sang các định dạng phổ biến như GeoJSON, CSV, hoặc Excel, giúp người dùng dễ dàng chia sẻ và sử dụng dữ liệu trên các nền tảng khác
Tạo bản đồ tương tác đa nền tảng: Ứng dụng sẽ cung cấp các bản đồ tương tác có thể dễ dàng tích hợp vào các ứng dụng web hoặc trình duyệt, giúp người dùng dễ dàng tiếp cận và tương tác với dữ liệu
Tự động hóa quy trình: Tích hợp các công cụ tự động hóa quy trình trong Python, giúp tự động hóa các công việc xử lý và phân tích dữ liệu, tiết kiệm thời gian và tăng tính hiệu quả cho các phân tích lặp lại