运行PCR-GLOBWB V2模型_2

最近出于个人需要,跑了PCR-globwb的陆地水和地下水数据,如果有需要可以私信(可能忙时顾不上回),1980-2019,0.5,全球,forcing data自己找的。



def change_WFDE6_rain_TO_PCR_Force():

    '''此代码是为了得到PCR的输入'''

    # import threading  

    from concurrent.futures import ThreadPoolExecutor, as_completed  

    import netCDF4 as nc

    import datetime

    import os

    import time

    import random

    # day_s=get_year_days2(start_day='19790101',end_day='20191231')

    nc_dir=r'I:\temp_20240918'

    nc_paths=[os.path.join(nc_dir,i)for i in os.listdir(nc_dir)if '_v2.1.nc'in i ]

    nc_paths.sort()

    random.shuffle( nc_paths)

    for i_nc in tqdm(nc_paths):

        if os.path.exists(i_nc.replace('.nc','_daily.nc')):continue 

        if 'Rainf' in i_nc:

            hourNC2dayNC(i_nc,k=24*60*60/1000)

        else:

            hourNC2dayNC1(i_nc,k=-273.15)

        time.sleep(10)

        

    rain_paths=[os.path.join(nc_dir,i)for i in os.listdir(nc_dir)if '_daily.nc'in i if 'Rainf'in i]

    rain_paths.sort()

    rain_path=r"D:\temp_20240919\daily_precipitation_cru_era-interim_1979_to_2019.nc"

    NCs2NC(rain_paths,rain_path)

    

    rain_paths=[os.path.join(nc_dir,i)for i in os.listdir(nc_dir)if '_daily.nc'in i if 'Tair'in i]

    rain_paths.sort()

    rain_path=r"D:\temp_20240919\daily_temperature_cru_era-interim_1979_to_2019.nc"

    NCs2NC(rain_paths,rain_path)



def NCs2NC(NCs_paths,NC_path):

    '''多个类似的nc文件组合成一个文件,这些nc具有相同的lon,lat,只是时间不同'''

    import xarray as xr

    import os

    

    # 设置NetCDF文件所在的目录

    # directory = r"I:\temp_20240918"

    # nc_files = [os.path.join(directory, file) for file in os.listdir(directory) if file.endswith(".nc") if 'daily_precipitation'in file]

    # nc_files=nc_files[0:2]

    nc_files=NCs_paths

    

    # 使用xarray打开并将它们沿着时间维度合并

    datasets = [xr.open_dataset(nc_file) for nc_file in nc_files]

    

    # 将所有的datasets沿着time维度进行合并

    combined = xr.concat(datasets, dim='time')

    

    # 保存合并后的数据到一个新的NetCDF文件

    NC_path=NC_path#r"D:\temp_20240822\test_combined.nc"

    combined.to_netcdf(NC_path)

这是我部分制作nc文件的代码,可以参考下。若还有问题,可以图片或者视频我看下。解决与否

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值