cdm/src/main/java/ucar/nc2/dataset/NetcdfDatasetInfo.java
public Document makeDocument() {
    Element rootElem = new Element("netcdfDatasetInfo");
    Document doc = new Document(rootElem);
    rootElem.setAttribute("location", ds.getLocation());
    rootElem.addContent( new Element("convention").setAttribute("name", getConventionUsed()));

    int nDataVariables = 0;
    int nOtherVariables = 0;

    List<CoordinateAxis> axes = ds.getCoordinateAxes();
    int nCoordAxes = axes.size();
    for (CoordinateAxis axis : axes) {
      Element axisElem = new Element("axis");
      rootElem.addContent(axisElem);

      axisElem.setAttribute("name", axis.getFullName());
      axisElem.setAttribute("decl", getDecl(axis));
      if (axis.getAxisType() != null)
        axisElem.setAttribute("type", axis.getAxisType().toString());
      if (axis.getUnitsString() != null) {
        axisElem.setAttribute(CDM.UNITS, axis.getUnitsString());
        axisElem.setAttribute("udunits", isUdunits(axis.getUnitsString()));
      }
      if (axis instanceof CoordinateAxis1D) {
        CoordinateAxis1D axis1D = (CoordinateAxis1D) axis;
        if (axis1D.isRegular())
          axisElem.setAttribute("regular", ucar.unidata.util.Format.d(axis1D.getIncrement(), 5));
      }
    }

    List<CoordinateSystem> csList = ds.getCoordinateSystems();
    for (CoordinateSystem cs : csList) {
      Element csElem;
      if (GridCoordSys.isGridCoordSys(null, cs, null)) {
        GridCoordSys gcs = new GridCoordSys(cs, null);
        csElem = new Element("gridCoordSystem");
        csElem.setAttribute("name", cs.getName());
        csElem.setAttribute("horizX", gcs.getXHorizAxis().getFullName());
        csElem.setAttribute("horizY", gcs.getYHorizAxis().getFullName());
        if (gcs.hasVerticalAxis())
          csElem.setAttribute("vertical", gcs.getVerticalAxis().getFullName());
        if (gcs.hasTimeAxis())
          csElem.setAttribute("time", cs.getTaxis().getFullName());
      } else {
        csElem = new Element("coordSystem");
        csElem.setAttribute("name", cs.getName());
      }

      List<CoordinateTransform> coordTransforms = cs.getCoordinateTransforms();
      for (CoordinateTransform ct : coordTransforms) {
        Element ctElem = new Element("coordTransform");
        csElem.addContent(ctElem);
        ctElem.setAttribute("name", ct.getName());
        ctElem.setAttribute("type", ct.getTransformType().toString());
      }

      rootElem.addContent(csElem);
    }

    List<CoordinateTransform> coordTransforms = ds.getCoordinateTransforms();
    for (CoordinateTransform ct : coordTransforms) {
      Element ctElem = new Element("coordTransform");
      rootElem.addContent(ctElem);

      ctElem.setAttribute("name", ct.getName());
      ctElem.setAttribute("type", ct.getTransformType().toString());
      List<Parameter> params = ct.getParameters();
      for (Parameter pp : params) {
        Element ppElem = new Element("param");
        ctElem.addContent(ppElem);
        ppElem.setAttribute("name", pp.getName());
        ppElem.setAttribute("value", pp.getStringValue());
      }
    }

    for (Variable var : ds.getVariables()) {
      VariableEnhanced ve = (VariableEnhanced) var;
      if (ve instanceof CoordinateAxis) continue;
      GridCoordSys gcs = getGridCoordSys(ve);
      if (null != gcs) {
        nDataVariables++;
        Element gridElem = new Element("grid");
        rootElem.addContent(gridElem);

        gridElem.setAttribute("name", ve.getFullName());
        gridElem.setAttribute("decl", getDecl(ve));
        if (ve.getUnitsString() != null) {
          gridElem.setAttribute(CDM.UNITS, ve.getUnitsString());
          gridElem.setAttribute("udunits", isUdunits(ve.getUnitsString()));
        }
        gridElem.setAttribute("coordSys", gcs.getName());
      }
    }

    for (Variable var : ds.getVariables()) {
      VariableEnhanced ve =  (VariableEnhanced) var;
      if (ve instanceof CoordinateAxis) continue;
      GridCoordSys gcs = getGridCoordSys(ve);
      if (null == gcs) {
        nOtherVariables++;
        Element elem = new Element("variable");
        rootElem.addContent(elem);

        elem.setAttribute("name", ve.getFullName());
        elem.setAttribute("decl", getDecl(ve));
        if (ve.getUnitsString() != null) {
          elem.setAttribute(CDM.UNITS, ve.getUnitsString());
          elem.setAttribute("udunits", isUdunits(ve.getUnitsString()));
        }
        elem.setAttribute("coordSys", getCoordSys(ve));
      }
    }

    if (nDataVariables > 0) {
      rootElem.addContent( new Element("userAdvice").addContent( "Dataset contains useable gridded data."));
      if (nOtherVariables > 0)
        rootElem.addContent( new Element("userAdvice").addContent( "Some variables are not gridded fields; check that is what you expect."));
    } else {
      if (nCoordAxes == 0)
         rootElem.addContent( new Element("userAdvice").addContent( "No Coordinate Axes were found."));
      else
        rootElem.addContent( new Element("userAdvice").addContent( "No gridded data variables were found."));
    }

    String userAdvice = getUserAdvice();
    if (userAdvice.length() > 0) {
      StringTokenizer toker = new StringTokenizer(userAdvice, "\n");
      while (toker.hasMoreTokens())
        rootElem.addContent( new Element("userAdvice").addContent( toker.nextToken()));
    }

    return doc;
  }
public Document makeDocument() {
    Element rootElem = new Element("netcdfDatasetInfo");
    Document doc = new Document(rootElem);
    rootElem.setAttribute("location", ds.getLocation());
    rootElem.addContent( new Element("convention").setAttribute("name", getConventionUsed()));

    int nDataVariables = 0;
    int nOtherVariables = 0;

    List<CoordinateAxis> axes = ds.getCoordinateAxes();
    int nCoordAxes = axes.size();
    for (CoordinateAxis axis : axes) {
      Element axisElem = new Element("axis");
      rootElem.addContent(axisElem);

      axisElem.setAttribute("name", axis.getFullName());
      axisElem.setAttribute("decl", getDecl(axis));
      if (axis.getAxisType() != null)
        axisElem.setAttribute("type", axis.getAxisType().toString());
      if (axis.getUnitsString() != null) {
        axisElem.setAttribute(CDM.UNITS, axis.getUnitsString());
        axisElem.setAttribute("udunits", isUdunits(axis.getUnitsString()));
      }
      if (axis instanceof CoordinateAxis1D) {
        CoordinateAxis1D axis1D = (CoordinateAxis1D) axis;
        if (axis1D.isRegular())
          axisElem.setAttribute("regular", ucar.unidata.util.Format.d(axis1D.getIncrement(), 5));
      }
    }

    List<CoordinateSystem> csList = ds.getCoordinateSystems();
    for (CoordinateSystem cs : csList) {
      Element csElem;
      if (GridCoordSys.isGridCoordSys(null, cs, null)) {
        GridCoordSys gcs = new GridCoordSys(cs, null);
        csElem = new Element("gridCoordSystem");
        csElem.setAttribute("name", cs.getName());
        csElem.setAttribute("horizX", gcs.getXHorizAxis().getFullName());
        csElem.setAttribute("horizY", gcs.getYHorizAxis().getFullName());
        if (gcs.hasVerticalAxis())
          csElem.setAttribute("vertical", gcs.getVerticalAxis().getFullName());
        if (gcs.hasTimeAxis())
          csElem.setAttribute("time", cs.getTaxis().getFullName());
      } else {
        csElem = new Element("coordSystem");
        csElem.setAttribute("name", cs.getName());
      }

      List<CoordinateTransform> coordTransforms = cs.getCoordinateTransforms();
      for (CoordinateTransform ct : coordTransforms) {
        Element ctElem = new Element("coordTransform");
        csElem.addContent(ctElem);
        ctElem.setAttribute("name", ct.getName());
        ctElem.setAttribute("type", ct.getTransformType().toString());
      }

      rootElem.addContent(csElem);
    }

    List<CoordinateTransform> coordTransforms = ds.getCoordinateTransforms();
    for (CoordinateTransform ct : coordTransforms) {
      Element ctElem = new Element("coordTransform");
      rootElem.addContent(ctElem);

      ctElem.setAttribute("name", ct.getName());
      ctElem.setAttribute("type", ct.getTransformType().toString());
      List<Parameter> params = ct.getParameters();
      for (Parameter pp : params) {
        Element ppElem = new Element("param");
        ctElem.addContent(ppElem);
        ppElem.setAttribute("name", pp.getName());
        ppElem.setAttribute("value", pp.getStringValue());
      }
    }

    for (Variable var : ds.getVariables()) {
      VariableEnhanced ve = (VariableEnhanced) var;
      if (ve instanceof CoordinateAxis) continue;
      GridCoordSys gcs = getGridCoordSys(ve);
      if (null != gcs) {
        nDataVariables++;
        Element gridElem = new Element("grid");
        rootElem.addContent(gridElem);

        gridElem.setAttribute("name", ve.getFullName());
        gridElem.setAttribute("decl", getDecl(ve));
        if (ve.getUnitsString() != null) {
          gridElem.setAttribute(CDM.UNITS, ve.getUnitsString());
          gridElem.setAttribute("udunits", isUdunits(ve.getUnitsString()));
        }
        gridElem.setAttribute("coordSys", gcs.getName());
      }
    }

    for (Variable var : ds.getVariables()) {
      VariableEnhanced ve =  (VariableEnhanced) var;
      if (ve instanceof CoordinateAxis) continue;
      GridCoordSys gcs = getGridCoordSys(ve);
      if (null == gcs) {
        nOtherVariables++;
        Element elem = new Element("variable");
        rootElem.addContent(elem);

        elem.setAttribute("name", ve.getFullName());
        elem.setAttribute("decl", getDecl(ve));
        if (ve.getUnitsString() != null) {
          elem.setAttribute(CDM.UNITS, ve.getUnitsString());
          elem.setAttribute("udunits", isUdunits(ve.getUnitsString()));
        }
        elem.setAttribute("coordSys", getCoordSys(ve));
      }
    }

    if (nDataVariables > 0) {
      rootElem.addContent( new Element("userAdvice").addContent( "Dataset contains useable gridded data."));
      if (nOtherVariables > 0)
        rootElem.addContent( new Element("userAdvice").addContent( "Some variables are not gridded fields; check that is what you expect."));
    } else {
      if (nCoordAxes == 0)
         rootElem.addContent( new Element("userAdvice").addContent( "No Coordinate Axes were found."));
      else
        rootElem.addContent( new Element("userAdvice").addContent( "No gridded data variables were found."));
    }

    String userAdvice = getUserAdvice();
    if (userAdvice.length() > 0) {
      StringTokenizer toker = new StringTokenizer(userAdvice, "\n");
      while (toker.hasMoreTokens())
        rootElem.addContent( new Element("userAdvice").addContent( toker.nextToken()));
    }

    return doc;
  }
public Document makeDocument ( ) { Element rootElem = new Element ( "netcdfDatasetInfo" ) ; Document doc = new Document ( rootElem ) ; rootElem . setAttribute ( "location" , ds . getLocation ( ) ) ; rootElem . addContent ( new Element ( "convention" ) . setAttribute ( "name" , getConventionUsed ( ) ) ) ; int nDataVariables = 0 ; int nOtherVariables = 0 ; List < CoordinateAxis > axes = ds . getCoordinateAxes ( ) ; int nCoordAxes = axes . size ( ) ; for ( CoordinateAxis axis : axes ) { Element axisElem = new Element ( "axis" ) ; rootElem . addContent ( axisElem ) ; axisElem . setAttribute ( "name" , axis . getFullName ( ) ) ; axisElem . setAttribute ( "decl" , getDecl ( axis ) ) ; if ( axis . getAxisType ( ) != null ) axisElem . setAttribute ( "type" , axis . getAxisType ( ) . toString ( ) ) ; if ( axis . getUnitsString ( ) != null ) { axisElem . setAttribute ( CDM . UNITS , axis . getUnitsString ( ) ) ; axisElem . setAttribute ( "udunits" , isUdunits ( axis . getUnitsString ( ) ) ) ; } if ( axis instanceof CoordinateAxis1D ) { CoordinateAxis1D axis1D = ( CoordinateAxis1D ) axis ; if ( axis1D . isRegular ( ) ) axisElem . setAttribute ( "regular" , ucar . unidata . util . Format . d ( axis1D . getIncrement ( ) , 5 ) ) ; } } List < CoordinateSystem > csList = ds . getCoordinateSystems ( ) ; for ( CoordinateSystem cs : csList ) { Element csElem ; if ( GridCoordSys . isGridCoordSys ( null , cs , null ) ) { GridCoordSys gcs = new GridCoordSys ( cs , null ) ; csElem = new Element ( "gridCoordSystem" ) ; csElem . setAttribute ( "name" , cs . getName ( ) ) ; csElem . setAttribute ( "horizX" , gcs . getXHorizAxis ( ) . getFullName ( ) ) ; csElem . setAttribute ( "horizY" , gcs . getYHorizAxis ( ) . getFullName ( ) ) ; if ( gcs . hasVerticalAxis ( ) ) csElem . setAttribute ( "vertical" , gcs . getVerticalAxis ( ) . getFullName ( ) ) ; if ( gcs . hasTimeAxis ( ) ) csElem . setAttribute ( "time" , cs . getTaxis ( ) . getFullName ( ) ) ; } else { csElem = new Element ( "coordSystem" ) ; csElem . setAttribute ( "name" , cs . getName ( ) ) ; } List < CoordinateTransform > coordTransforms = cs . getCoordinateTransforms ( ) ; for ( CoordinateTransform ct : coordTransforms ) { Element ctElem = new Element ( "coordTransform" ) ; csElem . addContent ( ctElem ) ; ctElem . setAttribute ( "name" , ct . getName ( ) ) ; ctElem . setAttribute ( "type" , ct . getTransformType ( ) . toString ( ) ) ; } rootElem . addContent ( csElem ) ; } List < CoordinateTransform > coordTransforms = ds . getCoordinateTransforms ( ) ; for ( CoordinateTransform ct : coordTransforms ) { Element ctElem = new Element ( "coordTransform" ) ; rootElem . addContent ( ctElem ) ; ctElem . setAttribute ( "name" , ct . getName ( ) ) ; ctElem . setAttribute ( "type" , ct . getTransformType ( ) . toString ( ) ) ; List < Parameter > params = ct . getParameters ( ) ; for ( Parameter pp : params ) { Element ppElem = new Element ( "param" ) ; ctElem . addContent ( ppElem ) ; ppElem . setAttribute ( "name" , pp . getName ( ) ) ; ppElem . setAttribute ( "value" , pp . getStringValue ( ) ) ; } } for ( Variable var : ds . getVariables ( ) ) { VariableEnhanced ve = ( VariableEnhanced ) var ; if ( ve instanceof CoordinateAxis ) continue ; GridCoordSys gcs = getGridCoordSys ( ve ) ; if ( null != gcs ) { nDataVariables ++ ; Element gridElem = new Element ( "grid" ) ; rootElem . addContent ( gridElem ) ; gridElem . setAttribute ( "name" , ve . getFullName ( ) ) ; gridElem . setAttribute ( "decl" , getDecl ( ve ) ) ; if ( ve . getUnitsString ( ) != null ) { gridElem . setAttribute ( CDM . UNITS , ve . getUnitsString ( ) ) ; gridElem . setAttribute ( "udunits" , isUdunits ( ve . getUnitsString ( ) ) ) ; } gridElem . setAttribute ( "coordSys" , gcs . getName ( ) ) ; } } for ( Variable var : ds . getVariables ( ) ) { VariableEnhanced ve = ( VariableEnhanced ) var ; if ( ve instanceof CoordinateAxis ) continue ; GridCoordSys gcs = getGridCoordSys ( ve ) ; if ( null == gcs ) { nOtherVariables ++ ; Element elem = new Element ( "variable" ) ; rootElem . addContent ( elem ) ; elem . setAttribute ( "name" , ve . getFullName ( ) ) ; elem . setAttribute ( "decl" , getDecl ( ve ) ) ; if ( ve . getUnitsString ( ) != null ) { elem . setAttribute ( CDM . UNITS , ve . getUnitsString ( ) ) ; elem . setAttribute ( "udunits" , isUdunits ( ve . getUnitsString ( ) ) ) ; } elem . setAttribute ( "coordSys" , getCoordSys ( ve ) ) ; } } if ( nDataVariables > 0 ) { rootElem . addContent ( new Element ( "userAdvice" ) . addContent ( "Dataset contains useable gridded data." ) ) ; if ( nOtherVariables > 0 ) rootElem . addContent ( new Element ( "userAdvice" ) . addContent ( "Some variables are not gridded fields; check that is what you expect." ) ) ; } else { if ( nCoordAxes == 0 ) rootElem . addContent ( new Element ( "userAdvice" ) . addContent ( "No Coordinate Axes were found." ) ) ; else rootElem . addContent ( new Element ( "userAdvice" ) . addContent ( "No gridded data variables were found." ) ) ; } String userAdvice = getUserAdvice ( ) ; if ( userAdvice . length ( ) > 0 ) { StringTokenizer toker = new StringTokenizer ( userAdvice , "\n" ) ; while ( toker . hasMoreTokens ( ) ) rootElem . addContent ( new Element ( "userAdvice" ) . addContent ( toker . nextToken ( ) ) ) ; } return doc ; }
Create an XML document from this info
@return netcdfDatasetInfo XML document
Create an XML document from this info