Source code for pycif.plugins.domains.lmdz_reg.read_domain
import numpy as np
import xarray as xr
[docs]
def read_grid(self, **kwargs):
"""Reads a grid from NetCDF files"""
self.unstructured_domain = False
with xr.open_dataset(self.grid_path) as ds:
self.nlat = ds.sizes["lat"]
self.nlon = ds.sizes["lon"]
lon = ds.lon.values
lat = ds.lat.values
lon_bnds = ds[ds.lon.attrs["bounds"]].values
lat_bnds = ds[ds.lat.attrs["bounds"]].values
lon_corners = np.concatenate([lon_bnds[:, 0], lon_bnds[-1:, 1]])
lat_corners = np.concatenate([lat_bnds[:, 0], lat_bnds[-1:, 1]])
self.zlon, self.zlat = np.meshgrid(lon, lat)
self.zlonc, self.zlatc = np.meshgrid(lon_corners, lat_corners)
if "area" in ds:
self.areas = ds.area.values
with xr.open_dataset(self.vcoord_path) as ds:
self.sigma_a = ds.ap.values
self.sigma_b = ds.bp.values
self.nlev = len(self.sigma_a) - 1
self.pressure_unit = "Pa"