NHTSA Signal Processing Software
This is an updated collection of the U.S. Department of Transportation, National Highway Traffic Safety Administration (NHTSA) Fortran signal processing applications that can be found on the NHTSA Tools Fortran page. These applications are not actively maintained by NHTSA but are still very useful for working with crash test data and related applications. There is some overlap with the NHTSA Signal Analysis Software applications but there are applications here not in that package and those GUI applications lack the batch processing capability of these console tools.
This package of the NHTSA applications has been updated in a few ways:
- The source code has been modernized and some bugs have been fixed.
- Array size limits have been increased.
- The code has been organized with a cross-platform configuration/build system.
- Support for building on modern Windows and Linux platforms is included.
Applications
The applications primarily work with NHTSA UDS-1992 format signal files but there are programs to convert to and from UDS format. The applications support batch processing via "hit lists" of files (which can be generated by LisGen) and wildcard file specifications.
The applications include:
- UDS file display: UDSDump
- UDS creation: UDSTool
- Conversion to UDS: ASC2UDS, ATB2UDS, MADY2UDS
- Conversion from UDS: UDSConv, UDS2XY, UDS2Y, UDS92
- UDS specification modifications: UDSMod, UDSTool
- Integration (Integ) and Differentiation (Diffr).
- Signal modification: Clip, Shift, Trunc.
- Signal combinations: Multiply, Sum, Subtract, Resultant (Result), Ratio, MaxDiff, and RMSDiff.
- Signal filtering: BWFilt, FIR100, IIR, and SimFil.
- Special values: Head Injury Criterion (HIC) and Viscous Criterion (VC).
- Crash signal refinement: VeCor and RmBias
- Plotting: LJPlot (LaserJet PCL language)
- Batch processing support: LisGen
There is also a Perl interface in the Perl directory under bin.
UDS Files
UDS files are a portable binary format used at NHTSA OCR for crash test signal data. The format is detailed in the infomation in the doc directory.
Configuration
The command line development environment is configured on Windows and Linux by running the setProject script for the desired platform, compiler, and build.
- The setProject script should be run done from a fresh console so that any previous configuration doesn't carry over.
- The configuration setup no longer supports 32-bit builds but that could easily be added.
- Python is needed for the makedep.py depdency script. The configuration uses a setPython.64 script to find Python and set up Python environment variables. Python 2.7.x or 3.6.x are supported but adding support for other Pythons would be straightforward: copy the setPython.64 script to a directory early on your PATH and modify it as needed.
Once setProject is run you can build as described below.
Building
The build system uses GNU make. The makefile system uses advanced features of GNU make for a zero-maintenance design.
- On MinGW the make program must be copied to make.exe in a directory on your PATH.
Instructions for building on Linux and Windows follows.
Linux
To build the NHTSA applications on Linux:
cd <path_to_repository>
- GFortran:
source bin/Linux/GCC/64/r/setProject
for release builds orsource bin/Linux/GCC/64/d/setProject
for debug builds - Intel Fortran:
source bin/Linux/IC/64/r/setProject
for release builds orsource bin/Linux/IC/64/d/setProject
for debug builds cd src/lib
mak
to build the librarycd src/app
mak
to build the applications
Windows
To build the NHTSA applications on Windows:
cd <path_to_repository>
- GFortran:
bin\Windows\GCC\64\r\setProject
for release builds orbin\Windows\GCC\64\d\setProject
for debug builds - Intel Fortran:
bin\Windows\IC\64\r\setProject
for release builds orbin\Windows\IC\64\d\setProject
for debug builds cd src\lib
mak
to build the librarycd src\app
mak
to build the applications
Running
The executables are designed to be run as console applications. Documentation for the applications is in the doc directory. Command line syntax for each application can be obtained by entering /? or -? or ?. Full usage information can be obtained by entering /?? or -?? or ?? or /help or -help or help.
License
The software has been publicly released by NHTSA with no license restrictions. This repository adds no license restrictions on its use.