Skip to content

This repository stores the code for the post-processing code for the Airborne Radio Collar Tracker project.

Notifications You must be signed in to change notification settings

anthonykoutroulis/radio_collar_tracker

 
 

Repository files navigation

radio_collar_tracker

Airborne Wildlife Radio Collar Tracker

Engineers for Exploration, UCSD Project

Installing the Post-Process Code

  1. Install Dependencies:
  2. Make and install rct_cas
    make all
    sudo make install

In all, a typical Ubuntu-based installation might look like this:

sudo apt-get install build-essential python-tk python-numpy python-matplotlib python-pip python-dev git python-scipy
wget ftp://ftp.fftw.org/pub/fftw/fftw-3.3.4.tar.gz
wget https://pypi.python.org/packages/source/u/utm/utm-0.4.0.tar.gz
wget http://download.osgeo.org/gdal/2.1.0/gdal-2.1.0.tar.gz
tar -xzf fftw-3.3.4.tar.gz
cd fftw-3.3.4
./configure --enable-threads
make
sudo make install
cd ..
tar -xzf utm-0.4.0.tar.gz
cd utm-0.4.0
sudo pip install -e .
cd ..
tar -xzf gdal-2.1.0.tar.gz
cd gdal-2.1.0
./configure --with-python
make
sudo make install
cd ..
sudo ldconfig
git clone https://github.com/UCSD-E4E/radio_collar_tracker
cd radio_collar_tracker
make
sudo make install

Running the Post-Process Code

  1. Execute rct_cas.

Output and Intermediate Data Format

Concatenated IQ Data

The utility CLI_GUI/cat_relevant.py concatenates the relevant raw IQ data files together, in order to reduce the amount of computation required by the post-processing code. The resultant file is named RUN_[run_num].raw, where run_num is a six character field containing the run number, zero padded. This file contains the raw IQ data from the start of recording until the sample recorded at the same time as the last GPS datapoint. This data is stored as pairs of 8-bit unsigned integers, with each pair representing the in-phase and quadrature components of the recorded signal. See https://en.wikipedia.org/wiki/In-phase_and_quadrature_components for an overview of IQ signal representation.

Processed IQ Data

The utility fft_detect/fft_detect transforms the raw time-domain IQ data into its frequency-domain representation, and isolates a single frequency from that. It loads the concatenated IQ data, and performs an FFT on 1024 sample wide windows. From the resultant complex frequency spectrum, fft_detect records the proper frequency bin. This frequency bin amplitude is stored as a 32-bit IEEE float. The resultant signal has a sampling frequency of 2 kSps, and each sample represents the amplitude of the signal at the requested frequency, that is, the time-averaged amplitude of the real signal's frequency component at that frequency over the duration of that sample.

This file is named RUN_[run_num]_[col_num].raw. The collar number is referenced in the local collar definitions file (usually COL), and is represented as a six digit field, zero padded. The run number is also a six digit field, zero padded.

Correlated GPS and Signal Data

The utility raw_gps_analysis/raw_gps_analysis.py correlates the recorded GPS data and the processed IQ data to create a sequence of correlated GPS locations and signal strengths. This utility also does a simple altitude filter to eliminate the takeoff and landing phases of flight by doing a +/- 20% threshold on the relative altitude data. Correlation is accomplished by taking the maximum signal amplitude for the signal data prior to each GPS location, for at most 1.5 seconds. That is, each GPS location is associated with the highest signal amplitude in the previous 1.5 seconds or since the last GPS position. This information is stored as comma separated values as: local timestamp (seconds since UTC), latitude (degrees * 1e7), longitude (degrees * 1e7), signal amplitude (dB?).

This file is named RUN_[run_num]_[col_num].csv. The collar number is referenced in the local collar definitions file (usually COL), and is represented as a six digit field, zero padded. The run number is also a six digit field, zero padded.

About

This repository stores the code for the post-processing code for the Airborne Radio Collar Tracker project.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 53.1%
  • C 33.9%
  • MATLAB 6.8%
  • Makefile 3.4%
  • Shell 1.7%
  • C++ 1.1%