Esempio n. 1
0
def _readnc(filenc=None, argdict=myargs):
    if argdict.has_key('compared_configs'):
        compare = True
    else:
        argdict['compared_configs'] = [argdict['config']]
        compare = False
    # get the section names corresponding to the config
    section_dict = rs.define_all_sections(argdict, compare)
    #
    outdict = {}  # creates the dictionnary which will contain the arrays
    date = rs.get_datetime(filenc)
    outdict['date'] = date

    list_truenames = section_dict.keys()
    list_truenames.sort()

    for section in list_truenames:

        shortname = section_dict[section]['shortname']  # temporary
        sens = section_dict[section]['sens']  # variables

        try:
            outdict['mass_' + shortname] = npy.array(
                (sens), 'f') * rs.readfilenc(filenc, 'vtrp' + '_' + shortname)
            outdict['heat_' + shortname] = npy.array(
                (sens), 'f') * rs.readfilenc(filenc, 'htrp' + '_' + shortname)
            outdict['salt_' + shortname] = npy.array(
                (sens), 'f') * rs.readfilenc(filenc, 'strp' + '_' + shortname)
        except:
            outdict['mass_' + shortname] = npy.zeros((len(outdict['date'])))
            outdict['heat_' + shortname] = npy.zeros((len(outdict['date'])))
            outdict['salt_' + shortname] = npy.zeros((len(outdict['date'])))

    return outdict  # return the dictionnary of values
Esempio n. 2
0
def _readnc(filenc=None, argdict=myargs):
    if argdict.has_key('compared_configs'):
        compare = True
    else:
        argdict['compared_configs'] = [argdict['config']]
        compare = False
    # get the section names corresponding to the config
    section_dict = rs.define_all_sections(argdict, compare,
                                          'drakkar_trpsig_table.txt')
    #
    outdict = {}  # creates the dictionnary which will contain the arrays
    outdict['date'] = rs.get_datetime(filenc)
    outdict['sigma_class'] = rs.readfilenc(filenc, 'sigma_class')[0, :]

    list_truenames = section_dict.keys()
    list_truenames.sort()

    for section in list_truenames:

        shortname = section_dict[section]['shortname']  # temporary

        try:
            outdict['sigtrp_' + shortname] = rs.readfilenc(
                filenc, 'sigtrp' + '_' + shortname)
        except:
            outdict['sigtrp_' + shortname] = npy.zeros(
                (len(outdict['date']), len(outdict['sigma_class'])))

    return outdict  # return the dictionnary of values
Esempio n. 3
0
def _readnc(filenc=None,argdict=myargs):
    #
    if argdict['config'].find('ORCA') == 0:
        list_field = ['zomht_glo', 'zomht_atl', 'zomht_inp','hflx_glo' , 'hflx_atl' , 'hflx_inp']
    else:
        list_field = ['zomht_glo', 'hflx_glo']
    #
    outdict = {} # creates the dictionnary which will contain the arrays 
    outdict['date']      = rs.get_datetime(filenc)
    outdict['lat']       = rs.readfilenc(filenc, 'nav_lat')
    for field in list_field:
        temp           = rs.readfilenc(filenc,field)
	## remove spurious areas
	if field.find('atl') != -1:
		ymax = npy.abs( outdict['lat'] - 70 ).argmin() # find index of 70N
		ymin = npy.abs( outdict['lat'] + 30 ).argmin() # find index of 30S
		temp[:,ymax:] = 0.
		temp[:,:ymin] = 0.

	if field.find('inp') != -1:
		ymin = npy.abs( outdict['lat'] + 30 ).argmin() # find index of 30S
		temp[:,:ymin] = 0.

        outdict[field] = rs.remove_spval(temp, 9999, 0) 
    return outdict # return the dictionnary of values 
Esempio n. 4
0
def _readnc(filenc=None, filenc2=None, argdict=myargs):
    #
    outdict = {}  # creates the dictionnary which will contain the arrays
    outdict['date_model'] = rs.get_datetime(filenc)
    outdict['date_model_heat'] = rs.get_datetime(filenc2)
    if argdict['config'].find('ORCA') == 0 or argdict['config'].find(
            'EORCA') == 0 or argdict['config'].find('eORCA') == 0:
        data_list = [
            'maxmoc_Glo_maxmoc', 'maxmoc_Atl_maxmoc', 'maxmoc_Aus_maxmoc',
            'minmoc_Glo_minmoc', 'minmoc_Atl_minmoc', 'minmoc_Inp_minmoc',
            'minmoc_Inp_minmoc2', 'minmoc_Aus_minmoc'
        ]
        data_list_heat = ['zomht_glo', 'zomht_atl']
    elif argdict['config'].find('NATL') == 0 or argdict['config'].find(
            'NACHOS') == 0:
        data_list = ['maxmoc_Glo_maxmoc', 'minmoc_Glo_minmoc']
        data_list_heat = ['zomht_glo']
    elif 'PERIANT' in argdict['config']:  # this should be checked.
        data_list = ['maxmoc_Glo_maxmoc', 'minmoc_Glo_minmoc']
        data_list_heat = []
    else:
        print "config not supported"
        sys.exit()
    #
    for k in data_list:
        outdict[k] = rs.readfilenc(filenc, k)
    #
    lat = rs.readfilenc(filenc2, 'nav_lat')
    index20N = rs.get_index(lat, 20.)
    for k in data_list_heat:
        outdict[k] = rs.readfilenc(filenc2, k)[:, index20N]

    return outdict  # return the dictionnary of values
Esempio n. 5
0
def _readnc(filenc=None,argdict=myargs):
    outdict = {} # creates the dictionnary which will contain the arrays 
    date = rs.get_datetime(filenc)
    outdict['date']    = date
    outdict['ice1kerg1plt'] = rs.readfilenc(filenc, 'mean_ileadfra_KERG4')
    outdict['ice1kerg2plt'] = rs.readfilenc(filenc, 'mean_iicethic_KERG4')

    return outdict # return the dictionnary of values 
Esempio n. 6
0
def _readnc(filenc=None, argdict=myargs):
    outdict = {}  # creates the dictionnary which will contain the arrays
    date = rs.get_datetime(filenc)
    outdict['date'] = date
    outdict['co2kerg1plt'] = rs.readfilenc(filenc, 'mean_3DDelc_KERG1')
    outdict['co2kerg2plt'] = rs.readfilenc(filenc, 'mean_3DDelc_KERG3')
    outdict['co2kerg3plt'] = rs.readfilenc(filenc, 'mean_3DDelc_KERG5')
    outdict['co2kerg4plt'] = rs.readfilenc(filenc, 'mean_3DDelc_KERG6')

    return outdict  # return the dictionnary of values
Esempio n. 7
0
def _readnc(filenc=None,levitus=None):
    # 
    outdict = {} # creates the dictionnary which will contain the arrays 
    outdict['levels']   = rs.readfilenc(filenc,'gdept')           
    outdict['date']     = rs.get_datetime(filenc) 
    outdict['tmodel']   = rs.readfilenc(filenc,'mean_votemper')  #2D
    outdict['smodel']   = rs.readfilenc(filenc,'mean_vosaline')  
    outdict['tlev']     = rs.readfilenc(levitus,'mean_votemper') #1D
    outdict['slev']     = rs.readfilenc(levitus,'mean_vosaline')  
    return outdict # return the dictionnary of values 
Esempio n. 8
0
def _readnc(filemodel=None,fileobs=None):
    """Read the netcdf files and return a dictionnary of output. 

    Remark
    ------
    All the keys of outdict will be loaded as local variables in plot()
    """
    # 
    outdict = {} # creates the dictionnary which will contain the arrays 
    outdict['levels']   = rs.readfilenc(filemodel,'gdept')                ## read "gdept" in netcdf file "filemodel"
    outdict['year']     = rs.get_years(filemodel)                         ## read time_counter in "filemodel"
    outdict['diag1']    = rs.readfilenc(filemodel,'diag1_name_in_file')   ## ...
    outdict['diag2']    = rs.readfilenc(filemodel,'diag2_name_in_file')  
    outdict['obs1']     = rs.readfilenc(fileobs,'obs1_name_in_file') 
    outdict['obs2']     = rs.readfilenc(fileobs,'obs2_name_in_file')  
    return outdict # return the dictionnary of values 
Esempio n. 9
0
def _readnc(filenc=None):
    outdict = {}  # creates the dictionnary which will contain the arrays
    outdict['tprof3'] = rs.readfilenc(filenc, 'mean_votemper_KERG3')
    outdict['sprof3'] = rs.readfilenc(filenc, 'mean_vosaline_KERG3')
    outdict['dprof3'] = rs.readfilenc(filenc, 'mean_vosigma0_KERG3')
    outdict['mld3'] = rs.readfilenc(filenc, 'mean_somxl010_KERG3')
    outdict['tprof1'] = rs.readfilenc(filenc, 'mean_votemper_KERG1')
    outdict['sprof1'] = rs.readfilenc(filenc, 'mean_vosaline_KERG1')
    outdict['dprof1'] = rs.readfilenc(filenc, 'mean_vosigma0_KERG1')
    outdict['mld1'] = rs.readfilenc(filenc, 'mean_somxl010_KERG1')
    outdict['prof'] = rs.readfilenc(filenc, 'gdept')
    outdict['date'] = rs.get_datetime(filenc)
    return outdict  # return the dictionnary of values
Esempio n. 10
0
def _readnc(filenc=None,fileobs=None,argdict=myargs):
    #
    outdict = {} # creates the dictionnary which will contain the arrays 
    outdict['date_model'] = rs.get_datetime(filenc)
    outdict['NVolume'   ] = rs.readfilenc(filenc, 'NVolume' )  / 1000
    outdict['NArea'     ] = rs.readfilenc(filenc, 'NArea' )    / 1000
    outdict['NExnsidc'  ] = rs.readfilenc(filenc, 'NExnsidc' ) / 1000
    outdict['SVolume'   ] = rs.readfilenc(filenc, 'SVolume' )  / 1000
    outdict['SArea'     ] = rs.readfilenc(filenc, 'SArea' )    / 1000
    outdict['SExnsidc'  ] = rs.readfilenc(filenc, 'SExnsidc' ) / 1000
    #
    outdict['dateobs' ] = rs.get_datetime(fileobs)
    outdict['NORTH_ICE_EXTENT'] = rs.readfilenc(fileobs, 'NORTH_ICE_EXTENT')
    outdict['NORTH_ICE_AREA']   = rs.readfilenc(fileobs, 'NORTH_ICE_AREA')
    outdict['SOUTH_ICE_EXTENT'] = rs.readfilenc(fileobs, 'SOUTH_ICE_EXTENT')
    outdict['SOUTH_ICE_AREA']   = rs.readfilenc(fileobs, 'SOUTH_ICE_AREA')

    return outdict # return the dictionnary of values 
Esempio n. 11
0
def _readnc(filenc=None, fileobs=None, argdict=myargs):

    import matplotlib.pylab as plt
    from numpy import nan
    outdict = {}  # creates the dictionnary which will contain the arrays

    lon_obs = rs.readfilenc(fileobs, 'nav_lon')
    lat_obs = rs.readfilenc(fileobs, 'nav_lat')
    dep_obs = rs.readfilenc(fileobs, 'depthu')
    uzo_obs = rs.readfilenc(fileobs, 'vozocrtx')

    ### rebuild a dictionary

    ## 1. define moorings name
    ##    this is a bit heavy but it is necessary to split
    ##    the data from 4d arrays of NC file

    lon_moor = lon_obs[0, :]
    moor_name = []
    ind_swap_EW = npy.where(lon_moor > 180.)
    lon_moor[ind_swap_EW] = 360. - lon_moor[ind_swap_EW]

    for km in range(len(lon_moor)):
        moor_name.append(str(int(lon_moor[km])) +
                         'e')  # default lon is towards east

    #  for km in ind_swap_EW[0]:   (old version)
    for km in list(ind_swap_EW[0].data):
        moor_name[km] = moor_name[km].replace(
            'e', 'w')  # correct for western moorings

    outdict['coord'] = moor_name

    ## 2. fill with observations data
    for km in range(len(moor_name)):
        outdict['u_' + moor_name[km] + '_obs'] = uzo_obs[:, km]
        outdict['dept_' + moor_name[km] + '_obs'] = dep_obs[:, km]

    ## 3. model outputs
    outdict['dept_mod'] = rs.readfilenc(filenc, 'depth')
    outdict['time_mod'] = rs.get_datetime(filenc)

    km = 0
    for moor in moor_name:
        try:
            temp = rs.readfilenc(filenc, 'u_' + moor)
            if len(temp.shape) == 1:
                outdict['u_' + moor_name[km] + '_mod'] = temp
            else:
                outdict['u_' + moor_name[km] + '_mod'] = temp.mean(0)
        except:
            print 'fail to read mooring ', moor
            pass
        km = km + 1

    return outdict  #return the dictionnary of values
Esempio n. 12
0
def _readnc(filenc=None,fileobs=None,argdict=myargs):
    # get the section names corresponding to the config

    if argdict.has_key('compared_configs'):
       compare = True
    else:
       argdict['compared_configs'] = [ argdict['config'] ]
       compare = False
    # get the section names corresponding to the config
    section_dict = rs.define_all_sections(argdict,compare)

    truenames = section_dict.keys()
    truenames.sort()

    # test on existence of florida bahamas section in list
    found = None
    for k in range(len(truenames)):
        if truenames[k].find('FLORIDA_BAHAMAS') >= 0:
            found = 1
    if found is None:
        print "Your domain do not contain the Florida Bahamas section"
        sys.exit()    
    else:
        pass
    #
    outdict = {} # creates the dictionnary which will contain the arrays 
    outdict['datemodel'] = rs.get_datetime(filenc)
    try:
       outdict['trpmodel']  = -1 * rs.readfilenc(filenc, 'vtrp_floba' )
    except:
       outdict['trpmodel']  = npy.zeros((len(outdict['datemodel'])))

    outdict['dateobs']   = rs.get_datetime(fileobs)
    outdict['trpobs']    = rs.readfilenc(fileobs, 'CABLE')
    #
    return outdict # return the dictionnary of values 
Esempio n. 13
0
def _readnc(filenc=None):
    outdict = {}  # creates the dictionnary which will contain the arrays
    outdict['tmean'] = rs.readfilenc(filenc, 'mean_3Dvotemper')
    outdict['smean'] = rs.readfilenc(filenc, 'mean_3Dvosaline')
    outdict['sshmean'] = rs.readfilenc(filenc, 'mean_3Dsossheig')
    outdict['levels'] = rs.readfilenc(filenc, 'gdept')
    outdict['date'] = rs.get_datetime(filenc)
    outdict['tmodel'] = rs.readfilenc(filenc, 'mean_votemper')
    outdict['smodel'] = rs.readfilenc(filenc, 'mean_vosaline')
    return outdict  # return the dictionnary of values
Esempio n. 14
0
def _readnc(filesnc=None):
    filenc, levitus = filesnc
    outdict = {}  # creates the dictionnary which will contain the arrays
    outdict['tmean'] = rs.readfilenc(filenc, 'mean_3Dvotemper')
    outdict['smean'] = rs.readfilenc(filenc, 'mean_3Dvosaline')
    outdict['sshmean'] = rs.readfilenc(filenc, 'mean_3Dsossheig')
    outdict['levels'] = rs.readfilenc(filenc, 'gdept')
    outdict['date'] = rs.get_datetime(filenc)
    outdict['tmodel'] = rs.readfilenc(filenc, 'mean_votemper')
    outdict['smodel'] = rs.readfilenc(filenc, 'mean_vosaline')
    #    if myargs['monitor_frequency'] == '1m':
    #        outdict['tlev']     = rs.readfilenc(levitus,'mean_votemper')[0,:]
    #        outdict['slev']     = rs.readfilenc(levitus,'mean_vosaline')[0,:]
    #    else:
    outdict['tlev'] = rs.readfilenc(levitus, 'mean_votemper')
    outdict['slev'] = rs.readfilenc(levitus, 'mean_vosaline')

    return outdict  # return the dictionnary of values
Esempio n. 15
0
def _readnc(filenc=None, fileobs=None, fileobs2=None, argdict=myargs):
    #
    outdict = {}  # creates the dictionnary which will contain the arrays
    outdict['datemodel'] = rs.get_datetime(filenc)
    outdict['NINO12_model'] = rs.readfilenc(filenc, 'mean_votemper_NINO12')
    outdict['NINO34_model'] = rs.readfilenc(filenc, 'mean_votemper_NINO34')
    outdict['NINO3_model'] = rs.readfilenc(filenc, 'mean_votemper_NINO3')
    outdict['NINO4_model'] = rs.readfilenc(filenc, 'mean_votemper_NINO4')
    #
    outdict['dateobs'] = rs.get_datetime(fileobs)
    outdict['NINO12_obs'] = rs.readfilenc(fileobs, 'NINO1+2')
    outdict['NINO34_obs'] = rs.readfilenc(fileobs, 'NINO3.4')
    outdict['NINO3_obs'] = rs.readfilenc(fileobs, 'NINO3')
    outdict['NINO4_obs'] = rs.readfilenc(fileobs, 'NINO4')

    #outdict['SOI'         ]  = rs.readfilenc(fileobs2, 'SOI')

    return outdict  # return the dictionnary of values
Esempio n. 16
0
def _readnc(filenc=None, argdict=myargs):
    #
    outdict = {} # creates the dictionnary which will contain the arrays 
    outdict['datemodel'] = rs.get_datetime(filenc)
    outdict['NVolume'   ] = rs.readfilenc(filenc, 'NVolume' )
    outdict['NArea'     ] = rs.readfilenc(filenc, 'NArea' )
    outdict['NExnsidc'  ] = rs.readfilenc(filenc, 'NExnsidc' )
    outdict['SVolume'   ] = rs.readfilenc(filenc, 'SVolume' )
    outdict['SArea'     ] = rs.readfilenc(filenc, 'SArea' )
    outdict['SExnsidc'  ] = rs.readfilenc(filenc, 'SExnsidc' )
    #
    return outdict # return the dictionnary of values 
Esempio n. 17
0
def _readnc(filenc=None, argdict=myargs):
    #
    outdict = {}  # creates the dictionnary which will contain the arrays
    outdict['date_model'] = rs.get_datetime(filenc)
    if argdict['config'].find('ORCA') == 0 or argdict['config'].find(
            'EORCA') == 0 or argdict['config'].find('eORCA') == 0:
        data_list = [
            'maxmoc_Glo_maxmoc40N', 'maxmoc_Glo_maxmoc30S',
            'maxmoc_Atl_maxmoc40N', 'maxmoc_Atl_maxmoc30S',
            'minmoc_Inp_minmoc30S', 'maxmoc_Aus_maxmoc50S'
        ]
    elif argdict['config'].find('NATL') == 0 or argdict['config'].find(
            'NACHOS'):
        data_list = ['maxmoc_Glo_maxmoc40N', 'maxmoc_Glo_maxmoc15S']
    else:
        print "config not supported"
        sys.exit()
    #
    for k in data_list:
        outdict[k] = rs.readfilenc(filenc, k)

    return outdict  # return the dictionnary of values
Esempio n. 18
0
def _readnc(filenc=None, argdict=myargs):
    if argdict.has_key('compared_configs'):
        compare_different_configs = (len(argdict['compared_configs']) > 1)
    else:
        compare_different_configs = False
    # get the section names corresponding to the config
    outdict = {}  # creates the dictionnary which will contain the arrays
    date = rs.get_datetime(filenc)
    mld1kerg1 = []
    mld1kerg2 = []
    mld1kerg3 = []
    mld1kerg4 = []
    mld2kerg1 = []
    mld2kerg2 = []
    mld2kerg3 = []
    mld2kerg4 = []
    mld3kerg1 = []
    mld3kerg2 = []
    mld3kerg3 = []
    mld3kerg4 = []
    mld1kerg1.append(rs.readfilenc(filenc, 'mean_somxl010_KERG1'))
    mld1kerg2.append(rs.readfilenc(filenc, 'mean_somxl010_KERG3'))
    mld1kerg3.append(rs.readfilenc(filenc, 'mean_somxl010_KERG5'))
    mld1kerg4.append(rs.readfilenc(filenc, 'mean_somxl010_KERG6'))
    mld2kerg1.append(rs.readfilenc(filenc, 'mean_somxl030_KERG1'))
    mld2kerg2.append(rs.readfilenc(filenc, 'mean_somxl030_KERG3'))
    mld2kerg3.append(rs.readfilenc(filenc, 'mean_somxl030_KERG5'))
    mld2kerg4.append(rs.readfilenc(filenc, 'mean_somxl030_KERG6'))
    mld3kerg1.append(rs.readfilenc(filenc, 'mean_somxlt02_KERG1'))
    mld3kerg2.append(rs.readfilenc(filenc, 'mean_somxlt02_KERG3'))
    mld3kerg3.append(rs.readfilenc(filenc, 'mean_somxlt02_KERG5'))
    mld3kerg4.append(rs.readfilenc(filenc, 'mean_somxlt02_KERG6'))

    mld1kerg1 = npy.reshape(mld1kerg1, len(date))
    mld1kerg2 = npy.reshape(mld1kerg2, len(date))
    mld1kerg3 = npy.reshape(mld1kerg3, len(date))
    mld1kerg4 = npy.reshape(mld1kerg4, len(date))
    mld2kerg1 = npy.reshape(mld2kerg1, len(date))
    mld2kerg2 = npy.reshape(mld2kerg2, len(date))
    mld2kerg3 = npy.reshape(mld2kerg3, len(date))
    mld2kerg4 = npy.reshape(mld2kerg4, len(date))
    mld3kerg1 = npy.reshape(mld3kerg1, len(date))
    mld3kerg2 = npy.reshape(mld3kerg2, len(date))
    mld3kerg3 = npy.reshape(mld3kerg3, len(date))
    mld3kerg4 = npy.reshape(mld3kerg4, len(date))

    big = npy.transpose(npy.ones(len(date)))

    outdict['date'] = date
    outdict['mld1kerg1plt'] = -1 * mld1kerg1 * big
    outdict['mld1kerg2plt'] = -1 * mld1kerg2 * big
    outdict['mld1kerg3plt'] = -1 * mld1kerg3 * big
    outdict['mld1kerg4plt'] = -1 * mld1kerg4 * big
    outdict['mld2kerg1plt'] = -1 * mld2kerg1 * big
    outdict['mld2kerg2plt'] = -1 * mld2kerg2 * big
    outdict['mld2kerg3plt'] = -1 * mld2kerg3 * big
    outdict['mld2kerg4plt'] = -1 * mld2kerg4 * big
    outdict['mld3kerg1plt'] = -1 * mld3kerg1 * big
    outdict['mld3kerg2plt'] = -1 * mld3kerg2 * big
    outdict['mld3kerg3plt'] = -1 * mld3kerg3 * big
    outdict['mld3kerg4plt'] = -1 * mld3kerg4 * big

    return outdict  # return the dictionnary of values
Esempio n. 19
0
def _readnc(filenc=None,argdict=myargs):
    outdict = {} # creates the dictionnary which will contain the arrays 
    date = rs.get_datetime(filenc)
    outdict['date']    = date
    outdict['no3kerg1plt'] = rs.readfilenc(filenc, 'mean_3DNO3_KERG1')
    outdict['no3kerg2plt'] = rs.readfilenc(filenc, 'mean_3DNO3_KERG3')
    outdict['no3kerg3plt'] = rs.readfilenc(filenc, 'mean_3DNO3_KERG5')
    outdict['no3kerg4plt'] = rs.readfilenc(filenc, 'mean_3DNO3_KERG6')
    outdict['po4kerg1plt'] = rs.readfilenc(filenc, 'mean_3DPO4_KERG1')
    outdict['po4kerg2plt'] = rs.readfilenc(filenc, 'mean_3DPO4_KERG3')
    outdict['po4kerg3plt'] = rs.readfilenc(filenc, 'mean_3DPO4_KERG5')
    outdict['po4kerg4plt'] = rs.readfilenc(filenc, 'mean_3DPO4_KERG6')
    outdict['sikerg1plt'] = rs.readfilenc(filenc, 'mean_3DSi_KERG1')
    outdict['sikerg2plt'] = rs.readfilenc(filenc, 'mean_3DSi_KERG3')
    outdict['sikerg3plt'] = rs.readfilenc(filenc, 'mean_3DSi_KERG5')
    outdict['sikerg4plt'] = rs.readfilenc(filenc, 'mean_3DSi_KERG6')
    outdict['ferkerg1plt'] = rs.readfilenc(filenc, 'mean_3DFer_KERG1')
    outdict['ferkerg2plt'] = rs.readfilenc(filenc, 'mean_3DFer_KERG3')
    outdict['ferkerg3plt'] = rs.readfilenc(filenc, 'mean_3DFer_KERG5')
    outdict['ferkerg4plt'] = rs.readfilenc(filenc, 'mean_3DFer_KERG6')

    return outdict # return the dictionnary of values 
Esempio n. 20
0
def _readnc(filenc=None,
            fileobs1=None,
            fileobs2=None,
            fileobs3=None,
            fileobs4=None,
            fileobs5=None,
            argdict=myargs):

    import matplotlib.pylab as plt
    from numpy import nan
    outdict = {}  # creates the dictionnary which will contain the arrays
    coord = ['0n156e', '0n165e', '0n170w', '0n140w', '0n110w']

    ##### Donnees d'observation ######

    for j in range(1, 6):
        #Profondeur
        outdict['o_Profondeur' + str(j)] = rs.readfilenc(
            vars()['fileobs' + str(j)], 'depth')
        depth_obs = rs.readfilenc(vars()['fileobs' + str(j)], 'depth')
        #Vitesse
        vars()['Uzonale_obs' + str(j)] = rs.readfilenc(
            vars()['fileobs' + str(j)], 'U_320')
        vars()['tabmoy' + str(j)] = []

        for i in range(0, len(vars()['Uzonale_obs' + str(j)][0]), 1):
            profil = vars()['Uzonale_obs' + str(j)][:, i]
            vars()['val_nul' + str(j) + '_' + str(i)] = []

            for k in range(0, len(profil), 1):
                if profil[k] > 1e35:
                    vars()['val_nul' + str(j) + '_' + str(i)].append(k)
                    profil[k] = 0

            vars()['tabmoy' + str(j)].append(rs.mean_0(profil))

        outdict['o_Vitesse' + str(j)] = vars()['tabmoy' + str(j)]

        ##Serie
        vars()['Indice_profondeur_serie' + str(j)] = rs.getIndex(
            vars()['tabmoy' + str(j)], max(vars()['tabmoy' + str(j)]))
        outdict['o_serie_Profondeur' +
                str(j)] = depth_obs[vars()['Indice_profondeur_serie' + str(j)]]
        vars()['Variation_serie_obs' +
               str(j)] = vars()['Uzonale_obs' +
                                str(j)][:,
                                        vars()['Indice_profondeur_serie' +
                                               str(j)]]
        #Calendrier
        time = rs.readfilenc(vars()['fileobs' + str(j)], 'time')
        vars()['temps_annee_obs' + str(j)] = time / 365
        Origine_temps = [1991, 1986, 2002, 1983, 1980]
        vars()['Calendrier_obs' +
               str(j)] = Origine_temps[j - 1] + vars()['temps_annee_obs' +
                                                       str(j)]
        #Annee premiere observation
        vars()['Origine_o' + str(j)] = vars()['Calendrier_obs' + str(j)][0]
        #Annee derniere observation
        vars()[('shape_o' + str(j))] = plt.shape(vars()['Calendrier_obs' +
                                                        str(j)])
        vars()['Fin_o' + str(j)] = int(
            vars()['Calendrier_obs' + str(j)][vars()['shape_o' + str(j)][0] -
                                              1])
        vars()['Duree_o' + str(j)] = vars()['Fin_o' + str(j)] - int(
            vars()['Origine_o' + str(j)]) + 1
        a = vars()['Origine_o' + str(j)]
        #Moyennes annuelles des observations
        vars()['Variation_moyenne_annuelle' + str(j)] = []
        vars()['Annees' + str(j)] = []

        for i in range(0, vars()['Duree_o' + str(j)]):
            vars()['Variation_sur_une_annee' + str(j) + '_' + str(i)] = []
            vars()['Annees' + str(j)].append(a + i)
            for k in range(0, plt.shape(vars()['Calendrier_obs' + str(j)])[0]):
                if a + i <= vars()['Calendrier_obs' + str(j)][k] <= a + i + 1:
                    vars()['Variation_sur_une_annee' + str(j) + '_' +
                           str(i)].append(vars()['Variation_serie_obs' +
                                                 str(j)][k])

            vars()['Moyenne_annuelle_obs' + str(j) + '_' + str(i)] = rs.mean_0(
                vars()['Variation_sur_une_annee' + str(j) + '_' + str(i)])
            vars()['Variation_moyenne_annuelle' + str(j)].append(
                vars()['Moyenne_annuelle_obs' + str(j) + '_' + str(i)])

        outdict['o_serie_Annees' + str(j)] = vars()['Annees' + str(j)]

        for i in range(
                0,
                plt.shape(vars()['Variation_moyenne_annuelle' + str(j)])[0]):
            if vars()['Variation_moyenne_annuelle' + str(j)][i] == 0:
                vars()['Variation_moyenne_annuelle' + str(j)][i] = nan

        outdict['o_serie_Variation_moyenne_annuelle' +
                str(j)] = vars()['Variation_moyenne_annuelle' + str(j)]

    ###### Donnees Modele ######
    coordonnees = ['156e', '165e', '170w', '140w', '110w']
    outdict['m_Profondeur'] = rs.readfilenc(filenc, 'depth')
    outdict['m_Temps_serie'] = rs.readfilenc(filenc, 'time_counter')

    for j in range(1, 6):
        temp = rs.readfilenc(filenc, 'u_' + coordonnees[j - 1])
        if len(temp.shape) == 1:
            outdict['m_Vitesse' + str(j)] = temp
        else:
            outdict['m_Vitesse' + str(j)] = temp[-1, :]
        outdict['m_Valeur_sous_courant' + str(j)] = rs.readfilenc(
            filenc, 'u_' + coordonnees[j - 1] + '_UC')
        #longitude
        #lon=rs.readfilenc(filenc,'nav_lon')
        #vars()['long_model'+str(j)]=''
        #if lon<0:
        #    vars()['long_model'+str(j)] = `int(-lon)`+'W'
        #else :
        #    vars()['long_model'+str(j)] = `int(lon)`+'E'
        #outdict['m_Longitude'+str(j)] = vars()['long_model'+str(j)]
        outdict['m_Longitude' + str(j)] = coordonnees[j - 1].upper()
        #latitude
        #lat=rs.readfilenc(filenc,'nav_lat')
        lat = 0.
        vars()['lati_model' + str(j)] = ` int(lat) ` + 'N'
        if lat < 0:
            vars()['lati_model' + str(j)] = ` int(lat) ` + 'S'
        outdict['m_Latitude' + str(j)] = vars()['lati_model' + str(j)]
    #
    return outdict  #return the dictionnary of values