public void normalizeSpatialVariables()

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


  public void normalizeSpatialVariables(Map<String, Object> metadata, Map<String, Object> updatedValues) {

    // get spatial resolution
    Double spatialR;
    if (metadata.get("Dataset-SatelliteSpatialResolution") != null) {
      spatialR = (Double) metadata.get("Dataset-SatelliteSpatialResolution");
    } else {
      Double gridR = (Double) metadata.get("Dataset-GridSpatialResolution");
      if (gridR != null) {
        spatialR = 111 * gridR;
      } else {
        spatialR = 25.0;
      }
    }
    updatedValues.put("Dataset-Derivative-SpatialResolution", spatialR);

    // Transform Longitude and calculate coverage area
    double top = parseDouble((String) metadata.get("DatasetCoverage-NorthLat"));
    double bottom = parseDouble((String) metadata.get("DatasetCoverage-SouthLat"));
    double left = parseDouble((String) metadata.get("DatasetCoverage-WestLon"));
    double right = parseDouble((String) metadata.get("DatasetCoverage-EastLon"));

    if (left > 180) {
      left = left - 360;
    }

    if (right > 180) {
      right = right - 360;
    }

    if (left == right) {
      left = -180;
      right = 180;
    }

    double area = (top - bottom) * (right - left);

    updatedValues.put("DatasetCoverage-Derivative-EastLon", right);
    updatedValues.put("DatasetCoverage-Derivative-WestLon", left);
    updatedValues.put("DatasetCoverage-Derivative-NorthLat", top);
    updatedValues.put("DatasetCoverage-Derivative-SouthLat", bottom);
    updatedValues.put("DatasetCoverage-Derivative-Area", area);

    // get processing level
    String processingLevel = (String) metadata.get("Dataset-ProcessingLevel");
    double dProLevel = this.getProLevelNum(processingLevel);
    updatedValues.put("Dataset-Derivative-ProcessingLevel", dProLevel);
  }