Source code for pycif.plugins.datastreams.fluxes.CarbonMonitor.get_domain
import numpy as np
from logging import debug
from .....utils.classes.setup import Setup
from .....utils.classes.domains import Domain
[docs]
def get_domain(ref_dir, ref_file, input_interval, target_dir, tracer=None):
"""
Return:
Domain: a domain class object, with the definition of the center grid
cells coordinates, as well as corners
"""
nlon = tracer.nlon
nlat = tracer.nlat
print(nlon, nlat)
lat_max = 90
lat_min = -90
lon_min = -180
lon_max = 180
dlat = (lat_max - lat_min) / nlat
dlon = (lon_max - lon_min) / nlon
latc = [lat_min + x*dlat for x in range(nlat+1)]
lonc = [lon_min + x*dlon for x in range(nlon+1)]
zlonc, zlatc = np.meshgrid(lonc, latc)
print(zlonc.shape)
lat = [lat_min + dlat / 2 + x*dlat for x in range(nlat)]
lon = [lon_min + dlon / 2 + x*dlon for x in range(nlon)]
zlon, zlat = np.meshgrid(lon, lat)
print(zlon.shape)
# Initializes domain
# Vertical definition (surface level)
pressure_unit = "Pa"
nlev = 1
sigma_a_mid = np.array([0])
sigma_b_mid = np.array([1])
# Put it to a domain Plugin
domain = Domain(nlon=nlon, nlat=nlat,
zlon=zlon, zlat=zlat,
zlonc=zlonc, zlatc=zlatc,
nlev=nlev, pressure_unit=pressure_unit,
sigma_b_mid=sigma_b_mid, sigma_a_mid=sigma_a_mid,
)
return domain