public void ordinalVariablesSimilarity()

in core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/PODAACMetadataFeature.java [328:358]


  public void ordinalVariablesSimilarity(Map<String, Object> metadataA, Map<String, Object> metadataB, XContentBuilder contentBuilder) {
    // TODO Auto-generated method stub
    for (String variable : featureTypes.keySet()) {
      Integer type = featureTypes.get(variable);
      if (!type.equals(VAR_ORDINAL)) {
        continue;
      }

      double similarity = 0.0;
      Object valueA = metadataA.get(variable);
      Object valueB = metadataB.get(variable);
      if (valueA != null && valueB != null) {

        double a = (double) valueA;
        double b = (double) valueB;
        if (a != 0.0) {
          similarity = 1 - Math.abs(b - a) / a;
          if (similarity < 0) {
            similarity = 0.0;
          }
        }
      }

      try {
        contentBuilder.field(variable + "_Sim", similarity);
      } catch (IOException e) {
        // TODO Auto-generated catch block
        LOG.error("Ordinal similarity calculation failed : ", e);
      }
    }
  }