diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..4b3dec27e0374f0fcc842d7e2646f7193ca09653 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.pyc +*/*.pyc*.pyc +*/*.pyc*.pyc +*/*.pyc*.pyc +*/*.pyc*.pyc +*/*.pyc*.pyc +*/*.pyc*.pyc +*/*.pyc*.pyc +*/*.pyc diff --git a/da/analysis/expand_molefractions.py b/da/analysis/expand_molefractions.py index abcc2b08dd694bfdf78e286fcb0d829a72579072..910adfea0a61bfef21a51150b0e0a437715a24f3 100755 --- a/da/analysis/expand_molefractions.py +++ b/da/analysis/expand_molefractions.py @@ -19,7 +19,6 @@ import shutil import logging import netCDF4 import numpy as np -from string import join from datetime import datetime, timedelta sys.path.append('../../') from da.tools.general import date2num, num2date diff --git a/da/analysis/tools_transcom.py b/da/analysis/tools_transcom.py index 68287fb065644e5e8184b1c9bf13b5e8012c0da1..cc96a14009f22ef5879f66bf7adc8941da9134c4 100755 --- a/da/analysis/tools_transcom.py +++ b/da/analysis/tools_transcom.py @@ -18,7 +18,6 @@ sys.path.append('../../') rootdir = os.getcwd().split('da/')[0] analysisdir = os.path.join(rootdir, 'da/analysis') -from string import join, split from numpy import array, identity, zeros, arange, dot import da.tools.io4 as io diff --git a/da/carbondioxide/column_obs.py b/da/carbondioxide/column_obs.py index ff367401877338b9713facf8f19dc3f218074f5a..691bec74b52bf343d1e4a16f55e46262650c6031 100644 --- a/da/carbondioxide/column_obs.py +++ b/da/carbondioxide/column_obs.py @@ -26,7 +26,6 @@ import logging import datetime as dtm import numpy as np -from string import strip from numpy import array, logical_and, sqrt sys.path.append(os.getcwd()) sys.path.append('../../') diff --git a/da/carbondioxide/obs.py b/da/carbondioxide/obs.py index 775feb955bc60970348bb33d6766343147fa916b..89f276e35fb702830279f1fe7731d63f09d94604 100755 --- a/da/carbondioxide/obs.py +++ b/da/carbondioxide/obs.py @@ -23,9 +23,7 @@ File created on 28 Jul 2010. import os import sys import logging -#from da.baseclasses.statevector import filename import datetime as dtm -from string import strip from numpy import array, logical_and sys.path.append(os.getcwd()) diff --git a/da/carbondioxide/obspack.py b/da/carbondioxide/obspack.py index ceab0138a5314ca3c78c2ee9fb41f91a5bac9450..729bc0bf02edc48957287663a00dd1e10c272233 100755 --- a/da/carbondioxide/obspack.py +++ b/da/carbondioxide/obspack.py @@ -24,7 +24,6 @@ import os import sys import logging import datetime as dtm -#from string import strip from numpy import array, logical_and sys.path.append(os.getcwd()) diff --git a/da/carbondioxide/obspack_geocarbon.py b/da/carbondioxide/obspack_geocarbon.py index 26b54962b9deff469b43222f4ff6002a723fffc2..7bce8b71e78a2feecfe279455fdc441981d3cbfb 100755 --- a/da/carbondioxide/obspack_geocarbon.py +++ b/da/carbondioxide/obspack_geocarbon.py @@ -25,7 +25,6 @@ import sys import logging import datetime as dtm -from string import strip from numpy import array, logical_and sys.path.append(os.getcwd()) sys.path.append('../../') diff --git a/da/carbondioxide/obspack_globalviewplus.py b/da/carbondioxide/obspack_globalviewplus.py index da1a09a3ac58962d660391f8f35eac2e463228cb..018e1ef2233b9d2adcc50a41fb1cf5c47c299c58 100755 --- a/da/carbondioxide/obspack_globalviewplus.py +++ b/da/carbondioxide/obspack_globalviewplus.py @@ -25,7 +25,6 @@ import sys import logging import datetime as dtm -#from string import strip from numpy import array, logical_and, sqrt sys.path.append(os.getcwd()) sys.path.append('../../') diff --git a/da/carbondioxide/obspack_globalviewplus2.py b/da/carbondioxide/obspack_globalviewplus2.py index 156c0d009d2519e7bf20faff21d44ef40ac91fda..33134bb5c2cce9a01e35c7ecac2b2f4d80e9d466 100755 --- a/da/carbondioxide/obspack_globalviewplus2.py +++ b/da/carbondioxide/obspack_globalviewplus2.py @@ -26,7 +26,6 @@ import sys import logging import datetime as dtm -from string import strip from numpy import array, logical_and, sqrt sys.path.append(os.getcwd()) sys.path.append('../../') @@ -115,8 +114,8 @@ class ObsPackObservations(Observations): logging.debug("ObsPack dataset info read, proceeding with %d netcdf files" % len(ncfilelist)) for ncfile in ncfilelist: - - if ncfile not in valid_sites: continue + + if ncfile not in valid_sites: continue infile = os.path.join(self.obspack_dir, 'data', 'nc', ncfile + '.nc') ncf = io.ct_read(infile, 'read') @@ -296,27 +295,27 @@ class ObsPackObservations(Observations): savedict['missing_value'] = '!' f.add_data(savedict) - data = self.getvalues('obs') - - savedict = io.std_savedict.copy() - savedict['name'] = "observed" - savedict['long_name'] = "observedvalues" - savedict['units'] = "mol mol-1" - savedict['dims'] = dimid - savedict['values'] = data.tolist() - savedict['comment'] = 'Observations used in optimization' - f.add_data(savedict) - - data = self.getvalues('mdm') - - savedict = io.std_savedict.copy() - savedict['name'] = "modeldatamismatch" - savedict['long_name'] = "modeldatamismatch" - savedict['units'] = "[mol mol-1]" - savedict['dims'] = dimid - savedict['values'] = data.tolist() - savedict['comment'] = 'Standard deviation of mole fractions resulting from model-data mismatch' - f.add_data(savedict) + data = self.getvalues('obs') + + savedict = io.std_savedict.copy() + savedict['name'] = "observed" + savedict['long_name'] = "observedvalues" + savedict['units'] = "mol mol-1" + savedict['dims'] = dimid + savedict['values'] = data.tolist() + savedict['comment'] = 'Observations used in optimization' + f.add_data(savedict) + + data = self.getvalues('mdm') + + savedict = io.std_savedict.copy() + savedict['name'] = "modeldatamismatch" + savedict['long_name'] = "modeldatamismatch" + savedict['units'] = "[mol mol-1]" + savedict['dims'] = dimid + savedict['values'] = data.tolist() + savedict['comment'] = 'Standard deviation of mole fractions resulting from model-data mismatch' + f.add_data(savedict) f.close() logging.debug("Successfully wrote data to obs file") diff --git a/da/co2gridded/statevectorNHgridded.py b/da/co2gridded/statevectorNHgridded.py index 67341824b02711d6c6d45b92b84e3cdf20e3013a..92b0a78b1a069fe6fbbf50cd5aef9788201597c0 100644 --- a/da/co2gridded/statevectorNHgridded.py +++ b/da/co2gridded/statevectorNHgridded.py @@ -89,9 +89,9 @@ class CO2GriddedStateVector(StateVector): if 'pco2' in file or 'cov_ocean' in file: parnr = list(range(9805,9835)) - if 'ocn.optimize' in dacycle.dasystem and not dacycle.dasystem['ocn.optimize']: - cov = np.identity(30)*1E-20 - logging.debug('Prior ocean covariance matrix = Identity matrix') + if 'ocn.optimize' in dacycle.dasystem and not dacycle.dasystem['ocn.optimize']: + cov = np.identity(30)*1E-20 + logging.debug('Prior ocean covariance matrix = Identity matrix') else: cov_ocn = f.get_variable('CORMAT') cov = cov_ocn diff --git a/da/platform/cartesius.py b/da/platform/cartesius.py index b1daa0aa5e100f801a5b0cb57135e8c1d64c4191..3286b48c02483e0d6c1cb92198f4694d06db9743 100755 --- a/da/platform/cartesius.py +++ b/da/platform/cartesius.py @@ -132,9 +132,9 @@ class CartesiusPlatform(Platform): logging.info("A new task will be started (%s)" % cmd) output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0] logging.info(output) - print 'output', output + print('output', output) jobid = output.split()[-1] - print 'jobid', jobid + print('jobid', jobid) else: cmd = ["sbatch", jobfile] logging.info("A new job will be submitted (%s)" % cmd) diff --git a/da/rc/ctdas_column_oco2.rc b/da/rc/ctdas_column_oco2.rc new file mode 100644 index 0000000000000000000000000000000000000000..2372230813bdc0c5decaf243982d23e84294864e --- /dev/null +++ b/da/rc/ctdas_column_oco2.rc @@ -0,0 +1,40 @@ +!!! Info for the CarbonTracker data assimilation system + +datadir : /projects/0/ctdas/input/ctdas_2012 + +! XCO2 samples +obs.column.input.dir : ${datadir}/xco2/oco2_l2_lite_fp_9r_10secs/ +obs.column.ncfile : oco2_LtCO2_<YYYYMMDD>_10sec.nc +obs.column.selection.variables: land_water_indicator, operation_mode +obs.column.selection.criteria : == 0, <2 +obs.column.extra.variables : pressure_weight +obs.column.mdm.weight : 1 +obs.column.rc : ${datadir}/xco2/oco2_weights.rc +obs.column.mdm.calculation : parametrization + +! For ObsPack +obspack.input.id : obspack_co2_111_MERGE_GLOBALVIEWplus_v4.2_NRT_v4.4_2019-05-16 +obspack.input.dir : ${datadir}/obspacks/${obspack.input.id} +obs.sites.rc : /projects/0/ctdas/liesbeth/ctdas_xco2/sites_weights_validation_noaircraft.rc +obspack.mdm.weight : 1 +obs.scaling.factor : 1e6 + +ocn.covariance : ${datadir}/oceans/oif/cov_ocean.2000.01.nc +deltaco2.prefix : oif_p3_era40.dpco2 + +bio.cov.dir : ${datadir}/covariances/gridded_NH/ +bio.cov.prefix : cov_ecoregion + +regtype : gridded_oif30 +nparameters : 9835 +random.seed : 4385 +regionsfile : ${datadir}/covariances/gridded_NH/griddedNHparameters.nc +!random.seed.init: ${datadir}/randomseedinit.pickle + +! Include a naming scheme for the variables + +#include NamingScheme.wp_Mar2011.rc + +! Info on the sites file used + +ocn.optimize : True diff --git a/da/tm5/observationoperator.py b/da/tm5/observationoperator.py index dd21dba0cc292bb920c7d7b037b144b20af2c000..5fe9e457eab7b51471f059cdec5f8d69e4d056fa 100755 --- a/da/tm5/observationoperator.py +++ b/da/tm5/observationoperator.py @@ -38,7 +38,6 @@ import logging import shutil import datetime import subprocess -from string import join import glob sys.path.append(os.getcwd()) sys.path.append("../../") @@ -191,7 +190,7 @@ class TM5ObservationOperator(ObservationOperator): else: cmd = ['python', 'setup_tm5', '--%s' % self.dacycle.daplatform.give_queue_type(), rcfilename] logging.info('Starting the external TM5 setup script') - logging.info('using command ... %s' % join(cmd)) + logging.info('using command ... %s' % ''.join(cmd)) retcode = subprocess.call(cmd) os.chdir(self.dacycle['dir.da_submit']) diff --git a/da/tools/initexit.py b/da/tools/initexit.py index 4a29e1dd50cabc1021945a85363f7e25a474fb65..7d69199745dcec8feabcdb93a26bbf93b20e5880 100755 --- a/da/tools/initexit.py +++ b/da/tools/initexit.py @@ -75,7 +75,6 @@ import copy import getopt import pickle import numpy as np -#from string import join import da.tools.rc as rc from da.tools.general import create_dirs, to_datetime, advance_time