Source code for pycif.plugins.datastreams.fluxes.wrfchem.utils

import datetime
import glob
import os
import calendar 
import numpy as np
from .....utils.check.errclass import CifError, CifNotImplementedError


[docs] def find_valid_file(ref_dir, file_format, dd): """Not used; always raises immediately. The code below the raise is unreachable leftover template code (a nearest-file-lookup pattern, never executed) and is kept only for reference/history. Raises: CifNotImplementedError: Always, immediately. VERSION HISTORY 2021-08-20 freum Original from flux_template_plugin, raising NotImplementedError at beginning """ raise CifNotImplementedError("Not used") # Get all files and dates matching the file and format print('Here, basic listing of all available files') list_files_orig = os.listdir(ref_dir) list_files_avail = [] for f in list_files_orig: try: check = datetime.datetime.strptime(f, file_format) list_files_avail.append(f) except: continue print('All availables files',list_files_avail) print('Modifiy to suit your case e.g. list less files, list also files for antoher year or month.') print('See examples in other plugins or in the documentation/tutorials.') list_files = [] list_dates = [] print('Here, list provided dates and matching files') print('The list of dates is probably sparse e.g. every 3 hours or every month.') list_files = np.array(list_files) list_dates = np.array(list_dates) # Sorting along dates isort = np.argsort(list_dates) list_dates = list_dates[isort] list_files = list_files[isort] if list_files == []: raise CifError(f"Did not find any valid flux files in {ref_dir} with format {file_format}. Please check your yml file") print('Here, among list_dates, find the two dates between which dd is and') print('return those dates and the matching files.') print('If dd is among the provided date, return it twice (same for the matching file.') return [file_ref1, file_ref2], [date_ref1, date_ref2]