GithubHelp home page GithubHelp logo

jonsowman / cusf-standalone-predictor Goto Github PK

View Code? Open in Web Editor NEW
68.0 15.0 36.0 1.62 MB

Cambridge University Spaceflight landing predictor - a web-based tool for predicting the flight paths of meteorological sounding balloons.

Home Page: http://habhub.org/predict

License: GNU General Public License v3.0

Shell 0.17% C 37.62% C++ 1.74% Objective-C 5.38% Python 7.47% PHP 13.19% CSS 1.68% JavaScript 32.74%

cusf-standalone-predictor's Introduction

CUSF Standalone Predictor - Version 2

Cambridge University Spaceflight landing predictor - a web-based tool for predicting the flight path and landing location of latex meteorological sounding balloons.

Install

The source for the predictor itself is in pred_src/ and instructions for building it can be found there.

The following items need to be executable (chmod +x ./predict.py) by the user under which the predictor runs:

  • predict.py
  • pred_src/pred (once compiled)
  • cron/clear-pydap-cache-cronjob.sh
  • cron/purge-predictions-cronjob.sh

The predict/preds/ and gfs/ directories need to have rwx access by the PHP interpreter and the predict.py python script. You will need to install the python dependencies listed in requirements.txt. In the case of PyDAP, the exact version is important; the easiest way is:

$ pip install -r requirements.txt

Other than that, just clone this repo to a non web-accessible folder and create symlinks to the predict/ directory in the repo.

There are useful configuration options in predict/includes/config.inc.php.

Information

The two shell scripts in the cron/ directory should both be run daily. clear-pydap-cache-cronjob.sh clears the cache used by pydap so that old data does not build up. purge-predictions-cronjob.sh deletes scenarios and predictions not accessed or modified within the last 7 days. Re-running a prediction for a scenario will therefore reset its time to live to 7 more days.

The directory names are UUIDs comprised of an SHA1 hash of the launch parameters, and re-running predictions will overwrite data in the existing directory, rather than create a new one.

We use GFS data provided by the NOAA, accessed via NDAP and their NOMADS distribution system. The 1.0x1.0 degree data (26 vertical pressure levels) is used for standard predictions, and the 0.5x0.5 degree data (47 vertical pressure levels) is used for the high definition (HD) predictions.

License

This work is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This work is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

Credits & Acknowledgments

Credit as detailed in individual files, but notably:

  • Rich Wareham - The new predictor and the hourly predictor system
  • Fergus Noble, Ed Moore and many others

Adam Greig - http://www.randomskk.net - [email protected]
Jon Sowman - http://www.hexoc.com - [email protected]

Copyright Cambridge University Spaceflight 2009-2011 - All Rights Reserved

cusf-standalone-predictor's People

Contributors

adamgreig avatar danielrichman avatar johnboiles avatar rharrison avatar upuaut 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  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  avatar  avatar  avatar  avatar

cusf-standalone-predictor's Issues

lockfiles/mutex

Put the lockfile system back in place so only one user can run the predictor at a time

AJAX Interface

After clicking "Run Prediction", the data request should be sent to the server and the client polls for status.json, which contains:

  1. Progress on getting GFS data & when complete
  2. Prediction started
  3. Prediction complete (client then grabs CSV and displays it)

Client must verify "prediction_complete == true" before trying to get a CSV and display it (even for index.php?uuid= predictions)

Clear up this repo!

Loads of old stuff from the GRIB predictor and unused files lying around, needs a good clean up.

GUI

make a nicer web interface, perhaps based on the hourly predictor one

cross browser compatibility

specifically, chrome's "waiting for" dialogue covers the debug window

and generally testing on browsers other than FF would be a wise plan

Launch point plotting

Plot the coords in the scenario.ini file as the launch point rather than the first entry in flight_path.csv

Package the get-gfs-data.py script

This script can be part of this repo so deploying this predictor need only involve cloning this repo.

It is a modified version of the get_wind_data.py script from the CUSF hourly predictor.

'Terrain' view by default

Rationale:

  1. Roads aren't a consideration in planning a balloon launch through the predictor, i.e. they are clutter and make it harder to focus on the trajectories
  2. Terrain view nicely highlights urban areas which we can then seek to avoid

setup.py

Installed required python and linux packages, builds the predictor, sets up config files.

Generally does everything required so that the user can just run it and then hit index.php in their browser.

Mouse cursor Info Display

make landing and launch and burst points clickable for info

make info box show distance from launch & landing sites of mouse cursor position, and mouse cursor coords

High latency connection operations

If 2000ms is still too low, we need to increase the polling delay (eg. every 5-10 seconds) instead of just cancelling the poller.

Needs testing to see if GPRS connections etc really will require >2secs for the AJAX request to return.

Pre-populate form with data when viewing old predictions

This can be done entirly server side by PHP. Instead of pre-populating the form with the default values, it should check if it was given a UUID in the querystring and if so, populate the form with data from that UUID's scenario.ini.

Make everything UTC

For simplicity.

Show (UTC) after all displayed times including flight time and launch card fields.

whirlygig

make one to stop adam crying all the time.

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.