Skip to content

Commit

Permalink
Make run_analysis.py PEP8 compliant
Browse files Browse the repository at this point in the history
Change a variable name to prevent a conflict with a module name.
  • Loading branch information
xylar committed Dec 7, 2016
1 parent c1fe334 commit 9c3a28d
Showing 1 changed file with 63 additions and 58 deletions.
121 changes: 63 additions & 58 deletions run_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,18 @@
options.
Author: Xylar Asay-Davis, Phillip J. Wolfram
Last Modified: 9/15/2016
Last Modified: 12/06/2016
"""

import os
import sys
import matplotlib as mpl

from mpas_analysis.configuration.MpasAnalysisConfigParser import MpasAnalysisConfigParser
from mpas_analysis.configuration.MpasAnalysisConfigParser \
import MpasAnalysisConfigParser

def path_existence(config, section, option, ignorestr=None): #{{{

def path_existence(config, section, option, ignorestr=None): # {{{
inpath = config.get(section, option)
if not (os.path.isdir(inpath) or os.path.isfile(inpath)):
# assumes that path locations of ignorestr won't return an error, e.g.,
Expand All @@ -24,48 +26,55 @@ def path_existence(config, section, option, ignorestr=None): #{{{
return False
errmsg = "Path %s not found. Exiting..." % inpath
raise SystemExit(errmsg)
return inpath #}}}
return inpath # }}}


def makedirs(inpath): #{{{
def makedirs(inpath): # {{{
if not os.path.exists(inpath):
os.makedirs(inpath)
return inpath #}}}

def analysis(config): #{{{

# set default values of start and end dates for climotologies and timeseries
if (config.has_option('time', 'climo_yr1')
and config.has_option('time', 'climo_yr2')):
startDate = '{:04d}-01-01_00:00:00'.format(config.getint('time',
'climo_yr1'))
endDate = '{:04d}-12-31_23:59:59'.format(config.getint('time',
'climo_yr2'))
os.makedirs(inpath)
return inpath # }}}


def analysis(config): # {{{
# set default values of start and end dates for climotologies and
# timeseries
if config.has_option('time', 'climo_yr1') and \
config.has_option('time', 'climo_yr2'):
startDate = '{:04d}-01-01_00:00:00'.format(
config.getint('time', 'climo_yr1'))
endDate = '{:04d}-12-31_23:59:59'.format(
config.getint('time', 'climo_yr2'))
config.getWithDefault('time', 'climo_start_date', startDate)
config.getWithDefault('time', 'climo_end_date', endDate)

if (config.has_option('time', 'timeseries_yr1')
and config.has_option('time', 'timeseries_yr2')):
startDate = '{:04d}-01-01_00:00:00'.format(config.getint('time',
'timeseries_yr1'))
endDate = '{:04d}-12-31_23:59:59'.format(config.getint('time',
'timeseries_yr2'))
if config.has_option('time', 'timeseries_yr1') and \
config.has_option('time', 'timeseries_yr2'):
startDate = '{:04d}-01-01_00:00:00'.format(
config.getint('time', 'timeseries_yr1'))
endDate = '{:04d}-12-31_23:59:59'.format(
config.getint('time', 'timeseries_yr2'))
config.getWithDefault('time', 'timeseries_start_date', startDate)
config.getWithDefault('time', 'timeseries_end_date', endDate)

# Checks on directory/files existence:
if config.get('case', 'ref_casename_v0') != 'None':
path_existence(config, 'paths','ref_archive_v0_ocndir')
path_existence(config, 'paths','ref_archive_v0_seaicedir')

use_seaice = config.getboolean('seaice_timeseries', 'generate')
seaice_compare_obs = config.getboolean('seaice_timeseries', 'compare_with_obs')
seaice_modelvsobs = config.getboolean('seaice_modelvsobs', 'generate')
if (use_seaice and seaice_compare_obs) or seaice_modelvsobs:
path_existence(config, 'paths', 'ref_archive_v0_ocndir')
path_existence(config, 'paths', 'ref_archive_v0_seaicedir')

generate_seaice_timeseries = config.getboolean('seaice_timeseries',
'generate')
seaice_compare_obs = config.getboolean('seaice_timeseries',
'compare_with_obs')
generate_seaice_modelvsobs = config.getboolean('seaice_modelvsobs',
'generate')
if (generate_seaice_timeseries and seaice_compare_obs) or \
generate_seaice_modelvsobs:
# we will need sea-ice observations. Make sure they're there
for obsfile in ['obs_iceareaNH', 'obs_iceareaSH', 'obs_icevolNH', 'obs_icevolSH']:
for obsfile in ['obs_iceareaNH', 'obs_iceareaSH', 'obs_icevolNH',
'obs_icevolSH']:
path_existence(config, 'seaIceData', obsfile, ignorestr='none')

makedirs(config.get('paths','plots_dir'))
makedirs(config.get('paths', 'plots_dir'))

# choose the right rendering backend, depending on whether we're displaying
# to the screen
Expand All @@ -75,73 +84,69 @@ def analysis(config): #{{{

# analysis can only be imported after the right MPL renderer is selected

#GENERATE OCEAN DIAGNOSTICS
if config.getboolean('ohc_timeseries','generate'):
# GENERATE OCEAN DIAGNOSTICS
if config.getboolean('ohc_timeseries', 'generate'):
print ""
print "Plotting OHC time series..."
from mpas_analysis.ocean.ohc_timeseries import ohc_timeseries
ohc_timeseries(config)

if config.getboolean('sst_timeseries','generate'):
if config.getboolean('sst_timeseries', 'generate'):
print ""
print "Plotting SST time series..."
from mpas_analysis.ocean.sst_timeseries import sst_timeseries
sst_timeseries(config)

if config.getboolean('nino34_timeseries','generate'):
if config.getboolean('nino34_timeseries', 'generate'):
print ""
print "Plotting Nino3.4 time series..."
#from mpas_analysis.ocean.nino34_timeseries import nino34_timeseries
#nino34_timeseries(config)
# from mpas_analysis.ocean.nino34_timeseries import nino34_timeseries
# nino34_timeseries(config)

if config.getboolean('mht_timeseries','generate'):
if config.getboolean('mht_timeseries', 'generate'):
print ""
print "Plotting Meridional Heat Transport (MHT)..."
#from mpas_analysis.ocean.mht_timeseries import mht_timeseries
#mht_timeseries(config)

# from mpas_analysis.ocean.mht_timeseries import mht_timeseries
# mht_timeseries(config)

if config.getboolean('moc_timeseries','generate'):
if config.getboolean('moc_timeseries', 'generate'):
print ""
print "Plotting Meridional Overturning Circulation (MOC)..."
#from mpas_analysis.ocean.moc_timeseries import moc_timeseries
#moc_timeseries(config)
# from mpas_analysis.ocean.moc_timeseries import moc_timeseries
# moc_timeseries(config)

if config.getboolean('sst_modelvsobs','generate'):
if config.getboolean('sst_modelvsobs', 'generate'):
print ""
print "Plotting 2-d maps of SST climatologies..."
from mpas_analysis.ocean.ocean_modelvsobs import ocn_modelvsobs
ocn_modelvsobs(config, 'sst')

if config.getboolean('mld_modelvsobs','generate'):
if config.getboolean('mld_modelvsobs', 'generate'):
print ""
print "Plotting 2-d maps of MLD climatologies..."
from mpas_analysis.ocean.ocean_modelvsobs import ocn_modelvsobs
ocn_modelvsobs(config, 'mld')


#GENERATE SEA-ICE DIAGNOSTICS
if config.getboolean('seaice_timeseries','generate'):
# GENERATE SEA-ICE DIAGNOSTICS
if config.getboolean('seaice_timeseries', 'generate'):
print ""
print "Plotting sea-ice area and volume time series..."
from mpas_analysis.sea_ice.timeseries import seaice_timeseries
seaice_timeseries(config)

if config.getboolean('seaice_modelvsobs','generate'):
if config.getboolean('seaice_modelvsobs', 'generate'):
print ""
print "Plotting 2-d maps of sea-ice concentration and thickness climatologies..."
print "Plotting 2-d maps of sea-ice concentration and thickness " \
"climatologies..."
from mpas_analysis.sea_ice.modelvsobs import seaice_modelvsobs
seaice_modelvsobs(config)

# GENERATE LAND-ICE DIAGNOSTICS

#GENERATE LAND-ICE DIAGNOSTICS


if config.getboolean('plot','displayToScreen'):
if config.getboolean('plot', 'displayToScreen'):
plt.show()


return #}}}
return # }}}

if __name__ == "__main__":

Expand Down

0 comments on commit 9c3a28d

Please sign in to comment.