diff options
author | Jonas Gunz <himself@jonasgunz.de> | 2023-09-12 12:13:06 +0200 |
---|---|---|
committer | Jonas Gunz <himself@jonasgunz.de> | 2023-09-12 12:13:06 +0200 |
commit | 459b4665e436a23a55202ccdfdaf5b3bb9c83416 (patch) | |
tree | b2a6687dc07c07ff3d507b30a1e6f05cc6a74cf5 | |
parent | 76a9a93d72ad3ff21854f532d64aca42c72c1ebf (diff) | |
download | meteo_toolbox-459b4665e436a23a55202ccdfdaf5b3bb9c83416.tar.gz |
output dir
-rwxr-xr-x | horizontal.py | 12 | ||||
-rw-r--r-- | misc.py | 8 | ||||
-rwxr-xr-x | run.py | 3 | ||||
-rwxr-xr-x | vertical_from_grib.py | 11 |
4 files changed, 26 insertions, 8 deletions
diff --git a/horizontal.py b/horizontal.py index 280599f..02e45b1 100755 --- a/horizontal.py +++ b/horizontal.py @@ -1,4 +1,6 @@ #!/usr/bin/env python3 +import os + import xarray as xr import numpy as np @@ -30,13 +32,14 @@ config = { ] } -def run(source, plots): +def run(source, plots, output='.'): + misc.create_output_dir(output) data = xr.load_dataset(source, engine='cfgrib') for plot in plots: - _plot(data, **plot) + _plot(data, output, **plot) -def _plot(data, name, layers, area = None): +def _plot(data, output, name, layers, area = None): for step in data.coords['step']: this_step = data.sel(step=step) @@ -68,7 +71,8 @@ def _plot(data, name, layers, area = None): pc.panels = [panel] pc.draw() #pc.show() - pc.save(f'{name}_{init_for_filename}+{hours_since_init_str}.png') + outname = f'{name}_{init_for_filename}+{hours_since_init_str}.png' + pc.save(os.path.join(output, outname)) def _layer(data, layertype, **kwargs): layertypes={ @@ -1,3 +1,4 @@ +import os import numpy as np import datetime @@ -7,3 +8,10 @@ def np_time_convert(dt64): seconds_since_epoch = (dt64 - unix_epoch) / one_second return datetime.datetime.utcfromtimestamp(seconds_since_epoch) + +def create_output_dir(path, clear=False): + if not os.path.exists(path): + os.makedirs(path) + elif clear: + raise Exception('clear not implemented') + @@ -2,6 +2,7 @@ import sys import yaml +import matplotlib.pyplot as plt FILE = 'config.yaml' if len(sys.argv) > 1: @@ -17,3 +18,5 @@ for plotter in conf['plotter']: mod = __import__(modname) mod.run(**plotter) + + plt.close('all') diff --git a/vertical_from_grib.py b/vertical_from_grib.py index 9251410..934b248 100755 --- a/vertical_from_grib.py +++ b/vertical_from_grib.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +import os import datetime @@ -23,13 +24,14 @@ config = { ] } -def run(source, plots): +def run(source, plots, output='.'): + misc.create_output_dir(output) data = xr.load_dataset(source, engine='cfgrib') for plot in plots: - _plot(data, **plot) + _plot(data, output, **plot) -def _plot(data, lat, lon, name, analysis=None): +def _plot(data, output, lat, lon, name, analysis=None): for_temp = data.sel(latitude=lat, longitude = lon, method='nearest') for_temp = for_temp[['r', 't', 'u', 'v']] @@ -65,7 +67,8 @@ def _plot(data, lat, lon, name, analysis=None): init_for_filename = init.strftime('%Y-%m-%d-%HUTC') - skt.plot(filename=f'skewt_{name}_{init_for_filename}+{hours_since_init_str}.png') + outname = f'skewt_{name}_{init_for_filename}+{hours_since_init_str}.png' + skt.plot(filename=os.path.join(output, outname)) if __name__ == '__main__': run(**config) |