From 7d099c8da2716dafbdd99e29a46f6009984e75f7 Mon Sep 17 00:00:00 2001 From: Tom Brauer Date: Thu, 5 Feb 2026 09:56:18 -0800 Subject: [PATCH] Allow non-VariableDS variables with lat/lon dimensions Variables with latitude and longitude dimensions are now selectable regardless of type. Previously required VariableDS. Consolidated lat/lon check into isSelectableVariable. --- .../army/usace/hec/vortex/io/NetcdfDataReader.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/vortex-api/src/main/java/mil/army/usace/hec/vortex/io/NetcdfDataReader.java b/vortex-api/src/main/java/mil/army/usace/hec/vortex/io/NetcdfDataReader.java index 638b06bd..b8705816 100644 --- a/vortex-api/src/main/java/mil/army/usace/hec/vortex/io/NetcdfDataReader.java +++ b/vortex-api/src/main/java/mil/army/usace/hec/vortex/io/NetcdfDataReader.java @@ -72,11 +72,7 @@ public static Set getVariables(String path) { if (isSelectableVariable(variable)) { VariableDS variableDS = (VariableDS) variable; List coordinateSystems = variableDS.getCoordinateSystems(); - - boolean isLatLon = ncd.findCoordinateAxis(AxisType.Lon) != null - && ncd.findCoordinateAxis(AxisType.Lat) != null; - - if (!coordinateSystems.isEmpty() || isLatLon) { + if (!coordinateSystems.isEmpty()) { variableNames.add(variable.getFullName()); } } @@ -126,8 +122,10 @@ private static boolean isLatLon(NetcdfDataset ncd) { private static boolean isSelectableVariable(Variable variable) { boolean isVariableDS = variable instanceof VariableDS; - boolean isNotAxis = !(variable instanceof CoordinateAxis); - return isVariableDS && isNotAxis; + boolean isLatLon = variable.findDimensionIndex("latitude") >= 0 + && variable.findDimensionIndex("longitude") >= 0; + + return isVariableDS || isLatLon; } static Grid scaleGrid(Grid grid, Unit cellUnits, Unit csUnits) {