3

I have a file in Leica's SOL Sensor Trajectory Format (the filename has the pattern yyyymmdd_HHMMSS.sol) which I'd like to read. Can anyone point me to documentation on the format? Supposedly it stores information on the trajectory of an aircraft (similar to an sbet file). I've got as far as determining that there are 184 bytes per record and locating where in the record the latitude and longitude are stored. However, I'd prefer to avoid guessing what the other fields are.

3

The SBET and SOL files have identical very different file structures. I use a python script to parse both SBET and SOL files. The script I use was modified from original NERC-ARF Tools.

EDIT: I didn't dig enough before answering. You are correct about the file size of 184 bytes, which follows with the NERC-ARF file structure. Each record has a 'header' so you have to read the header and record to get the whole picture. The structure is below:

# RECORD STRUCTURE  C-type          bytes
# preamble_0        unsigned char   1
# preamble_1        unsigned char   1
# message_length    unsigned short  2
# version           unsigned char   1
# data_version      unsigned char   1
# source_id         unsigned char   1
# destination_id    unsigned char   1
# status            unsigned char   1
# reserved          unsigned char   1
# transaction_id    unsigned short  2
# message_id        unsigned short  2
# time_type         unsigned char   1
# time_type_2       unsigned char   1
# gps_week_number   unsigned short  2
# time              double          8
# time_2            double          8
# header_checksum   unsigned char   1
# datum             unsigned short  2
# solution_origin   unsigned short  2
# solution_level    unsigned short  2
# solution_status   unsigned char   1
# lat               double          8
# lon               double          8
# alt               double          8
# std_dev_lat       float           4
# std_dev_lon       float           4
# std_dev_hgt       float           4
# roll              double          8
# pitch             double          8
# heading           double          8
# std_dev_roll      float           4
# std_dev_pitch     float           4
# std_dev_true_head float           4
# nsspeed           double          8
# ewspeed           double          8
# vertspeed         double          8
# std_dev_nVelocity float           4
# std_dev_eVelocity float           4
# std_dev_zVelocity float           4
# roll_rate         double          8
# pitch_rate        double          8
# heading_rate      double          8
# geoid_undulation  float           4
# geoid_model       unsigned char   1
# padding           signed char     1
# crc32             long            4
#                                 184 TOTAL BYTES
3
  • Thanks for the input. Unfortunately the .sol file I have isn't in this format -- interpreting all the bytes as doubles results in mostly garbage. I presume that it holds pretty much the same data but packed in a different way. – cffk Jul 30 '17 at 0:42
  • Later... I checked out NERC-ARF read_nav_file.py and indeed sol files do have the data arranged differently. I'll check whether this matches the layout in my file. – cffk Jul 30 '17 at 14:06
  • @cffk See my edits. – Barbarossa Aug 1 '17 at 15:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.