private void showValues2D(CoordinateAxis2D axis2D) { Formatter f = new Formatter(); if (axis2D.isInterval()) { ArrayDouble.D2 coords = axis2D.getCoordValuesArray(); ArrayDouble.D3 bounds = axis2D.getCoordBoundsArray(); if (bounds == null) { infoTA.appendLine("No bounds for interval " + axis2D.getFullName()); return; } IndexIterator coordIter = coords.getIndexIterator(); IndexIterator boundsIter = bounds.getIndexIterator(); while (coordIter.hasNext()) { double coordValue = coordIter.getDoubleNext(); if (!boundsIter.hasNext()) break; double bounds1 = boundsIter.getDoubleNext(); if (!boundsIter.hasNext()) break; double bounds2 = boundsIter.getDoubleNext(); f.format("%f (%f,%f) = %f%n", coordValue, bounds1, bounds2, bounds2 - bounds1); } } else { ArrayDouble.D2 coords = axis2D.getCoordValuesArray(); IndexIterator coordIter = coords.getIndexIterator(); while (coordIter.hasNext()) { double coordValue = coordIter.getDoubleNext(); f.format("%f%n", coordValue); } } infoTA.appendLine(f.toString()); }
private void showDeclaration(BeanTableSorted from, boolean isNcml) { Variable v = getCurrentVariable(from); if (v == null) return; infoTA.clear(); if (isNcml) { Formatter out = new Formatter(); try { NCdumpW.writeNcMLVariable(v, out); } catch (IOException e) { e.printStackTrace(); } infoTA.appendLine(out.toString()); } else { infoTA.appendLine(v.toString()); } if (Debug.isSet("Xdeveloper")) { infoTA.appendLine("\n"); infoTA.appendLine("FULL NAME = " + v.getFullName()); infoTA.appendLine("\n"); infoTA.appendLine(v.toStringDebug()); } infoTA.gotoTop(); infoWindow.setTitle("Variable Info"); infoWindow.show(); }
private void showValuesAsDates(CoordinateAxis axis) { String units = axis.getUnitsString(); String cal = getCalendarAttribute(axis); CalendarDateUnit cdu = CalendarDateUnit.of(cal, units); try { infoTA.appendLine(units); infoTA.appendLine(NCdumpW.printVariableData(axis, null)); if (axis.getDataType().isNumeric()) { if (axis instanceof CoordinateAxis2D) { showDates2D((CoordinateAxis2D) axis, cdu); } else if (axis instanceof CoordinateAxis1D) { // 1D showDates1D((CoordinateAxis1D) axis, cdu); } else { // > 2D Array data = axis.read(); IndexIterator ii = data.getIndexIterator(); while (ii.hasNext()) { double val = ii.getDoubleNext(); infoTA.appendLine(makeCalendarDateStringOrMissing(cdu, val)); } } } else { // must be iso dates Array data = axis.read(); Formatter f = new Formatter(); if (data instanceof ArrayChar) { ArrayChar dataS = (ArrayChar) data; ArrayChar.StringIterator iter = dataS.getStringIterator(); while (iter.hasNext()) f.format(" %s%n", iter.next()); infoTA.appendLine(f.toString()); } else if (data instanceof ArrayObject) { IndexIterator iter = data.getIndexIterator(); while (iter.hasNext()) f.format(" %s%n", iter.next()); infoTA.appendLine(f.toString()); } } } catch (Exception ex) { ex.printStackTrace(); infoTA.appendLine(ex.getMessage()); } }
private void printArrays(String title, double vals[], double vals2[]) { Formatter sbuff = new Formatter(); sbuff.format(" %s%n", title); for (int i = 0; i < vals.length; i++) { sbuff.format(" %3d: %10.2f %10.2f%n", i, vals[i], vals2[i]); } sbuff.format("%n"); infoTA.appendLine(sbuff.toString()); }
private void printArray(String title, double vals[]) { Formatter sbuff = new Formatter(); sbuff.format(" %s=", title); for (double val : vals) { sbuff.format(" %f", val); } sbuff.format("%n"); infoTA.appendLine(sbuff.toString()); }
private String showMissing(Variable v) { if (!(v instanceof VariableDS)) return ""; VariableDS ve = (VariableDS) v; Formatter buff = new Formatter(); buff.format("%s:", v.getFullName()); EnumSet<NetcdfDataset.Enhance> enhanceMode = ve.getEnhanceMode(); buff.format("enhanceMode= %s%n", enhanceMode); ve.showScaleMissingProxy(buff); return buff.toString(); }
private String tryGrid(VariableEnhanced v) { Formatter buff = new Formatter(); buff.format("%s:", v.getFullName()); List<CoordinateSystem> csList = v.getCoordinateSystems(); if (csList.size() == 0) buff.format(" No Coord System found"); else { for (CoordinateSystem cs : csList) { buff.format("%s:", cs.getName()); if (GridCoordSys.isGridCoordSys(buff, cs, v)) { buff.format("GRID OK%n"); } else { buff.format(" NOT GRID"); } } } return buff.toString(); }
private void showDates1D(CoordinateAxis1D axis1D, CalendarDateUnit cdu) { if (!axis1D.isInterval()) { for (double val : axis1D.getCoordValues()) { if (Double.isNaN(val)) infoTA.appendLine(" N/A"); else infoTA.appendLine(" " + cdu.makeCalendarDate(val)); } } else { // is interval Formatter f = new Formatter(); double[] b1 = axis1D.getBound1(); double[] b2 = axis1D.getBound2(); for (int i = 0; i < b1.length; i++) f.format( " (%f, %f) == (%s, %s)%n", b1[i], b2[i], cdu.makeCalendarDate((b1[i])), cdu.makeCalendarDate((b2[i]))); infoTA.appendLine(f.toString()); } }
private void showValues(CoordinateAxis axis) { try { if (axis instanceof CoordinateAxis1D && axis.isNumeric()) { CoordinateAxis1D axis1D = (CoordinateAxis1D) axis; printArray("midpoints=", axis1D.getCoordValues()); if (!axis1D.isInterval()) { printArray("edges=", axis1D.getCoordEdges()); } else { printArray("bound1=", axis1D.getBound1()); printArray("bound2=", axis1D.getBound2()); Formatter f = new Formatter(); double[] mid = axis1D.getCoordValues(); double[] b1 = axis1D.getBound1(); double[] b2 = axis1D.getBound2(); for (int i = 0; i < b1.length; i++) { f.format("%f (%f,%f) = %f%n", mid[i], b1[i], b2[i], b2[i] - b1[i]); } infoTA.appendLine(f.toString()); } } else if (axis instanceof CoordinateAxis2D && axis.isNumeric()) { infoTA.appendLine(NCdumpW.printVariableData(axis, null)); showValues2D((CoordinateAxis2D) axis); } else { infoTA.appendLine(NCdumpW.printVariableData(axis, null)); } } catch (IOException e1) { e1.printStackTrace(); infoTA.appendLine(e1.getMessage()); } }
private void compareDataset(CompareDialog.Data data) { if (data.name == null) return; NetcdfFile compareFile = null; try { compareFile = NetcdfDataset.openFile(data.name, null); Formatter f = new Formatter(); CompareNetcdf2 cn = new CompareNetcdf2(f, data.showCompare, data.showDetails, data.readData); if (data.howMuch == CompareDialog.HowMuch.All) cn.compare(ds, compareFile); else { NestedTable nested = nestedTableList.get(0); Variable org = getCurrentVariable(nested.table); if (org == null) return; Variable ov = compareFile.findVariable(org.getFullNameEscaped()); if (ov != null) cn.compareVariable(org, ov); } infoTA.setText(f.toString()); infoTA.gotoTop(); infoWindow.setTitle("Compare"); infoWindow.show(); } catch (Throwable ioe) { ByteArrayOutputStream bos = new ByteArrayOutputStream(10000); ioe.printStackTrace(new PrintStream(bos)); infoTA.setText(bos.toString()); infoTA.gotoTop(); infoWindow.show(); } finally { if (compareFile != null) try { compareFile.close(); } catch (Exception eek) { } } }
private void showDates2D(CoordinateAxis2D axis2D, CalendarDateUnit cdu) { Formatter f = new Formatter(); if (axis2D.isInterval()) { ArrayDouble.D2 coords = axis2D.getCoordValuesArray(); ArrayDouble.D3 bounds = axis2D.getCoordBoundsArray(); if (bounds == null) { infoTA.appendLine("No bounds for interval " + axis2D.getFullName()); return; } IndexIterator coordIter = coords.getIndexIterator(); IndexIterator boundsIter = bounds.getIndexIterator(); while (coordIter.hasNext()) { double coordValue = coordIter.getDoubleNext(); if (!boundsIter.hasNext()) break; double bounds1 = boundsIter.getDoubleNext(); if (!boundsIter.hasNext()) break; double bounds2 = boundsIter.getDoubleNext(); f.format( "%s (%s,%s)%n", makeCalendarDateStringOrMissing(cdu, coordValue), makeCalendarDateStringOrMissing(cdu, bounds1), makeCalendarDateStringOrMissing(cdu, bounds2)); } } else { ArrayDouble.D2 coords = axis2D.getCoordValuesArray(); IndexIterator coordIter = coords.getIndexIterator(); while (coordIter.hasNext()) { double coordValue = coordIter.getDoubleNext(); f.format("%s%n", makeCalendarDateStringOrMissing(cdu, coordValue)); } } infoTA.appendLine(f.toString()); }