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

    TableConfig profileTable = makeStructTable(ds, FeatureType.PROFILE, info, errlog);
    if (profileTable == null) return null;
    profileTable.feature_id = identifyIdVariableName(ds, CF.FeatureType.profile);
    if (profileTable.feature_id == null) {
      errlog.format("CFpointObs getProfileConfig cant find a profile id %n");
    }

    // obs table
    VariableDS z = CoordSysEvaluator.findCoordByType(ds, AxisType.Height);
    if (z == null) z = CoordSysEvaluator.findCoordByType(ds, AxisType.Pressure);
    if (z == null) z = CoordSysEvaluator.findCoordByType(ds, AxisType.GeoZ);
    if (z == null) {
      errlog.format("CFpointObs getProfileConfig cant find a Height coordinate %n");
      return null;
    }
    if (info.childStruct == null)
      info.childStruct = z.getParentStructure();

    TableConfig obsTable = null;
    switch (info.encoding) {
      case single:
        obsTable = makeSingle(ds, info.childDim, errlog);
        break;
      case multidim:
        obsTable = makeMultidimInner(ds, profileTable, info.childDim, info, errlog);
        if (z.getRank() == 1) {// z(z)
          obsTable.addJoin(new JoinArray(z, JoinArray.Type.raw, 0));
          obsTable.elev = z.getFullName();
        }
        break;
      case raggedContiguous:
        profileTable.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:
        throw new UnsupportedOperationException("CFpointObs: profile flat encoding");
    }
    if (obsTable == null) return null;

    profileTable.addChild(obsTable);
    return profileTable;
  }
protected TableConfig getProfileConfig(NetcdfDataset ds, EncodingInfo info, Formatter errlog) throws IOException {
    if (!identifyEncodingProfile(ds, info, errlog)) return null;

    TableConfig profileTable = makeStructTable(ds, FeatureType.PROFILE, info, errlog);
    if (profileTable == null) return null;
    profileTable.feature_id = identifyIdVariableName(ds, CF.FeatureType.profile);
    if (profileTable.feature_id == null) {
      errlog.format("CFpointObs getProfileConfig cant find a profile id %n");
    }

    // obs table
    VariableDS z = CoordSysEvaluator.findCoordByType(ds, AxisType.Height);
    if (z == null) z = CoordSysEvaluator.findCoordByType(ds, AxisType.Pressure);
    if (z == null) z = CoordSysEvaluator.findCoordByType(ds, AxisType.GeoZ);
    if (z == null) {
      errlog.format("CFpointObs getProfileConfig cant find a Height coordinate %n");
      return null;
    }
    if (info.childStruct == null)
      info.childStruct = z.getParentStructure();

    TableConfig obsTable = null;
    switch (info.encoding) {
      case single:
        obsTable = makeSingle(ds, info.childDim, errlog);
        break;
      case multidim:
        obsTable = makeMultidimInner(ds, profileTable, info.childDim, info, errlog);
        if (z.getRank() == 1) {// z(z)
          obsTable.addJoin(new JoinArray(z, JoinArray.Type.raw, 0));
          obsTable.elev = z.getFullName();
        }
        break;
      case raggedContiguous:
        profileTable.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:
        throw new UnsupportedOperationException("CFpointObs: profile flat encoding");
    }
    if (obsTable == null) return null;

    profileTable.addChild(obsTable);
    return profileTable;
  }
//