From d7608a1fcc3d9c94adcc29969337cb1488724a71 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Wed, 5 Jan 2022 12:48:43 -0700
Subject: [PATCH] update netcdf-java and cdm version, replace deprecated
 methods

---
 gradle.properties                                         | 3 +--
 gradle/dependencies.gradle                                | 2 +-
 .../usgs/earthquake/nshmp/netcdf/NshmNetcdfReader.java    | 4 ++--
 .../nshmp/netcdf/reader/BoundingHazardsReader.java        | 6 +++---
 .../earthquake/nshmp/netcdf/reader/NetcdfCoordinates.java | 8 ++++----
 .../usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java  | 2 +-
 6 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/gradle.properties b/gradle.properties
index 6e69a11..e3bd62b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,10 +1,9 @@
-cdmVersion = 5.1.0
 githooksVersion = 1.2.0
 jacksonVersion = 2.9.0
 junitVersion = 5.8.2
 micronautVersion = 3.2.3
 micronautRxVersion = 2.1.1
-netcdfVersion = 5.1.0
+netcdfVersion = 5.5.1
 nodePluginVersion = 3.0.1
 nodeVersion = 16.3.0
 nshmpLibVersion = 0.8.2
diff --git a/gradle/dependencies.gradle b/gradle/dependencies.gradle
index 5d0bbfc..3a35167 100644
--- a/gradle/dependencies.gradle
+++ b/gradle/dependencies.gradle
@@ -5,7 +5,7 @@ dependencies {
   implementation "ghsc:nshmp-ws-utils:${nshmpWsUtilsVersion}"
 
   // NetCDF
-  implementation "edu.ucar:cdm:${cdmVersion}"
+  implementation "edu.ucar:cdm-core:${netcdfVersion}"
   implementation "edu.ucar:netcdf4:${netcdfVersion}"
   implementation "org.slf4j:slf4j-jdk14:${slfVersion}"
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/NshmNetcdfReader.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/NshmNetcdfReader.java
index 98600bf..3def8b5 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/NshmNetcdfReader.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/NshmNetcdfReader.java
@@ -18,7 +18,7 @@ import gov.usgs.earthquake.nshmp.netcdf.reader.NetcdfCoordinates;
 import gov.usgs.earthquake.nshmp.netcdf.reader.StaticHazard;
 import gov.usgs.earthquake.nshmp.netcdf.reader.StaticHazards;
 
-import ucar.nc2.dataset.NetcdfDataset;
+import ucar.nc2.dataset.NetcdfDatasets;
 
 /**
  *
@@ -60,7 +60,7 @@ public class NshmNetcdfReader {
       throw new IllegalArgumentException("Path to Netcdf file [" + path + "] does not exist");
     }
 
-    try (var ncd = NetcdfDataset.openDataset(path.toString())) {
+    try (var ncd = NetcdfDatasets.openDataset(path.toString())) {
       coords = new NetcdfCoordinates(ncd.getRootGroup());
     } catch (IOException e) {
       throw new RuntimeException("Could not read Netcdf file [" + path + " ]");
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java
index 9208886..7395ffe 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java
@@ -14,7 +14,7 @@ import gov.usgs.earthquake.nshmp.netcdf.reader.NetcdfUtils.Key;
 import ucar.ma2.Array;
 import ucar.ma2.DataType;
 import ucar.ma2.InvalidRangeException;
-import ucar.nc2.dataset.NetcdfDataset;
+import ucar.nc2.dataset.NetcdfDatasets;
 
 /**
  * Container for gridded hazard curves at four closest grid points to target
@@ -122,7 +122,7 @@ public class BoundingHazardsReader {
   private BoundingHazards extractHazardsAt(
       int idxLonLL,
       int idxLatLL) {
-    try (NetcdfDataset ncd = NetcdfDataset.openDataset(netcdf.path().toString())) {
+    try (var ncd = NetcdfDatasets.openDataset(netcdf.path().toString())) {
       var boundingHazardMaps = BoundingHazards.builder();
       var targetGroup = ncd.getRootGroup();
 
@@ -140,7 +140,7 @@ public class BoundingHazardsReader {
        * be [0,0,0,0,0] for LL grid point ...and shape of requested array is
        * [nVs,nImt,1,1,nIml]
        */
-      var aHazards = targetGroup.findVariable(Key.HAZARD).read(targetOrigin, targetShape);
+      var aHazards = targetGroup.findVariableLocal(Key.HAZARD).read(targetOrigin, targetShape);
 
       var shape = targetShape.clone();
       shape[2] = 1;
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfCoordinates.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfCoordinates.java
index 3ca684e..149586a 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfCoordinates.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfCoordinates.java
@@ -44,10 +44,10 @@ public class NetcdfCoordinates {
     // variables and their dimensions should be, this is OK(???)
     // TODO: probably better (proper) to access netCDF dimensions
 
-    var vSiteClass = targetGroup.findVariable(Key.SITE_CLASS);
-    var vImls = targetGroup.findVariable(Key.IMLS);
-    var vImts = targetGroup.findVariable(Key.IMT);
-    var vBounds = targetGroup.findVariable(Key.BOUNDS);
+    var vSiteClass = targetGroup.findVariableLocal(Key.SITE_CLASS);
+    var vImls = targetGroup.findVariableLocal(Key.IMLS);
+    var vImts = targetGroup.findVariableLocal(Key.IMT);
+    var vBounds = targetGroup.findVariableLocal(Key.BOUNDS);
 
     var vs30s = NetcdfUtils.getDoubleArray(targetGroup, Key.VS30);
     var lats = NetcdfUtils.getDoubleArray(targetGroup, Key.LAT);
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java
index f1c2e77..26fd2e4 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java
@@ -93,7 +93,7 @@ public class NetcdfUtils {
    * @throws IOException
    */
   static Object get1DArray(Group group, String key, DataType dataType) throws IOException {
-    var var = group.findVariable(key);
+    var var = group.findVariableLocal(key);
     checkNotNull(
         var,
         String.format("Could not find variable [%s] in group [%s]", key, group.getFullName()));
-- 
GitLab