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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pixell-0.32.4.tar.gz (6.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pixell-0.32.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pixell-0.32.4-cp313-cp313-macosx_26_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

pixell-0.32.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pixell-0.32.4-cp312-cp312-macosx_26_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

pixell-0.32.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pixell-0.32.4-cp311-cp311-macosx_26_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.11macOS 26.0+ ARM64

pixell-0.32.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pixell-0.32.4-cp310-cp310-macosx_26_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.10macOS 26.0+ ARM64

File details

Details for the file pixell-0.32.4.tar.gz.

File metadata

  • Download URL: pixell-0.32.4.tar.gz
  • Upload date:
  • Size: 6.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pixell-0.32.4.tar.gz
Algorithm Hash digest
SHA256 a1260f4363a949ecce1f0b5f0f3cb796ea00a3fe82228080b2ba205a77e8f213
MD5 d867b5baeb89e23a0191b94e69dbd1a4
BLAKE2b-256 5e29cef5d7c7db46b45575607c408b7faccdea05ce76a2b4f0fe0d37481b33ff

See more details on using hashes here.

File details

Details for the file pixell-0.32.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixell-0.32.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9afb8a2a7c50f7ffabf68034e515c6ba97ffd9d7bcf0cbf65b056bc752848e3
MD5 85913c29761b0bb4816886e21fbcbb2a
BLAKE2b-256 4a92f2409b8b2c7cb0108ce393159e00e74831211d8c0640849d4c6298a601ac

See more details on using hashes here.

File details

Details for the file pixell-0.32.4-cp313-cp313-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pixell-0.32.4-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 2f9fd5ecc04218627cef43b46a2c840f6391bf0aa8f9183e6db58f293413fccc
MD5 2a7b4d8cf20346c19eec7f0cbf93127c
BLAKE2b-256 515dc3ad1302c02024ff95bfd11f35454790915b641bdc8a2160d8bd7859fba5

See more details on using hashes here.

File details

Details for the file pixell-0.32.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixell-0.32.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b359000c15cf0f696ce154086db69ea56feba51457bd689f936122a4d601f022
MD5 41623548260a3736c7af66b1018c13a1
BLAKE2b-256 6ae1a933c1d754163d2063ea6486b64a423f8b71cc4e22f82aea464732eb2205

See more details on using hashes here.

File details

Details for the file pixell-0.32.4-cp312-cp312-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pixell-0.32.4-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 1bdf71a5ca3374f1124235aad8e3542fac646cbfce6f7ea693f6a3fc8c958ca9
MD5 6019058f3c567ac368aab6336e32286c
BLAKE2b-256 38354bead8d72eefec1598be800df55f01554d894505b2d4a2af4dbbb868d992

See more details on using hashes here.

File details

Details for the file pixell-0.32.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixell-0.32.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69f2ed96d5e34ec14480494e177ab92db3b463db1a95033c41a23f9d7688e78c
MD5 2e64d80a381c16b077340aeae59d9cc6
BLAKE2b-256 2ae2a007d07a35cb2fee1bda76ed9a34cc0f7e4a33e7f37dcc2b1890b7843e48

See more details on using hashes here.

File details

Details for the file pixell-0.32.4-cp311-cp311-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pixell-0.32.4-cp311-cp311-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 d7117f658ecd738f82eedd84d15c9a575d90185fbb1dfd814ca59315b3c1d0f6
MD5 211d10e86ad7a583582028c87088df60
BLAKE2b-256 b9291ca97af0917bee8b2b0a72d7712b8727fff05fe22d501134936e9c9b0044

See more details on using hashes here.

File details

Details for the file pixell-0.32.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixell-0.32.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9ac174c56966300f9675e4267974c61f07f57d7be3d4b08e89cc754b15cc899e
MD5 3e86c00423924c4d9c7daa81e2eff8a4
BLAKE2b-256 96596f1795c1de96f0a69af3f27f3cb21a8eef031e1cc3ac55ec42a4e085f946

See more details on using hashes here.

File details

Details for the file pixell-0.32.4-cp310-cp310-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pixell-0.32.4-cp310-cp310-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 b91331ee73e749a263217a34a12a3b6ee7978a78aeadc34bdb70d01ff609d450
MD5 9b5ef49822a6047752276d7b85effe85
BLAKE2b-256 e553dfacffce2b018c43bace676e26a2cc89c4ddbddffa76c1608efdb87893dc

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page