pixell is a library for loading, manipulating and analyzing maps stored in rectangular pixelization. It is mainly targeted for use with maps of the sky (e.g. CMB intensity and polarization maps, stacks of 21 cm intensity maps, binned galaxy positions or shear) in cylindrical projection, but its core functionality is more general. It extends numpy’s
ndarray to an
ndmap class that associates a World Coordinate System (WCS) with a numpy array. It includes tools for Fourier transforms (through numpy or pyfft) and spherical harmonic transforms (through libsharp) of such maps and tools for visualization (through the Python Image Library).
- Python>=2.7 or Python>=3.4
- gcc/gfortran or Intel compilers (clang might not work out of the box)
- libsharp (downloaded and installed)
- automake (for libsharp compilation)
- healpy, Cython, astropy, numpy, scipy, matplotlib, pyyaml, h5py, Pillow (Python Image Library)
For installation instructions specific to NERSC/cori, see NERSC.
For installation instructions specific to MacOS X, see MACOSX (h/t Thibaut Louis).
For all other, below are general instructions.
To install, clone this repository and run:
$ python setup.py install --user
To test the installation, you can run:
You may need to install pytest for the above to work (with pip install pytest –user).
libsharp installation (optional)¶
Libsharp is installed automatically by setup.py. If instead you want to use an existing
libsharp installation, you can do so by symlinking the
libsharp directory into a directory called
_deps in the root directory, such that the file
Intel compilers might require a two step installation as follows
$ python setup.py build_ext -i --fcompiler=intelem --compiler=intelem $ python setup.py install --user
Development workflow (recommended)¶
If you are a developer, run:
$ python setup.py build_ext -i
and add the cloned directory to your Python path so that changes you make in any python file are immediately reflected. e.g., in your
If you also need non-Python code to be recompiled, run:
$ python setup.py clean
before the above steps.
To test the installation under development mode, you can run:
This requires the pytest Python package to be installed.
If you have write access to this repository, please:
- create a new branch
- push your changes to that branch
- merge or rebase to get in sync with master
- submit a pull request on github
If you do not have write access, create a fork of this repository and proceed as described above. For more details, see Contributing.