Difference between revisions of "Energy Wars Display"

From Earlham CS Department
Jump to navigation Jump to search
(Created page with "=RPNL= Currently, this is how we're getting data from RPNL. # RPNL sends an email containing CSV to testcs128@cs.earlham.edu # testcs128 forwards it to ghcrows13@cs.earlham.edu ...")
 
(Data)
Line 19: Line 19:
 
==Data==
 
==Data==
 
''Overview''
 
''Overview''
* Data is generated on proto daily by energy's crontab.
+
* Data is generated by ~energy/contest/daily/execute.bash
** The script is: ~energy/contest/daily/execute.bash
+
** executed daily by energy's crontab
 
* Temporary csv files are stored in ~energy/contest/daily/tmp_data/
 
* Temporary csv files are stored in ~energy/contest/daily/tmp_data/
 
** useful for desktop testing
 
** useful for desktop testing
Line 39: Line 39:
 
** copy the reformatted data to the destination
 
** copy the reformatted data to the destination
 
* it does this for buildings, national road, and college avenue
 
* it does this for buildings, national road, and college avenue
 
  
 
==JavaScript==
 
==JavaScript==

Revision as of 12:50, 3 March 2014

RPNL

Currently, this is how we're getting data from RPNL.

  1. RPNL sends an email containing CSV to testcs128@cs.earlham.edu
  2. testcs128 forwards it to ghcrows13@cs.earlham.edu in its .forward file
  3. ghcrows13@cs.earlham.edu executes mail.py (in home directory) from its .forward file
  4. mail.py scrapes off CSV attachments
  5. mail.py pipes text into parse.py
  6. parse.py scrapes off data, copies tmp.csv to ghcrows13@proto.cs.earlham.edu:/home/users/energy/contest/daily/tmp.csv
    • uses RSA keys to bypass passwords
    • user names must be the same for RSA keys to work
  7. parse.py executes a sql command that pipes this csv file into /home/users/energy/contest/daily/parse_houses.py
  8. parse_houses.py strips off csv data (again!) and derives the energy change
  9. parse_houses.py then copies the data into the electrical_energy_rpnl database

Display

The display is written using google charts.

Data

Overview

  • Data is generated by ~energy/contest/daily/execute.bash
    • executed daily by energy's crontab
  • Temporary csv files are stored in ~energy/contest/daily/tmp_data/
    • useful for desktop testing
  • final data is stored in ~energy/public_html/development/EnergyWars/
  • start and end dates for 1) the baseline and 2) the contest are both set in execute.bash
  • the target database and prefix (name) can be changed if necessary
  • don't change the street -- that's the string that RPNL uses to represent that street

Specifics

  • execute.bash generates the daily, baseline, cumulative, and cumulative baseline
  • each of these are a different .bash script
  • an overview of what each script does:
    • generates appropriate file names
    • execute a dynamic SQL statement that's based on arguments
    • store the SQL response in a file
    • reformat the data using ~energy/contest/daily/reformat.py
    • store the reformatted data in ~energy/contest/daily/tmp_data/
    • copy the reformatted data to the destination
  • it does this for buildings, national road, and college avenue

JavaScript

HTML