从 shapefile 中提取 netCDF4 数据?

Extract netCDF4 data from inside a shapefile?

在 python 3.6 中,我导入了一个包含全球降水值的 netCDF4 文件。我还导入了一个包含科罗拉多河流域形状的 shapefile。我的目标是仅在我的 shapefile 中能够 read/extract 降水数据。我查阅了多个示例,但 none 确实很有帮助。

到目前为止,这是我的代码:

from netCDF4 import Dataset
import numpy as np
import geopandas as gpd

nc = Dataset('filename.nc')
long = nc.variables['lon'][:]
lati = nc.variables['lat'][:]
rainfall = nc.variables['precip'][:]

shapefile=gpd.read_file('filename.shp')

上面的代码没有错误信息。

哦,看,房子里的水文学家! ;)

到目前为止,您还没有对代码做太多事情,您所做的只是将文件读入内存。

当我尝试执行相同的分析(仅针对 grib 文件)时,我发现了一个非常棒的 Python 库,其名称为 RasterStats

它支持使用 ndarray 栅格对象以及大多数 GDAL 支持的栅格文件类型(也必须是 netCDF!),并且它会生成您想要的东西。

有关更多信息,请参阅非常简洁的 manual 如果您遇到问题请告诉我!