cdm/src/main/java/ucar/nc2/ft/point/standard/plug/CFpointObs.java
protected TableConfig getStationConfig(NetcdfDataset ds, EncodingInfo info, Formatter errlog) throws IOException {
    if (!identifyEncodingStation(ds, info, CF.FeatureType.timeSeries, errlog))
      return null;

    // make station table
    TableConfig stnTable = makeStationTable(ds, FeatureType.STATION, info, errlog);
    if (stnTable == null) return null;

    Dimension obsDim = info.childDim;
    TableConfig obsTable = null;
    switch (info.encoding) {
      case single:
        obsTable = makeSingle(ds, obsDim, errlog);
        break;

      case multidim:
        obsTable = makeMultidimInner(ds, stnTable, info.childDim, info, errlog);
        if (info.time.getRank() == 1) { // join time(time)
          obsTable.addJoin(new JoinArray(info.time, JoinArray.Type.raw, 0));
          obsTable.time = info.time.getFullName();
        }
        break;

      case raggedContiguous:
        stnTable.numRecords = info.ragged_rowSize.getFullName();
        obsTable = makeRaggedContiguousChildTable(ds, info.parentDim, info.childDim, info.childStruct, errlog);
        break;

      case raggedIndex:
        obsTable = makeRaggedIndexChildTable(ds, info.parentDim, info.childDim, info.ragged_parentIndex, errlog);
        break;

      case flat:
        info.set(Encoding.flat, obsDim);
        obsTable = makeStructTable(ds, FeatureType.STATION, info, errlog);
        obsTable.parentIndex = (info.instanceId == null) ? null : info.instanceId.getFullName();
        Variable stnIdVar = Evaluator.findVariableWithAttributeAndDimension(ds, CF.CF_ROLE, CF.STATION_ID, obsDim, errlog);
        if (stnIdVar == null)
          stnIdVar = Evaluator.findVariableWithAttributeAndDimension(ds, CF.STANDARD_NAME, CF.STATION_ID, obsDim, errlog);
        obsTable.stnId = (stnIdVar == null) ? null : stnIdVar.getFullName();
        obsTable.stnDesc = Evaluator.findNameOfVariableWithAttributeValue(ds, CF.STANDARD_NAME, CF.PLATFORM_NAME);
        if (obsTable.stnDesc == null)
          obsTable.stnDesc = Evaluator.findNameOfVariableWithAttributeValue(ds, CF.STANDARD_NAME, CF.STATION_DESC);
        obsTable.stnWmoId = Evaluator.findNameVariableWithStandardNameAndDimension(ds, CF.STATION_WMOID, obsDim, errlog);
        obsTable.stnAlt = Evaluator.findNameVariableWithStandardNameAndDimension(ds, CF.SURFACE_ALTITUDE, obsDim, errlog);
        if (obsTable.stnAlt == null)
          obsTable.stnAlt = Evaluator.findNameVariableWithStandardNameAndDimension(ds, CF.STATION_ALTITUDE, obsDim, errlog);
        break;
    }
    if (obsTable == null) return null;

    stnTable.addChild(obsTable);
    return stnTable;
  }
protected TableConfig getStationConfig(NetcdfDataset ds, EncodingInfo info, Formatter errlog) throws IOException {
    if (!identifyEncodingStation(ds, info, CF.FeatureType.timeSeries, errlog))
      return null;

    // make station table
    TableConfig stnTable = makeStationTable(ds, FeatureType.STATION, info, errlog);
    if (stnTable == null) return null;

    Dimension obsDim = info.childDim;
    TableConfig obsTable = null;
    switch (info.encoding) {
      case single:
        obsTable = makeSingle(ds, obsDim, errlog);
        break;

      case multidim:
        obsTable = makeMultidimInner(ds, stnTable, info.childDim, info, errlog);
        if (info.time.getRank() == 1) { // join time(time)
          obsTable.addJoin(new JoinArray(info.time, JoinArray.Type.raw, 0));
          obsTable.time = info.time.getFullName();
        }
        break;

      case raggedContiguous:
        stnTable.numRecords = info.ragged_rowSize.getFullName();
        obsTable = makeRaggedContiguousChildTable(ds, info.parentDim, info.childDim, info.childStruct, errlog);
        break;

      case raggedIndex:
        obsTable = makeRaggedIndexChildTable(ds, info.parentDim, info.childDim, info.ragged_parentIndex, errlog);
        break;

      case flat:
        info.set(Encoding.flat, obsDim);
        obsTable = makeStructTable(ds, FeatureType.STATION, info, errlog);
        obsTable.parentIndex = (info.instanceId == null) ? null : info.instanceId.getFullName();
        Variable stnIdVar = Evaluator.findVariableWithAttributeAndDimension(ds, CF.CF_ROLE, CF.STATION_ID, obsDim, errlog);
        if (stnIdVar == null)
          stnIdVar = Evaluator.findVariableWithAttributeAndDimension(ds, CF.STANDARD_NAME, CF.STATION_ID, obsDim, errlog);
        obsTable.stnId = (stnIdVar == null) ? null : stnIdVar.getFullName();
        obsTable.stnDesc = Evaluator.findNameOfVariableWithAttributeValue(ds, CF.STANDARD_NAME, CF.PLATFORM_NAME);
        if (obsTable.stnDesc == null)
          obsTable.stnDesc = Evaluator.findNameOfVariableWithAttributeValue(ds, CF.STANDARD_NAME, CF.STATION_DESC);
        obsTable.stnWmoId = Evaluator.findNameVariableWithStandardNameAndDimension(ds, CF.STATION_WMOID, obsDim, errlog);
        obsTable.stnAlt = Evaluator.findNameVariableWithStandardNameAndDimension(ds, CF.SURFACE_ALTITUDE, obsDim, errlog);
        if (obsTable.stnAlt == null)
          obsTable.stnAlt = Evaluator.findNameVariableWithStandardNameAndDimension(ds, CF.STATION_ALTITUDE, obsDim, errlog);
        break;
    }
    if (obsTable == null) return null;

    stnTable.addChild(obsTable);
    return stnTable;
  }
protected TableConfig getStationConfig ( NetcdfDataset ds , EncodingInfo info , Formatter errlog ) throws IOException { if ( ! identifyEncodingStation ( ds , info , CF . FeatureType . timeSeries , errlog ) ) return null ; // make station table
 TableConfig stnTable = makeStationTable ( ds , FeatureType . STATION , info , errlog ) ; if ( stnTable == null ) return null ; Dimension obsDim = info . childDim ; TableConfig obsTable = null ; switch ( info . encoding ) { case single : obsTable = makeSingle ( ds , obsDim , errlog ) ; break ; case multidim : obsTable = makeMultidimInner ( ds , stnTable , info . childDim , info , errlog ) ; if ( info . time . getRank ( ) == 1 ) { // join time(time)
 obsTable . addJoin ( new JoinArray ( info . time , JoinArray . Type . raw , 0 ) ) ; obsTable . time = info . time . getFullName ( ) ; } break ; case raggedContiguous : stnTable . numRecords = info . ragged_rowSize . getFullName ( ) ; obsTable = makeRaggedContiguousChildTable ( ds , info . parentDim , info . childDim , info . childStruct , errlog ) ; break ; case raggedIndex : obsTable = makeRaggedIndexChildTable ( ds , info . parentDim , info . childDim , info . ragged_parentIndex , errlog ) ; break ; case flat : info . set ( Encoding . flat , obsDim ) ; obsTable = makeStructTable ( ds , FeatureType . STATION , info , errlog ) ; obsTable . parentIndex = ( info . instanceId == null ) ? null : info . instanceId . getFullName ( ) ; Variable stnIdVar = Evaluator . findVariableWithAttributeAndDimension ( ds , CF . CF_ROLE , CF . STATION_ID , obsDim , errlog ) ; if ( stnIdVar == null ) stnIdVar = Evaluator . findVariableWithAttributeAndDimension ( ds , CF . STANDARD_NAME , CF . STATION_ID , obsDim , errlog ) ; obsTable . stnId = ( stnIdVar == null ) ? null : stnIdVar . getFullName ( ) ; obsTable . stnDesc = Evaluator . findNameOfVariableWithAttributeValue ( ds , CF . STANDARD_NAME , CF . PLATFORM_NAME ) ; if ( obsTable . stnDesc == null ) obsTable . stnDesc = Evaluator . findNameOfVariableWithAttributeValue ( ds , CF . STANDARD_NAME , CF . STATION_DESC ) ; obsTable . stnWmoId = Evaluator . findNameVariableWithStandardNameAndDimension ( ds , CF . STATION_WMOID , obsDim , errlog ) ; obsTable . stnAlt = Evaluator . findNameVariableWithStandardNameAndDimension ( ds , CF . SURFACE_ALTITUDE , obsDim , errlog ) ; if ( obsTable . stnAlt == null ) obsTable . stnAlt = Evaluator . findNameVariableWithStandardNameAndDimension ( ds , CF . STATION_ALTITUDE , obsDim , errlog ) ; break ; } if ( obsTable == null ) return null ; stnTable . addChild ( obsTable ) ; return stnTable ; }
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////