private DataDiscretizer parseLog(String entity) { DataDiscretizer dd = new DataDiscretizer(10); IMraLog parser = logSource.getLog(messageName); IMraLog stateParser = logSource.getLog("EstimatedState"); if (parser == null || stateParser == null) { return dd; } IMCMessage entry = parser.nextLogEntry(); IMCMessage stateEntry = stateParser.nextLogEntry(); LocationType ref = IMCUtils.getLocation(stateEntry).convertToAbsoluteLatLonDepth(); entityList.clear(); entityList.add("ALL"); while (entry != null) { parser.advance(1); entry = parser.getCurrentEntry(); if (entry != null) { String entName = logSource.getEntityName(entry.getSrc(), entry.getSrcEnt()); if (!entityList.contains(entName)) entityList.add(entName); if (!entity.equalsIgnoreCase("ALL") && !entName.equalsIgnoreCase(entity)) continue; stateEntry = stateParser.getEntryAtOrAfter(parser.currentTimeMillis()); LocationType loc = new LocationType(); loc.setLatitudeRads(stateEntry.getDouble("lat")); loc.setLongitudeRads(stateEntry.getDouble("lon")); loc.translatePosition( stateEntry.getDouble("x"), stateEntry.getDouble("y"), stateEntry.getDouble("z")); double[] offsets = loc.getOffsetFrom(ref); double[] vals = new double[4]; vals[0] = Double.NaN; if (stateEntry != null) { vals[0] = entry.getDouble(varName); dd.addPoint(offsets[1], -offsets[0], vals); } } } entCombo.setModel(new DefaultComboBoxModel<>(entityList)); return dd; }