コード例 #1
0
        # check variable list
        for var in varlist:
            if not wrfout.variables.has_key(varmap.get(var, var)):
                print("\nWARNING: variable %s not found in source file!\n" % (var,))
                del var  # remove variable if not present in soruce file
        # copy variables to new datasets
        copy_vars(mean, wrfout, varlist=varlist, namemap=varmap, dimmap=dimmap, copy_data=False)
        copy_vars(clim, wrfout, varlist=varlist, namemap=varmap, dimmap=dimmap, copy_data=False)
        # length of time, x, and y dimensions
        nvar = len(varlist)
        nx = len(wrfout.dimensions[dimmap["x"]])
        ny = len(wrfout.dimensions[dimmap["y"]])
        nfiles = len(filelist)  # number of files
        # close sample input file
        wrfout.close()

        ## compute monthly means and climatology
        # allocate arrays
        print("\n Computing monthly means from %s to %s (incl);" % (begindate, enddate))
        print("%3i fields of shape (%i,%i):\n" % (nvar, nx, ny))
        for var in varlist:
            print("   %s (%s)" % (var, varmap.get(var, var)))
            assert (ny, nx) == mean.variables[var].shape[
                1:
            ], "\nWARNING: variable %s does not conform to assumed shape (%i,%i)!\n" % (var, nx, ny)

        # monthly means
        meandata = dict()
        climdata = dict()
        for var in varlist:
コード例 #2
0
ファイル: avgCESM.py プロジェクト: andrewsoong/WRF-Tools
  copy_vars(clim, cesmout, varlist=statlist, namemap=varmap, dimmap=dimmap, remove_dims=['time'], copy_data=True)
  
  # check variable list
  for var in varlist:
    if not cesmout.variables.has_key(varmap.get(var,var)):
      print('\nWARNING: variable %s not found in source file!\n'%(var,))
      del var # remove variable if not present in soruce file
  # copy variables to new datasets
  copy_vars(clim, cesmout, varlist=varlist, namemap=varmap, dimmap=dimmap, copy_data=False)
  # length of time, x, and y dimensions
  nvar = len(varlist)
  nlon = len(cesmout.dimensions['lon'])
  nlat = len(cesmout.dimensions['lat'])
  nfiles = len(filelist) # number of files
  # close sample input file
  cesmout.close()

  # monthly means
  climdata = dict()
  for var in varlist:
    climdata[var] = zeros((nmons,nlat,nlon))
  xtime = zeros((nfiles,)) # number of month
  xmon = zeros((nmons,)) # counter for number of contributions
  # loop over input files 
  print('\n Starting computation: %i iterations (files)\n'%nfiles)
  for n in xrange(nfiles):
    cesmout = Dataset(srcdir+filelist[n], 'r', format='NETCDF4')
    print('  processing file #%3i of %3i:'%(n+1,nfiles))
    print('    %s\n'%filelist[n])
    # compute monthly averages
    m = int(datergx.search(filelist[n]).group()[-2:])-1 # infer month from filename (for climatology)
コード例 #3
0
ファイル: avgGPCC.py プロジェクト: andrewsoong/WRF-Tools
  copy_ncatts(outdata,indata['rain'],prefix='GPCC_')
  # create old lat/lon dimensions and coordinate variables
  copy_dims(outdata, indata['rain'], dimlist=dimlist.keys(), namemap=dimlist, copy_coords=True)
  # create climatology variables  
  dims = ('time','lat','lon'); fill_value = -9999
  # precipitation
  atts = dict(long_name='Precipitation', units='mm/day')
  add_var(outdata, 'rain', dims, values=climdata['rain'].filled(fill_value), atts=atts, fill_value=fill_value)
  # station density
  atts = dict(long_name='Station Density', units='#')
  add_var(outdata, 'stns', dims, values=climdata['stns'].filled(fill_value), atts=atts, fill_value=fill_value)  
  # land mask
  atts = dict(long_name='Land Mask', units='')
  tmp = ma.masked_array(ma.ones((datashape[1],datashape[2])), mask=dataMask)
  add_var(outdata, 'landmask', ('lat','lon'), values=tmp.filled(0))
  
#   ## dataset feedback and diagnostics
#   # print dataset meta data
#   print('\n\n')
#   print(outdata)
#   # print dimensions meta data
#   for dimobj in outdata.dimensions.values():
#     print dimobj
#   # print variable meta data
#   for varobj in outdata.variables.values():
#     print varobj
    
  ## close netcdf files  
  for ncset in indata.itervalues(): ncset.close() # input
  outdata.close() # output
  
コード例 #4
0
ファイル: avgWRF.py プロジェクト: zhenkunl/WRF-Tools
                  namemap=varmap,
                  dimmap=dimmap,
                  copy_data=False)
        copy_vars(clim,
                  wrfout,
                  varlist=varlist,
                  namemap=varmap,
                  dimmap=dimmap,
                  copy_data=False)
        # length of time, x, and y dimensions
        nvar = len(varlist)
        nx = len(wrfout.dimensions[dimmap['x']])
        ny = len(wrfout.dimensions[dimmap['y']])
        nfiles = len(filelist)  # number of files
        # close sample input file
        wrfout.close()

        ## compute monthly means and climatology
        # allocate arrays
        print('\n Computing monthly means from %s to %s (incl);' %
              (begindate, enddate))
        print('%3i fields of shape (%i,%i):\n' % (nvar, nx, ny))
        for var in varlist:
            print('   %s (%s)' % (var, varmap.get(var, var)))
            assert (ny,nx) == mean.variables[var].shape[1:], \
              '\nWARNING: variable %s does not conform to assumed shape (%i,%i)!\n'%(var,nx,ny)

        # monthly means
        meandata = dict()
        climdata = dict()
        for var in varlist:
コード例 #5
0
ファイル: avgCFSR.py プロジェクト: zhenkunl/WRF-Tools
#  print higrp
# dimensions
#  for dimobj in outgrp.dimensions.values():
#    print dimobj
#  for dimobj in fngrp.dimensions.values():
#    print dimobj
#  for dimobj in higrp.dimensions.values():
#    print dimobj
# variables
#  for varobj in outgrp.variables.values():
#    print varobj
#  for varobj in fngrp.variables.values():
#    print varobj
#  for varobj in higrp.variables.values():
#    print varobj

## close
# input
    for ncset in fnstatset.itervalues():
        ncset.close()
    for ncset in fndynset.itervalues():
        ncset.close()
    for ncset in hidynset.itervalues():
        ncset.close()
    # output
    #  outgrp.close()
    fngrp.close()
    print('   %s' % (test + fnoutfile, ))
    higrp.close()
    print('   %s' % (test + hioutfile, ))
コード例 #6
0
ファイル: avgCRU.py プロジェクト: zhenkunl/WRF-Tools
  atts = dict(long_name='Maximum 2m Temperature', units='K')
  add_var(outdata, 'Tmax', dims, values=climdata['Tmax'].filled(fill_value), atts=atts, fill_value=fill_value)  
  # 2m minimum Temperature
  atts = dict(long_name='Minimum 2m Temperature', units='K')
  add_var(outdata, 'Tmin', dims, values=climdata['Tmin'].filled(fill_value), atts=atts, fill_value=fill_value)  
  # 2m water vapor
  atts = dict(long_name='Water Vapor Pressure at 2m', units='hPa')
  add_var(outdata, 'Q2', dims, values=climdata['Q2'].filled(fill_value), atts=atts, fill_value=fill_value)  
  # land mask
  atts = dict(long_name='Land Mask', units='')
  tmp = ma.masked_array(ma.ones((datashape[1],datashape[2])), mask=dataMask)
  add_var(outdata, 'landmask', ('lat','lon'), values=tmp.filled(0)) # create climatology variables  
#   for (key,value) in indata.iteritems():
#     copy_vars(outdata, value, [key], namemap=varlist, copy_data=False, fill_value=) # , incl_=True
#     outdata.variables[key][:,:,:] = climdata[key] 
        
  
#  ## dataset feedback and diagnostics
#  # print dataset meta data
#  print outdata
#  # print dimensions meta data
#  for dimobj in outdata.dimensions.values():
#    print dimobj
#  # print variable meta data
#  for varobj in outdata.variables.values():
#    print varobj
    
  ## close netcdf files  
  for ncset in indata.itervalues(): ncset.close() # input
  outdata.close() # output
  print('   %s'%(test+outfile,))
コード例 #7
0
ファイル: avgCESM.py プロジェクト: zhenkunl/WRF-Tools
                  (var, ))
            del var  # remove variable if not present in soruce file
    # copy variables to new datasets
    copy_vars(clim,
              cesmout,
              varlist=varlist,
              namemap=varmap,
              dimmap=dimmap,
              copy_data=False)
    # length of time, x, and y dimensions
    nvar = len(varlist)
    nlon = len(cesmout.dimensions['lon'])
    nlat = len(cesmout.dimensions['lat'])
    nfiles = len(filelist)  # number of files
    # close sample input file
    cesmout.close()

    # monthly means
    climdata = dict()
    for var in varlist:
        climdata[var] = zeros((nmons, nlat, nlon))
    xtime = zeros((nfiles, ))  # number of month
    xmon = zeros((nmons, ))  # counter for number of contributions
    # loop over input files
    print('\n Starting computation: %i iterations (files)\n' % nfiles)
    for n in xrange(nfiles):
        cesmout = Dataset(srcdir + filelist[n], 'r', format='NETCDF4')
        print('  processing file #%3i of %3i:' % (n + 1, nfiles))
        print('    %s\n' % filelist[n])
        # compute monthly averages
        m = int(datergx.search(filelist[n]).group()
コード例 #8
0
ファイル: avgCFSR.py プロジェクト: xiefengy/WRF-Tools
    #  print higrp
    # dimensions
    #  for dimobj in outgrp.dimensions.values():
    #    print dimobj
    #  for dimobj in fngrp.dimensions.values():
    #    print dimobj
    #  for dimobj in higrp.dimensions.values():
    #    print dimobj
    # variables
    #  for varobj in outgrp.variables.values():
    #    print varobj
    #  for varobj in fngrp.variables.values():
    #    print varobj
    #  for varobj in higrp.variables.values():
    #    print varobj

    ## close
    # input
    for ncset in fnstatset.itervalues():
        ncset.close()
    for ncset in fndynset.itervalues():
        ncset.close()
    for ncset in hidynset.itervalues():
        ncset.close()
    # output
    #  outgrp.close()
    fngrp.close()
    print("   %s" % (test + fnoutfile,))
    higrp.close()
    print("   %s" % (test + hioutfile,))