public void writeObsData(PointFeature pf) throws IOException { StructureDataScalar coords = new StructureDataScalar("Coords"); if (useAlt) coords.addMember( altitudeCoordinateName, null, null, DataType.DOUBLE, false, pf.getLocation().getAltitude()); StructureDataComposite sdall = new StructureDataComposite(); sdall.add(coords); // coords first so it takes precedence sdall.add(pf.getFeatureData()); obsRecno = super.writeStructureData(obsRecno, record, sdall, dataMap); }
private void writeHeader(ProfileFeature profile, PointFeature obs) throws IOException { Formatter coordNames = new Formatter().format("%s %s %s", profileTimeName, latName, lonName); List<VariableSimpleIF> coords = new ArrayList<>(); if (useAlt) { coords.add( VariableSimpleImpl.makeScalar( altitudeCoordinateName, "obs altitude", altUnits, DataType.DOUBLE) .add(new Attribute(CF.STANDARD_NAME, "altitude")) .add( new Attribute( CF.POSITIVE, CF1Convention.getZisPositive(altitudeCoordinateName, altUnits)))); coordNames.format(" %s", altitudeCoordinateName); } super.writeHeader( coords, profile.getFeatureData(), obs.getFeatureData(), coordNames.toString()); }