/** * Get the index of a GridRecord * * @param ggr the grib record * @return the index or -1 if not found */ int getIndex(GribGridRecord ggr) { int ensNumber = ggr.getPds().getPerturbationNumber(); int ensType = ggr.getPds().getPerturbationType(); int count = 0; for (EnsCoord coord : ensCoords) { if ((coord.number == ensNumber) && (coord.type == ensType)) return count; count++; } return -1; }
/** * Create a new GridEnsembleCoord with the list of records * * @param records records to use */ GridEnsembleCoord(List<GridRecord> records) { Map<Integer, EnsCoord> map = new HashMap<Integer, EnsCoord>(); for (GridRecord record : records) { GribGridRecord ggr = (GribGridRecord) record; int ensNumber = ggr.getPds().getPerturbationNumber(); int ensType = ggr.getPds().getPerturbationType(); int h = 1000 * ensNumber + ensType; // unique perturbation number and type map.put(h, new EnsCoord(ensNumber, ensType)); } ensCoords = new ArrayList<EnsCoord>(map.values()); Collections.sort(ensCoords); }