Search in sources :

Example 1 with ObservationType

use of net.opengis.om.x10.ObservationType in project arctic-sea by 52North.

the class OmEncoderv100 method createObservationCollection.

private XmlObject createObservationCollection(ObservationStream sosObservationCollectionIterable, String resultModel) throws EncodingException {
    ObservationCollectionDocument xbObservationCollectionDoc = ObservationCollectionDocument.Factory.newInstance(getXmlOptions());
    ObservationCollectionType xbObservationCollection = xbObservationCollectionDoc.addNewObservationCollection();
    xbObservationCollection.setId(SosConstants.OBS_COL_ID_PREFIX + new DateTime().getMillis());
    if (sosObservationCollectionIterable != null) {
        List<OmObservation> sosObservationCollection = new LinkedList<>();
        try {
            sosObservationCollectionIterable.forEachRemaining(sosObservationCollection::add);
            ReferencedEnvelope sosEnvelope = getEnvelope(sosObservationCollection);
            Encoder<XmlObject, ReferencedEnvelope> envEncoder = getEncoder(GmlConstants.NS_GML, sosEnvelope);
            xbObservationCollection.addNewBoundedBy().addNewEnvelope().set(envEncoder.encode(sosEnvelope));
            for (OmObservation sosObservation : sosObservationCollection) {
                String observationType = checkObservationType(sosObservation);
                if (Strings.isNullOrEmpty(resultModel) || (!Strings.isNullOrEmpty(resultModel) && observationType.equals(resultModel))) {
                    if (sosObservation.getValue() instanceof StreamingValue) {
                        StreamingValue<?> streamingValue = (StreamingValue<?>) sosObservation.getValue();
                        while (streamingValue.hasNext()) {
                            xbObservationCollection.addNewMember().set(createObservation(streamingValue.next(), null));
                        }
                    } else {
                        xbObservationCollection.addNewMember().set(createObservation(sosObservation, null));
                    }
                } else {
                    throw new EncodingException("The requested resultModel '%s' is invalid for the resulting observations!", OMHelper.getEncodedResultModelFor(resultModel));
                }
            }
        } catch (OwsExceptionReport owse) {
            throw new EncodingException(owse);
        }
    } else {
        ObservationPropertyType xbObservation = xbObservationCollection.addNewMember();
        xbObservation.setHref(GmlConstants.NIL_INAPPLICABLE);
    }
    XmlHelper.makeGmlIdsUnique(xbObservationCollectionDoc.getDomNode());
    N52XmlHelper.setSchemaLocationsToDocument(xbObservationCollectionDoc, Sets.newHashSet(N52XmlHelper.getSchemaLocationForSOS100(), N52XmlHelper.getSchemaLocationForOM100(), N52XmlHelper.getSchemaLocationForSA100()));
    return xbObservationCollectionDoc;
}
Also used : StreamingValue(org.n52.shetland.ogc.om.StreamingValue) EncodingException(org.n52.svalbard.encode.exception.EncodingException) ObservationPropertyType(net.opengis.om.x10.ObservationPropertyType) OmObservation(org.n52.shetland.ogc.om.OmObservation) ObservationCollectionType(net.opengis.om.x10.ObservationCollectionType) XmlString(org.apache.xmlbeans.XmlString) DateTime(org.joda.time.DateTime) LinkedList(java.util.LinkedList) ReferencedEnvelope(org.n52.shetland.util.ReferencedEnvelope) ObservationCollectionDocument(net.opengis.om.x10.ObservationCollectionDocument) XmlObject(org.apache.xmlbeans.XmlObject) OwsExceptionReport(org.n52.shetland.ogc.ows.exception.OwsExceptionReport)

Example 2 with ObservationType

use of net.opengis.om.x10.ObservationType in project arctic-sea by 52North.

the class OmEncoderv100 method createOmObservation.

private XmlObject createOmObservation(OmObservation sosObservation, EncodingContext additionalValues) throws EncodingException {
    ObservationDocument xbObservationDoc = ObservationDocument.Factory.newInstance(getXmlOptions());
    ObservationType xbObs = xbObservationDoc.addNewObservation();
    List<OmObservableProperty> phenComponents = addValuesToObservation(xbObs, sosObservation, additionalValues);
    addResultToObservation(xbObs.addNewResult(), sosObservation, phenComponents);
    return xbObservationDoc;
}
Also used : TruthObservationType(net.opengis.om.x10.TruthObservationType) ObservationType(net.opengis.om.x10.ObservationType) CategoryObservationType(net.opengis.om.x10.CategoryObservationType) CountObservationType(net.opengis.om.x10.CountObservationType) GeometryObservationType(net.opengis.om.x10.GeometryObservationType) GeometryObservationDocument(net.opengis.om.x10.GeometryObservationDocument) CountObservationDocument(net.opengis.om.x10.CountObservationDocument) TruthObservationDocument(net.opengis.om.x10.TruthObservationDocument) ObservationDocument(net.opengis.om.x10.ObservationDocument) CategoryObservationDocument(net.opengis.om.x10.CategoryObservationDocument) OmObservableProperty(org.n52.shetland.ogc.om.OmObservableProperty)

Aggregations

LinkedList (java.util.LinkedList)1 CategoryObservationDocument (net.opengis.om.x10.CategoryObservationDocument)1 CategoryObservationType (net.opengis.om.x10.CategoryObservationType)1 CountObservationDocument (net.opengis.om.x10.CountObservationDocument)1 CountObservationType (net.opengis.om.x10.CountObservationType)1 GeometryObservationDocument (net.opengis.om.x10.GeometryObservationDocument)1 GeometryObservationType (net.opengis.om.x10.GeometryObservationType)1 ObservationCollectionDocument (net.opengis.om.x10.ObservationCollectionDocument)1 ObservationCollectionType (net.opengis.om.x10.ObservationCollectionType)1 ObservationDocument (net.opengis.om.x10.ObservationDocument)1 ObservationPropertyType (net.opengis.om.x10.ObservationPropertyType)1 ObservationType (net.opengis.om.x10.ObservationType)1 TruthObservationDocument (net.opengis.om.x10.TruthObservationDocument)1 TruthObservationType (net.opengis.om.x10.TruthObservationType)1 XmlObject (org.apache.xmlbeans.XmlObject)1 XmlString (org.apache.xmlbeans.XmlString)1 DateTime (org.joda.time.DateTime)1 OmObservableProperty (org.n52.shetland.ogc.om.OmObservableProperty)1 OmObservation (org.n52.shetland.ogc.om.OmObservation)1 StreamingValue (org.n52.shetland.ogc.om.StreamingValue)1