Source code for pycif.plugins.datastreams.meteos.lmdz_mass_fluxes.fetch

from __future__ import annotations

from datetime import datetime
from pathlib import Path

from .....utils import path


# pylint: disable=unused-argument
[docs] def fetch( ref_dir: str, ref_file: str, input_interval: dict[datetime, list[datetime]], target_dir: str, tracer: object | None = None, **kwargs, ): """Reads meteorology and links to the working directory""" if tracer is None: raise ValueError("tracer is None") filetype_list = [("fluxstoke", ""), ("phystoke", "_csr")] if tracer.model.grid == "regular": filetype_list.append(("fluxstokev", "")) input_dates = tracer.model.meteo_input_dates # type: ignore list_dates: dict[datetime, list[tuple[datetime, datetime]]] = {} list_files: dict[datetime, list[str]] = {} # Link meteo files for di, dates in input_dates.items(): # Set dates list_dates[di] = [(di, df) for di, df in zip(dates[:-1], dates[1:])] list_files[di] = len(list_dates[di]) * ["dummy"] # Link meteo files for prefix, suffix in filetype_list: filename = f"{prefix}.{di:an%Y.m%m}{suffix}.nc" source = Path(ref_dir, filename) if not source.is_file(): raise FileNotFoundError(f"Meteo file '{source}' for {di} not found") target = Path(target_dir, source.name) path.link(source, target) return list_files, list_dates