OrbPro2 a Cesium distribution

StandardsLoader

new Cesium.StandardsLoader(options)

Unified standards ingestion into an EntityCollection.
Name Type Description
options object optional Loader options.
Name Type Default Description
entityCollection EntityCollection | Viewer optional Target collection (or viewer).
idStrategy Object.<string, function()> optional Per-schema id strategy map.
recordIdentityStrategy Object.<string, function()> optional Per-schema mutation record-key strategy map.
schemaEntityTypeMap Object.<string, string> optional Per-schema entity type map for association lookups.
associationKeyStrategy Object.<string, (function()|Object.<string, function()>)> optional Per-entity-type association key strategy map.
streamFrameAdapterMap Object.<string, function()> optional Per-file-ID stream adapters for framed payload bytes.
streamFramePolicyMap Object.<string, (Object|boolean)> optional Per-file-ID stream frame policies.
backgroundMutationOptions object optional Manual background mutation retry/compaction options.
autoRegisterQueryConsumer boolean true optional Whether load/attach operations should automatically register the shared FlatSQL query consumer and mutation registry for the target collection.
updatePolicy number UpdatePolicy.UPSERT optional Default update policy.
propagator string | number | object Propagators.SGP4 optional Explicit position propagator; overrides the record's mean-element theory.
catalogPropagator string | number | object optional Explicit catalog position propagator, taking precedence over propagator. Its catalogIdentityPropagator handles OMM ingest and identity.
seedEpoch JulianDate | number optional Common UTC seed epoch for a numerical position propagator.

Members

static Cesium.StandardsLoader.DefaultIdStrategy

Default per-schema ID extraction.

readonly associationConflicts : Array.<object>

Association keys that more than one catalogd object presented, and were therefore refused. Each entry is `{ lookupKey, claimed, incoming }` — `claimed` is the catalog number that owns the key, `incoming` the one that was kept separate from it.

Methods

attachRecordToEntity(entity, schema, record, options)object

Attach one standards record directly to an entity and register it with the shared mutation registry.
Name Type Description
entity Entity Target entity.
schema string Standards schema (`OMM`, `CAT`, `OEM`, `OCM`, or `RFB`).
record object | Uint8Array | ArrayBuffer | string Standards record payload.
options object optional Attachment options.
Returns:
Attachment summary.

attachRFBRecordsToEntity(entity, rfbRecords, options)object

Bind every `$RFB` record in a payload to an entity. A `$RFB` record carries exactly ONE `LINK_DIRECTION`, so a transceiver arrives as two records and a per-record call would drop one.
Name Type Description
entity Entity Target entity.
rfbRecords Array.<object> | Uint8Array | ArrayBuffer | string RFB payload.
options object optional Attachment options.
Returns:
Attachment summary with one recordKey per bound emitter.

attachRFBToEntity(entity, rfbRecord, options)object

Bind one `$RFB` emitter record to an entity. Accepts `$RFB` FlatBuffer bytes (the shape an SDN record route serves), a size-prefixed `$RFB` stream, RFB JSON, or an array/`{RFB: [...]}` wrapper. Frequencies stay in MHz exactly as the schema defines them.
Name Type Description
entity Entity Target entity.
rfbRecord object | Uint8Array | ArrayBuffer | string RFB record payload.
options object optional Attachment options.
Returns:
Attachment summary.
Example:
const bytes = new Uint8Array(await (await fetch(rfbUrl)).arrayBuffer());
loader.attachRFBToEntity(satellite, bytes);
const downlinks = satellite.getRFBRecords({ direction: "DOWNLINK" });
Clear cached association index entries.

compactMutationState(options)number

Compact tombstoned shared standards records immediately.
Name Type Description
options object optional Compaction options.
Returns:
Number of compacted tombstones.

createStreamHandler(options)object

Create a size-prefixed binary stream handler.
Name Type Description
options object optional Stream options.
Name Type Description
loadOptions object optional Per-frame load options forwarded to load methods.
frameRouter function | Object.<string, function()> optional Optional custom framed-payload router.
streamFrameAdapterMap Object.<string, function()> optional Optional per-file-ID adapter overrides.
streamFramePolicyMap Object.<string, (Object|boolean)> optional Optional per-file-ID frame policy overrides.
onMessage function optional Called with (summary, payload) for each handled frame.
onError function optional Called with (error, payload) when routing/ingest fails.
Returns:
Stream handler with pushBytes().
Example:
const loader = new StandardsLoader({
  entityCollection: viewer.entities,
  schemaEntityTypeMap: { CZM: "space", KML: "space", GJN: "space" },
  associationKeyStrategy: {
    space: {
      default: (record) =>
        record?.OBJECT_ID ?? record?.id ?? record?.properties?.OBJECT_ID,
    },
  },
});

const stream = loader.createStreamHandler({
  // Default adapters decode framed $OCM/$CZM/$KML/$GJN payload bodies.
  streamFramePolicyMap: { $OEM: { latestOnly: true } },
  frameRouter: {
    $TDM: (payload, context) => {
      // custom route for app-specific framed payloads
      return false; // fall through to default loader route when not handled
    },
  },
});

flushMutationQueue(options)Promise.<void>

Wait until the shared standards mutation queue is idle.
Name Type Description
options object optional Queue options.
Returns:
Resolves when queued mutations are finished.

getGroupMembers(groupId, options)object

Read one page of a group's membership. A folder view pages; it does not enumerate. The catalog folder asserts 37,189 members and the transmitter folder 5,014, so a view that materialises a whole group before drawing it has already lost. This returns a bounded page, and reports the total separately so a pager can size itself without touching the rest. TWO KINDS OF GROUP, ONE CALL. An enumerated group pages over the ids it resolved at load. A query-defined group holds no members at all — the standard's QUERY_SNAPSHOT and QUERY_LIVE modes carry the query instead — so the page comes back empty with `query` set, and the caller pages at the source that can evaluate the dialect. Either way the caller asks the same question and reads `total`.
Name Type Description
groupId string The group's publisher-stable `GROUP_ID`.
options object optional Paging options.
Name Type Default Description
offset number 0 optional First member to return.
limit number 100 optional Maximum members to return.
filter string optional Case-insensitive substring matched against member name and record id.
entityCollection EntityCollection optional Collection to resolve members in.
Returns:
`{ groupId, total, offset, limit, members, entities, unresolved, query, filtered }`.
Example:
// Groups themselves enumerate like any other ingested standard; this pages
// inside one of them, by its GROUP_ID.
const page = loader.getGroupMembers("orbital-study:folder:ground-stations", {
  offset: 0,
  limit: 50,
  filter: "svalbard",
});

getRecordsForEntity(entity, options)Array.<object>|undefined

Read active standard records attached to one entity. The returned descriptors retain schema, recordKey, role, attachment metadata, payload, and available decoded metadata. All objects and binary views are detached snapshots; editing them does not update the entity or publish a record. Binary-only records still require their generated SDS decoder. Host-local ENTITY query metadata is excluded. This method neither initializes the native backend nor rebuilds its SQL index. An entity without explicitly registered SDS records uses its public CAT/OMM/RFB accessors, including propagator-backed catalog records. Creating an ETM-only query consumer (for example, a child-entity query) does not supersede these records. Those snapshots carry accessor and attachedVia="native-accessor"; they do not invent ingestion record keys, attachment roles, or publisher provenance. They cover the current native catalog records, not a complete attachment history. Once SDS records are explicitly registered for an entity, that registry remains authoritative for its id until the consumer is disposed, even after tombstone compaction. Native accessors cannot revive its deleted records, and unrelated entities retain their native record readers.
Name Type Description
entity Entity | string Entity or stable collection-local id.
options object optional Read options.
Name Type Description
entityCollection EntityCollection optional Target collection.
Returns:
Detached record descriptors or native snapshots; undefined means neither a consumer nor supported member accessors exist, while [] means the supported reader has no records.

getSchemaEntityType(schema)string|undefined

Resolve mapped entity type for a schema.
Name Type Description
schema string Standards schema (OMM/OEM/CAT/CZM/KML/GJN...).
Returns:
Entity type mapping.

hasQueryConsumer(options)boolean

Check whether the target collection is backed by the shared query consumer.
Name Type Description
options object optional Consumer options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
True when shared query state is active.

inspectMutationState(options)object|undefined

Inspect the shared mutation state for the target collection.
Name Type Description
options object optional Inspection options.
Returns:
Shared mutation snapshot.

load(data, options)Promise.<object>

Auto-detect format and load.
Name Type Description
data Resource | string | ArrayBuffer | Uint8Array | object Input data.
options object optional Per-load options.
Returns:
Load summary.

loadCAT(catRecords, options)Promise.<object>

Load CAT records and index them in plugin sqlite by NORAD ID.
Name Type Description
catRecords Array.<object> | string | ArrayBuffer | Uint8Array CAT input.
options object optional Per-load options.
Name Type Default Description
createMissingEntities boolean true optional Create scene entities for unmatched CAT records. When false, unmatched records remain in the configured propagator's catalog and are counted as catalogOnly.
Returns:
Load summary.

loadCDM(cdmData, options)Promise.<object>

Load CDM records.
Name Type Description
cdmData object | Array.<object> | ArrayBuffer | Uint8Array CDM input.
options object optional Per-load options.
Returns:
Load summary.

loadCZML(czmlPackets, options)Promise.<object>

Load CZML packets and merge into target collection.
Name Type Description
czmlPackets Resource | string | object CZML input.
options object optional Per-load options.
Returns:
Load summary.

loadEGP(groupData, options)Promise.<object>

Load `$EGP` groups as folder entities and attach their members. A folder is a graphics-less parent entity, which is what makes `show` cascade to everything inside it. Membership is an ASSERTION, not a foreign key: a member this collection does not hold is counted as dangling and skipped, never a reason to drop the group. ONE PARENT, MANY GROUPS. An entity has exactly one `parent`, but it belongs to as many groups as assert it: every ILRS station is both a ground station and a laser ranging station. Parent is therefore assigned ONCE — to the first folder that claims an entity, which gives that folder a working `show` cascade — while membership itself is recorded on BOTH sides and is what a folder view should read: `groupMembers` on the folder lists the entity ids it resolved, and `groupIds` on each member lists every folder it belongs to. Reading membership from `parent` alone would show one of these folders full and the rest empty.
Name Type Description
groupData Uint8Array | ArrayBuffer | string | object | Array.<object> `$EGP` bytes, a size-prefixed stream, JSON, or records.
options object optional Load options.
Name Type Default Description
entityCollection EntityCollection optional Target collection.
updatePolicy number UpdatePolicy.UPSERT optional Update policy for existing ids.
parentMembers boolean true optional Re-parent resolved members under the folder (first folder wins).
Returns:
Load summary, including `dangling` and `alreadyParented` counts.

loadGeoJSON(geojsonData, options)Promise.<object>

Load GeoJSON and merge into target collection.
Name Type Description
geojsonData Resource | string | object GeoJSON input.
options object optional Per-load options.
Returns:
Load summary.

loadIDM(instrumentData, options)Promise.<object>

Load standalone `$IDM` instrument records.
Name Type Description
instrumentData Uint8Array | ArrayBuffer | string | object | Array.<object> `$IDM` bytes, a size-prefixed stream, JSON, or records.
options object optional Load options.
Name Type Default Description
entityCollection EntityCollection optional Target collection.
updatePolicy number UpdatePolicy.UPSERT optional Update policy for existing ids.
host string | Entity optional Site entity (or its id) these instruments stand at.
Returns:
Load summary.

loadKML(kmlData, options)Promise.<object>

Load KML and merge into target collection.
Name Type Description
kmlData Resource | string | Document | Blob KML input.
options object optional Per-load options.
Returns:
Load summary.

loadOCM(ocmData, options)Promise.<object>

Load OCM data.
Name Type Description
ocmData object | Array.<object> OCM input.
options object optional Per-load options.
Returns:
Load summary.

loadOEM(oemData, options)Promise.<object>

Load OEM data.
Name Type Description
oemData Array.<object> | string | ArrayBuffer | Uint8Array OEM input.
options object optional Per-load options.
Returns:
Load summary.

loadOMM(ommRecords, options)Promise.<object>

Load OMM records with batch propagator initialization.
Name Type Description
ommRecords Array.<object> | string | ArrayBuffer | Uint8Array OMM input.
options object optional Per-load options.
Returns:
Load summary.

loadSIT(siteData, options)Promise.<object>

Load `$SIT` site records as positioned entities, with their integrated devices as child entities.
Name Type Description
siteData Uint8Array | ArrayBuffer | string | object | Array.<object> `$SIT` bytes, a size-prefixed stream, JSON, or records.
options object optional Load options.
Name Type Default Description
entityCollection EntityCollection optional Target collection.
updatePolicy number UpdatePolicy.UPSERT optional Update policy for existing ids.
loadIntegratedDevices boolean true optional Create child entities for INTEGRATED_DEVICES.
sensorGraphics boolean true optional Draw a custom sensor for every instrument that publishes an azimuth/elevation mask.
sensorRadius number 1000000 optional Sensor volume radius in metres.
sensorAzimuthStep number 2 optional Azimuth sampling step of the sensor boundary, degrees.
Returns:
Load summary.

parseRFBRecords(payload)Array.<object>

Decode a `$RFB` payload into normalized emitter metadata WITHOUT binding it to an entity. Accepts the same shapes as StandardsLoader#attachRFBToEntity (single `$RFB` FlatBuffer, size-prefixed `$RFB` stream, RFB JSON, arrays). Exists so consumers never have to reach for the FlatBuffers reader themselves: emitter pickers and band filters read records long before any of them is bound to an entity.
Name Type Description
payload Array.<object> | Uint8Array | ArrayBuffer | string RFB payload.
Returns:
Normalized RFB metadata records.
Example:
const bytes = new Uint8Array(await (await fetch(streamUrl)).arrayBuffer());
const sBand = loader.parseRFBRecords(bytes).filter((r) => r.BAND === "S");

queryEntityIdsByName(query, maxCount, options)Array.<string>

Query entity IDs by name/id across the full target collection.
Name Type Default Description
query string Text query.
maxCount number 100 optional Max ids to return.
options object optional Query options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
Matching ids.

queryEntityIdsBySql(sql, maxCount, options)Array.<string>

Execute an arbitrary shared SQL query and extract unique entity ids from the projected `entity_id`/`ENTITY_ID` column.
Name Type Default Description
sql string SQL query text.
maxCount number 100 optional Max ids to return.
options object optional Query options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
Matching entity ids.

queryEntityRowsByName(query, maxCount, options)Array.<object>

Query entity rows by name/id across the full target collection.
Name Type Default Description
query string Text query.
maxCount number 100 optional Max rows to return.
options object optional Query options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
Matching rows.

queryEntityRowsBySql(sql, maxRows, options)Array.<object>

Execute an arbitrary shared SQL query against the target collection's FlatSQL-backed entity metadata table.
Name Type Default Description
sql string SQL query text.
maxRows number 1000 optional Max rows to materialize.
options object optional Query options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
Query rows.
Build a visibility mask by name/id across the full target collection.
Name Type Description
query string Text query.
options object optional Query options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
Visibility result.
Execute an arbitrary shared SQL query and build a visibility mask from the projected `entity_id`/`ENTITY_ID` column.
Name Type Description
sql string SQL query text.
options object optional Query options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
Visibility result.

registerQueryConsumer(options)number|undefined

Register the target collection as a shared standards-query consumer.
Name Type Description
options object optional Consumer options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
Stable consumer handle.

setAssociationKeyStrategy(entityType, strategy)

Set association key strategy for one entity type.
Name Type Description
entityType string Entity type name.
strategy function | Object.<string, function()> Association strategy function or per-schema map.

setRecordIdentityStrategy(schema, strategy)

Set one schema mutation-key strategy.
Name Type Description
schema string Standards schema.
strategy function Record-identity strategy.

setSchemaEntityType(schema, entityType)

Set one schema → entity-type mapping.
Name Type Description
schema string Standards schema.
entityType string Entity type name.

setSchemaEntityTypeMap(schemaEntityTypeMap)

Replace schema → entity-type map used for association lookup routing.
Name Type Description
schemaEntityTypeMap Object.<string, string> Mapping object.

setStreamFrameAdapter(fileId, adapter)

Set one framed stream adapter.
Name Type Description
fileId string FlatBuffer file ID token (for example "$OEM").
adapter function | null Adapter function, or null to remove mapping.

setStreamFrameAdapterMap(streamFrameAdapterMap)

Merge framed stream adapter mappings.
Name Type Description
streamFrameAdapterMap Object.<string, function()> Mapping from file ID (for example "$OMM") to adapter function.

setStreamFramePolicy(fileId, policy)

Set one framed stream policy.
Name Type Description
fileId string FlatBuffer file ID token.
policy Object | boolean | null Policy object/boolean, or null to remove mapping.

setStreamFramePolicyMap(streamFramePolicyMap)

Merge framed stream policy mappings.
Name Type Description
streamFramePolicyMap Object.<string, (Object|boolean)> Mapping from file ID to policy.

unregisterQueryConsumer(options)boolean

Unregister the target collection from shared standards-query updates.
Name Type Description
options object optional Consumer options.
Name Type Description
entityCollection EntityCollection | Viewer optional Optional override collection.
Returns:
True when a registered consumer was removed.
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.