From 3cc3390e8a236cbb845fc09754ee518b5e322fd2 Mon Sep 17 00:00:00 2001
From: "Daniel.Frisinghelli" <daniel.frisinghelli@eurac.edu>
Date: Mon, 4 Oct 2021 12:32:20 +0200
Subject: [PATCH] Optional compression for ERA5.

---
 climax/core/cli.py                        | 5 +++++
 climax/main/preprocess/preprocess_ERA5.py | 7 ++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/climax/core/cli.py b/climax/core/cli.py
index 6621463..eaed173 100644
--- a/climax/core/cli.py
+++ b/climax/core/cli.py
@@ -168,6 +168,11 @@ def preprocess_era5_parser():
                         help='Overwrite existing files {}.'.format(default),
                         default=False, nargs='?', const=True, metavar='')
 
+    # optional argument: whether to apply compression
+    parser.add_argument('-c', '--compress', type=bool,
+                        help='Apply file compression {}.'.format(default),
+                        default=False, nargs='?', const=True, metavar='')
+
     # optional argument: dry run, print files which would be processed
     parser.add_argument('-d', '--dry-run', type=bool,
                         help=('Print files which would be processed {}.'
diff --git a/climax/main/preprocess/preprocess_ERA5.py b/climax/main/preprocess/preprocess_ERA5.py
index 6a83c91..4f666d4 100644
--- a/climax/main/preprocess/preprocess_ERA5.py
+++ b/climax/main/preprocess/preprocess_ERA5.py
@@ -128,9 +128,10 @@ if __name__ == '__main__':
             ds = xr.open_mfdataset(target, parallel=True).compute()
 
             # set NetCDF file compression for each variable
-            for _, var in ds.data_vars.items():
-                var.encoding['zlib'] = True
-                var.encoding['complevel'] = 5
+            if args.compress:
+                for _, var in ds.data_vars.items():
+                    var.encoding['zlib'] = True
+                    var.encoding['complevel'] = 5
 
             # save aggregated netcdf file
             LOGGER.info('Compressing NetCDF: {}'.format(filename))
-- 
GitLab