SingleTimeSeries

Package: InfrastructureTimeSeriesOpenAPIModels · Source: TimeSeries/SingleTimeSeries.json

A static time series on a regular grid: values at initial_timestamp + k * resolution. One of a closed set of six canonical time series types owned by the data layer. This schema records the association and its metadata; the dense values live in the store named by uri.

Properties

Property Type Required Unit Description
association_id integer yes Surrogate id of this association, minted by the store that holds it. Assigned once when the association is created and never changed: renaming the series or reassigning its owner leaves it alone, so a consumer may persist it as a durable reference. Ids are never reused, and they are store-local — resolve one against the same store the document was exported from, not against an independently built store. Assigned by the store, never by a document author.
owner_id integer yes ID of the owning component or supplemental attribute. The producing data layer allocates both from one id stream, so an owner_id never collides across the two categories; owner_category remains required because the store’s catalog contract still supports independent streams from other producers, and it is still the store’s disambiguator.
owner_type string yes Type name of the owning entity. Descriptive, not part of the series’ identity.
owner_category string (OwnerCategory) yes Whether the owner is a component or a supplemental attribute.
time_series_type string yes Discriminator. Fixed to SingleTimeSeries for this schema, pinned with const to match this repo’s existing discriminators (Core/common.json’s curve_type), which generate a plain string literal in both toolchains.
name string yes Time series name (e.g. max_active_power). Part of the series’ identity, and often carrying a disambiguating suffix; component_field records what the values are for.
features TimeSeriesFeatures yes User-defined key/value tags that are part of the series’ identity: two series differing only by a feature are distinct series. Feature names that collide with a field of a series or of the tuple addressing one are rejected.
uri string yes Locator for the dense data, unique within one store. No required format — typically a file path or an HDF5 dataset path; the backing store decides what it means and resolves it (infrastore uses its content hash as this value). Never parsed or interpreted here. This layer records where the values are, never the values.
data_hash string Content hash of the stored array: SHA-256, hex-encoded. Optional — not every producer computes it.
element_type string yes What one timestep’s values mean and how they are laid out. The physical dtype of the stored bytes derives from this and is not recorded separately. Unlike units and quantity_kind this is not a user-facing label — the writing package derives it from the array.
element_shape array of integer yes Per-step element shape: the trailing dims after time. An empty array means a scalar element.
array_shape array of integer Full native shape of the stored array, in the order the store holds it: the first axis is the array’s length and the trailing axes end with element_shape. Static types are [length, *element_shape]; a deterministic forecast stacks windows as [horizon_count, count, *element_shape]; probabilistic and scenarios forecasts add a percentile or scenario axis in front of that. Optional, and redundant for the static types, where it is exactly [length] + element_shape. It earns its place on the forecasts, whose array layout is a convention the producing package owns rather than a rule this layer enforces, so the stored geometry cannot be reconstructed from horizon, count, percentiles, and scenario_count alone. A consumer that has it should prefer it; one that does not falls back to those fields, which is exact for the static types and a best effort for the forecasts.
units string Unit label for the series values. Set by whoever creates the series and returned unchanged; not part of the series’ identity, so two series differing only in this label are duplicates. Meaningless on its own when unit_system is a per-unit basis, where the values are dimensionless. By convention drawn from the unit vocabulary in Core/units.json, though this field is a free-text label the store does not validate against it.
quantity_kind string Kind of physical quantity the values measure (e.g. ActivePower, ReactivePower, ElectricalEnergy). Coarser than units but finer than a dimension: ActivePower, ReactivePower, and ApparentPower share the dimension {M:1,L:2,T:-3}, so a dimension cannot tell them apart and a quantity kind can. It is also the only record of what the values measure when unit_system is a per-unit basis.
unit_system string (UnitSystem) Basis the series values are already expressed in. A declaration, not a conversion: nothing here rescales values, and converting a COMPONENT_BASE series back to natural units needs the owning component’s base_power. Absent means unspecified, which is deliberately not the same as NATURAL_UNITS.
time_reference string How this series’ timestamps were spelled, so a read hands back what the write declared instead of relabelling everything UTC. Absent means unspecified, which is not a claim the timestamps were written as UTC.
component_field string The field on the owning component or supplemental attribute whose value these values are the time-varying form of (e.g. max_active_power, rating). Free-form: it names a field in the consumer’s own object model. Records what the values are for, where name only says which series they are.
application_data string Opaque, package-owned payload (typically JSON) carried verbatim for an application to reconstruct its own domain objects. Never parsed or interpreted here, and end users are not expected to set it. Element typing does not belong here — that is element_type.
initial_timestamp string yes First timestamp of the regular grid; every later step lands at initial_timestamp + k * resolution. An RFC3339 string with at most 3 fractional-second digits: the store’s floor is one millisecond, matching Julia’s millisecond-precision DateTime.
resolution string yes Cadence of the regular grid. Always present for a SingleTimeSeries, and part of the series’ identity.
length integer yes Number of timesteps.

This site uses Just the Docs, a documentation theme for Jekyll.