Source code for pycif.plugins.datastreams.backgrounds.carboscope_bg.write
from .....utils.classes.fluxes import Flux
import numpy as np
import os
import xarray as xr
[docs]
def write(self, prescr_file, prescr, typefile, mode="a", **kwargs):
"""Write prescribed species files for LMDZ
Args:
self (Fluxes): the Fluxes plugin
prescr_file (str): the file where to write fluxes
prescr (xarray.DataArray): prescribed species data to write
mode (str): 'w' to overwrite, 'a' to append
"""
if typefile == 'bin':
prescr_fwd = prescr["fwd"].values
prescr_tl = prescr["tl"].values
np.transpose([prescr_fwd, prescr_tl], axes=(0, 4, 3, 2, 1)).T.tofile(prescr_file)
if typefile == 'nc':
# option mode = 'a' does not work -> do it "manually"
if os.path.exists(prescr_file):
ds = xr.open_dataset(prescr_file)
append_data = xr.merge([ds, prescr])
append_data.to_netcdf(prescr_file, format="NETCDF3_CLASSIC", mode = 'w')
else:
prescr.to_netcdf(prescr_file, format="NETCDF3_CLASSIC", mode = 'w')