In [1]:
import sys
sys.path.append('../scripts')
import constants as c
import glob
import qcio
import qcutils

In [2]:
class ACCESSData(object):
    def __init__(self):
        self.globalattr = {}
        self.variables = {}
        self.varattr = {}

In [3]:
def access_read_mfiles(file_list=[],var_list=[]):
    #ds = qcio.DataStructure()
    f = ACCESSData()
    #print file_list[0]
    ncfile = Dataset(file_list[0])
    # get the global attributes
    for gattr in ncfile.ncattrs():
        f.globalattr[gattr] = getattr(ncfile,gattr)
    dims = ncfile.dimensions
    shape = (len(dims["time"]),len(dims["lat"]),len(dims["lon"]))
    if len(var_list)==0: var_list=ncfile.variables.keys()
    # load the data from the first file into the data structure
    for var in var_list:
        access_name = cf["Variables"][var]["access_name"]
        if access_name in ncfile.variables.keys():
            f.variables[access_name] = ncfile.variables[access_name][:]
            f.varattr[access_name] = {}
            for this_attr in ncfile.variables[access_name].ncattrs():
                f.varattr[access_name][this_attr] = getattr(ncfile.variables[access_name],this_attr)
        else:
            print "ACCESS variable "+access_name+" not found in "+file_list[0]
            f.variables[access_name] = makedummyseries(shape)
    ncfile.close()
    if len(file_list)>1:
        # loop over the remaining files and append the data
        for filename in file_list[1:]:
            #print filename
            ncfile = Dataset(filename)
            for var in var_list:
                access_name = cf["Variables"][var]["access_name"]
                #print var,ncfile.variables[access_name].shape
                if access_name in ncfile.variables.keys():
                    f.variables[access_name] = numpy.concatenate((f.variables[access_name],ncfile.variables[access_name][:]),axis=0)
                    if access_name not in f.varattr.keys():
                        f.varattr[access_name] = {}
                        for this_attr in ncfile.variables[access_name].ncattrs():
                            f.varattr[access_name][this_attr] = getattr(ncfile.variables[access_name],this_attr) 
                else:
                    print "ACCESS variable "+access_name+" not found in "+filename
                    empty_series = makedummyseries(shape)
                    f.variables[access_name] = numpy.concatenate((f.variables[access_name],empty_series),axis=0)
            ncfile.close()
    return f

In [4]:
cf = qcio.load_controlfile(path='../controlfiles')
var_list = cf["Variables"].keys()
site_list = cf["Sites"].keys()

In [5]:
infilename = cf["Sites"][site_list[0]]["in_filepath"]+cf["Sites"][site_list[0]]["in_filename"]

In [6]:
file_list = sorted(glob.glob(infilename))
nFiles = len(file_list)
print "Processing "+str(nFiles)+" files"
outfilename = cf["Sites"][site_list[0]]["out_filepath"]+cf["Sites"][site_list[0]]["out_filename"]


Processing 366 files
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-a5ddaf2ad762> in <module>()
      2 nFiles = len(file_list)
      3 print "Processing "+str(nFiles)+" files"
----> 4 outfilename = cf["Sites"][site]["out_filepath"]+cf["Sites"][site]["out_filename"]

NameError: name 'site' is not defined

In [ ]: