这个任务可以使用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文件中的降水数据转换为栅格文件,并从中提取鄱阳湖流域范围的数据,并将其保存到另一个栅格文件中。请根据实际情况修改文件路径和范围

用python将这个路径:CUsersyDesktoppr_Amon_BCC-CSM2-MR_ssp585_r1i1p1f1_gn_201501-210012nc的降水文件进行NC转栅格处理并将其鄱阳湖流域范围提取出来

原文地址: https://www.cveoy.top/t/topic/ccXI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录