use of org.geotoolkit.observation.xml.Process in project geotoolkit by Geomatys.
the class AbstractObservationStore method getResults.
/**
* {@inheritDoc }
*/
@Override
public ExtractionResult getResults(final String affectedSensorId, final List<String> sensorIDs, Set<Phenomenon> phenomenons, final Set<org.opengis.observation.sampling.SamplingFeature> samplingFeatures) throws DataStoreException {
if (affectedSensorId != null) {
LOGGER.warning("This ObservationStore does not allow to override sensor ID");
}
final ExtractionResult result = new ExtractionResult();
result.spatialBound.initBoundary();
final List<Observation> observations = getAllObservations(sensorIDs);
for (Observation obs : observations) {
final AbstractObservation o = (AbstractObservation) obs;
final Process proc = o.getProcedure();
final ExtractionResult.ProcedureTree procedure = new ExtractionResult.ProcedureTree(proc.getHref(), proc.getName(), proc.getDescription(), "Component", "timeseries");
if (sensorIDs == null || sensorIDs.contains(procedure.id)) {
if (!result.procedures.contains(procedure)) {
result.procedures.add(procedure);
}
final PhenomenonProperty phenProp = o.getPropertyObservedProperty();
final List<String> fields = OMUtils.getPhenomenonsFields(phenProp);
for (String field : fields) {
if (!result.fields.contains(field)) {
result.fields.add(field);
}
}
final Phenomenon phen = OMUtils.getPhenomenon(phenProp);
if (!result.phenomenons.contains(phen)) {
result.phenomenons.add(phen);
}
result.spatialBound.appendLocation(o.getSamplingTime(), o.getFeatureOfInterest());
procedure.spatialBound.appendLocation(o.getSamplingTime(), o.getFeatureOfInterest());
procedure.spatialBound.getHistoricalLocations().putAll(getSensorLocations(o.getProcedure().getHref(), "2.0.0"));
result.observations.add(o);
}
}
return result;
}
Aggregations