README.md 2.5 KB

http://heliopropa.irap.omp.eu

What

Web Server

Build and serve heliopropa's visualizations. It's a flask webserver, serving d3.js plots. It also gathers NetCDF data from AMDA, and serves it as CSV to the plotter.

Rationale

  • Reading NetCDF from javascript is doable, but still very hacky.
  • The bridge can handle pagination and collecting multiple NetCDF into one CSV.

How

Source

https://gitlab.irap.omp.eu/CDPP/SPACEWEATHERONLINE

Overview

  • config.yml : the main configuration file.
  • web/run.py : the front controller, holding most of the code.
  • web/run.log : you'll find more information about failures in the log.
  • web/view/home.html.jinja2 : the HTML template.
  • web/static/js/swapp.ls : most of the javascript client-side.

Install

Prerequisites

gcc libncurses-dev python2 virtualenv

Python venv

virtualenv venv
source venv/bin/activate
pip install matplotlib
pip install numpy==1.8.*
pip install -r requirements.txt

CentOs 6 Shenanigans

yum install https://centos6.iuscommunity.org/ius-release.rpm
yum install python27*

But then virtualenv yields

File "/var/www/html/HELIOPROPA/web/run.py", line 24, in <module>
[Fri Nov 30 14:30:38 2018] [error] [client 10.10.135.119]     from netCDF4 import Dataset, date2num
[Fri Nov 30 14:30:38 2018] [error] [client 10.10.135.119]   File "/var/www/html/HELIOPROPA/venv/lib/python2.7/site-packages/netCDF4/__init__.py", line 3, in <module>
[Fri Nov 30 14:30:38 2018] [error] [client 10.10.135.119]     from ._netCDF4 import *
[Fri Nov 30 14:30:38 2018] [error] [client 10.10.135.119] ImportError: /var/www/html/HELIOPROPA/venv/lib/python2.7/site-packages/netCDF4/_netCDF4.so: undefined symbol: PyUnicodeUCS2_FromStringAndSize

Solution: Configure Apache to use web/run_ssa.wsgi and use pip2.7 install system wide.

Install libcdf.

wget https://spdf.gsfc.nasa.gov/pub/software/cdf/dist/cdf38_1/cdf38_1-dist-all.tar.gz
tar -xzvf cdf38_1-dist-all.tar.gz
cd cdf38_1-dist
make all OS=linux ENV=gnu
make INSTALLDIR=/usr/local/lib/libcdf install

Develop

source venv/bin/activate
DEBUG=true python web/run.py

Then, browse localhost:5000.

Troubleshoot

Installing scipy

Getting MemoryErrors ? Try with the --no-cache-dir option.

pip install scipy --no-cache-dir

Fix permissions problems with the cache

sudo setfacl  -R -m u:apache:rwx -m u:`whoami`:rwx cache
sudo setfacl -dR -m u:apache:rwx -m u:`whoami`:rwx cache