legacy/src/main/java/ucar/nc2/thredds/MetadataExtractor.java
static public ThreddsMetadata.Variables extractVariables(InvDatasetImpl threddsDataset) throws IOException {
    ThreddsDataFactory.Result result = null;

    try {
      result = new ThreddsDataFactory().openFeatureDataset(threddsDataset, null);
      if (result.fatalError) {
        System.out.println(" openDatatype errs=" + result.errLog);
        return null;
      }

      if (result.featureType == FeatureType.GRID) {
        // System.out.println(" extractVariables GRID=" + result.location);
        GridDataset gridDataset = (GridDataset) result.featureDataset;
        return extractVariables(threddsDataset, gridDataset);

      } else if ((result.featureType == FeatureType.STATION) || (result.featureType == FeatureType.POINT)) {
        PointObsDataset pobsDataset = (PointObsDataset) result.featureDataset;
        ThreddsMetadata.Variables vars = new ThreddsMetadata.Variables("CF-1.0");
        for (VariableSimpleIF vs  : pobsDataset.getDataVariables()) {
          ThreddsMetadata.Variable v = new ThreddsMetadata.Variable();
          vars.addVariable( v);

          v.setName( vs.getShortName());
          v.setDescription( vs.getDescription());
          v.setUnits( vs.getUnitsString());

          ucar.nc2.Attribute att = vs.findAttributeIgnoreCase("standard_name");
          if (att != null)
            v.setVocabularyName(att.getStringValue());
        }
        vars.sort();
        return vars;
      }

    } finally {
      try {
        if ((result != null) && (result.featureDataset != null))
          result.featureDataset.close();
      } catch (IOException ioe) {
        logger.error("Closing dataset "+result.featureDataset, ioe);
      }
    }

    return null;
  }
static public ThreddsMetadata.Variables extractVariables(InvDatasetImpl threddsDataset) throws IOException {
    ThreddsDataFactory.Result result = null;

    try {
      result = new ThreddsDataFactory().openFeatureDataset(threddsDataset, null);
      if (result.fatalError) {
        System.out.println(" openDatatype errs=" + result.errLog);
        return null;
      }

      if (result.featureType == FeatureType.GRID) {
        // System.out.println(" extractVariables GRID=" + result.location);
        GridDataset gridDataset = (GridDataset) result.featureDataset;
        return extractVariables(threddsDataset, gridDataset);

      } else if ((result.featureType == FeatureType.STATION) || (result.featureType == FeatureType.POINT)) {
        PointObsDataset pobsDataset = (PointObsDataset) result.featureDataset;
        ThreddsMetadata.Variables vars = new ThreddsMetadata.Variables("CF-1.0");
        for (VariableSimpleIF vs  : pobsDataset.getDataVariables()) {
          ThreddsMetadata.Variable v = new ThreddsMetadata.Variable();
          vars.addVariable( v);

          v.setName( vs.getShortName());
          v.setDescription( vs.getDescription());
          v.setUnits( vs.getUnitsString());

          ucar.nc2.Attribute att = vs.findAttributeIgnoreCase("standard_name");
          if (att != null)
            v.setVocabularyName(att.getStringValue());
        }
        vars.sort();
        return vars;
      }

    } finally {
      try {
        if ((result != null) && (result.featureDataset != null))
          result.featureDataset.close();
      } catch (IOException ioe) {
        logger.error("Closing dataset "+result.featureDataset, ioe);
      }
    }

    return null;
  }
static public ThreddsMetadata . Variables extractVariables ( InvDatasetImpl threddsDataset ) throws IOException { ThreddsDataFactory . Result result = null ; try { result = new ThreddsDataFactory ( ) . openFeatureDataset ( threddsDataset , null ) ; if ( result . fatalError ) { System . out . println ( " openDatatype errs=" + result . errLog ) ; return null ; } if ( result . featureType == FeatureType . GRID ) { // System.out.println(" extractVariables GRID=" + result.location); GridDataset gridDataset = ( GridDataset ) result . featureDataset ; return extractVariables ( threddsDataset , gridDataset ) ; } else if ( ( result . featureType == FeatureType . STATION ) || ( result . featureType == FeatureType . POINT ) ) { PointObsDataset pobsDataset = ( PointObsDataset ) result . featureDataset ; ThreddsMetadata . Variables vars = new ThreddsMetadata . Variables ( "CF-1.0" ) ; for ( VariableSimpleIF vs : pobsDataset . getDataVariables ( ) ) { ThreddsMetadata . Variable v = new ThreddsMetadata . Variable ( ) ; vars . addVariable ( v ) ; v . setName ( vs . getShortName ( ) ) ; v . setDescription ( vs . getDescription ( ) ) ; v . setUnits ( vs . getUnitsString ( ) ) ; ucar . nc2 . Attribute att = vs . findAttributeIgnoreCase ( "standard_name" ) ; if ( att != null ) v . setVocabularyName ( att . getStringValue ( ) ) ; } vars . sort ( ) ; return vars ; } } finally { try { if ( ( result != null ) && ( result . featureDataset != null ) ) result . featureDataset . close ( ) ; } catch ( IOException ioe ) { logger . error ( "Closing dataset " + result . featureDataset , ioe ) ; } } return null ; }
Extract a list of data variables (and their canonical names if possible) from the dataset.
@param threddsDataset open this dataset
@return ThreddsMetadata.Variables, or null if unable.
@throws IOException on read error
Extract a list of data variables ( and their canonical names if possible ) from the dataset .