observation.py 1.5 KB
Newer Older
1
"""
2
    schema: platform-specific decoded status message (DRAFT)
3
"""
4
from . import message_header_schema, platform_schema, api
5 6 7 8 9 10 11 12 13 14 15
from flask_restx import fields


observation_schema = api.model(
    "Observation",
    {
        "message": fields.Nested(
            message_header_schema,
            required=True,
            description="Message header",
        ),
16
        "platform": fields.Nested(platform_schema),
17 18 19 20 21
        "time": fields.String(
            required=True,
            description="Timestamp of message",
            example="2022-11-16T00:00:00Z",
        ),
22 23 24
        # "observation_type" ==> payloads tied to different types maybe?
        # properties of each observation?
        "points_of_interest": fields.Float(
25
            required=False,
26
            description="Points from features of interest identified by platform if any found. DEFINE FORMAT.",
27 28
            example="",
        ),
29 30
        "region_surveyed": fields.Float(
            required=False,
31
            description="Region surveyed by given platform. DEFINE FORMAT. GEOJSON?",
32 33 34 35
            example="",
        ),
        "quality_of_points": fields.Float(
            required=False,
36
            description="Quality/strength of points from features of interest identified by platform. DEFINE FORMAT.",
37 38 39 40 41 42 43
            example=0.98,
        ),
        "additional_data": fields.Raw(
            required=False,
            description="Placeholder field for any additional data",
            example={"sensor_payload": False},
        ),
44 45
    },
)