Copyright 2013 NPR. All rights reserved. No part of these materials may be reproduced, modified, stored in a retrieval system, or retransmitted, in any form or by any means, electronic, mechanical or otherwise, without prior written permission from NPR.
(Want to use this code? Send an email to [email protected]!)
why we do the reprojections the way we do: http://trac.osgeo.org/proj/wiki/FAQ#ChangingEllipsoidWhycantIconvertfromWGS84toGoogleEarthVirtualGlobeMercator
Node.js is required for the static asset pipeline. If you don't already have it, get it like this:
brew install node
curl https://npmjs.org/install.sh | sh
Then install the project requirements:
cd $NEW_PROJET_NAME
npm install less universal-jst
mkvirtualenv $NEW_PROJECT_NAME
pip install -r requirements.txt
sudo apt-get install build-essential libwebkit-dev unzip
sudo add-apt-repository ppa:developmentseed/mapbox
sudo apt-get update
sudo apt-get install tilemill
sudo add-apt-repository ppa:ubuntugis/ppa
sudo apt-get update
sudo apt-get install gdal-bin
A site can have any number of rendered templates (i.e. pages). Each will need a corresponding view. To create a new one:
- Add a template to the
templates
directory. Ensure it extends_base.html
. - Add a corresponding view function to
app.py
. Decorate it with a route to the page name, i.e.@app.route('/filename.html')
- By convention only views that end with
.html
and do not start with_
will automatically be rendered when you callfab render
.
A flask app is used to run the project locally. It will automatically recompile templates and assets on demand.
workon $NEW_PROJECT_NAME
python app.py
Visit localhost:8000
in your browser.
Compile LESS to CSS, compile javascript templates to Javascript and minify all assets:
workon $NEW_PROJECT_NAME
fab render
(This is done automatically whenever you deploy to S3.)
If you want to test the app once you've rendered it out, just use the Python webserver:
cd www
python -m SimpleHTTPServer
fab staging master deploy
The current configuration is for running cron jobs only. Web server configuration is not included.
- Run
fab staging master setup
to configure the server. - Run
fab staging master deploy
to deploy the app.
To render the map locally:
fab local_render_map
To render the map on the server, you must first define the environment variable MAPBOX_SYNC_ACCESS_TOKEN_WILDFIRES
. Then run:
fab render_map
To cron render map on the server:
0,30 * * * * cd /home/ubuntu/apps/us-wildfires/repository && ../virtualenv/bin/fab server_render_map