1 unstable release
0.2.1 | Dec 15, 2021 |
---|
#8 in #voltage
47KB
951 lines
comtrade - Pure Rust library for parsing and manipulating COMTRADE files.
Warning: this library is a WIP and not yet ready for production usage.
This library provides a native Rust library for parsing COMTRADE (Common format for Transient Data Exchange for power systems) files, containing oscillography and status data for power system disturbances.
Implementation status
Task | Status |
---|---|
Implement parsing .cfg files (encoded in ASCII) | Working (1991, 1999, 2013) |
Implement parsing .cfg files (encoded in UTF-8) | May work? Need to test. |
Implement parsing .cfg files (encoded in other encodings such as latin1) | Todo |
Implement parsing ACSII data files | Working |
Implement parsing binary16 data files | Todo |
Implement parsing binary32 data files | Todo |
Implement parsing float32 data files | Todo |
Implement loading separate files from combined 2013 .cff format. |
Working (1991, 1999, 2013) |
Implement retrieval of actual analog data values using primary vs. secondary factors, offsets, etc. | Todo |
Implement calculation of real time based on skews, time multipliers, etc. | Todo |
Getting started
Todo: once ready, deploy to crates.io.
Usage
Todo: document usage.
Todo
- Current test files all have only one sample rate - can I find a COMTRADE file with > 1 sample rate for purpose of testing comprehensiveness?
- Clean up error messages - maybe have consistent format including filename and line number?
- No test files with continuously variable sample rate.
- Go through all values in CFG and check whether they're critical or non-critical - missing non-critical data should trigger warning but not failure.
- Add test files with missing non-critical data.
- Add ability to write back out again as COMTRADE files with various options.
- Add warnings for unexpected values (but not errors) for things like channel numbers not adding up, etc.
Dependencies
~6.5MB
~116K SLoC