public List getStationObs(List<ucar.unidata.geoloc.Station> stations, CancelTask cancel) throws IOException { ArrayList result = new ArrayList(); for (int i = 0; i < stations.size(); i++) { ucar.unidata.geoloc.Station s = stations.get(i); result.addAll( obsDataset.getData( s, cancel)); if ((cancel != null) && cancel.isCancel()) return null; } return result; }
protected DataIterator makeDataIterator(StationObsDataset sobs) { Date start = sobs.getStartDate(); if (start.after(want_end)) return null; Date end = sobs.getEndDate(); if (end.before(want_start)) return null; ucar.unidata.geoloc.Station s = sobs.getStation(stationName); if (s == null) return null; return sobs.getDataIterator(s, start, end); } }
protected DataIterator makeDataIterator(StationObsDataset sobs) { ucar.unidata.geoloc.Station s = sobs.getStation(stationName); if (s == null) return null; return sobs.getDataIterator(s); } }
private void write(StationObsDataset sobsDataset) throws IOException { createGlobalAttributes(); createStations(sobsDataset.getStations()); ncfile.addGlobalAttribute("time_coverage_start", dateFormatter.toDateTimeStringISO(sobsDataset.getStartDate())); ncfile.addGlobalAttribute("time_coverage_end", dateFormatter.toDateTimeStringISO(sobsDataset.getEndDate())); createDataVariables(sobsDataset.getDataVariables()); List gatts = sobsDataset.getGlobalAttributes(); for (int i = 0; i < gatts.size(); i++) { Attribute att = (Attribute) gatts.get(i); writeStationData(sobsDataset.getStations()); ArrayObject.D1 timeArray = new ArrayObject.D1(DataType.STRING, String.class, false, 1); DataIterator diter = sobsDataset.getDataIterator(1000 * 1000); while (diter.hasNext()) { StationObsDatatype sobs = (StationObsDatatype) diter.nextData();
Element rootElem = new Element("stationObsDataset"); Document doc = new Document(rootElem); rootElem.setAttribute("location", sobs.getLocationURI()); if (null != path) rootElem.setAttribute("path", path); List vars = sobs.getDataVariables(); Collections.sort(vars); for (int i = 0; i < vars.size(); i++) { LatLonRect bb = sobs.getBoundingBox(); if (bb != null) rootElem.addContent( writeBoundingBox( bb)); Date start = sobs.getStartDate(); Date end = sobs.getEndDate(); if ((start != null) && (end != null)) { DateFormatter format = new DateFormatter();
public static void main3(String args[]) throws IOException { long start = System.currentTimeMillis(); String location = "C:/data/metars/Surface_METAR_20070329_0000.nc"; StringBuilder errlog = new StringBuilder(); StationObsDataset sobs = (StationObsDataset) TypedDatasetFactory.open(FeatureType.STATION, location, null, errlog); String fileOut = "C:/temp/Surface_METAR_20070329_0000.stream.nc"; FileOutputStream fos = new FileOutputStream(fileOut); DataOutputStream out = new DataOutputStream(fos); System.out.println("Read " + location + " write to " + fileOut); WriterCFStationObsDataset writer = new WriterCFStationObsDataset(out, "test"); List stns = sobs.getStations(); List<ucar.unidata.geoloc.Station> stnList = new ArrayList<ucar.unidata.geoloc.Station>(); ucar.unidata.geoloc.Station s = (ucar.unidata.geoloc.Station) stns.get(0); stnList.add(s); List<VariableSimpleIF> varList = new ArrayList<VariableSimpleIF>(); varList.add(sobs.getDataVariable("wind_speed")); writer.writeHeader(stnList, varList, -1); DataIterator iter = sobs.getDataIterator(s); while (iter.hasNext()) { StationObsDatatype sobsData = (StationObsDatatype) iter.nextData(); StructureData data = sobsData.getData(); writer.writeRecord(sobsData, data); } writer.finish(); long took = System.currentTimeMillis() - start; System.out.println("That took = " + took + " msecs"); }
StationObsDataset sobs = (StationObsDataset) TypedDatasetFactory.open(FeatureType.STATION, ncd, null, errlog); List<ucar.unidata.geoloc.Station> stns = sobs.getStations(); List<VariableSimpleIF> vars = sobs.getDataVariables(); DataIterator iter = sobs.getDataIterator(s); while (iter.hasNext()) { StationObsDatatype sobsData = (StationObsDatatype) iter.nextData(); DataIterator iter = sobs.getDataIterator(1000 * 1000); while (iter.hasNext()) { StationObsDatatype sobsData = (StationObsDatatype) iter.nextData();
/** * Find a Station by name * * @param name name of the Station * @return Station with that name, or null if not found */ public ucar.unidata.geoloc.Station getStation(String name) { return typical.getStation(name); }
private DataIterator getNextDataIterator() { if (!iterSobs.hasNext()) return null; StationObsDataset sobs = (StationObsDataset) iterSobs.next(); DataIterator dataIter = makeDataIterator(sobs); if (debug && dataIter != null) System.out.println("next sobs =" + sobs.getLocationURI()); return dataIter == null ? getNextDataIterator() : dataIter; }
LatLonRect llbb = sobsDataset.getBoundingBox(); if (null != llbb) { ThreddsMetadata.GeospatialCoverage gc = new ThreddsMetadata.GeospatialCoverage();
private void write(StationObsDataset sobsDataset) throws IOException { createGlobalAttributes(); createStations(sobsDataset.getStations()); ncfile.addGlobalAttribute("time_coverage_start", dateFormatter.toDateTimeStringISO(sobsDataset.getStartDate())); ncfile.addGlobalAttribute("time_coverage_end", dateFormatter.toDateTimeStringISO(sobsDataset.getEndDate())); createDataVariables(sobsDataset.getDataVariables()); List gatts = sobsDataset.getGlobalAttributes(); for (int i = 0; i < gatts.size(); i++) { Attribute att = (Attribute) gatts.get(i); writeStationData(sobsDataset.getStations()); ArrayObject.D1 timeArray = new ArrayObject.D1(String.class, 1); DataIterator diter = sobsDataset.getDataIterator(1000 * 1000); while (diter.hasNext()) { StationObsDatatype sobs = (StationObsDatatype) diter.nextData();
Element rootElem = new Element("stationObsDataset"); Document doc = new Document(rootElem); rootElem.setAttribute("location", sobs.getLocationURI()); if (null != path) rootElem.setAttribute("path", path); List vars = sobs.getDataVariables(); Collections.sort(vars); for (int i = 0; i < vars.size(); i++) { LatLonRect bb = sobs.getBoundingBox(); if (bb != null) rootElem.addContent( writeBoundingBox( bb)); Date start = sobs.getStartDate(); Date end = sobs.getEndDate(); if ((start != null) && (end != null)) { DateFormatter format = new DateFormatter();
public static void main(String args[]) throws IOException { long start = System.currentTimeMillis(); String location = "C:/data/metars/Surface_METAR_20070513_0000.nc"; StringBuilder errlog = new StringBuilder(); StationObsDataset sobs = (StationObsDataset) TypedDatasetFactory.open(FeatureType.STATION, location, null, errlog); String fileOut = "C:/temp/Surface_METAR_20070513_0000.rewrite.nc"; WriterStationObsDataset writer = new WriterStationObsDataset(fileOut, "test"); List stns = sobs.getStations(); List<ucar.unidata.geoloc.Station> stnList = new ArrayList<ucar.unidata.geoloc.Station>(); ucar.unidata.geoloc.Station s = (ucar.unidata.geoloc.Station) stns.get(0); stnList.add(s); List<VariableSimpleIF> varList = new ArrayList<VariableSimpleIF>(); varList.add(sobs.getDataVariable("wind_speed")); writer.writeHeader(stnList, varList); DataIterator iter = sobs.getDataIterator(s); while (iter.hasNext()) { StationObsDatatype sobsData = (StationObsDatatype) iter.nextData(); StructureData data = sobsData.getData(); writer.writeRecord(sobsData, data); } writer.finish(); long took = System.currentTimeMillis() - start; System.out.println("That took = " + took); }
StationObsDataset sobs = (StationObsDataset) TypedDatasetFactory.open(FeatureType.STATION, ncd, null, errlog); List<ucar.unidata.geoloc.Station> stns = sobs.getStations(); List<VariableSimpleIF> vars = sobs.getDataVariables(); DataIterator iter = sobs.getDataIterator(s); while (iter.hasNext()) { StationObsDatatype sobsData = (StationObsDatatype) iter.nextData(); DataIterator iter = sobs.getDataIterator(1000 * 1000); while (iter.hasNext()) { StationObsDatatype sobsData = (StationObsDatatype) iter.nextData();
protected DataIterator makeDataIterator(StationObsDataset sobs) { ucar.unidata.geoloc.Station s = sobs.getStation(stationName); if (s == null) return null; return sobs.getDataIterator(s); } }
/** * Find a Station by name * * @param name name of the Station * @return Station with that name, or null if not found */ public ucar.unidata.geoloc.Station getStation(String name) { return typical.getStation(name); }
private DataIterator getNextDataIterator() { if (!iterSobs.hasNext()) return null; StationObsDataset sobs = (StationObsDataset) iterSobs.next(); DataIterator dataIter = makeDataIterator(sobs); if (debug && dataIter != null) System.out.println("next sobs =" + sobs.getLocationURI()); return dataIter == null ? getNextDataIterator() : dataIter; }
LatLonRect llbb = sobsDataset.getBoundingBox(); if (null != llbb) { ThreddsMetadata.GeospatialCoverage gc = new ThreddsMetadata.GeospatialCoverage();
private void write(StationObsDataset sobsDataset) throws IOException { createGlobalAttributes(); createStations(sobsDataset.getStations()); ncfile.addGlobalAttribute("time_coverage_start", dateFormatter.toDateTimeStringISO(sobsDataset.getStartDate())); ncfile.addGlobalAttribute("time_coverage_end", dateFormatter.toDateTimeStringISO(sobsDataset.getEndDate())); createDataVariables(sobsDataset.getDataVariables()); List gatts = sobsDataset.getGlobalAttributes(); for (int i = 0; i < gatts.size(); i++) { Attribute att = (Attribute) gatts.get(i); writeStationData(sobsDataset.getStations()); ArrayObject.D1 timeArray = new ArrayObject.D1(String.class, 1); DataIterator diter = sobsDataset.getDataIterator(1000 * 1000); while (diter.hasNext()) { StationObsDatatype sobs = (StationObsDatatype) diter.nextData();
Element rootElem = new Element("stationObsDataset"); Document doc = new Document(rootElem); rootElem.setAttribute("location", sobs.getLocationURI()); if (null != path) rootElem.setAttribute("path", path); List vars = sobs.getDataVariables(); Collections.sort(vars); for (int i = 0; i < vars.size(); i++) { LatLonRect bb = sobs.getBoundingBox(); if (bb != null) rootElem.addContent( writeBoundingBox( bb)); Date start = sobs.getStartDate(); Date end = sobs.getEndDate(); if ((start != null) && (end != null)) { DateFormatter format = new DateFormatter();