diff --git a/plugins-dev/envdisp/pt/lsts/neptus/plugins/envdisp/gui/LayersListPanel.java b/plugins-dev/envdisp/pt/lsts/neptus/plugins/envdisp/gui/LayersListPanel.java index 0129b8ccd0..121ff3e966 100644 --- a/plugins-dev/envdisp/pt/lsts/neptus/plugins/envdisp/gui/LayersListPanel.java +++ b/plugins-dev/envdisp/pt/lsts/neptus/plugins/envdisp/gui/LayersListPanel.java @@ -157,7 +157,7 @@ public LayersListPanel() { public LayersListPanel(W parentWindow) { this.parentWindow = parentWindow; - this.setPreferredSize(new Dimension(600, 400)); + this.setPreferredSize(new Dimension(680, 400)); initializeActions(); initialize(); } diff --git a/plugins-dev/envdisp/pt/lsts/neptus/plugins/envdisp/loader/NetCDFLoader.java b/plugins-dev/envdisp/pt/lsts/neptus/plugins/envdisp/loader/NetCDFLoader.java index 9de1b65fcf..be7a3289d2 100644 --- a/plugins-dev/envdisp/pt/lsts/neptus/plugins/envdisp/loader/NetCDFLoader.java +++ b/plugins-dev/envdisp/pt/lsts/neptus/plugins/envdisp/loader/NetCDFLoader.java @@ -215,10 +215,26 @@ public static final Map processFileForVariable(NetcdfF searchPair = new Pair(varL.getShortName(), varL); } if (searchPair == null) - searchPair = NetCDFUtils.findVariableForStandardNameOrName(dataFile, fileName, true, dimDimStrLst, + searchPair = NetCDFUtils.findVariableForStandardNameOrName(dataFile, fileName, false, dimDimStrLst, "latitude", "lat"); - latName = searchPair.first(); - latVar = searchPair.second(); + + if (searchPair == null) { + // Last try + for (String name : dimVars.keySet()) { + Variable v = dimVars.get(name); + if (v == null) + continue; + String unitsStr = v.getUnitsString(); + if (unitsStr != null && (NetCDFUtils.NETCDF_DEGREES_NORTH.equalsIgnoreCase(unitsStr) + || NetCDFUtils.NETCDF_DEGREE_NORTH.equalsIgnoreCase(unitsStr))) { + searchPair = new Pair(v.getShortName(), v); + break; + } + } + } + + latName = searchPair == null ? null : searchPair.first(); + latVar = searchPair == null ? null : searchPair.second(); } if (lonVar == null) { @@ -232,10 +248,26 @@ public static final Map processFileForVariable(NetcdfF searchPair = new Pair(varL.getShortName(), varL); } if (searchPair == null) - searchPair = NetCDFUtils.findVariableForStandardNameOrName(dataFile, fileName, true, dimDimStrLst, + searchPair = NetCDFUtils.findVariableForStandardNameOrName(dataFile, fileName, false, dimDimStrLst, "longitude", "lon"); - lonName = searchPair.first(); - lonVar = searchPair.second(); + + if (searchPair == null) { + // Last try + for (String name : dimVars.keySet()) { + Variable v = dimVars.get(name); + if (v == null) + continue; + String unitsStr = v.getUnitsString(); + if (unitsStr != null && (NetCDFUtils.NETCDF_DEGREES_EAST.equalsIgnoreCase(unitsStr)) + || NetCDFUtils.NETCDF_DEGREE_EAST.equalsIgnoreCase(unitsStr)) { + searchPair = new Pair(v.getShortName(), v); + break; + } + } + } + + lonName = searchPair == null ? null : searchPair.first(); + lonVar = searchPair == null ? null : searchPair.second(); } if (timeVar == null) { diff --git a/src/pt/lsts/neptus/util/netcdf/NetCDFUtils.java b/src/pt/lsts/neptus/util/netcdf/NetCDFUtils.java index 8725ca3d69..de8ad175e8 100644 --- a/src/pt/lsts/neptus/util/netcdf/NetCDFUtils.java +++ b/src/pt/lsts/neptus/util/netcdf/NetCDFUtils.java @@ -77,6 +77,11 @@ public class NetCDFUtils { public static final String NETCDF_GRP_NAVIGATION_DATA = "navigation_data"; public static final String NETCDF_GRP_GEOPHYSICAL_DATA = "geophysical_data"; + + public static final String NETCDF_DEGREES_NORTH = "degrees_north"; + public static final String NETCDF_DEGREE_NORTH = "degree_north"; + public static final String NETCDF_DEGREES_EAST = "degrees_east"; + public static final String NETCDF_DEGREE_EAST = "degree_east"; /** * Counts the evolution of a multi-for loop variables counters.