コード例 #1
0
ファイル: netcdfbasics.py プロジェクト: PBrockmann/climaf
def varOfFile(filename) :
    lvars=varsOfFile(filename)
    if len(lvars) > 1 :
        clogger.debug("Got multiple variables (%s) and "
                      "no direction to choose  - File is %s" %\
                          (`lvars`,filename))
        return(None)
    if len(lvars)==1 : return lvars[0]
コード例 #2
0
def varOfFile(filename):
    lvars = varsOfFile(filename)
    if len(lvars) > 1:
        clogger.debug(
            "Got multiple variables (%s) and no direction to choose  - File is %s"
            % (repr(lvars), filename))
        return None
    if len(lvars) == 1:
        return lvars[0]
コード例 #3
0
def model_id(filename):
    """ 

    """
    from anynetcdf import ncf
    rep = 'no_model'
    clogger.debug("opening " + filename)
    f = ncf(filename, 'r')
    if 'model_id' in dir(f): rep = f.model_id
    f.close()
    return (rep)
コード例 #4
0
ファイル: netcdfbasics.py プロジェクト: PBrockmann/climaf
def model_id(filename):
    """ 

    """
    from anynetcdf import ncf
    rep='no_model'
    clogger.debug("opening "+filename)
    f=ncf(filename, 'r') 
    if 'model_id' in dir(f) : rep=f.model_id
    f.close()
    return(rep)
コード例 #5
0
def dimsOfFile(filename):
    """
    returns the list of dimensions of the netcdf file filename
    """
    from anynetcdf import ncf
    rep = False
    clogger.debug("opening " + filename + " for checking the dimensions")
    fileobj = ncf(filename)
    dims = fileobj.dimensions
    if isinstance(dims, dict): dims = dims.keys()
    fileobj.close()
    return (dims)
コード例 #6
0
ファイル: netcdfbasics.py プロジェクト: agstephens/climaf
def fileHasVar(filename,varname):
    """ 
    returns True if FILENAME has variable VARNAME
    """
    from anynetcdf import ncf
    rep=False
    clogger.debug("opening "+filename+" for checkin if has variable"+varname)
    fileobj=ncf(filename)
    vars=fileobj.variables
    if isinstance(vars,dict ) : vars=vars.keys()
    for filevar in vars :
        if filevar == varname :
            rep=True
            break
    fileobj.close()
    return(rep)
コード例 #7
0
ファイル: netcdfbasics.py プロジェクト: PBrockmann/climaf
def fileHasVar(filename,varname):
    """ 
    returns True if FILENAME has variable VARNAME
    """
    from anynetcdf import ncf
    rep=False
    clogger.debug("opening "+filename+" for checkin if has variable"+varname)
    fileobj=ncf(filename)
    vars=fileobj.variables
    if isinstance(vars,dict ) : vars=vars.keys()
    for filevar in vars :
        if filevar == varname :
            rep=True
            break
    fileobj.close()
    return(rep)
コード例 #8
0
ファイル: netcdfbasics.py プロジェクト: jservonnat/climaf
def fileHasVar(filename,varname):
    """ 
    returns True if FILENAME has variable VARNAME
    """
    from Scientific.IO.NetCDF import NetCDFFile as ncf
    rep=False
    clogger.debug("opening "+filename)
    try :
        fileobj=ncf(filename)
    except:
        clogger.error("Issue opening file "+filename)
        return False
    for filevar in fileobj.variables :
        if filevar == varname :
            rep=True
            break
    fileobj.close()
    return(rep)
コード例 #9
0
def fileHasDim(filename, dimname):
    """
    returns True if FILENAME has dimension dimname
    """
    from anynetcdf import ncf
    rep = False
    clogger.debug("opening " + filename + " for checkin if has dimension " +
                  dimname)
    fileobj = ncf(filename)
    dims = fileobj.dimensions
    vars = fileobj.variables
    if isinstance(dims, dict): dims = dims.keys()
    if isinstance(vars, dict): vars = vars.keys()
    dims = dims + vars
    for filedim in dims:
        if filedim == dimname:
            rep = True
            break
    fileobj.close()
    return (rep)
コード例 #10
0
ファイル: netcdfbasics.py プロジェクト: jservonnat/climaf
def varOfFile(filename) :
    """ 
    returns the name of the unique non-dimension variable in
    NetCDF file FILENAME, or None if it is not unique
    """
    from Scientific.IO.NetCDF import NetCDFFile as ncf
    varname=None
    fileobj=ncf(filename)
    #import NetCDF4
    #fileobj=netCDF4.Dataset(filename)
    for filevar in fileobj.variables :
        if ((filevar not in fileobj.dimensions) and
            not re.findall("^time_",filevar) and
            not re.findall("_bnds$",filevar) ):
            if varname is None : 
                varname=filevar
            else :
                clogger.debug("Got at least two variables (%s and %s) "
                                  "and no direction to choose  - File is %s"%\
                                  (varname,filevar,filename))
                return(None)
    fileobj.close()
    return(varname)