Tif thành shapefile python

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']
df.head[]
5

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

Để 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']
df.head[]
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

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[]

Hình ảnh của tác giả

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']
df.head[]
7

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']
df.head[]
8

df.shape

Bộ dữ liệu chứa 47.427 tệp

Lô dữ liệu

Tô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']
df.head[]
9 do GeoPandas cung cấp. Nếu một tệp chứa nhiều hình học

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']
df.head[]
5. Đầu tiên, tôi có thể tăng kích thước hình. Tôi xác định một
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 đồ GeoDataFrame

pip3 install geopandas
3

Hì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
4

Có 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
5

Bây giờ tôi kiểm tra số loại còn lại

pip3 install geopandas
4

Có 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']
df.head[]
9. Tôi có thể hiển thị chú giải bằng cách đặt
df = df.set_geometry['geometry']
5

import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']
df.head[]
0

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ọc

GeoPandas 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']
6

import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']
df.head[]
0

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 động

import geopandas as gpddf = gpd.read_file['../../Datasets/italy-points-shape/points.shp']
df.head[]
1

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']
df.head[]
2

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']
df.head[]
3

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']
df.head[]
4

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

Chủ Đề