Exemple #1
0
def output_nc_file(dataset, field_name, model_params, output_dict):

    #create grid
    try:
        lons = dataset.lon.values
        lats = dataset.lat.values
        latbs = dataset.latb.values
        lonbs = dataset.lonb.values
        nlon = lons.shape[0]
        nlat = lats.shape[0]
        nlatb = latbs.shape[0]
        nlonb = lonbs.shape[0]
    except:
        lons, lats, lonbs, latbs, nlon, nlat, nlonb, nlatb = cts.create_grid(
            output_dict['manual_grid_option'])

    if output_dict['is_thd']:
        p_full, p_half, npfull, nphalf = cts.create_pressures()
    else:
        p_full = None
        p_half = None
        npfull = None
        nphalf = None

    #create times
    try:
        output_dict['num_years']
    except KeyError:
        is_climatology = True
    else:
        if output_dict['num_years'] == 1:
            is_climatology = True
        else:
            is_climatology = False
        num_years = output_dict['num_years']

    time_arr, day_number, ntime, time_units, time_bounds = cts.create_time_arr(
        num_years, is_climatology, output_dict['time_spacing_days'])

    #Output it to a netcdf file.
    file_name = output_dict['file_name']
    variable_name = output_dict['var_name']

    number_dict = {}
    number_dict['nlat'] = nlat
    number_dict['nlon'] = nlon
    number_dict['nlatb'] = nlatb
    number_dict['nlonb'] = nlonb
    number_dict['npfull'] = npfull
    number_dict['nphalf'] = nphalf
    number_dict['ntime'] = ntime

    data_out = dataset[field_name].load().data

    cts.output_to_file(data_out, lats, lons, latbs, lonbs, p_full, p_half,
                       time_arr, time_units, file_name, variable_name,
                       number_dict, time_bounds)
# -*- coding: utf-8 -*-s
import numpy as np
import create_timeseries as cts
import xarray as xr
import matplotlib.pyplot as plt

lons, lats, lonbs, latbs, nlon, nlat, nlonb, nlatb = cts.create_grid(
    manual_grid_option=False)
time_arr, day_number, ntime, time_units, time_bounds = cts.create_time_arr(
    num_years=1, is_climatology=True, time_spacing=72)

data_file = '/scratch/rg419/Data_moist/climatologies/sn_1.000.nc'
data = xr.open_dataset(data_file, decode_times=False)
data = data.t_surf

# Take the zonal mean of the data
data_mean = data.mean('lon')

# Make sure DJF is the opposite of JJA etc.
data_sym = np.zeros(data_mean.values.shape)
for i in range(0, 36):
    data_sym[i, :] = (data_mean[i, :].values +
                      data_mean[i + 36, ::-1].values) / 2.
    data_sym[i + 36, :] = data_sym[i, ::-1]

# Put longitude back in!
data = np.repeat(np.expand_dims(data_sym, axis=2), 128, axis=2)

number_dict = {}
number_dict['nlat'] = nlat
number_dict['nlon'] = nlon
Exemple #3
0
import numpy as np
import create_timeseries as cts

#create grid
manual_grid_option=False

lons,lats,lonbs,latbs,nlon,nlat,nlonb,nlatb=cts.create_grid(manual_grid_option)

p_full,p_half,npfull,nphalf=cts.create_pressures()

#create times
is_climatology=False
num_years=100
time_spacing=num_years

time_arr,day_number,ntime,time_units, time_bounds=cts.create_time_arr(num_years,is_climatology, time_spacing)
#create time series based on times
co2 = np.zeros((ntime, npfull, nlat, nlon))

for tick in np.arange(0,len(day_number)):
    co2[tick,...] = 300.*(1.01**(day_number[tick]/360.)) #Some scenario in dimensionless units. 1.e-6 is to convert from ppmv. 

#Output it to a netcdf file. 
file_name='co2_test_new_routine_2.nc'
variable_name='co2'

number_dict={}
number_dict['nlat']=nlat
number_dict['nlon']=nlon
number_dict['nlatb']=nlatb
number_dict['nlonb']=nlonb