Change Log

Version 0.4 (Alpha) - April 29, 2015

  • Tidy up code
  • Improve installation procedure
  • Work on reproducibility (through virtualenv)
  • Get all tests working

Version MSc_Dissertation (Alpha) - August 28, 2014

  • Implementing SGD training/matching against IBTrACS data
  • Look into different classifiers: SGD/QDC/cutoff etc.
  • Plot all figures for dissertation

Version 0.3 (Alpha) - August 15, 2014

  • Implementing SGD training/matching against IBTrACS data
  • Improve worker crash handling in pyro_cluster
  • Improve documentation
  • Run for 20 years worth of analysis on UCL computers
  • Fix bugs with Pyro code
  • Fix up tests

Version 0.2 (Alpha) - July 18, 2014

  • Abstract out tracking code and have first shot at implementing a Kalman filter based tracker
  • Implement StormtracksResultsManager that can be used for saving/loading results to disk
  • Improve pyro_cluster code to the point where it is usable (speedups of 10x using 15 UCL computers)
  • Add logging to pyro_cluster code to aid debugging
  • Handle lons/lats consistently - always use -180 to 180 in code
  • Add some functional/bug tests
  • PEP8 test all code in tests
  • Document most classes/functions (and add a coverage check in documentation)
  • Make names more consistent in code
  • Fix some bugs

Version 0.1 (Alpha) - July 10, 2014

  • Download and load of IBTrACS and C20 Reanalysis data
  • Vorticity tracking (nearest neighbour) in place
  • Matching of vorticity to best tracks
  • Plotting of output on world maps
  • pyro_cluster proof of concept working
  • Make installable through PyPI
  • Add structure for documentation
  • Proper settings file that is easy to modify and stored in ~/.stormtracks

Version 0.0.X

  • Experimented with a range of ways of tracking tropical cyclone:
    • Adapting Qinling Wu’s eddy detection algorithm
      • Used a modified voronoi segmentation scheme to partition up ocean
      • Then used a region shirinking technique to localise and detect eddy centres
      • Made sure that the Okubu-Weiss paramater was satisfied for the eddy centres
      • It wasn’t overly suitable for tracking hurricanes:
      • There are typically ~1000s of eddies in the ocean, whereas there will only be ~ 100s of pressure minima
    • Through min pressure:
      • Found to be hard to track pressure minima from one timestep to the other
      • After talking to Kevin Hodges (Reading University) this approach was abandoned for tracking
      • However lot of the code developed (e.g. finding Radius of Outermost Closed Isobar - ROCI) may still be useful
      • Code is located in cyclone.py
    • Settled on tracking vorticity maxima

  • Look at Kevin Walsh’s Fortran algorithm for cyclone tracking and take some ideas (and an implementation of a 4th order vorticity algorithm)
    • Ran algorithm against C20 data and found Katrina/Wilma in 2005 data
  • Get Kevin Hodges TRACK code building (but don’t manage to get it running against data)

  • Downloaded C20 u9950/v9950, prmsl fields for vorticity/pressure
    • Full data sets used, i.e. that contain each ensemble member separately
    • This is better than the mean for tracking features (according to Chris Brierley and Kevin Hodges)
    • Kevin Hodges recommended using an average of wind fields
  • Plot a variety of different data fields to get a feel for data:
    • e.g. vorticity with best track overlayed
  • Speed up some of the analysis:
    • c functions for vorticity calculations
  • Basic analysis:
    • pressure min, vorticity max etc.
  • Look into parallelising analysis:
    • Settled on Pyro4 library for remote python execution
    • Set up a basic manager/worker system and tested on UCL computers
  • Experiment with Support Vector Machine (SVM) implementation in sckikit-learn

  • Implement a basic Kalman filter and check that it is producing reasonable data

  • Smoothing and upscaling of vorticity/pressure data