/** * Open a ucar.nc2.ft.PointFeatureCollection, write out in CF point format. * * @param fileIn open through TypedDatasetFactory.open(FeatureType.POINT, ..) * @param fileOut write to this netcdf-3 file * @param inMemory if true, read file into memory for efficiency * @return true on success * @throws IOException on read/write error */ public static boolean rewritePointFeatureDataset(String fileIn, String fileOut, boolean inMemory) throws IOException { System.out.println( "Rewrite2 .nc files from " + fileIn + " to " + fileOut + " inMemory= " + inMemory); long start = System.currentTimeMillis(); // do it in memory for speed NetcdfFile ncfile = inMemory ? NetcdfFile.openInMemory(fileIn) : NetcdfFile.open(fileIn); NetcdfDataset ncd = new NetcdfDataset(ncfile); Formatter errlog = new Formatter(); FeatureDataset fd = FeatureDatasetFactoryManager.wrap(FeatureType.ANY_POINT, ncd, null, errlog); if (fd == null) return false; if (fd instanceof FeatureDatasetPoint) { writePointFeatureCollection((FeatureDatasetPoint) fd, fileOut); fd.close(); long took = System.currentTimeMillis() - start; System.out.println(" that took " + (took - start) + " msecs"); return true; } return false; }
public static void add(Object tag, Geometry geom, String msg) { if (!Debug.isDebugging()) return; FeatureDataset fd = getDebugFeatureDataset(tag); Feature feature = new BasicFeature(fd.getFeatureSchema()); feature.setGeometry(geom); feature.setAttribute(MESG_ATTR_NAME, msg); fd.add(feature); }
public static void addLineSegment(Object tag, Coordinate p0, Coordinate p1, String msg) { if (!Debug.isDebugging()) return; FeatureDataset fd = getDebugFeatureDataset(tag); fd.add(createLineSegmentFeature(fd.getFeatureSchema(), p0, p1, msg)); }