Skip to main content

pixell

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

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.7
File Size Uploaded
pixell-0.32.7.tar.gz 6.7 MB Details

Built distributions (wheels)

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

Total release size: 29.0 MB

Release files / pixell-0.32.7.tar.gz

Download URL pixell-0.32.7.tar.gz
Size 6.7 MB
Tags Source
SHA-256 checksum
How to use checksums
31235394af7649a07e5183c358e61d9e56b05ec62ff54cecf42cb2a9e2246193
BLAKE2b-256 checksum
How to use checksums
c665c5b893a573bd4bb2b9dae8e1a7c10ac6d34533693046a2853eceb1845144
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.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
809ec9251753925e407d2611e6442ec7dca59f6b403a3cb3ccfde4d90f135a15
BLAKE2b-256 checksum
How to use checksums
58bf6b62a025a71c18fef0bcab0a53808071e0921ed1d78d031f540ef9c5b3c1
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.7-cp314-cp314-macosx_26_0_arm64.whl

Download URL pixell-0.32.7-cp314-cp314-macosx_26_0_arm64.whl
Size 2.1 MB
Tags CPython 3.14 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
f3eeb4aa3bad8e776e5b6c0bd7223965ca05c5710891e4ac3b932a2c67e2858a
BLAKE2b-256 checksum
How to use checksums
549945ddb78e565953e66ccb56fe8b51c9474ff34398838e7215b0a0cb51c2f5
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.7-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.7-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
52971f2e8f7f15bcaa99d327b7f6566a7b88d9273315a6ec1d862c91a63364d4
BLAKE2b-256 checksum
How to use checksums
3350817fb335358715000c4496158d6ac60f7ee1e7401e8bfb6fbf39b9f99a30
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.7-cp313-cp313-macosx_26_0_arm64.whl

Download URL pixell-0.32.7-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
c747bf183ae7e7e7fea1e8f1f682b822ecdd50ab364498c0bee06d5edb8db718
BLAKE2b-256 checksum
How to use checksums
8a62cd62e04790cb55cdcd957f1481af6993e726c8cc77217841e94184261ca1
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.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.7-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
a8b335139d276b4bdd32d43ce42ad778822f07a06fdd030f822ded5330e28221
BLAKE2b-256 checksum
How to use checksums
3964896c64474bbcbe9ab3df4dd311f87f0a05dd1af9cb2f3c5e86a66a4f4cb5
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.7-cp312-cp312-macosx_26_0_arm64.whl

Download URL pixell-0.32.7-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
c3f357982495aa91dcb6cdfd33344c590c4f1e3eb12308a2645468e462729b0f
BLAKE2b-256 checksum
How to use checksums
6b053a6e54c0b650c77f7a8f7e6e3a47cce8a1ea680b4af632c362b8819a5974
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.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.7-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
4e8c3ed22a72ef1eae0c529017ddfb041c069c898a788f5a4f835364d6867c35
BLAKE2b-256 checksum
How to use checksums
70334e219260fb989a5505081e601e8f8ea042de4eac824a65f1b82e5a01b527
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.7-cp311-cp311-macosx_26_0_arm64.whl

Download URL pixell-0.32.7-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
93317b94f6b519321621be3abcd9191525effeccb20d1c8504b4f00b47c1314c
BLAKE2b-256 checksum
How to use checksums
4f22ed06d3b8293befed5b99be65595e539e73c9287ad6a8f28a727a4d768e2d
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.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pixell-0.32.7-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
1752a845782578963faf687ce1c8371d65779a7c3a11e34cfdfd8617787de91e
BLAKE2b-256 checksum
How to use checksums
6516fc152cb4c61d1e48351c4815594cb6d1164cfa00f38c683c9c35de2b82a0
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.7-cp310-cp310-macosx_26_0_arm64.whl

Download URL pixell-0.32.7-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
8bfa0aea27194557dc74ce5d37a1ada60762bf9da5832d321abdaaf0c836e62e
BLAKE2b-256 checksum
How to use checksums
c39cf54af862921453262299fe01ece4934b7abf82bb9082f3ee15c3911d9195
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.7 This release

11 release files

0.32.5

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