Getting Started
Pydre is a Python application, run from the command line.
pydre.run
The main entry point to run Pydre is pydre.run
. This application that allows the user to analyze data using command line arguments.
The user must enter the path for the project file and data file in order to aggregate the data. The user has the option of specifying an output file name, to which the test results will be saved. If no output file name is given the output will save to "out.csv" by default. A brief description of the aforementioned arguments is offered below.
Command Line Arguments for pydre.run
-
Project File [-p]: The project file specifies a file for the regions of interest from which the data should be aggregated. It also specifies a list of metrics (the type of data) that will be aggregated from the regions of interest.
-
Data File [-d]: The data file contains the raw metrics obtained from the simulation. This argument supports wildcards.
-
Output File [-o]: After the script has executed, the output file will display the aggregated metrics from the regions of interests that were both specified in the project file. The output file will be saved in the same folder as the script.
-
Logger level [-l]: This defines the level the logger will print out. The default is 'warning'. Options include debug, info, warning, error, and critical.
Command Line Syntax:
python -m pydre.run -p [project file path] -d [data file path]
-o [output file name] -l [warning level]
Example execution:
python -m pydre.run -p C:\Users\pveith\Documents\pydre\docs\bioptics.json
-d C:\Users\pveith\Documents\bioptics\pydreDataSet\*.dat
-o bioptics.csv -l debug
Example data processing
Source files
We'll walk through the creation of a project file and running that project file on an example data file.
DatTime | SimTime | MediaTime | LonAccel | LatAccel | Throttle | Brake | Gear | Heading | HeadwayDistance | HeadwayTime | Lane | LaneOffset | RoadOffset | Steer | Velocity | XPos | YPos | GazeObj |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1.1 | 9.1 | 5.2 | 0.014943 | 0.020915 | 0 | 0 | 3 | 0.116032 | 10000 | 486.5342 | 2 | 0.1 | 5.1 | 0.003261 | 20.55353 | -6470.89 | 14.6 | InstrumentCluster |
2.1 | 10.1 | 6.2 | 0.017797 | 0.020037 | 0 | 0 | 3 | 0.116593 | 10000 | 486.5269 | 2 | 0.12 | 5.12 | 0.003104 | 20.55384 | -6460 | 15.1 | InstrumentCluster |
3.1 | 11.1 | 7.2 | 0.019815 | 0.019082 | 9.814428 | 0 | 3 | 0.117187 | 10000 | 486.5185 | 2 | 0.15 | 5.15 | 0.002947 | 20.5542 | -6449.11 | 14.6 | None |
4.1 | 12.1 | 8.2 | 0.02161 | 0.017984 | 9.814428 | 0 | 3 | 0.11781 | 10000 | 486.5088 | 2 | 0.2 | 5.2 | 0.002633 | 20.55461 | -6438.21 | 14.65 | None |
5.1 | 13.1 | 9.2 | 0.023096 | 0.016835 | 0 | 4.3 | 3 | 0.118379 | 10000 | 486.4993 | 2 | 0.2 | 5.2 | 0.002319 | 20.55501 | -6427.32 | 15.2 | None |
The example file is only five rows of a data file, where real data files are tens of thousands of lines. Also, this is synthetic data, for example purposes only, not real data from a driving simulator run.
Goals
Say you wanted to find the standard deviation of lane position (SDLP) for this data. Pydre comes with a standard deviation metric function, so you can use that. To do that, you would write a project file like so:
[metrics.SDLP]
function = "colSD"
var = "LanePosition"
colSD
function requires a parameter var
that is the column name in the dat files to calculate the SD over.
After saving the project file, you can then run:
python -m pydre.run -p tutorial_project.toml -d Experimenter_S1_Tutorial_11002233.dat -o tutorial_out.csv
This will run the project commands on the specified data file and out the result in tutorial_out.csv
. If you wanted to run on multiple data files, you could do -d *.dat
or -d ../datafiles/tutorialdata/*.dat
or something similar. Since we have no ROIs, the output csv will contain one row per input data file:
Subject | Mode | ScenarioName | UniqueID | ROI | SDLP |
---|---|---|---|---|---|
S1 | Experimenter | Tutorial | 11002233 | 0.04560701700396553 |
In this example, ROI is blank since we did not specify any ROIs. The metric column header is "SDLP", since we defined it under the category "metrics.SDLP" in the TOML project file.