HTTPS SSH

Data-Driven Model for Solar Irradiation Based on Satellite Observations I. Bilionis, E. Constantinescu, M. Anitescu

The code provided in this site replicates all the figures contained in the as well as the site containing the suplementary meterial: http://www.mcs.anl.gov/~ebilionis/solar-irradiance/

A complete review of the code is beyond the scope of this document. Here, we will briefly mention the dependencies of the code and the how to run the script that produces all the figures.

Dependencies on Python packages

The `' indicates code developed by Ilias Bilionis as part of other projects: + numpy (www.numpy.org) + scipy (www.scipy.org) + py-orthpol (https://github.com/ebilionis/py-orthpol.git) + py-mcmc* (https://github.com/ebilionis/py-mcmc.git) + matplotlib (www.matplotlib.org) + sklearn (http://scikit-learn.org/stable/) + GPy (https://github.com/SheffieldML/GPy) + statsmodels (http://statsmodels.sourceforge.net/) + tables (http://www.pytables.org/moin) + mpi4py (http://mpi4py.scipy.org/) + netCDF4 (https://code.google.com/p/netcdf4-python/) + pyhdf (https://pypi.python.org/pypi/pyhdf/0.8.3)

Please note that installing some of this software might require additional libraries. Consult the documentation of each package in order to figure out what is required.

In addition to these libraries, the code provides a Python wrapper for the Solar Position Algorithm (SPA). This is included.

Compiling the code

Most of the code is Python. There is only a tiny part that needs to be compiled. After you have install all the dependencies, run the following command within this directory:

$ python setup.py build_ext --inplace

Required data

Unfortunately, the satellite data files are too big to be hosted here with the code. You need to download them seperately from here (660MB): http://www.mcs.anl.gov/~ebilionis/solar-irradiance/insolation_ok_400x400.h5 Make sure you edit paper-figs/input to indicate the location of this file (INSOLATION_FILE).

Reproducing all the examples of the paper

For this you need access to a super computer using PBS. Change any input you want here: paper-figs/input. In particular, you might want to change NUM_CORES_PER_NODE or some of the SKIP* variables. The documentation of the input file should be enough to understand the role of each variable. Then run:

$ cd paper-figs $ ./make.sh

This will submit around 2,500 PBS jobs that will run everything that is required for the model. It will take about a day for all the jobs to complete and it will produce 4 GB of data.