A Jupyter widget for playing with CAR Leaflet maps
Project description
A tool to visualize and play with CMB maps. psplay is a jupyter extension to allow interactive visualization of CMB maps through Leaflet library. psplay also provides a set of tools based on pspy to compute and to show CMB power spectra. You can have a better idea of what psplay can do by watching this short video.
All the specific javascript library developed for psplay is done by Sigurd Naess. The build process and javascript architecture is highly inspired by ipyleaflet project.
Examples
Installation
To install, you will need to have or to install numpy. Then, run
$ pip install psplay [--user]
psplay runs within a Jupyter notebook and we recommend to use JupyterLab to fully enjoy psplay
To enable the extension within Jupyter, you will need to install several JupyterLab extensions especially the Python plotly library and the Jupyter widgets. You will also need nodejs library and its package manager npm. For JupyterLab > 2.0.0, you can do
$ jupyter labextension install plotlywidget jupyterlab-plotly
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager @jupyter-widgets/jupyterlab-sidecar
Finally, you need to install the jupyter-leaflet-car extension
$ jupyter labextension install jupyter-leaflet jupyter-leaflet-car
Using docker
Given the number of requirements, you can use a docker image already made with the needed libraries and everything compiled and installed. You should first install docker for your operating system.
Then, you can run the simonsobs/psplay image by doing
$ docker run --rm -p 8888:8888 simonsobs/psplay
After pulling the docker image, a JupyterLab instance should start. If your web browser does not automatically load the web page, you can copy-paste the JupyterLab URL.
You can bind a local directory to make it available within the docker container with the -v flag (see https://docs.docker.com/storage/bind-mounts for more details).
Using at NERSC
On NERSC machines, you can install psplay within a conda environment but you can also use a common installation for Simons Observatory people (i.e. people belonging to sobs group) without need to redo the long installation process.
First you need to log to cori.nersc.gov machines by enabling port forward to your local machine
$ ssh -L 8888:localhost:8888 user@cori.nersc.gov
Everything passing via port 8888 in NERSC will be forwarded to your local machine and you will be able to grab the JupyterLab instance within your local web browser.
Given a successful connection, you must load the latest python module
$ module load python
and then you can load the conda environment with the whole software suite for psplay
$ source activate /global/cscratch1/sd/xgarrido/psplay/env
Finally, you can copy the /global/cscratch1/sd/xgarrido/psplay/examples/minimal directory to your home or scratch directory. For example purpose, this directory holds simulation files already converted into Leaflet tiles. Then, fire a JupyterLab instance by typing
$ cd /your/owned/directory
$ cp -r /global/cscratch1/sd/xgarrido/psplay/examples/minimal .
$ jupyter lab --port 8888 --no-browser minimal_working_example.ipynb
Copy-paste the URL into your local browser and run the Jupyter notebook.
If port 8888 is already in use, JupyterLab will try another one and then breaks the port forward. In this case you should restart the ssh session with another port.
Installation from sources
For a development installation (requires npm)
$ git clone https://github.com/xgarrido/psplay.git
$ cd psplay
$ pip install -e .
If you are using the classic Jupyter Notebook you need to install the nbextension:
$ jupyter nbextension install --py --symlink --sys-prefix psplay
$ jupyter nbextension enable --py --sys-prefix psplay
If you are using JupyterLab, you need to install the labextension:
$ jupyter labextension install @jupyter-widgets/jupyterlab-manager js
Note for developers:
the -e pip option allows one to modify the Python code in-place. Restart the kernel in order to see the changes.
the --symlink argument on Linux or OS X allows one to modify the JavaScript code in-place. This feature is not available with Windows.
For automatically building the JavaScript code every time there is a change, run the following command from the psplay/js/ directory:
$ npm run watch
If you are on JupyterLab you also need to run the following in a separate terminal:
$ jupyter lab --watch
Every time a JavaScript build has terminated you need to refresh the Notebook page in order to load the JavaScript code again.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file psplay-0.1.2.tar.gz
.
File metadata
- Download URL: psplay-0.1.2.tar.gz
- Upload date:
- Size: 605.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36ea51809b919ae2fe35152bf75c422806fd005777d042d9d4ed88e64baaba76 |
|
MD5 | d6765ec4923cebcb6f2ca2cbe1ceb6d0 |
|
BLAKE2b-256 | e616535253caaf3994c5bb6c62b217d32e5a9a87b16308582d34b855ff5a728a |