diff --git a/da/ct/obs.py b/da/ct/obs.py index de64614754cf2dbec665b55c1e99195ec969a015..b23d9113a5cf125482c4c0625424366a48b1391f 100755 --- a/da/ct/obs.py +++ b/da/ct/obs.py @@ -10,9 +10,10 @@ File created on 28 Jul 2010. """ import os import sys +sys.path.append(os.getcwd()) +sys.path.append('../../') import logging import datetime -sys.path.append(os.getcwd()) identifier = 'CarbonTracker CO2 mixing ratios' version = '0.0' @@ -101,7 +102,7 @@ class CtObservations(Observation): flags = [s.tostring().lower() for s in flags] flags = map(strip,flags) flags = [int(f == '...') for f in flags] - dummy = ncf.close() + status = ncf.close() msg = "Successfully read data from obs file (%s)"%self.ObsFilename ; logging.debug(msg) @@ -126,7 +127,7 @@ class CtObservations(Observation): ncf = io.CT_Read(filename,method='read') ids = ncf.GetVariable('obs_num') simulated = ncf.GetVariable('flask') - dummy = ncf.close() + status = ncf.close() msg = "Successfully read data from model sample file (%s)"%filename ; logging.info(msg) obs_ids = self.Data.getvalues('id') @@ -142,7 +143,9 @@ class CtObservations(Observation): index = obs_ids.index(id) #print id,val,val.shape - dummy = self.Data[index].simulated = val # in mol/mol + status = self.Data[index].simulated = val*1e-6 # in mol/mol + msg = "Converting observed values from ppm to mol/mol!!!!"; logging.warning(msg) + msg = "Converting observed values from ppm to mol/mol!!!!"; logging.info(msg) else: @@ -188,7 +191,7 @@ class CtObservations(Observation): savedict['dims'] = dimid savedict['values'] = data.tolist() savedict['comment'] = "Unique index number within this dataset ranging from 0 to UNLIMITED." - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = [[d.year,d.month,d.day,d.hour,d.minute,d.second] for d in self.Data.getvalues('xdate') ] @@ -199,10 +202,9 @@ class CtObservations(Observation): savedict['dims'] = dimid+dimcalcomp savedict['values'] = data savedict['missing_value'] = -9 - savedict['_FillValue'] = -9 savedict['comment'] = "Calendar date components as integers. Times and dates are UTC." savedict['order'] = "year, month, day, hour, minute, second" - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = self.Data.getvalues('lat') @@ -212,8 +214,7 @@ class CtObservations(Observation): savedict['dims'] = dimid savedict['values'] = data.tolist() savedict['missing_value'] = -999.9 - savedict['_FillValue'] = -999.9 - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = self.Data.getvalues('lon') @@ -223,8 +224,7 @@ class CtObservations(Observation): savedict['dims'] = dimid savedict['values'] = data.tolist() savedict['missing_value'] = -999.9 - savedict['_FillValue'] = -999.9 - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = self.Data.getvalues('height') @@ -234,8 +234,7 @@ class CtObservations(Observation): savedict['dims'] = dimid savedict['values'] = data.tolist() savedict['missing_value'] = -999.9 - savedict['_FillValue'] = -999.9 - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = self.Data.getvalues('samplingstrategy') @@ -246,8 +245,7 @@ class CtObservations(Observation): savedict['dims'] = dimid savedict['values'] = data.tolist() savedict['missing_value'] = -9 - savedict['_FillValue'] = -9 - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = self.Data.getvalues('evn') @@ -257,11 +255,10 @@ class CtObservations(Observation): savedict['units'] = "NOAA database identifier" savedict['dims'] = dimid+dim200char savedict['values'] = data - savedict['missing_value'] = '-' - savedict['_FillValue'] = '-' - dummy = f.AddData(savedict) + savedict['missing_value'] = '!' + status = f.AddData(savedict) - dummy = f.close() + status = f.close() msg = "Successfully wrote data to obs file" ;logging.debug(msg) msg = "Sample input file for obs operator now in place [%s]"%obsinputfile ; logging.info(msg) @@ -280,6 +277,7 @@ class CtObservations(Observation): """ import da.tools.rc as rc + from da.tools.general import NameConvert filename = self.DaCycle.DaSystem['obs.sites.rc'] @@ -332,11 +330,11 @@ class CtObservations(Observation): if SiteInfo.has_key(obs.code): msg = "Observation found (%s)" % obs.code ; logging.debug(msg) - obs.mdm = SiteInfo[obs.code]['error'] + obs.mdm = SiteInfo[obs.code]['error']* self.global_R_scaling obs.may_localize = SiteInfo[obs.code]['may_localize'] obs.may_reject = SiteInfo[obs.code]['may_reject'] else: - msg= "Observation NOT found (%s), please check sites.rc file (%s) !!!" % (obs.code, self.SitesFile,) ; logging.warning(msg) + msg= "Observation NOT found (%s, %s), please check sites.rc file (%s) !!!" % (obs.code, identifier, self.SitesFile,) ; logging.warning(msg) obs.flag = 99 # Add SiteInfo dictionary to the Observation object for future use @@ -388,7 +386,6 @@ class CtObservations(Observation): savedict['dims'] = dimid+dimcalcomp savedict['values'] = data savedict['missing_value'] = -9 - savedict['_FillValue'] = -9 savedict['comment'] = "Calendar date components as integers. Times and dates are UTC." savedict['order'] = "year, month, day, hour, minute, second" status = f.AddData(savedict) @@ -402,7 +399,7 @@ class CtObservations(Observation): savedict['dims'] = dimid savedict['values'] = data.tolist() savedict['comment'] = 'Observations used in optimization' - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = self.Data.getvalues('mdm') @@ -413,7 +410,7 @@ class CtObservations(Observation): savedict['dims'] = dimid savedict['values'] = data.tolist() savedict['comment'] = 'Variance of mole fractions resulting from model-data mismatch' - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = self.Data.getvalues('simulated') @@ -426,7 +423,7 @@ class CtObservations(Observation): savedict['dims'] = dimid+dimmembers savedict['values'] = data.tolist() savedict['comment'] = 'simulated mixing ratios based on optimized state vector' - dummy = f.AddData(savedict) + status = f.AddData(savedict) data = self.Data.getvalues('fromfile') @@ -437,8 +434,7 @@ class CtObservations(Observation): savedict['dims'] = dimid+dim200char savedict['values'] = data savedict['missing_value'] = '!' - savedict['_FillValue'] = '!' - dummy = f.AddData(savedict) + status = f.AddData(savedict) status = f.close()