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