Tawhiri/rewrite core
Idea: Rewriting the core of the predictor in Python
Currently the predictor is split across 4 languages:
- The homepage and AJAX requests are served by PHP
- The client is mostly Javascript
- PHP starts a python script, which downloads wind data and invokes:
- The predictor itself, a C binary
The majority of the time spent predicting is downloading wind data, so we don't really need C-performance. (Having said that, we may find we want it later when we come to do Monte Carlo ...).
Benefits to moving to Python:
- The majority of the C predictor is IO, getting wind data, reading scenarios, writing CSV. This would be far simpler in Python
- Easier to add features, add different altitude models
- Can have the predictor process get wind data directly, so we don't need latitude/longitude deltas - it just gets what it needs
Although we intend to replace PyDAP, a Python rewrite could initially talk to PyDAP and use the existing PHP/Javascript. Indeed, it looks like it would be fairly simple to break work on the predictor up into independent stages, with rewriting the C being one.