Source code for pycif.plugins.datastreams.backgrounds.carboscope_bg.fetch

import datetime
import glob
import os
from logging import debug, info

import numpy as np
import pandas as pd
from netCDF4 import Dataset

from .....utils import path
from .....utils.dates import date_range


[docs] def fetch(ref_dir, ref_file, date_interval, target_dir, tracer=None, **kwargs): # Reshape input interval to include full years datei, datef = date_interval datei = datetime.datetime(year=datei.year, month=1, day=1) datef = datetime.datetime(year=datef.year + 1, month=1, day=1) # Check that there are files list_available = glob.glob(f"{ref_dir}/{ref_file}") if list_available == []: raise Exception( "WARNING: No background files found for CARBOSCOPE in " f"{ref_dir}/{ref_file}" ) debug( "Available files for CARBOSCOPE background: \n" + "\n".join([f" - {f}" for f in list_available]) ) # Link files to datavect list_files = {datei: []} for f in list_available: target_file = "{}/{}".format(target_dir, os.path.basename(f)) path.link(f, target_file) list_files[datei].append(target_file) list_dates = { datei: [ [ddi, ddi + pd.Timedelta("1h")] for ddi in date_range(datei, datef, period="1h") ] } return list_files, list_dates