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);
}