Source code for pycif.plugins.datastreams.fields.oldlmdz_ic.write

import os

import numpy as np
import pandas as pd
import xarray

from .....utils.classes.fluxes import Flux
from .....utils.netcdf import save_nc


[docs] def write(self, name, ic_file, ic_data, mode="a", **kwargs): """Write flux to AEMISSION CHIMERE compatible files. Args: self (Fluxes): the Fluxes plugin ic_file (str): the file where to write fluxes ic_data (xarray.DataArray): fluxes data to write mode (str): 'w' to overwrite, 'a' to append """ # If mode is 'a' but file does not exit, switch to mode 'w' if mode == "a" and not os.path.isfile(ic_file): mode = "w" # Array shape nhours, nlev, nmerid, nzonal = np.shape(ic_data) # Dimensions spstrlen = 23 dimnames = [ "temps", "rlonv", "rlatu", "sigs", ] dimlens = [None, nmerid, nzonal, nlev, spstrlen, 19, 1] # Variables names, dimension and attributes varnames = ["temps", "rlonv", "rlatu", name] vardims = [ ("temps"), ("rlonv"), ("rlatu"), ("temps", "sigs", "rlatu", "rlonv"), ] dtypes = ["i", "f", "f", "d"] units = ["", "degrees_east", "degrees_north", ""] attributes = [ {}, {"long_name": "Longitude"}, {"long_name": "Latitude"}, {}, ] # Variables to save times = 0 lon = self.domain.zlon lat = self.domain.zlat variables = [times, lon, lat, ic_data] save_nc( ic_file, variables, varnames, vardims, dimnames, dimlens, units, dtypes, mode=mode, attributes=attributes, format="NETCDF3_CLASSIC", )