Raster clip Python với shapefile

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

Raster clipping là một trong những nhiệm vụ phổ biến trong xử lý raster. Trong hướng dẫn này, chúng tôi sẽ cắt một raster bằng hình học đa giác trong python bằng Rioxarray. Rioxarray là gói gis mã nguồn mở mở rộng chức năng của xarray bằng rasterio

Trước khi cắt/cắt dữ liệu raster, chúng tôi sẽ thiết lập môi trường conda và cài đặt các gói Python GIS cần thiết cho tác vụ này. Đảm bảo conda được cài đặt trên hệ thống của bạn. Sử dụng các lệnh sau để tạo môi trường conda và cài đặt thư viện python

Khi bạn cài đặt thư viện geocube bằng conda, nó sẽ tự động cài đặt các phụ thuộc liên quan bao gồm gdal, shapely, rasterio, geopandas, xarray, rioxarray, v.v.
Và chúng tôi cũng sẽ cài đặt thư viện pygeos được sử dụng để tăng tốc các hoạt động được vector hóa trong GeoPandas và Shapely

Cắt/Cắt raster theo hình học đa giác trong Python

1

2

3

4

[base] geoknight@pop-os:~$conda tạo - . n spatial-dev.guru trăn=3. 10

[base] geoknight@pop-os:~$conda kích hoạt không gian . -dev.guru

[không gian-nhà phát triển. guru] geoknight@pop . -os:~$conda cài đặt -c conda-forge geocube

[không gian-nhà phát triển. guru] geoknight@pop . -os:~$conda cài đặt -c conda-forge pygeos

Khi bạn đã cài đặt thành công các thư viện cần thiết, chúng tôi sẽ sử dụng rioxarray để cắt raster

Trước khi cắt raster, đảm bảo raster và đa giác là cùng một hệ thống chiếu. Trong ví dụ đã cho của chúng tôi, cả raster và đa giác đều nằm trong hệ thống chiếu 3857

Để cắt raster, hãy làm theo các bước dưới đây

  1. Đầu tiên nhập rioxarray và phương thức Polygon từ shapely
  2. Sau đó đọc tập dữ liệu raster bằng rioxarray
  3. Sau đó, tạo đối tượng hình học có hình dạng từ đa giác mà bạn muốn cắt raster
  4. Sau đó, chúng tôi sẽ sử dụng phương thức clip từ rioxarray và chuyển đối tượng hình học có hình dáng làm tham số. Phương pháp này sẽ cung cấp cho bạn raster được cắt bớt dựa trên hình dạng cân đối

Đó là nó. Chúng tôi đã cắt/cắt thành công raster dựa trên hình học đa giác

Cắt/cắt raster theo hình học đa giác trong Python

con trăn

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# nhập rioxarray và shapley

nhập rioxarray dưới dạng riox

từ đẹp. hình học nhập Đa giác

 

# Đọc raster bằng rioxarray

raster = riox. open_rasterio['cal_census. tiff']

 

# Đa giác Shapely  để cắt raster

hình học = Đa giác[[[-13315253,3920415], [-13315821.7,4169010. 0], [- . 84,4168177. 65], [- . 1595,3921355. 7391]]]

 

# Sử dụng đa giác tạo hình trong phương pháp clip của đối tượng rioxarray để clip raster

clipped_raster = raster. rio. clip[[địa hình]]

 

# Lưu raster đã cắt

clipped_raster. rio. to_raster['clipped. tiff']

Tôi hy vọng hướng dẫn này sẽ tạo ra một nền tảng tốt cho bạn. Nếu bạn muốn xem hướng dẫn về một chủ đề GIS khác hoặc bạn có bất kỳ thắc mắc nào, vui lòng gửi email theo địa chỉ contact@spatial-dev. đạo sư

Bạn có thể cắt một raster thành một vectơ không?

Trong Raster, chọn lớp raster bạn muốn cắt và trong Mask, chọn lớp vectơ . Nếu bạn muốn đảo ngược clip, nghĩa là chỉ bao gồm các pixel KHÔNG nằm trong đa giác, chỉ cần kích hoạt tùy chọn Invert Mask.

Bạn có thể cắt một hình ảnh raster?

Có thể sử dụng lớp raster hoặc lớp vectơ hiện có làm phạm vi clip . Nếu bạn đang sử dụng một lớp đối tượng làm phạm vi đầu ra, bạn có thể cắt raster theo hình chữ nhật giới hạn tối thiểu của lớp đối tượng hoặc theo hình dạng đa giác của các đối tượng.

Chủ Đề