Clip trăn raster

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ần phụ thuộc 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 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ư