From 9f98818abc4bbf606bc11fa28dbda67c655fb4d0 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 21 Jul 2022 09:46:08 -0600
Subject: [PATCH] add read attribute util

---
 .../earthquake/nshmp/netcdf/reader/NetcdfUtils.java | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java
index 186b146..8ccccd7 100644
--- a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java
+++ b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java
@@ -4,6 +4,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 
 import java.io.IOException;
+import java.nio.file.Path;
 import java.util.Arrays;
 
 import com.google.common.math.DoubleMath;
@@ -13,7 +14,10 @@ import gov.usgs.earthquake.nshmp.data.XySequence;
 import gov.usgs.earthquake.nshmp.geo.LocationList;
 
 import ucar.ma2.DataType;
+import ucar.nc2.Attribute;
 import ucar.nc2.Group;
+import ucar.nc2.dataset.NetcdfDataset;
+import ucar.nc2.dataset.NetcdfDatasets;
 
 public class NetcdfUtils {
 
@@ -190,6 +194,15 @@ public class NetcdfUtils {
     return (String[]) get1DArray(group, key, DataType.STRING);
   }
 
+  public static Attribute readAttribute(String attributeKey, Path netcdfPath) {
+    try (NetcdfDataset ncd = NetcdfDatasets.openDataset(netcdfPath.toString())) {
+      Group group = ncd.getRootGroup();
+      return group.attributes().findAttribute(attributeKey);
+    } catch (IOException e) {
+      throw new RuntimeException("Could not read Netcdf file [" + netcdfPath + " ]");
+    }
+  }
+
   public static class Key {
     public static final String DESCRIPTION = "description";
     public static final String GRID_STEP = "gridStep";
-- 
GitLab