用python将这个路径:CUsersyDesktoppr_Amon_BCC-CSM2-MR_ssp585_r1i1p1f1_gn_201501-210012nc的降水文件进行NC转栅格处理并将其鄱阳湖流域范围提取出来
这个任务可以使用Python中的xarray和rasterio库来完成。以下是一个示例代码:
import xarray as xr
import rasterio
from rasterio.transform import Affine
# 读取NC文件
data = xr.open_dataset(r'C:\Users\y\Desktop\pr_Amon_BCC-CSM2-MR_ssp585_r1i1p1f1_gn_201501-210012.nc')
# 获取降水数据
pr = data['pr']
# 获取数据的地理参考信息
transform = Affine.from_gdal(*pr.attrs['transform'][:6])
# 将数据转换为NumPy数组
arr = pr.values
# 创建一个新的栅格文件
with rasterio.open(
'pr.tif',
'w',
driver='GTiff',
height=arr.shape[0],
width=arr.shape[1],
count=1,
dtype=arr.dtype,
crs='+proj=latlong',
transform=transform,
) as dst:
# 将NumPy数组写入栅格文件中
dst.write(arr, 1)
# 提取鄱阳湖流域范围
bounds = (115.70, 28.76, 117.14, 30.26)
window = dst.window(*bounds)
subset = dst.read(1, window=window)
# 创建一个新的栅格文件来保存提取出来的数据
with rasterio.open(
'subset.tif',
'w',
driver='GTiff',
height=subset.shape[0],
width=subset.shape[1],
count=1,
dtype=subset.dtype,
crs='+proj=latlong',
transform=dst.window_transform(window),
) as subset_dst:
subset_dst.write(subset, 1)
该代码将原始NC文件中的降水数据转换为栅格文件,并从中提取鄱阳湖流域范围的数据,并将其保存到另一个栅格文件中。请根据实际情况修改文件路径和范围
原文地址: https://www.cveoy.top/t/topic/ccXI 著作权归作者所有。请勿转载和采集!