Tôi đang làm việc trên bản đồ khảo sát với hơn 1000 điểm dữ liệu. Tại mỗi điểm dữ liệu, tồn tại một tệp hình ảnh tiff được liên kết. Khách hàng của chúng tôi đã yêu cầu chúng tôi thêm các siêu liên kết vào shapefile để họ có thể chọn điểm và nó sẽ mở hình ảnh được liên kết. Chúng tôi đã có thể làm điều này, nhưng cách duy nhất để gửi các tệp bây giờ là gửi một thư mục chứa tất cả các hình ảnh tiff cùng với gói bản đồ. Chúng tôi đã tự hỏi liệu có cách nào để nhập các hình ảnh tiff vào bản đồ và liên kết chúng với các điểm shapefile để khi một điểm được chọn, hình ảnh tiff sẽ hiển thị. Tất cả các tệp tiff đã được tham chiếu địa lý nên khi tôi thả chúng vào bản đồ, chúng sẽ hiển thị phía sau các điểm. Vấn đề là ở những khu vực có nhiều điểm dày đặc và chồng chéo, chúng ta không thể xem xét từng điểm một. Chúng tôi đang sử dụng ArcMap 8. 0
Cảm ơn bạn
Ứng dụng khoa học dữ liệu thường yêu cầu làm việc với dữ liệu trong không gian địa lý. Shapefiles là các tệp lưu trữ dữ liệu không gian địa lý được tổ chức bằng cơ sở dữ liệu dựa trên tệp. Shapefiles được sử dụng bởi các chuyên gia GIS, cơ quan chính quyền địa phương và doanh nghiệp để lập bản đồ và phân tích
Trong bài đăng trên blog này, tôi sẽ mô tả một cách làm việc tinh tế với dữ liệu không gian địa lý trong Python, thông qua một ví dụ thực tế. Tôi sẽ sử dụng GeoPandas, một thư viện Python để làm việc với dữ liệu không gian địa lý như vẽ sơ đồ, phân tích và lập bản đồ. GeoPandas mở rộng thư viện Pandas rất phổ biến để xử lý dữ liệu địa lý. Tôi cũng sẽ xem cách vẽ biểu đồ kết quả bằng cách sử dụng
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']5
df.head[]
GeoPandas có thể được cài đặt thông qua lệnh sau
pip3 install geopandas
Hướng dẫn được tổ chức như sau
- Tải tập dữ liệu
- Lô dữ liệu
- Các phép toán trên Hình học
Để tải tập dữ liệu địa lý, tôi có thể khai thác hàm
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']6, hàm này sẽ tự động phát hiện định dạng của tập dữ liệu. Nếu tệp là tệp hình dạng, tôi phải đảm bảo rằng thư mục chứa tệp hình dạng cũng bao gồm. xin chào,. dbf và. tập tin shx
df.head[]
Trong hướng dẫn này, tôi khai thác bộ dữ liệu chứa các điểm ưa thích của Ý, được cung cấp bởi Map Cruzin. Shapefile này có nguồn gốc từ OpenStreetMap. org và được cấp phép theo Giấy phép Cơ sở dữ liệu mở Open Data Commons [ODbL]
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']
df.head[]
Trường Hình học có thể chứa ĐIỂM, ĐA ĐIỂM, ĐA GIÁC, v.v. Tập dữ liệu có thể chứa nhiều trường hình học, nhưng chỉ một trường hình học có thể được đặt là hoạt động. Điều này có thể được thực hiện thông qua chức năng
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']7
df.head[]
df = df.set_geometry['geometry']
Tệp được tải dưới dạng khung dữ liệu GeoPandas. Vì Khung dữ liệu GeoPandas là một lớp con của Khung dữ liệu Pandas, tôi có thể sử dụng tất cả các phương thức Khung dữ liệu Pandas với Khung dữ liệu GeoPandas của mình. Ví dụ: tôi có thể hiển thị số lượng bản ghi thông qua thuộc tính
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']8
df.head[]
df.shape
Bộ dữ liệu chứa 47.427 tệp
Lô dữ liệuTôi có thể vẽ bản đồ đầu tiên, thông qua chức năng
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']9 do GeoPandas cung cấp. Nếu một tệp chứa nhiều hình học
df.head[]
df.plot[]
Hình ảnh của tác giả
Bản đồ trước đó quá nhỏ, vì vậy nó có thể được cải thiện bằng cách sử dụng
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']5. Đầu tiên, tôi có thể tăng kích thước hình. Tôi xác định một
df.head[]
df = df.set_geometry['geometry']
1 với kích thước mong muốn và sau đó tôi chuyển biến df = df.set_geometry['geometry']
2 vào biểu đồ GeoDataFramepip3 install geopandas
3Hình ảnh của tác giả
Tôi cũng có thể thay đổi màu của các dấu chấm theo cột loại. Loại cốt truyện này được gọi là bản đồ Choropleth. Tôi tính toán số lượng các loại khác nhau
pip3 install geopandas
4Có 301 loại khác nhau. Để làm cho bản đồ dễ đọc hơn, tôi bỏ các loại có điểm dưới 300
pip3 install geopandas
5Bây giờ tôi kiểm tra số loại còn lại
pip3 install geopandas
4Có 26 loại
Bây giờ tôi vẽ bản đồ Chorophlet, đơn giản bằng cách chuyển thuộc tính
df = df.set_geometry['geometry']
3 cho hàm import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']9. Tôi có thể hiển thị chú giải bằng cách đặt
df.head[]
df = df.set_geometry['geometry']
5import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']0
df.head[]
Hình ảnh của tác giả
Thật thú vị khi lưu ý rằng phần lớn các điểm tham quan đều nằm ở Bắc Ý
Các phép toán trên Hình họcGeoPandas cho phép thực hiện nhiều thao tác trực tiếp trên trường hình học. Ví dụ: tôi có thể tính khoảng cách của từng điểm từ một điểm nhất định, tôi. e. Rome, là thủ đô của Ý. Tôi chuyển đổi tọa độ thành hình học thông qua hàm
df = df.set_geometry['geometry']
6import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']0
df.head[]
Sau đó, tôi tính khoảng cách của mỗi điểm trong
df = df.set_geometry['geometry']
7 từ df = df.set_geometry['geometry']
8. Tôi sử dụng hàm df = df.set_geometry['geometry']
9, được áp dụng cho hình học hoạt độngimport geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']1
df.head[]
Hình ảnh của tác giả
Tôi đặt hàng tập dữ liệu bằng cách tăng khoảng cách
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']2
df.head[]
Cuối cùng, tôi chỉ chọn những điểm ưa thích gần Rome, tôi. e. khoảng cách nhỏ hơn 0. 2
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']3
df.head[]
Sau đó, tôi vẽ sơ đồ khung dữ liệu kết quả
import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']4
df.head[]
Hình ảnh của Tác giảTóm tắt
Xin chúc mừng. Bạn vừa học cách biểu diễn dữ liệu địa lý bằng Python thông qua GeoPandas
Bạn đã học cách GeoPandas có thể được sử dụng để thực hiện các hoạt động hiệu quả trên dữ liệu địa lý. Mặc dù Pandas rất xuất sắc trong nhiều nhiệm vụ, nhưng nó không lý tưởng để làm việc với dữ liệu không gian địa lý trong các ứng dụng nhận biết vị trí. GeoPandas giải quyết vấn đề này bằng cách thêm chức năng phù hợp với dữ liệu không gian địa lý vào Pandas
Bạn có thể tải xuống mã của hướng dẫn này từ Kho lưu trữ Github của tôi
Nếu bạn đã đi đến đây để đọc, đối với tôi nó đã là rất nhiều cho ngày hôm nay. Cảm ơn. Bạn có thể đọc thêm về tôi trong bài viết này