Skip to content

Commit

Permalink
plugins/envdisp/loader/NetCDFLoader: Some tweaks for alternative way …
Browse files Browse the repository at this point in the history
…to find lat/lon variables.
  • Loading branch information
paulosousadias committed Nov 13, 2019
1 parent 6433a67 commit c28f7bc
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ public LayersListPanel() {

public <W extends Window> LayersListPanel(W parentWindow) {
this.parentWindow = parentWindow;
this.setPreferredSize(new Dimension(600, 400));
this.setPreferredSize(new Dimension(680, 400));
initializeActions();
initialize();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,10 +215,26 @@ public static final Map<String, GenericDataPoint> processFileForVariable(NetcdfF
searchPair = new Pair<String, Variable>(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<String, Variable>(v.getShortName(), v);
break;
}
}
}

latName = searchPair == null ? null : searchPair.first();
latVar = searchPair == null ? null : searchPair.second();
}

if (lonVar == null) {
Expand All @@ -232,10 +248,26 @@ public static final Map<String, GenericDataPoint> processFileForVariable(NetcdfF
searchPair = new Pair<String, Variable>(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<String, Variable>(v.getShortName(), v);
break;
}
}
}

lonName = searchPair == null ? null : searchPair.first();
lonVar = searchPair == null ? null : searchPair.second();
}

if (timeVar == null) {
Expand Down
5 changes: 5 additions & 0 deletions src/pt/lsts/neptus/util/netcdf/NetCDFUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down

0 comments on commit c28f7bc

Please sign in to comment.