Source code for pycif.plugins.obsvects.standard.fetch
import os
import datetime
import numpy as np
from ....utils import path
from logging import info
[docs]
def default_fetch(
ref_dir, ref_file, input_dates, target_dir, tracer=None, **kwargs
):
info("Fetching input files using directory and file format")
info("{}/{}".format(ref_dir, ref_file))
list_files = {}
list_dates = {}
for datei in input_dates:
tmp_files = []
tmp_dates = []
for dd in input_dates[datei]:
dir_dd = dd.strftime(ref_dir)
file_dd = dd.strftime(ref_file)
tmp_files.append("{}/{}".format(dir_dd, file_dd))
tmp_dates.append(
dd if file_dd == ref_file else
datetime.datetime.strptime(file_dd, ref_file))
# Fetching
local_files = []
for f in tmp_files:
target_file = "{}/{}".format(target_dir, os.path.basename(f))
path.link(f, target_file)
local_files.append(target_file)
# Remove duplicates
dates_unique, index_unique = np.unique(tmp_dates, return_index=True)
files_unique = np.array(local_files)[index_unique]
index_sorted = np.argsort(dates_unique)
list_files[datei] = list(files_unique[index_sorted])
list_dates[datei] = list(dates_unique[index_sorted])
return list_files, list_dates