Skip to main content
https://img.shields.io/github/actions/workflow/status/simonsobs/pixell/build.yml?branch=master https://readthedocs.org/projects/pixell/badge/?version=latest https://codecov.io/gh/simonsobs/pixell/branch/master/graph/badge.svg?token=DOIG32B6NT https://badge.fury.io/py/pixell.svg

pixell is a library for loading, manipulating and analyzing maps stored in rectangular pixelization. It is mainly intended 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 analysis (through numpy or pyfftw), spherical harmonic analysis (through ducc0) and wavelet analysis of such maps. It also provides tools for high-resolution visualization (through the Python Image Library).

Dependencies

  • Python>=3.9.

  • gcc/gfortran or Intel compilers (clang might not work out of the box), if compiling from source

  • ducc0, healpy, Cython, astropy, numpy, scipy, matplotlib, pyyaml, h5py, Pillow (Python Image Library)

On MacOS, and other systems with non-traditional environments, you should specify the following standard environment variables:

  • CC: C compiler (example: gcc)

  • FC: Fortran compiler (example: gfortran)

We recommend using gcc installed from Homebrew to access these compilers on MacOS, and you should make sure to point e.g. $CC to the full path of your gcc installation, as the gcc name usually points to the Apple clang install by default.

Runtime threading behaviour

Certain parts of pixell are parallelized using OpenMP, with the underlying ducc0 library using pthreads. By default, these libraries use the number of cores on your system to determine the number of threads to use. If you wish to override this behaviour, you can use two environment variables:

  • OMP_NUM_THREADS will set both the number of pixell threads and ducc0 threads.

  • DUCC0_NUM_THREADS will set the number of threads for the ducc0 library to use, overwriting OMP_NUM_THREADS if both are set. pixell behaviour is not affected.

If you are using a modern chip (e.g. Apple M series chips, Intel 12th Gen or newer) that have both efficiency and performance cores, you may wish to set OMP_NUM_THREADS to the number of performance cores in your system. This will ensure that the efficiency cores are not used for the parallelized parts of pixell and ducc0.

You can check the threading behaviour (and the installation of pixell) by running the benchmark script:

$ benchmark-pixell-runner

Installing

Make sure your pip tool is up-to-date. To install pixell, run:

$ pip install pixell --user

This will install a pre-compiled binary suitable for your system (only Linux and Mac OS X with Python>=3.9 are supported).

If you require more control over your installation, e.g. using Intel compilers, please see the section below on compiling from source.

Compiling from source (advanced / development workflow)

The easiest way to install from source is to use the pip tool, with the --no-binary flag. This will download the source distribution and compile it for you. Don’t forget to make sure you have CC and FC set if you have any problems.

For all other cases, below are general instructions.

First, download the source distribution or git clone this repository. You can work from master or checkout one of the released version tags (see the Releases section on Github). Then change into the cloned/source directory.

Once downloaded, you can install using pip install . inside the project directory. We use the meson build system, which should be understood by pip (it will build in an isolated environment).

We suggest you then test the installation by running the unit tests. You can do this by running pytest.

To run an editable install, you will need to do so in a way that does not have build isolation (as the backend build system, meson and ninja, actually perform micro-builds on usage in this case):

$ pip install --upgrade pip meson ninja meson-python cython numpy
$ pip install  --no-build-isolation --editable .

Contributions

If you have write access to this repository, please:

  1. create a new branch

  2. push your changes to that branch

  3. merge or rebase to get in sync with master

  4. 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.

Metadata

Release files for pixell 0.32.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pixell 0.32.5
File Size Uploaded
pixell-0.32.5.tar.gz 6.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pixell 0.32.5
File
pixell-0.32.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pixell-0.32.5-cp313-cp313-macosx_26_0_arm64.whl CPython 3.13 CPython 3.13 macOS 26.0+ ARM64 Details
pixell-0.32.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pixell-0.32.5-cp312-cp312-macosx_26_0_arm64.whl CPython 3.12 CPython 3.12 macOS 26.0+ ARM64 Details
pixell-0.32.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pixell-0.32.5-cp311-cp311-macosx_26_0_arm64.whl CPython 3.11 CPython 3.11 macOS 26.0+ ARM64 Details
pixell-0.32.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pixell-0.32.5-cp310-cp310-macosx_26_0_arm64.whl CPython 3.10 CPython 3.10 macOS 26.0+ ARM64 Details

Total release size: 24.5 MB

Release files / pixell-0.32.5.tar.gz

Download URL pixell-0.32.5.tar.gz
Size 6.7 MB
Tags Source
SHA-256 checksum
How to use checksums
765d6ad7f079ab0f2d35d2dce00268af61c5d6022cc694043b41ac7464d95828
BLAKE2b-256 checksum
How to use checksums
b8165f8a2c61c13592a82c94e22d20e2a724a188acef251af7aabcc3c1b6ed29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pixell-0.32.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
65ad03c6567f207de949ebbbdbc42b3fca1ce5888a0f6005975b4d8c0dc1651e
BLAKE2b-256 checksum
How to use checksums
f9f1dee65ee4b34d67038b345469437525a2faaf2d6952952a6a13661336b34a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pixell-0.32.5-cp313-cp313-macosx_26_0_arm64.whl

Download URL pixell-0.32.5-cp313-cp313-macosx_26_0_arm64.whl
Size 2.1 MB
Tags CPython 3.13 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
5c3ea919d1ed8f984556a6cf5c0b95c3098deecde0677be96649e048f1817ceb
BLAKE2b-256 checksum
How to use checksums
e2ab3770715f5f13e2f117691338a125c3975599233bc4d39c1982c6d2655056
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pixell-0.32.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a5a813e2dfd412a7a1cafd86d38f8817000b37ed65fd24b5a396761aaf3df67e
BLAKE2b-256 checksum
How to use checksums
b3f10ec3900ef04c5ed886db2236d5029e3f12bdb62fefb1f507242e6c63b048
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pixell-0.32.5-cp312-cp312-macosx_26_0_arm64.whl

Download URL pixell-0.32.5-cp312-cp312-macosx_26_0_arm64.whl
Size 2.1 MB
Tags CPython 3.12 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
7d0ffdc15fd8d3da02f2ca0f06d52d3149f6baff0402cff0491906151e22d4af
BLAKE2b-256 checksum
How to use checksums
65939a339d592dd41af517ee35c719f532c134126bf2ebaff855cfb204fd5297
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pixell-0.32.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f9c9acce425a6760800952a597e6eb63dca1224b050a9bb12d4e3b50075df9a1
BLAKE2b-256 checksum
How to use checksums
593df0123770aec4dc0144e5e8b51020448958ff8625eb17ecb68736fa9fa304
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pixell-0.32.5-cp311-cp311-macosx_26_0_arm64.whl

Download URL pixell-0.32.5-cp311-cp311-macosx_26_0_arm64.whl
Size 2.1 MB
Tags CPython 3.11 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
e89756805a797995c9612cc228f38685153d9af893b12c5d171acbb839b9d685
BLAKE2b-256 checksum
How to use checksums
28a961659b9ef7806dba7a35ee4d6f885c78cf4ffb918ff3c996ad9af81b8657
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pixell-0.32.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.4 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4b68212aeb49ff9a5a9e60a74aabb761f9998cb249eedb91af9444e82c6a2cc0
BLAKE2b-256 checksum
How to use checksums
4f853ff721496016b99c6eef4f427c92c51122f2eed9d8af9534b2e79f2a4097
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / pixell-0.32.5-cp310-cp310-macosx_26_0_arm64.whl

Download URL pixell-0.32.5-cp310-cp310-macosx_26_0_arm64.whl
Size 2.1 MB
Tags CPython 3.10 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
3758208e97ac5f1c991d9ab8270df9fcb7116312100065975be2cd8319da6a2c
BLAKE2b-256 checksum
How to use checksums
4bba4e14734c78bc446dd8cfff7f3fde9bb0f11bb4fa6e0dce56d9d9cddc7626
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.32.5 This release

9 release files

0.31.9

9 release files

0.25.0

1 release file

0.23.8

9 release files

0.23.7

9 release files

0.23.5

9 release files

0.23.4

9 release files

0.23.3

9 release files

0.23.2

9 release files

0.23.1

9 release files

0.23.0

9 release files

0.22.2

9 release files

0.19.3

6 release files

0.19.2

6 release files

0.19.0

6 release files

0.17.1

9 release files

0.15.3

9 release files

0.15.0

9 release files

0.14.3

9 release files

0.14.2

9 release files

0.14.1

9 release files

0.13.2

9 release files

0.12.1

9 release files

0.12.0

9 release files

0.10.3

7 release files

0.10.2

7 release files

0.9.6

7 release files

0.9.5

6 release files

0.7.0

1 release file

0.6.0

1 release file

0.5.5

1 release file

0.5.3

1 release file

0.5.2

1 release file

0.5.1

1 release file

0.4.8

1 release file

0.4.7

1 release file

0.4.6

1 release file

0.4.5

1 release file

0.4.4

1 release file

0.4.3

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page