示例#1
0
def cspec(path, smv2="smv2.log"):
    if not os.path.isfile(smv2):
        if os.path.isdir(smv2):
            smv2 = os.path.join(smv2, "smv2.log")
        else:
            smv2 = os.path.join(os.path.dirname(path), smv2)
    diaginfo, tracerinfo = get_info_for_cspec(get_cspec(smv2))
    return bpch(path, diaginfo=diaginfo, tracerinfo=tracerinfo)
示例#2
0
def cspec(path, smv2='smv2.log'):
    if not os.path.isfile(smv2):
        if os.path.isdir(smv2):
            smv2 = os.path.join(smv2, 'smv2.log')
        else:
            smv2 = os.path.join(os.path.dirname(path), smv2)
    diaginfo, tracerinfo = get_info_for_cspec(get_cspec(smv2))
    return bpch(path, diaginfo=diaginfo, tracerinfo=tracerinfo)
示例#3
0
from collections import OrderedDict
import numpy as np
from PseudoNetCDF import interpvars, getvarpnc, extract
from netCDF4 import Dataset
from PseudoNetCDF.geoschemfiles import bpch
f = bpch('testdata/ts20100101.bpch');
metf = Dataset('testdata/METBDY3D_100101')
oldbc = Dataset('geos2cmaq.20100101.nc')
def pres_from_sigma(sigma, pref, ptop, avg = False):
    pres = sigma * (pref - ptop) + ptop
    if avg:
        pres = pres[:-1] + np.diff(pres) / 2.
    return pres

vert_out = pres_from_sigma(metf.VGLVLS, 101325., metf.VGTOP, avg = True)
vert_in = f.variables['layer'][:]
from fast_interp import get_interp_w
w = get_interp_w(vert_in, vert_out)
print -1

ft = getvarpnc(f.groups['IJ-AVG-$'], None)
xf = extract(ft, [oldbc.lonlatcoords], unique = True); 
print 0
xft = getvarpnc(xf, None)
print 1
xf1 = extract(xft, [oldbc.lonlatcoords])
print 2

def check(f):
    lonlat = f.lonlatcoords.split('/')
    lat, lon = f.variables['geos_latitude_bounds'], f.variables['geos_longitude_bounds']
示例#4
0
        re.M | re.DOTALL,
    )
    gv = reo.search(text).groupdict()
    active = [v.strip().split()[1] for v in gv["active"].strip().split("\n")]
    inactive = gv["inactive"].replace("\n", " ").split()
    dead = gv["dead"].replace("\n", " ").split()
    all = active + inactive  # + dead
    return all


def get_info_for_cspec(all):
    out = ""
    for si, spc in enumerate(all):
        out += "%-8s %-8s cspec                 0.000E-00  1 %-8d 1.000E+00 molec/cm3\n" % (spc, spc, si + 1)

    try:
        from StringIO import StringIO
    except ImportError:
        from io import StringIO

    diag = StringIO("#\n       0 IJ-CHK-$                                 Tracer concentration                    \n")
    return diag, StringIO(out)


if __name__ == "__main__":
    specs = get_cspec("testdata/smv2.log")
    diagfile, trcfile = get_info_for_cspec(specs)
    from PseudoNetCDF.geoschemfiles import bpch

    f = bpch("/Users/barronh/Development/testrun/BC.CSPEC.20050101", tracerinfo=trcfile, diaginfo=diagfile)
示例#5
0
    active = [v.strip().split()[1] for v in gv['active'].strip().split('\n')]
    inactive = gv['inactive'].replace('\n', ' ').split()
    dead = gv['dead'].replace('\n', ' ').split()
    all = active + inactive  #+ dead
    return all


def get_info_for_cspec(all):
    out = ""
    for si, spc in enumerate(all):
        out += "%-8s %-8s cspec                 0.000E-00  1 %-8d 1.000E+00 molec/cm3\n" % (
            spc, spc, si + 1)

    try:
        from StringIO import StringIO
    except ImportError:
        from io import StringIO

    diag = StringIO(
        "#\n       0 IJ-CHK-$                                 Tracer concentration                    \n"
    )
    return diag, StringIO(out)


if __name__ == '__main__':
    specs = get_cspec('testdata/smv2.log')
    diagfile, trcfile = get_info_for_cspec(specs)
    from PseudoNetCDF.geoschemfiles import bpch
    f = bpch('/Users/barronh/Development/testrun/BC.CSPEC.20050101',
             tracerinfo=trcfile,
             diaginfo=diagfile)