Welcome to JSON Time Series (JTS) for Python’s documentation!
Library reference
- class json_timeseries.TsRecord(timestamp: datetime, value: float | str | int, quality: int = None, annotation: str = None)[source]
A record of TimeSeries object
- Parameters:
timestamp (datetime) – Timestamp
value (Union[float, str, int]) – Value
quality (int) – Quality
annotation (str) – Annotation
- class json_timeseries.TimeSeries(name: str, units: str = None, identifier: str = 'd684970c-3de1-40ea-a655-7cd66cf51be4', data_type: str = 'NUMBER', records: List[TsRecord] | TsRecord = None)[source]
TimeSeries object
- Parameters:
data_type (str, optional) – Type of time series. E.g.: ‘NUMBER’, ‘TEXT’, ‘TIME’, ‘COORDINATES’
records (list, optional) – List of records
name (str) – Time series name
identifier (str, optional) – Time series ID. Autogenerated as UUID4 if not specified
- class json_timeseries.JtsDocument(series: List[TimeSeries] | TimeSeries = None, version: str = '1.0')[source]
JTS document object
- Raises:
[TypeError] – [Value of ‘series’ must be types of TimeSeries or List[TimeSeries]]
- addSeries(series: List[TimeSeries] | TimeSeries)[source]
Add single or multiple TimeSeries
- static fromJSON(json_str: str) JtsDocument [source]
Create a new jtsDocument from JSON
- getSeries(identifier: str) TimeSeries [source]
Get series by id
JSON Time Series
JSON Time Series (JTS specification) handling Python library - Time Series data construction, manipulation and serialisation.
Installation
pip install json-timeseries
Import or require module
from json_timeseries import TsRecord, TimeSeries, JtsDocument
Usage
from json_timeseries import TsRecord, TimeSeries, JtsDocument
from datetime import datetime
# Create Time Series
timeseries1 = TimeSeries(identifier='series_1', name='Series 1', data_type='NUMBER',
records=[
TsRecord(**{"timestamp": datetime.now(), "value": '1.23', "quality": 192, "annotation": 'comment'}),
TsRecord(**{"timestamp": datetime.now(), "value": '2.34', "quality": 245, "annotation": 'comment number 2'})])
timeseries2 = TimeSeries(identifier='series_2', name='Series 2', data_type='NUMBER', units="C",
records=TsRecord(timestamp=datetime.now(), value=1.11, quality=111, annotation="comment ts2 111")
)
# Add record(s)
timeseries1.insert(TsRecord(**{ timestamp: datetime.now(), value: 30 }))
# Output in JSON Time Series document format
jts_doc = JtsDocument([timeseries1, timeseries2])
json_str = jts_doc.toJSONString()
TimeSeries
TimeSeries
is a class for constructing and manipulating a single dataset.
from json_timeseries import TsRecord, TimeSeries
from datetime import datetime
time_series = TimeSeries(identifier='series_2', name='Series 2', data_type='NUMBER', units="m/s",
records=TsRecord(timestamp=datetime.now(), value=1.11, quality=0, annotation="example comment")
)
Options
Optionally provide configuration used for certain output formats such as JTS Document.
data_type
: data type of record value attribute.NUMBER | TEXT | TIME | COORDINATES
id
: string or number to uniquely identify the series to use instead of the automatically assigned id.name
: stringunits
: stringrecords
: list of data records
Alternatively set later:
time_series.data_type = 'NUMBER'
time_series.id = 'Series_1'
time_series.name = 'My Series'
time_series.units = 'm/s'
TsRecord
TsRecord
is a class for constructing and manipulating a single record.
from json_timeseries import TsRecord
from datetime import datetime
ts_record1 = TsRecord(timestamp=datetime.now(), value=1.11, quality=0, annotation="example comment")
# Or as dict of parameters using ** operator
ts_record2 = TsRecord(**{"timestamp": datetime.now(), "value": 1.11, "quality": 0, "annotation": 'example comment'})
Record attributes
Records require a timestamp and at least one attribute: value, quality or annotation
timestamp
: date object. Type of datetime. e.g.``datetime.now()``value
(optional): number, string, date, nullquality
(optional): number (quality code) associated with valueannotation
(optional): string description or comment related to the record
Methods
See full documentation.
Properties
See full documentation.
JTS Document
JtsDocument
is a class for outputting TimeSeries
in
JSON Time Series document format.
# Create a JTS Document from one or more timeseries
jts_document = JtsDocument(series=[timeseries1, timeseries2])
# Output series in JTS Document format
json_str = jts_document.toJSONString()
Options
series
: array ofTimeSeries
to include in JTS Document
Methods
See full documentation.
Properties
See full documentation.
License
MIT