Class: RawGeoJSONFeature¶
Parse-boundary GeoJSON Feature (RFC 7946 §3.2). Consumers narrow this to a domain feature (TrackFeature, ReferenceLocation, SystemState, MultiPointFeature, MultiPolygonFeature) after validating the properties.kind discriminator. Narrowing is done via the existing isDebriefFeature / isTrackFeature / isReferenceLocation type guards in @debrief/schemas/unions.ts (TypeScript) and debrief_schemas.unions (Python). Note: geometry is REQUIRED — callers handling possibly-null geometry payloads (e.g. NarrativeEntry features) either narrow at the parse boundary or defer to the domain-specific feature class that allows the looser shape (see ADR-021 for the ingress-coercion deferral).
URI: debrief:class/RawGeoJSONFeature
classDiagram
class RawGeoJSONFeature
click RawGeoJSONFeature href "../../classes/RawGeoJSONFeature/"
RawGeoJSONFeature : bbox
RawGeoJSONFeature : geometry
RawGeoJSONFeature : id
RawGeoJSONFeature : properties
RawGeoJSONFeature --> "0..1" Any : properties
click Any href "../../classes/Any/"
RawGeoJSONFeature : type
Slots¶
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| type | 1 String |
GeoJSON object type — always "Feature" | direct |
| id | 0..1 String or String or Integer |
Optional feature identifier | direct |
| geometry | 1 String or GeoJSONPoint or GeoJSONEmptyPoint or GeoJSONLineString or GeoJSONPolygon or GeoJSONMultiPoint or GeoJSONMultiLineString or GeoJSONMultiPolygon |
GeoJSON geometry — any_of union over the seven existing geometry classes in g... | direct |
| properties | 0..1 Any |
Free-form properties dictionary | direct |
| bbox | * Float |
Optional bounding box | direct |
Usages¶
| used by | used in | type | used |
|---|---|---|---|
| RawGeoJSONFeatureCollection | features | range | RawGeoJSONFeature |
| ResultsSlice | result_layers | range | RawGeoJSONFeature |
Identifier and Mapping Information¶
Schema Source¶
- from schema: https://debrief.info/schemas/debrief
Mappings¶
| Mapping Type | Mapped Value |
|---|---|
| self | debrief:RawGeoJSONFeature |
| native | debrief:RawGeoJSONFeature |
LinkML Source¶
Direct¶
name: RawGeoJSONFeature
description: 'Parse-boundary GeoJSON Feature (RFC 7946 §3.2). Consumers narrow this
to a domain feature (TrackFeature, ReferenceLocation, SystemState, MultiPointFeature,
MultiPolygonFeature) after validating the properties.kind discriminator. Narrowing
is done via the existing isDebriefFeature / isTrackFeature / isReferenceLocation
type guards in @debrief/schemas/unions.ts (TypeScript) and debrief_schemas.unions
(Python). Note: geometry is REQUIRED — callers handling possibly-null geometry payloads
(e.g. NarrativeEntry features) either narrow at the parse boundary or defer to the
domain-specific feature class that allows the looser shape (see ADR-021 for the
ingress-coercion deferral).'
from_schema: https://debrief.info/schemas/debrief
attributes:
type:
name: type
description: GeoJSON object type — always "Feature".
from_schema: https://debrief.info/schemas/raw-geojson
domain_of:
- GeoJSONPoint
- GeoJSONEmptyPoint
- GeoJSONLineString
- GeoJSONPolygon
- GeoJSONMultiPoint
- GeoJSONMultiLineString
- GeoJSONMultiPolygon
- TrackFeature
- ReferenceLocation
- SystemState
- MultiPointFeature
- MultiPolygonFeature
- NarrativeEntry
- CircleAnnotation
- RectangleAnnotation
- LineAnnotation
- TextAnnotation
- VectorAnnotation
- PolyAnnotation
- ToolParameter
- FileProvEntry
- RawGeoJSONFeature
- RawGeoJSONFeatureCollection
- DatasetAxisMetadata
- DatasetEntry
- StoryboardFeature
- SceneFeature
range: string
required: true
equals_string: Feature
id:
name: id
description: Optional feature identifier. RFC 7946 permits either a string or
an integer; both are retained without coercion.
from_schema: https://debrief.info/schemas/raw-geojson
domain_of:
- TrackFeature
- ReferenceLocation
- SystemState
- MultiPointFeature
- MultiPolygonFeature
- NarrativeEntry
- CircleAnnotation
- RectangleAnnotation
- LineAnnotation
- TextAnnotation
- VectorAnnotation
- PolyAnnotation
- Tool
- PlatformRecord
- PlotSummary
- StacItemSummary
- RawGeoJSONFeature
- StoryboardProperties
- SceneProperties
- StoryboardFeature
- SceneFeature
required: false
any_of:
- range: string
- range: integer
geometry:
name: geometry
description: GeoJSON geometry — any_of union over the seven existing geometry
classes in geojson.yaml (GeoJSONPoint, GeoJSONEmptyPoint, GeoJSONLineString,
GeoJSONPolygon, GeoJSONMultiPoint, GeoJSONMultiLineString, GeoJSONMultiPolygon).
Pydantic validates via try-each-alternative; observed cost is ~25µs per feature
(10 000 features in ~250ms).
from_schema: https://debrief.info/schemas/raw-geojson
domain_of:
- TrackFeature
- ReferenceLocation
- SystemState
- MultiPointFeature
- MultiPolygonFeature
- InputFeatureState
- NarrativeEntry
- CircleAnnotation
- RectangleAnnotation
- LineAnnotation
- TextAnnotation
- VectorAnnotation
- PolyAnnotation
- RawGeoJSONFeature
- StoryboardFeature
- SceneFeature
required: true
any_of:
- range: GeoJSONPoint
- range: GeoJSONEmptyPoint
- range: GeoJSONLineString
- range: GeoJSONPolygon
- range: GeoJSONMultiPoint
- range: GeoJSONMultiLineString
- range: GeoJSONMultiPolygon
properties:
name: properties
description: Free-form properties dictionary. Consumers narrow to a domain properties
class (TrackProperties, ReferenceLocationProperties, etc.) after validating
the kind discriminator. May be absent or null per RFC 7946 §3.2.
from_schema: https://debrief.info/schemas/raw-geojson
domain_of:
- TrackFeature
- ReferenceLocation
- SystemState
- MultiPointFeature
- MultiPolygonFeature
- InputFeatureState
- NarrativeEntry
- CircleAnnotation
- RectangleAnnotation
- LineAnnotation
- TextAnnotation
- VectorAnnotation
- PolyAnnotation
- RawGeoJSONFeature
- StoryboardFeature
- SceneFeature
range: Any
required: false
bbox:
name: bbox
description: Optional bounding box. Either [minLon, minLat, maxLon, maxLat] (length
4) or [minLon, minLat, minAlt, maxLon, maxLat, maxAlt] (length 6).
from_schema: https://debrief.info/schemas/raw-geojson
domain_of:
- TrackFeature
- SystemStateProperties
- MultiPointFeature
- MultiPolygonFeature
- PlotSummary
- StacItemSummary
- RawGeoJSONFeature
- RawGeoJSONFeatureCollection
range: float
required: false
multivalued: true
Induced¶
name: RawGeoJSONFeature
description: 'Parse-boundary GeoJSON Feature (RFC 7946 §3.2). Consumers narrow this
to a domain feature (TrackFeature, ReferenceLocation, SystemState, MultiPointFeature,
MultiPolygonFeature) after validating the properties.kind discriminator. Narrowing
is done via the existing isDebriefFeature / isTrackFeature / isReferenceLocation
type guards in @debrief/schemas/unions.ts (TypeScript) and debrief_schemas.unions
(Python). Note: geometry is REQUIRED — callers handling possibly-null geometry payloads
(e.g. NarrativeEntry features) either narrow at the parse boundary or defer to the
domain-specific feature class that allows the looser shape (see ADR-021 for the
ingress-coercion deferral).'
from_schema: https://debrief.info/schemas/debrief
attributes:
type:
name: type
description: GeoJSON object type — always "Feature".
from_schema: https://debrief.info/schemas/raw-geojson
alias: type
owner: RawGeoJSONFeature
domain_of:
- GeoJSONPoint
- GeoJSONEmptyPoint
- GeoJSONLineString
- GeoJSONPolygon
- GeoJSONMultiPoint
- GeoJSONMultiLineString
- GeoJSONMultiPolygon
- TrackFeature
- ReferenceLocation
- SystemState
- MultiPointFeature
- MultiPolygonFeature
- NarrativeEntry
- CircleAnnotation
- RectangleAnnotation
- LineAnnotation
- TextAnnotation
- VectorAnnotation
- PolyAnnotation
- ToolParameter
- FileProvEntry
- RawGeoJSONFeature
- RawGeoJSONFeatureCollection
- DatasetAxisMetadata
- DatasetEntry
- StoryboardFeature
- SceneFeature
range: string
required: true
equals_string: Feature
id:
name: id
description: Optional feature identifier. RFC 7946 permits either a string or
an integer; both are retained without coercion.
from_schema: https://debrief.info/schemas/raw-geojson
alias: id
owner: RawGeoJSONFeature
domain_of:
- TrackFeature
- ReferenceLocation
- SystemState
- MultiPointFeature
- MultiPolygonFeature
- NarrativeEntry
- CircleAnnotation
- RectangleAnnotation
- LineAnnotation
- TextAnnotation
- VectorAnnotation
- PolyAnnotation
- Tool
- PlatformRecord
- PlotSummary
- StacItemSummary
- RawGeoJSONFeature
- StoryboardProperties
- SceneProperties
- StoryboardFeature
- SceneFeature
range: string
required: false
any_of:
- range: string
- range: integer
geometry:
name: geometry
description: GeoJSON geometry — any_of union over the seven existing geometry
classes in geojson.yaml (GeoJSONPoint, GeoJSONEmptyPoint, GeoJSONLineString,
GeoJSONPolygon, GeoJSONMultiPoint, GeoJSONMultiLineString, GeoJSONMultiPolygon).
Pydantic validates via try-each-alternative; observed cost is ~25µs per feature
(10 000 features in ~250ms).
from_schema: https://debrief.info/schemas/raw-geojson
alias: geometry
owner: RawGeoJSONFeature
domain_of:
- TrackFeature
- ReferenceLocation
- SystemState
- MultiPointFeature
- MultiPolygonFeature
- InputFeatureState
- NarrativeEntry
- CircleAnnotation
- RectangleAnnotation
- LineAnnotation
- TextAnnotation
- VectorAnnotation
- PolyAnnotation
- RawGeoJSONFeature
- StoryboardFeature
- SceneFeature
range: string
required: true
any_of:
- range: GeoJSONPoint
- range: GeoJSONEmptyPoint
- range: GeoJSONLineString
- range: GeoJSONPolygon
- range: GeoJSONMultiPoint
- range: GeoJSONMultiLineString
- range: GeoJSONMultiPolygon
properties:
name: properties
description: Free-form properties dictionary. Consumers narrow to a domain properties
class (TrackProperties, ReferenceLocationProperties, etc.) after validating
the kind discriminator. May be absent or null per RFC 7946 §3.2.
from_schema: https://debrief.info/schemas/raw-geojson
alias: properties
owner: RawGeoJSONFeature
domain_of:
- TrackFeature
- ReferenceLocation
- SystemState
- MultiPointFeature
- MultiPolygonFeature
- InputFeatureState
- NarrativeEntry
- CircleAnnotation
- RectangleAnnotation
- LineAnnotation
- TextAnnotation
- VectorAnnotation
- PolyAnnotation
- RawGeoJSONFeature
- StoryboardFeature
- SceneFeature
range: Any
required: false
bbox:
name: bbox
description: Optional bounding box. Either [minLon, minLat, maxLon, maxLat] (length
4) or [minLon, minLat, minAlt, maxLon, maxLat, maxAlt] (length 6).
from_schema: https://debrief.info/schemas/raw-geojson
alias: bbox
owner: RawGeoJSONFeature
domain_of:
- TrackFeature
- SystemStateProperties
- MultiPointFeature
- MultiPolygonFeature
- PlotSummary
- StacItemSummary
- RawGeoJSONFeature
- RawGeoJSONFeatureCollection
range: float
required: false
multivalued: true