diff --git a/src/glide/cli.py b/src/glide/cli.py index ed9948c..4045581 100644 --- a/src/glide/cli.py +++ b/src/glide/cli.py @@ -171,7 +171,9 @@ def l2( out = process_l1.enforce_types(out, conf) - out.attrs = conf["globals"]["netcdf_attributes"] + out.attrs = { + k: v for k, v in conf["globals"]["netcdf_attributes"].items() if v is not None + } out.encoding["unlimited_dims"] = {} diff --git a/src/glide/process_l1.py b/src/glide/process_l1.py index ccfd8ae..b06eb82 100644 --- a/src/glide/process_l1.py +++ b/src/glide/process_l1.py @@ -37,6 +37,13 @@ def _format_variables( Converts variable units.""" _log.debug("Formatting variables") + + if not config.get("slocum"): + raise ValueError( + "Configuration has no slocum variable mapping. " + "Check that core.yml is properly loaded." + ) + reduced_name_map = { var: name for var, name in config["slocum"].items() if var in ds.variables } @@ -64,6 +71,15 @@ def _format_variables( remaining_vars = set(ds.keys()) - set(config["variables"].keys()) ds = ds.drop_vars(remaining_vars) + if len(ds.data_vars) == 0: + _log.error( + "No data variables remain after formatting. Dropped variables: %s. " + "Expected slocum variables: %s", + list(remaining_vars), + list(config["slocum"].keys()), + ) + raise ValueError("No recognized Slocum variables found in input file. ") + _log.debug("Variables remaining in dataset %s", list(ds.keys())) ds["trajectory"] = (