Trích xuất dữ liệu từ netcdf bằng đa giác shapefile trong python


11

Tôi cần tập hợp dữ liệu từ NetCDF bằng cách sử dụng một shapefile cụ thể. Dữ liệu là nhiệt độ mặt nước biển và màu đại dương ở độ phân giải 1/4 độ. Tôi có 4 đa giác mô tả về Hoa Kỳ. Thềm lục địa Đông Bắc thềm hệ sinh thái biển lớn và đó là các thành phần phụ mà tôi cần sử dụng để trích xuất dữ liệu. Tôi đang làm việc với các tệp tổng hợp hàng tháng từ 1982-2014, vì vậy thói quen trích xuất dữ liệu này cần được tự động hóa. Các tệp đã được đặt vào lưới khu vực làm việc gần đúng của [35, 45, -80, -60].

nhập mô tả hình ảnh ở đây

Trước đây, chúng tôi đã chuyển đổi các tệp dữ liệu HDF5 sang các trình quét trong R và xử lý chúng theo cách này, nhưng phương pháp này thực sự không hiệu quả và tôi chắc chắn có một giải pháp tốt hơn trong python bằng các tệp NetCDF hiện tại.

Cho đến nay tôi đã sử dụng GDAL và Fiona để đọc các tệp hình dạng và NetCDF4 để tải các tệp dữ liệu. Tôi không chắc chắn làm thế nào để đi về tập hợp dữ liệu. Tôi đã tìm thấy cái này:

GDAL cho Python: trích xuất tên miền phụ từ tệp NetCDF?

Nhưng tôi không có ý tưởng rõ ràng nhất về cách đặt tập tin netcdf bằng cách sử dụng bất cứ thứ gì ngoài hộp giới hạn đơn giản, điều mà các đa giác này chắc chắn là không.

Điểm trong các thói quen đa giác có thể sẽ mất nhiều thời gian để hoạt động, nhưng có lẽ tôi có thể tập hợp dữ liệu bằng cách sử dụng hộp giới hạn nhỏ hơn được xoay để phù hợp với các hình dạng này như một điểm bắt đầu bẩm sinh và sau đó thực hiện tìm kiếm theo điểm:

Đặt lại tệp netCDF curvilinear (đầu ra mô hình ROMS) bằng cách sử dụng hộp giới hạn lon / lat.

Có ý kiến ​​gì không?

CHỈNH SỬA 1 :

Tôi vừa xem qua gói OpenClimateGIS có vẻ như nó hoàn toàn phù hợp với hóa đơn ... Tôi sẽ đi cùng với điều này để xem liệu tôi có thể làm cho nó hoạt động không: http://ncpp.github.io/ocgis/examples. html # nâng cao


Liên kết cuối cùng của bạn trong Chỉnh sửa 1 dường như đã chết. Đây dường như là sự thay thế tốt nhất: earthsystemcog.org/projects/openclimargetis
Aaron

Câu trả lời:


1

Điều này có thể thích ứng với nhu cầu của bạn.

Nếu bạn không ngại gọi dòng lệnh từ python, bạn có thể làm một cái gì đó như gdalwarp -cutline clip.shp -cl clip -crop_to_cutline input_raster output_raster_clipped.tif. -cwhere-csqlcó thể là các tùy chọn gdalwarp thích hợp hơn để chọn một trong bốn đa giác để cắt.


1

Hãy xem cái này: /programming/34585582/how-to-mask-the-specific-array-data-basing-on-the-shapefile

Điều bạn muốn ghi nhớ là một khi bạn đã tải NetCDF, bạn đang làm việc với một mảng NumPy.

Bạn đang cố gắng để đầu ra là gì? Tóm tắt thống kê dựa trên các khu vực đa giác?

Dù sao đi nữa, đây là những gì tôi sẽ làm:

  1. Tải shapefile của bạn và đưa các khu vực của bạn vào một định dạng được hỗ trợ (nhắm đến quy trình mặt nạ matplotlib trong liên kết ở trên nghe có vẻ tốt)
  2. Tải tệp NetCDF của bạn và nhận dữ liệu vào một mảng numpy X, Y, T duy nhất
  3. Mặt nạ mảng đó bằng cách sử dụng đa giác (mỗi lần một?)
  4. Xuất số liệu thống kê tóm tắt của bạn.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.