C-compiled
A detailed usage guide for using compiled catch22 executables.
Last updated
A detailed usage guide for using compiled catch22 executables.
Last updated
Select a card below to access C-compiled-specific usage information.
Note: In order to compile the C source files, you will need to ensure you have GCC
installed on your system. MacOS users can follow these instructions to install GCC using homebrew. In most Linux distributions, GCC comes pre-installed, however if it is unavailable, it can be easily installed using sudo apt-get install gcc.
Windows users can follow these instructions to install the MSYS2 platform which includes support for GCC.
To get started with using catch22, clone the repository to a location of your choice using the following command in Bash/CMD
:
Navigate to the folder called c
in the cloned repository (catch22/C
) and compile the C source files into a single executable named run_features.
Choose your operating system from one of the tabs below to access OS-specific instructions:
After having installed on your system, launch the UCRT64 environment by running UCRT64.exe
(not MSYS2.exe
). You will see a terminal that looks like this:
Install the mingw-w64 GCC
to start compiling catch22. You can do this by running the following command:
Now you can call gcc
as you would from the MacOS or Linux platforms to compile the catch22 source files. First navigate to the folder containing the C source files from within the emulated environment:
Next, compile the source code using the following gcc
command:
If the source code compiled successfully, you should now see an executable called run_features.exe
in your folder. If you wish, you can copy this executable to a new folder to run catch22 with your time series data. See our usage guide for more information.
Here we outline how you can jump straight into computing catch22 features on your time series data with a basic usage example.
The compiled run_features
program only takes one time series at a time. Time series data are expected to be in the .txt
or .csv
file format. Each file contains one univariate time series and each line in the file corresponds to a single time series observation i.e., 12 lines for a time series of length 12:
To use catch22, launch a terminal and run:
Note, this will be an executable (e.g., run_features.exe) for Windows users. Here, specifying <outfile>
is optional. If you do not wish to supply a file for saving the outputs, catch22 will print to stdout
by default.
As an example, here we run catch22 on a simple sinusoidal time series with 5000 observations (i.e., length T = 5000), provided as a .txt
or .csv
file:
Here we tell catch22 to store the results of the calculation in a.txt
file called "testSinusoidOutput.txt". Note that we can also save the results as a comma separated values (.csv
) file.
Each line of the output (either saved or printed to the terminal) corresponds to one feature; the three comma-separated entries per line correspond to feature value, feature name and execution time in milliseconds in the following format:
For example:
And that's it! You now have all the knowledge you need to apply catch22 to your time series data. To access some of the additional functionality of catch22, keep reading for advanced usage tips and examples.
Ready to explore some of the additional functionality of catch22?
If the location and spread of the raw time series distribution may be important for your application, you can enable catch24.
Catch24 is an extension of the original catch22 feature set to include mean and standard deviation, yielding a total of 24 time series features. To access catch24, when using the run_features
executable, the user will be prompted to enter either 0
(catch22) or 1
(catch24).
A typical analysis may involve more than one time series (e.g., classification). To run catch22 on multiple univariate time series, do the following:
For multiple time series, put them - one file for each - into a folder timeSeries
. Ensure that the script runAllTs.sh
is in the same location as thetimeSeries
folder.
Change the permissions of runAllTS.sh
to executable by calling chmod 755 runAllTS.sh:
Call the executable using the following command to compute catch22 features on each of the time series:
The output (one output file per input file) will be written to a folder featureOutput
:
Click one of the expandable tabs below to explore commonly asked questions about pycatch22: