예제 #1
0
    def __init__(self, col='SW', subcol='FTOA'):
        '''
        col is 'LW' or 'SW'
        subcol
           for SW: 'CWV', 'FABS', 'FALL', 'FCLR', 'FTOA', 'SALB', 'TCLD'
           for LW: 'sfc_down', 'sfc_up', 'toa_up',
                  'clr_sfc_down', 'clr_sfc_up', 'clr_toa_up'
        '''
        name = 'SRB_' + col
        undef = -999

        dir = '/discover/nobackup/projects/gmao/share/dao_ops/verification/SRB'
        rr = rrule.rrule(rrule.MONTHLY,
                         dtstart=datetime.date(1983, 7, 1),
                         until=datetime.date(2000, 6, 1))
        flist = [
            dir + '/' + col + '/' + subcol + '_monthly_' + str(date.year) +
            str(date.month).zfill(2) + '.binary' for date in rr
        ]

        lon = sp.arange(0.5, 360.1, 1)
        lat = sp.arange(-89.5, 90, 1.)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)
        vlist = [(subcol, '>f4', grid.dims)]
        time = sp.array(rr[:], dtype='|O')

        super(Ctl, self).__init__(flist, vlist, grid, time, undef, name)
예제 #2
0
    def __init__(self):
        name = 'GPCP'
        undef = -9.99990000e+04

        syr = 1982
        eyr = 2006
        yrs = [str(i) for i in range(syr, eyr)]
        mon = [str(i).zfill(2) for i in range(1, 13)]
        dates = [i + j for i in yrs for j in mon]
        dir = '/discover/nobackup/projects/gmao/share/dao_ops/verification/GPCP_Version_2'
        flist = sp.array([dir + '/gpcp_v2_psg.' + i + '.data' for i in dates])

        lon = sp.arange(1.25, 361, 2.5)
        lat = sp.arange(-88.75, 91, 2.5)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)

        vlist = [('precip', '>f4', grid.dims)]

        r = rrule.rrule(rrule.MONTHLY,
                        dtstart=datetime.date(syr, 1, 1),
                        count=len(flist))
        time = sp.array(r[:], dtype='|O')

        super(Ctl, self).__init__(flist, vlist, grid, time, undef, name)
예제 #3
0
    def __init__(self):

        name = 'QSCAT'
        undef = -9999.

        oceanval = os.environ.get(
            'OCEANVAL',
            '/discover/nobackup/projects/gmao/oceanval/verification')
        flist = [oceanval + '/QSCAT/qscat_clim.dat']

        lon = sp.arange(-179.5, 180, 1)
        lat = sp.arange(-89.5, 90, 1)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)

        vlist = []
        vlist.append(('taux', 'f4', grid.dims))
        vlist.append(('tauy', 'f4', grid.dims))

        t = rrule.rrule(rrule.MONTHLY,
                        dtstart=datetime.date(0001, 1, 1),
                        count=12)
        time = sp.array(t[:], dtype='|O')

        super(Ctl, self).__init__(flist, vlist, grid, time, undef, name)
예제 #4
0
    def __init__(self):
        name='Reynolds MERRA'
        undef=-999.0
        
        flist=['/discover/nobackup/projects/gmao/share/dao_ops/fvInput/g5gcm/bcs/realtime/SST/360x180/dataoceanfile_MERRA_sst_1971-current.360x180.LE']

        lon=sp.arange(-179.5,180,1); lat=sp.arange(-89.5,90,1); lev=sp.zeros(1)
        grid=dset.Grid(lon,lat,lev)

        vlist=[('','i4',1),
               ('head','f4',14),
               ('','i4',1),
               ('','i4',1),
               ('sst','f4',grid.dims),
               ('','i4',1)]

        time=sp.repeat(datetime.date(1,1,1),1732)
        a=sp.memmap(flist[0],dtype=vlist,mode='r')
        
        for i,hh in enumerate(a['head']):
            time[i]=datetime.date(hh[0],hh[1],hh[2])

        a.close()

        super(Ctl,self).__init__(flist,vlist,grid,time,undef,name)
예제 #5
0
    def __init__(self):
        name = 'ECMWF_Interim'
        undef = -1e-15

        r = rrule.rrule(rrule.YEARLY,
                        dtstart=datetime.date(1980, 1, 1),
                        until=datetime.date(2011, 1, 1))
        dir = '/discover/nobackup/projects/gmao/share/dao_ops/verification/ECMWF_Interim_FullRes/surface'
        flist = sp.array([
            dir + '/Interim_monthly_FLX_' + str(date.year) + '.bin'
            for date in r[:]
        ])

        lon = sp.arange(0, 360.5, 0.75)
        lat = sp.arange(-90, 90.5, 0.75)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)

        vlist = [
            ('cp', 'f4', grid.dims),
            ('e', 'f4', grid.dims),
            ('slhf', 'f4', grid.dims),
            ('sshf', 'f4', grid.dims),
            ('ssr', 'f4', grid.dims),
            ('ssrc', 'f4', grid.dims),
            ('ssrd', 'f4', grid.dims),
            ('str', 'f4', grid.dims),
            ('strc', 'f4', grid.dims),
            ('strd', 'f4', grid.dims),
            ('tisr', 'f4', grid.dims),
            ('tp', 'f4', grid.dims),
            ('tsr', 'f4', grid.dims),
            ('tsrc', 'f4', grid.dims),
            ('ttr', 'f4', grid.dims),
            ('ttrc', 'f4', grid.dims),
            ('csf', 'f4', grid.dims),
            ('es', 'f4', grid.dims),
            ('par', 'f4', grid.dims),
            ('ro', 'f4', grid.dims),
            ('sf', 'f4', grid.dims),
            ('smlt', 'f4', grid.dims),
            ('lsf', 'f4', grid.dims),
            ('lsp', 'f4', grid.dims),
            ('parcs', 'f4', grid.dims),
            ('uvb', 'f4', grid.dims),
        ]
        r = rrule.rrule(rrule.MONTHLY,
                        dtstart=datetime.date(1980, 1, 1),
                        until=datetime.date(2011, 12, 1))
        time = sp.array(r[:], dtype='|O')

        super(Ctl, self).__init__(flist, vlist, grid, time, undef, name)
예제 #6
0
    def __init__(self):
        name = 'lwmask'
        undef = 1e15
        dir = '/discover/nobackup/projects/gmao/share/dao_ops/verification/lwmask'

        flist = [dir + '/lwmask1440721.data']

        lon = sp.arange(-180, 180, 0.25)
        lat = sp.arange(-90, 90.1, 0.25)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)
        vlist = [('mask', '>f4', grid.dims)]
        time = sp.array([date(2000, 1, 1)], dtype='|O')
        super(Ctl, self).__init__(flist, vlist, grid, time, undef, name)
예제 #7
0
    def __init__(self):
        name = 'COADS'
        undef = -1e10

        flist = [
            os.environ['NOBACKUP'] +
            '/verification/coads/coads2x25_climate.dat'
        ]

        lon = sp.arange(0.0, 360., 2.5)
        lat = sp.arange(-90., 91, 2.)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)
        rr = rrule.rrule(rrule.MONTHLY,
                         dtstart=datetime.date(1980, 1, 15),
                         count=12)
        time = sp.array(rr[:], dtype='|O')

        super(Ctl, self).__init__(flist, vlist, grid, time, undef, name)
예제 #8
0
    def __init__(self):

        name = 'QSCAT'
        undef = -9999.

        path = os.environ['HOME'] + '/verification/stress_mon_clim'
        flist = [path + '/qscat_clim.dat']

        lon = sp.arange(-179.5, 180, 1)
        lat = sp.arange(-89.5, 90, 1)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)

        vlist = []
        vlist.append(('taux', 'f4', grid.dims))
        vlist.append(('tauy', 'f4', grid.dims))

        t = rrule.rrule(rrule.MONTHLY,
                        dtstart=datetime.date(0001, 1, 1),
                        count=12)
        time = sp.array(t[:], dtype='|O')

        super(Ctl, self).__init__(flist, vlist, grid, time, undef, name)
예제 #9
0
    def __init__(self):
        name='ERBE'
        undef=1e15
        
        dir='/discover/nobackup/projects/gmao/share/dao_ops/verification/Clouds_radiation/erbe'
        flist=sp.array([dir+'/erbe2x25.data'])

        lon=sp.arange(0.,360,2.5); lat=sp.arange(-90.,91,2.); lev=sp.zeros(1)
        grid=dset.Grid(lon,lat,lev)

        print grid.dims

        vlist=[('OLR','>f4',grid.dims)]
        vlist.append(('OLRCLR','>f4',grid.dims))
        vlist.append(('NSR','>f4',grid.dims))
        vlist.append(('NSRCLR','>f4',grid.dims))
        vlist.append(('OSR','>f4',grid.dims))
        vlist.append(('OSRCLR','>f4',grid.dims))

        r=rrule.rrule(rrule.MONTHLY,dtstart=datetime.date(1985,1,1),count=60)
        time=sp.array(r[:],dtype='|O')

        super(Ctl,self).__init__(flist,vlist,grid,time,undef,name)
예제 #10
0
    def __init__(self, collection='lh'):
        expid = 'OAFlux'
        undef = 10e15

        expdir = oceanval + '/OAfluxes/turbulence_1958-2006/' + collection + '/grads'
        r = rrule.rrule(rrule.MONTHLY,
                        dtstart=datetime.date(1958, 1, 1),
                        count=588)
        flist = sp.array([
            expdir + '/a.' + collection + '_oaflux.' + str(year) + '.grads'
            for year in xrange(1958, 2007)
        ])
        lon = sp.arange(0.5, 360, 1)
        lat = sp.arange(-89.5, 90, 1)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)
        vlist = [(collection, '<f4', grid.dims), ('err', '<f4', grid.dims)]
        time = sp.array(r[:], dtype='|O')
        super(CtlTurb, self).__init__(flist,
                                      vlist,
                                      grid,
                                      time,
                                      undef,
                                      name=expid)
예제 #11
0
    def __init__(self):
        expid = 'OAFlux'
        undef = 10e15

        expdir = oceanval + '/OAfluxes/netheat_1983-2004/grads'
        r = rrule.rrule(rrule.MONTHLY,
                        dtstart=datetime.date(1983, 7, 1),
                        count=258)
        flist = sp.array([
            expdir + '/a.qnet.' + str(year) + '.grads'
            for year in xrange(1983, 2005)
        ])
        lon = sp.arange(0.5, 360, 1)
        lat = sp.arange(-89.5, 90, 1)
        lev = sp.zeros(1)
        grid = dset.Grid(lon, lat, lev)
        vlist = [('qnet', '<f4', grid.dims)]
        time = sp.array(r[:], dtype='|O')
        super(CtlQnet, self).__init__(flist,
                                      vlist,
                                      grid,
                                      time,
                                      undef,
                                      name=expid)