See: Description
| Package | Description |
|---|---|
| tsdb |
Root package of TubeDB with central class
TsDB. |
| tsdb.component |
Contains components that are independent of TsDB class.
|
| tsdb.component.iterator |
Iterators that depend on component.
|
| tsdb.component.labeledproperty | |
| tsdb.dsl | |
| tsdb.dsl.computation | |
| tsdb.dsl.formula | |
| tsdb.explorer |
Contains
Explorer as JavaFX desktop application. |
| tsdb.explorer.metadata |
Provides GUI meta data views.
|
| tsdb.graph |
Contains functionality to build and process graphs that consisting of nodes.
|
| tsdb.graph.node |
Provides interfaces for processing graph nodes.
|
| tsdb.graph.processing |
Provides node implementations to build processing graphs.
|
| tsdb.graph.source |
Provides time series data source nodes to build processing graphs.
|
| tsdb.iterator |
Provides iterators for time series data processing.
|
| tsdb.loader.bale | |
| tsdb.loader.be |
Project specific timeseries data file import.
|
| tsdb.loader.burgwald | |
| tsdb.loader.ki |
Project specific timeseries data file import.
|
| tsdb.loader.ki.type |
Project specific timeseries data file import for specific logger types.
|
| tsdb.loader.mm |
Generic timeseries data ASC-file import.
|
| tsdb.loader.sa |
Project specific timeseries data file import.
|
| tsdb.loader.sa_own |
Project specific timeseries data file import.
|
| tsdb.remote |
Provides functionality to access TubeDB from remote.
|
| tsdb.run |
Provides entry points to start TubeDB.
|
| tsdb.run.command | |
| tsdb.streamdb |
Provides with
StreamDB storage for time series. |
| tsdb.testing |
Internal testing.
|
| tsdb.usecase |
internal use cases of TubeDB.
|
| tsdb.util |
Provides base functionality that is independent of TubeDB.
|
| tsdb.util.gui |
Provides image creation functionality for TubeDB GUI.
|
| tsdb.util.iterator |
Provides Iterator specializations for time series data.
|
| tsdb.util.processingchain |
Provides meta data for time series iterators to visualize the chain of connected iterators that a processing graph produces.
|
| tsdb.util.yaml |
Provides functionality for YAML-files.
|
| tsdb.web |
Provides HTTP web functions for TubeDB.
|
| tsdb.web.api |
Provides HTTP handlers of web API methods.
|
| tsdb.web.generator |
Simple generator of HTML pages.
|
| tsdb.web.util |
Provides web specific utilities.
|
TubeDB consist of several components:
StreamDBtsdb.web.apitsdb.graphtsdb.loadertsdb.explorer RemoteTsDB or directly by TsDB instance.
RemoteTsDB.
RemoteTsDB connects to an remote instance of TsDB by Java RMI. In the example a direct connection is used.
try(TsDB tsdbInternal = TsDBFactory.createDefault()) { // AutoCloseable instance created by TsDBFactory with default configuration file location
RemoteTsDB tsdb = new ServerTsDB(tsdbInternal); // create RemoteTsDB interface instance to local TsDB
String queryType = null;
String plotID = "HEG01";
String[] sensorNames = new String[]{"Ta_200", "rH_200"};
AggregationInterval aggregationInterval = AggregationInterval.MONTH;
DataQuality dataQuality = DataQuality.EMPIRICAL;
boolean interpolated = true;
Long start = TimeUtil.ofDateStartHour(2010);
Long end = TimeUtil.ofDateEndHour(2015);
TimestampSeries ts = tsdb.plot(queryType, plotID, sensorNames, aggregationInterval, dataQuality, interpolated, start, end); // query time series
System.out.println(ts);
for(GeneralStationInfo info:tsdb.getGeneralStations()) { // query meta data
System.out.println(info.longName);
}
}
TsDB and manual processing graph creation.
tsdb.graph and with helper methods in QueryPlanGenerators and QueryPlan.
try(TsDB tsdb = TsDBFactory.createDefault()) {
String stationName = "HEG01";
String[] sensorNames = new String[]{"Ta_200", "rH_200"};
AggregationInterval aggregationInterval = AggregationInterval.MONTH;
Long start = TimeUtil.ofDateStartHour(2010);
Long end = TimeUtil.ofDateEndHour(2015);
Station station = tsdb.getStation(stationName); // get station
Node rawNode = StationRawSource.of(tsdb, station, sensorNames); // create raw source node
StationBase baseNode = StationBase.of(tsdb, rawNode); // create base aggregated (hourly value) node
Continuous continuousNode = Continuous.of(baseNode); // fill gaps in time with NA entries
Aggregated aggregatedNode = Aggregated.of(tsdb, continuousNode, aggregationInterval); // aggregate data to months
TsIterator it = aggregatedNode.get(start, end); // create iterator of processing graph
System.out.println(it.getProcessingChain().getText()); // print processing graph
while(it.hasNext()) { // on demand process and print time series
System.out.println(it.next());
}
aggregatedNode.get(start, end).writeCSV(TsDBFactory.get_CSV_output_directory()+"data_month.csv"); // reuse processing graph and write time series directly to CSV-file
rawNode.get(start, end).writeCSV(TsDBFactory.get_CSV_output_directory()+"data_raw.csv"); // reuse processing graph and write raw time series directly to CSV-file
}