Source code for pycif.plugins.datastreams.backgrounds.tm5_background.fetch
import os
import datetime
import pandas as pd
import numpy as np
from netCDF4 import Dataset
from .....utils import path
[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)
list_dates_files = pd.date_range(datei, datef, freq="1YS")
list_dates = {}
list_files = {}
for dd in list_dates_files:
file = dd.strftime("{}/{}".format(ref_dir, ref_file))
if os.path.isfile(file):
# Fetching
target_file = "{}/{}".format(target_dir, os.path.basename(file))
path.link(file, target_file)
# Time stamps
with Dataset(file) as bkg:
ts = np.array([
datetime.datetime(*t) for t in bkg[tracer.time_varname][:]
])
list_dates[dd] = [
[hh0, hh0 + datetime.timedelta(hours=1)]
for hh0 in ts]
list_files[dd] = (len(list_dates[dd]) * [target_file])
return list_files, list_dates