Exemplo n.º 1
0
## Takes a quantiles.py configuration file and generates separate
## quantiles for each model.
## Syntax: python iterquant.py <quantile-config>.yml

import os
import yaml
from lib import results, configs, impacts

config = configs.read_default_config()

allimpacts = config['only-impacts'] if config.get('only-impacts', 'all') != 'all' else impacts.allimpacts

print "Collecting all available models."
allmodels = set()
for (batch, rcp, model, realization, pvals, targetdir) in configs.iterate_valid_targets(config, allimpacts, verbose=False):
    allmodels.add(model)

outdir = config['output-dir']

if not os.path.exists(outdir):
    os.mkdir(outdir)

for model in allmodels:
    print "Processing", model
    modeloutdir = os.path.join(outdir, model)
    if not os.path.exists(modeloutdir):
        os.mkdir(modeloutdir)

    config['output-dir'] = modeloutdir
    config['only-models'] = [model]
    config['allow-partial'] = 1
Exemplo n.º 2
0
        vectransforms.append(lambda x: -x)
    else:
        basenames.append(basename)
        transforms.append(lambda x: x)
        vectransforms.append(lambda x: x)

# Collect all available results
data = {}  # { filestuff => { rowstuff => { batch-gcm-iam => value } } }

observations = 0
if config.get('verbose', False):
    message_on_none = "No valid target directories found"
else:
    message_on_none = "No valid target directories found; try --verbose"

for batch, rcp, gcm, iam, ssp, targetdir in configs.iterate_valid_targets(
        config, basenames):
    message_on_none = "No valid results sets found within directories."
    print targetdir

    # Ensure that all basenames are accounted for
    foundall = True
    for basename in basenames:
        if basename + '.nc4' not in os.listdir(targetdir):
            foundall = False
            break
    if not foundall:
        continue

    # Extract the values
    for ii in range(len(basenames)):
        try:
Exemplo n.º 3
0
    combine_years = np.mean
else:
    combine_years = lambda x: x

if not os.path.exists(outdir):
    os.mkdir(outdir)

for impact in allimpacts:
    print impact

    # Collect all available results
    data = {
    }  # { rcp-year0 => { region => { batch-realization => { model => value } } } }

    for (batch, rcp, model, realization, pvals,
         targetdir) in configs.iterate_valid_targets(config, [impact]):
        print targetdir

        collection = batch + '-' + realization

        # Extract the values
        for region, fp in bundles.iterate_bundle(targetdir, impact, suffix,
                                                 working_suffix):
            if do_yearsets:
                values = bundles.get_yearses(fp, yearses)
            else:
                values = bundles.get_years(fp, years, column=column)

            if not values:
                continue
Exemplo n.º 4
0
if do_yearsetmeans:
    combine_years = np.mean
else:
    combine_years = lambda x: x

if not os.path.exists(outdir):
    os.mkdir(outdir)

for impact in allimpacts:
    print impact

    # Collect all available results
    data = {}  # { rcp-year0 => { region => { batch-realization => { model => value } } } }

    for (batch, rcp, model, realization, pvals, targetdir) in configs.iterate_valid_targets(config, [impact]):
        print targetdir

        collection = batch + "-" + realization

        # Extract the values
        for region, fp in bundles.iterate_bundle(targetdir, impact, suffix, working_suffix):
            if do_yearsets:
                values = bundles.get_yearses(fp, yearses)
            else:
                values = bundles.get_years(fp, years, column=column)

            if not values:
                continue

            if do_yearsets:
Exemplo n.º 5
0
## Syntax: python iterquant.py <quantile-config>.yml

import os
import yaml
from lib import results, configs, impacts

config = configs.read_default_config()

allimpacts = config['only-impacts'] if config.get(
    'only-impacts', 'all') != 'all' else impacts.allimpacts

print "Collecting all available models."
allmodels = set()
for (batch, rcp, model, realization, pvals,
     targetdir) in configs.iterate_valid_targets(config,
                                                 allimpacts,
                                                 verbose=False):
    allmodels.add(model)

outdir = config['output-dir']

if not os.path.exists(outdir):
    os.mkdir(outdir)

for model in allmodels:
    print "Processing", model
    modeloutdir = os.path.join(outdir, model)
    if not os.path.exists(modeloutdir):
        os.mkdir(modeloutdir)

    config['output-dir'] = modeloutdir