1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
#!/usr/bin/env python
from __future__ import print_function
from test_python_common import * # common subroutines
import cmor._cmor
import os
pth = os.path.split(os.path.realpath(os.curdir))
if pth[-1] == 'Test':
ipth = opth = '.'
else:
ipth = opth = 'Test'
myaxes = numpy.zeros(9, dtype='i')
myaxes2 = numpy.zeros(9, dtype='i')
myvars = numpy.zeros(9, dtype='i')
cmor.setup(
inpath=ipth,
set_verbosity=cmor.CMOR_NORMAL,
netcdf_file_action=cmor.CMOR_REPLACE,
exit_control=cmor.CMOR_EXIT_ON_MAJOR)
cmor.dataset(
outpath=opth,
experiment_id="historical",
institution="GICC (Generic International Climate Center, Geneva, Switzerland)",
source="GICCM1 2002: atmosphere: GICAM3 (gicam_0_brnchT_itea_2, T63L32); ocean: MOM (mom3_ver_3.5.2, 2x3L15); sea ice: GISIM4; land: GILSM2.5",
calendar="standard",
realization=1,
contact="Rusty Koder (koder@middle_earth.net)",
history="Output from archive/giccm_03_std_2xCO2_2256.",
comment="Equilibrium reached after 30-year spin-up after which data were output starting with nominal date of January 2030",
references="Model described by Koder and Tolkien (J. Geophys. Res., 2001, 576-591). Also see http://www.GICC.su/giccm/doc/index.html 2XCO2 simulation described in Dorkey et al. '(Clim. Dyn., 2003, 323-357.)",
leap_year=0,
leap_month=0,
month_lengths=None,
model_id="GICCM1",
forcing="Ant, Nat",
institute_id="pcmdi",
parent_experiment_id="piControlwithism", branch_time=18336.33)
tables = []
a = cmor.load_table("/git/cmip5-cmor-tables/Tables/CMIP6_grids")
tables.append(a)
t = 'CMIP6_Omon.json'
te = 'dissic'
u = 'mol m-3'
time = 'time'
ts = 'month'
tscl = 1.
t = 'CMIP5_cfSites'
te = 'pr'
u = 'kg m-2 s-1'
time = 'time1'
ts = 'days'
tscl = 2.e-2
tables.append(cmor.load_table("/git/cmip5-cmor-tables/Tables/%s" % t))
print('Tables ids:', tables)
cmor.set_table(tables[0])
x, y, lon_coords, lat_coords, lon_vertices, lat_vertices = gen_irreg_grid(
lon, lat)
myaxes[0] = cmor.axis(table_entry='y',
units='m',
coord_vals=y)
myaxes[1] = cmor.axis(table_entry='x',
units='m',
coord_vals=x)
grid_id = cmor.grid(axis_ids=myaxes[:2],
latitude=lat_coords,
longitude=lon_coords,
latitude_vertices=lat_vertices,
longitude_vertices=lon_vertices)
print('got grid_id:', grid_id)
myaxes[2] = grid_id
mapnm = 'lambert_conformal_conic'
params = ["standard_parallel1",
"longitude_of_central_meridian", "latitude_of_projection_origin",
"false_easting", "false_northing", "standard_parallel2"]
punits = ["", "", "", "", "", ""]
pvalues = [-20., 175., 13., 8., 0., 20.]
cmor.set_grid_mapping(grid_id=myaxes[2],
mapping_name=mapnm,
parameter_names=params,
parameter_values=pvalues,
parameter_units=punits)
cmor.set_table(tables[1])
myaxes[3] = cmor.axis(table_entry=time,
units='%s since 1980' % ts)
pass_axes = [myaxes[3], myaxes[2]]
myvars[0] = cmor.variable(table_entry=te,
units=u,
axis_ids=pass_axes,
history='no history',
comment='no future'
)
ntimes = 2
for i in range(ntimes):
data2d = read_2d_input_files(i, varin2d[0], lat, lon) * 1.E-6
print('writing time: ', i, data2d.shape) # ,data2d
# print Time[i],bnds_time[2*i:2*i+2]
cmor.write(myvars[0], data2d, 1, time_vals=Time[i] * tscl,
time_bnds=tscl * bnds_time[2 * i:2 * i + 2])
print('wrote')
cmor.close()
|