private PointFeatureIterator getNextIterator() throws IOException { if (!iter.hasNext()) return null; TimedCollection.Dataset td = iter.next(); Formatter errlog = new Formatter(); currentDataset = (FeatureDatasetPoint) FeatureDatasetFactoryManager.open(FeatureType.POINT, td.getLocation(), null, errlog); if (CompositeDatasetFactory.debug) System.out.printf("CompositePointFeatureIterator open dataset %s%n", td.getLocation()); List<FeatureCollection> fcList = currentDataset.getPointFeatureCollectionList(); PointFeatureCollection pc = (PointFeatureCollection) fcList.get(0); return pc.getPointFeatureIterator(bufferSize); }
private PointFeatureIterator getNextIterator() throws IOException { if (!iter.hasNext()) return null; TimedCollection.Dataset td = iter.next(); Formatter errlog = new Formatter(); currentDataset = (FeatureDatasetPoint) FeatureDatasetFactoryManager.open(FeatureType.POINT, td.getLocation(), null, errlog); if (CompositeDatasetFactory.debug) System.out.printf("CompositePointFeatureIterator open dataset %s%n", td.getLocation()); List<FeatureCollection> fcList = currentDataset.getPointFeatureCollectionList(); PointFeatureCollection pc = (PointFeatureCollection) fcList.get(0); return pc.getPointFeatureIterator(bufferSize); }
private PointFeatureIterator getNextIterator() throws IOException { if (!iter.hasNext()) return null; TimedCollection.Dataset td = iter.next(); Formatter errlog = new Formatter(); currentDataset = (FeatureDatasetPoint) FeatureDatasetFactoryManager.open(FeatureType.POINT, td.getLocation(), null, errlog); if (CompositeDatasetFactory.debug) System.out.printf("CompositePointFeatureIterator open dataset %s%n", td.getLocation()); List<FeatureCollection> fcList = currentDataset.getPointFeatureCollectionList(); PointFeatureCollection pc = (PointFeatureCollection) fcList.get(0); return pc.getPointFeatureIterator(bufferSize); }
private PointFeatureIterator getNextIterator() throws IOException { if (!iter.hasNext()) return null; TimedCollection.Dataset td = iter.next(); Formatter errlog = new Formatter(); currentDataset = (FeatureDatasetPoint) FeatureDatasetFactoryManager.open(FeatureType.POINT, td.getLocation(), null, errlog); if (CompositeDatasetFactory.debug) System.out.printf("CompositePointFeatureIterator open dataset %s%n", td.getLocation()); List<FeatureCollection> fcList = currentDataset.getPointFeatureCollectionList(); PointFeatureCollection pc = (PointFeatureCollection) fcList.get(0); return pc.getPointFeatureIterator(bufferSize); }
private PointFeatureIterator getNextIterator() throws IOException { if (!iter.hasNext()) return null; TimedCollection.Dataset td = iter.next(); Formatter errlog = new Formatter(); currentDataset = (FeatureDatasetPoint) FeatureDatasetFactoryManager.open(FeatureType.POINT, td.getLocation(), null, errlog); if (currentDataset == null) throw new IllegalStateException("Cant open FeatureDatasetPoint " + td.getLocation()); if (CompositeDatasetFactory.debug) System.out.printf("CompositePointFeatureIterator open dataset %s%n", td.getLocation()); List<DsgFeatureCollection> fcList = currentDataset.getPointFeatureCollectionList(); PointFeatureCollection pc = (PointFeatureCollection) fcList.get(0); return pc.getPointFeatureIterator(); }
public static int write(PointFeatureCollection pointFeatCol, File outFile) throws IOException { String name = outFile.getCanonicalPath(); String timeUnitString = pointFeatCol.getTimeUnit().getUdUnit(); String altUnits = pointFeatCol.getAltUnits(); PointFeatureIterator pointFeatIter = pointFeatCol.getPointFeatureIterator(); try (BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFile))) { return write(out, pointFeatIter, name, timeUnitString, altUnits); } finally { pointFeatIter.close(); } }
pfIter = ((PointFeatureCollection) dsgFeatCol).getPointFeatureIterator(); } else if (dsgFeatCol instanceof PointFeatureCC) { pfcIter = ((PointFeatureCC) dsgFeatCol).getCollectionIterator();
@Override public boolean hasNext() { try { pointFeature = nextFilteredDataPoint(); if (pointFeature != null) return true; PointFeatureCollection feature = nextCollection(); if (feature == null) { close(); return false; } currCollection = feature; pfiter = feature.getPointFeatureIterator(); return hasNext(); } catch (IOException ioe) { throw new RuntimeException(ioe); } }
private PointFeatureIterator getNextIterator() throws IOException { if (!iter.hasNext()) return null; TimedCollection.Dataset td = iter.next(); Formatter errlog = new Formatter(); // open the next dataset currentDataset = (FeatureDatasetPoint) FeatureDatasetFactoryManager.open(FeatureType.STATION, td.getLocation(), null, errlog); if (currentDataset == null) { logger.error("FeatureDatasetFactoryManager failed to open: " + td.getLocation() + " \nerrlog = " + errlog); return getNextIterator(); } if (CompositeDatasetFactory.debug) System.out.printf("CompositeStationCollectionFlattened.Iterator open new dataset: %s%n", td.getLocation()); // it will have a StationTimeSeriesFeatureCollection List<FeatureCollection> fcList = currentDataset.getPointFeatureCollectionList(); StationTimeSeriesFeatureCollection stnCollection = (StationTimeSeriesFeatureCollection) fcList.get(0); PointFeatureCollection pc = null; if (wantStationsubset) pc = stnCollection.flatten(stationsSubset, dateRange, varList); else pc = stnCollection.flatten(bbSubset, dateRange); return pc.getPointFeatureIterator(bufferSize); }
public boolean hasNext() throws IOException { pointFeature = nextFilteredDataPoint(); if (pointFeature != null) return true; PointFeatureCollection feature = nextCollection(); if (feature == null) { finish(); return false; } pfiter = feature.getPointFeatureIterator(-1); return hasNext(); }
public boolean hasNext() throws IOException { pointFeature = nextFilteredDataPoint(); if (pointFeature != null) return true; PointFeatureCollection feature = nextCollection(); if (feature == null) { finish(); return false; } pfiter = feature.getPointFeatureIterator(-1); return hasNext(); }
private PointFeatureIterator getNextIterator() throws IOException { if (!iter.hasNext()) return null; TimedCollection.Dataset td = iter.next(); Formatter errlog = new Formatter(); // open the next dataset currentDataset = (FeatureDatasetPoint) FeatureDatasetFactoryManager.open(FeatureType.STATION, td.getLocation(), null, errlog); if (currentDataset == null) { logger.error("FeatureDatasetFactoryManager failed to open: " + td.getLocation() + " \nerrlog = " + errlog); return getNextIterator(); } if (CompositeDatasetFactory.debug) System.out.printf("CompositeStationCollectionFlattened.Iterator open new dataset: %s%n", td.getLocation()); // it will have a StationTimeSeriesFeatureCollection List<FeatureCollection> fcList = currentDataset.getPointFeatureCollectionList(); StationTimeSeriesFeatureCollection stnCollection = (StationTimeSeriesFeatureCollection) fcList.get(0); PointFeatureCollection pc = null; if (wantStationsubset) pc = stnCollection.flatten(stationsSubset, dateRange, varList); else pc = stnCollection.flatten(bbSubset, dateRange); PointFeatureIterator result = pc.getPointFeatureIterator(bufferSize); if (calcBounds) result.setCalculateBounds(pc); // LOOK barf return result; }
private PointFeatureIterator getNextIterator() throws IOException { if (!iter.hasNext()) return null; TimedCollection.Dataset td = iter.next(); Formatter errlog = new Formatter(); // open the next dataset currentDataset = (FeatureDatasetPoint) FeatureDatasetFactoryManager.open(FeatureType.STATION, td.getLocation(), null, errlog); if (currentDataset == null) { logger.error("FeatureDatasetFactoryManager failed to open: " + td.getLocation() + " \nerrlog = " + errlog); return getNextIterator(); } if (CompositeDatasetFactory.debug) System.out.printf("CompositeStationCollectionFlattened.Iterator open new dataset: %s%n", td.getLocation()); // it will have a StationTimeSeriesFeatureCollection List<DsgFeatureCollection> fcList = currentDataset.getPointFeatureCollectionList(); StationTimeSeriesFeatureCollection stnCollection = (StationTimeSeriesFeatureCollection) fcList.get(0); PointFeatureCollection pc; if (wantStationsubset) { pc = stnCollection.flatten(stationsSubset, dateRange, varList); } else if (bbSubset == null) { pc = stnCollection.flatten(null, dateRange, null); } else { List<StationFeature> stations = stnCollection.getStationFeatures(bbSubset); List<String> names = new ArrayList<>(); for (StationFeature s : stations) names.add(s.getName()); pc = stnCollection.flatten(names, dateRange, null); } return pc.getPointFeatureIterator(); }
/** * Attempts to find a PointFeatureIterator in the currently-loaded DsgFeatureCollection that has another * available element (i.e. {@code hasNext() == true}). Such an iterator may already be loaded into * {@code pfIter}. If not, we'll have to look through {@code pfcIter} and/or {@code pfccIter} to find one. * <p> * That iterator, if it's found, will be assigned to {@code pfIter} and this method will return {@code true}. * Otherwise, it'll return {@code false}, meaning that there are no more unread PointFeatures available in the * currently-loaded DsgFeatureCollection. * * @return {@code true} if {@code pfIter.hasNext()} will now return {@code true}. * @throws IOException if an I/O error occurs. */ private boolean pfIterHasNext() throws IOException { if (pfIter != null) { if (pfIter.hasNext()) { return true; } else { // We'll need to load a new PointFeatureIterator below. But first, close the old one. pfIter.close(); } } while (pfcIterHasNext()) { this.pfIter = pfcIter.next().getPointFeatureIterator(); if (pfIter.hasNext()) { return true; } // else: Iterator could be empty, in which case we proceed to the next loop iteration. } return false; }
public static void writeFeatureCollection(PointFeatureCollection pointFeatColl) throws IOException { PointFeatureIterator iter = pointFeatColl.getPointFeatureIterator(); while (iter.hasNext()) { PointFeature pointFeat = iter.next(); StructureData data = pointFeat.getFeatureData(); for (StructureMembers.Member member : data.getStructureMembers().getMembers()) { System.out.println(member.getName() + "\t\t" + data.getArray(member)); } System.out.println(); } }
public static boolean equals(PointFeatureCollection featCol1, PointFeatureCollection featCol2) throws IOException { if (featCol1 == featCol2) { return true; } else if (featCol1 == null || featCol2 == null) { return false; } // We must do this comparison first because some PointFeatureCollection implementations, e.g. // PointCollectionStreamAbstract, won't have final values for getTimeUnit() and getAltUnits() until // getPointFeatureIterator() is called. if (!equals(featCol1.getPointFeatureIterator(), featCol2.getPointFeatureIterator())) { return false; } if (!Objects.deepEquals(featCol1.getCollectionFeatureType(), featCol2.getCollectionFeatureType())) { return false; } else if (!Objects.deepEquals(featCol1.getTimeUnit().getUdUnit(), featCol2.getTimeUnit().getUdUnit())) { return false; } else if (!Objects.deepEquals(featCol1.getAltUnits(), featCol2.getAltUnits())) { return false; } // We don't care about FeatureCollection.getName(); it's an implementation detail. // We're also not going to worry about getExtraVariables(), since that method will likely be moved to // FeatureDatasetPoint in NetCDF-Java 5.0. return true; }
PointFeatureIterator iter2 = pfc.getPointFeatureIterator(); while (iter2.hasNext()) { PointFeature pf = iter2.next();