コード例 #1
0
    lat = nc_file.variables["LAT"][:]  # Mude aqui
    tim = nc_file.variables["TIME"][:]  # Mude aqui

    nlon = len(lon)
    nlat = len(lat)
    ntime = 360  # Mude aqui
    nmon = ntime / 30
    nyear = ntime / 12

    tri = ("JFM", "FMA", "MAM", "AMJ", "MJJ", "JJA", "JAS", "ASO", "SON", "OND", "NDJ", "DJF")
    ini = ("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")

    aux = np.zeros((ntime, nlat, nlon)) * np.nan

    # SEPARA JFM, FMA, MAM...
    for k in range(0, ntime):
        aux[k, :, :] = np.sum(var[k : 3 + k, :, :], axis=0)

    # a = aux.reshape(nmon,nyear,nlat,nlon) # 1989: JFM, FMA, MAM...

    a = aux.reshape(nyear, nmon, nlat, nlon)  # 1989: JFM, 1990: JFM...

    # ESCREVE NETCDF
    for k in range(0, nmon):
        fname = output_name[i] + ".{0}.2.5dg.nc".format(tri[k])
        create_netcdf(a[:, k, :, :], lat, lon, fileout=fname, ntime=30)

    # cdo Versão 3
    # cdo genbil,pcp-daily-ec4amip51_2015AMJ.ctl.nc cmap.precip.mon.mean.1981-2010.JFM.2.5dg.nc weights.nc
    # cdo remap,pcp-daily-ec4amip51_2015AMJ.ctl.nc,weights.nc cmap.precip.mon.mean.1981-2010.JFM.2.5dg.nc cmap.precip.mon.mean.1981-2010.JFM.T42.nc
コード例 #2
0
    # Captura a maskara usada no arquivo de entrada
    var = np.where(np.ma.getmask(var[:, :, :]), np.NaN, var)

    nlon = len(lon)
    nlat = len(lat)
    ntime = 240      # Mude aqui - Qtd de passos de tempo do arquivo de saída
    nmon = ntime/20  # Mude aqui - Qtd de anos do arquivo de saída
    nyear = ntime/12 # Mude aqui - Qtd de meses do arquivo de saída

    tri = ('JFM', 'FMA', 'MAM', 'AMJ', 'MJJ', 'JJA', 'JAS', 'ASO', 'SON', 'OND', 'NDJ', 'DJF')
    ini = ('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12')

    aux = np.zeros((ntime, nlat, nlon)) * -999

    # Separa os trimestres JFM, FMA, MAM...
    for k in range(0, ntime):
        aux[k, :, :] = np.ma.sum(var[k:3+k, :, :], axis=0)

    # Define que onde for NaN substitua por -999
    dummy = np.where(np.isnan(aux), -999, aux)

    # a = dummy.reshape(nmon,nyear,nlat,nlon) # 1989: JFM, FMA, MAM...

    a = dummy.reshape(nyear, nmon, nlat, nlon)  # 1989: JFM, 1990: JFM...

    # ESCREVE NETCDF
    for k in range(0, nmon):
        fname = output_name[i]+'.{0}.nc'.format(tri[k])
        create_netcdf(a[:, k, :, :], lat, lon, fileout=fname, ntime=20, fillvalue=-999, varname='prec', varunits='mm', varlongname='monthly mean precipitation')