Git Product home page Git Product logo

igc_lib's Introduction

A simple library to parse IGC logs and extract thermals.

Uses ground speed to detect flight and aircraft bearing rate of change to detect thermalling. Both are smoothed using the Viterbi algorithm.

The code has been battle-tested against a couple hundred thousand IGC files. Detects various anomalies in the logs and marks files as suspicious/invalid, providing an explaination for the decision. If you find an IGC file on which the library misbehaves please open a GitHub issue, we'd be happy to investigate.

Example usage:

  python igc_lib_demo.py some_file.igc

Should work both on Python 2.7 and on Python 3.

igc_lib's People

Contributors

kuaka avatar marcin-osowski avatar moldhouse avatar ross-desmond avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

igc_lib's Issues

Tow release detection

I've just discovered your interesting library and was wondering if you considered implementing a detection for when a glider is being towed by plane (or winch). would that be possible using the same sort of algorithms?

Glide alt_change() is wrong

In the Glide class we have:
def alt_change(self):
"""Return the overall altitude change in the glide, meters."""
return self.enter_fix.alt - self.exit_fix.alt

It should be return self.exit_fix.alt - self.enter_fix.alt
So that it does reflect climbs (positive value) and sinks (negative values)

Minimum ground speed limit is too high for paragliding records

The current minimum limit (40 km/h) is too high for paragliding records. Stuart suggests 8km/h, but that might be too low for gliders, as they are often towed across the airfield with speeds greater than that.

I see two solutions:

  1. Decrease to 20 km/h - that should be good for both worlds.
  2. Combine ground speed with vertical speed (vario), and trigger flight mode when either the ground or vertical speed is above configured thresholds.

itertools.zip_longest issue

Got this error:

File "igc_lib_demo.py", line 13, in print_flight_details
zipped = itertools.zip_longest(flight.thermals, flight.glides)

and fixed editing it with:

File "igc_lib_demo.py", line 13, in print_flight_details
zipped = itertools.izip_longest(flight.thermals, flight.glides)

not sure is the correct way?!

I'm testing your code on a Cloud9 VM with Ubuntu 14 and Python 2.7.6.

thanks,

Martino.

Thermal properties

Hi Marcin, looks very promising. To be truly useful though the following information would be necessary:

  • thermal entry height
  • thermal exit height
  • (average) thermal strength
  • time spent in thermal (can be calculated from current data, still nice)
  • optionally some wind/drift information

Maybe this is all doable with your library, if so please could you provide some instructions? Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.