public CalendarDate makeDate(double value) { return timeHelper.makeDate(value); }
public CalendarDate makeDate(CalendarDate runDate, double val) { double offset = timeHelper.getOffsetInTimeUnits(timeHelper.getRefDate(), runDate); return timeHelper.makeDate(offset + val); }
public List<NamedObject> getCoordValueNames(CoverageCoordAxis1D axis) { axis.loadValuesIfNeeded(); List<NamedObject> result = new ArrayList<>(); for (int i = 0; i < axis.getNcoords(); i++) { double value; switch (axis.getSpacing()) { case regularPoint: case irregularPoint: value = axis.getCoordMidpoint(i); result.add(new NamedAnything(makeDate(value), axis.getAxisType().toString())); break; case regularInterval: case contiguousInterval: case discontiguousInterval: CoordInterval coord = new CoordInterval(axis.getCoordEdge1(i), axis.getCoordEdge2(i), 3); result.add(new NamedAnything(coord, coord + " " + axis.getUnits())); break; } } return result; }
static void readAllTimes2D(Coverage cover, GridDatatype dt, CalendarDate rt_val, int rt_idx, TimeHelper helper, Array timeVals, CoordinateAxis1D ensAxis, CoordinateAxis1D vertAxis) { int[] shape = timeVals.getShape(); if (timeVals.getRank() == 1) { timeVals.resetLocalIterator(); int time_idx = 0; while (timeVals.hasNext()) { double timeVal = timeVals.nextDouble(); readAllEnsembles(cover, dt, rt_val, rt_idx, helper.makeDate(timeVal), time_idx++, ensAxis, vertAxis); } } else { Index index = timeVals.getIndex(); for (int i=0; i<shape[0]; i++) { double timeVal = (timeVals.getDouble(index.set(i,0)) + timeVals.getDouble(index.set(i,1))) / 2; readAllEnsembles(cover, dt, rt_val, rt_idx, helper.makeDate(timeVal), i, ensAxis, vertAxis); } } }