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(); } }
sf.format(" altUnit = %s %n", pfc.getAltUnits());
private static int writePointFeatureCollection(FeatureDatasetPoint fdpoint, PointFeatureCollection pfc, String fileOut, CFPointWriterConfig config) throws IOException { try (WriterCFPointCollection pointWriter = new WriterCFPointCollection(fileOut, fdpoint.getGlobalAttributes(), fdpoint.getDataVariables(), pfc.getTimeUnit(), pfc.getAltUnits(), config)) { pointWriter.setExtraVariables( pfc.getExtraVariables()); int count = 0; for (PointFeature pf : pfc) { if (count == 0) pointWriter.writeHeader(pf); pointWriter.writeRecord(pf, pf.getFeatureData()); count++; if (debug && count % 100 == 0) System.out.printf("%d ", count); if (debug && count % 1000 == 0) System.out.printf("%n "); } pointWriter.finish(); return count; } }
case POINT: PointFeatureCollection firstPc = (PointFeatureCollection) first; CompositePointCollection pfc = new CompositePointCollection(dcm.getCollectionName(), firstPc.getTimeUnit(), firstPc.getAltUnits(), collection);
case POINT: PointFeatureCollection firstPc = (PointFeatureCollection) first; CompositePointCollection pfc = new CompositePointCollection(dcm.getCollectionName(), firstPc.getTimeUnit(), firstPc.getAltUnits(), collection);
private static int writePointFeatureCollection(FeatureDatasetPoint fdpoint, PointFeatureCollection pfc, String fileOut, CFPointWriterConfig config) throws IOException { try (WriterCFPointCollection pointWriter = new WriterCFPointCollection(fileOut, fdpoint.getGlobalAttributes(), fdpoint.getDataVariables(), pfc.getExtraVariables(), pfc.getTimeUnit(), pfc.getAltUnits(), config)) { int count = 0; pfc.resetIteration(); while(pfc.hasNext()) { PointFeature pf = pfc.next(); if (count == 0) pointWriter.writeHeader(pf); pointWriter.writeRecord(pf, pf.getFeatureData()); count++; if (debug && count % 100 == 0) System.out.printf("%d ", count); if (debug && count % 1000 == 0) System.out.printf("%n "); } pointWriter.finish(); return count; } }
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; }