Source code for icenet.process.local
import argparse
import logging
import os
import shutil
import xarray as xr
from icenet.process.utils import date_arg, destination_filename
from icenet.utils import setup_logging
[docs]
@setup_logging
def upload_parse_args():
"""
:return:
"""
a = argparse.ArgumentParser()
a.add_argument("filename")
a.add_argument("destination")
a.add_argument("date", default=None, type=date_arg, nargs="?")
a.add_argument("-v", "--verbose", default=False, action="store_true")
return a.parse_args()
[docs]
def upload():
"""
"""
args = upload_parse_args()
logging.info("Local upload facility")
if not os.path.isdir(args.destination):
raise RuntimeError("Destination {} does not exist".format(
args.destination))
if args.date:
ds = xr.open_dataset(args.filename)
ds = ds.sel(time=slice(args.date, args.date))
if len(ds.time) < 1:
raise ValueError("No elements in {} for {}".format(
args.filename, args.date))
filename = destination_filename(args.destination, args.filename,
args.date)
ds.to_netcdf(filename)
ds.close()
logging.info("Saved to {}".format(filename))
else:
newname = shutil.copy(args.filename, args.destination)
logging.info("Copied to {}".format(newname))