Pyxel  is a novel, open-source, modular Python software framework designed to host and pipeline models (analytical, numerical, statistical) simulating different types of detector effects on images produced by Charge-Coupled Devices ( CCD ), Monolithic, and Hybrid CMOS imaging sensors.
Users can provide one or more input images to Pyxel, set the detector and model parameters via a user interface (configuration file) and select which effects to simulate: cosmic rays, detector Point Spread Function (PSF), electronic noises, Charge Transfer Inefficiency (CTI), persistence, dark current, charge diffusion, optical effects, etc. The output is one or more images including the simulated detector effects combined.
On top of its model hosting capabilities, the framework also provides a set of basic image analysis tools and an input image generator as well. It also features a parametric mode to perform parametric and sensitivity analysis, and a model calibration mode to find optimal values of its parameters based on a target dataset the model should reproduce.
A majority of Pyxel users are expected to be detector scientists and engineers working with instruments - using detectors - built for astronomy and Earth observation, who need to perform detector simulations, for example to understand laboratory data, to derive detector design specifications for a particular application, or to predict instrument and mission performance based on existing detector measurements.
One of the main purposes of this new tool is to share existing resources and avoid duplication of work. For instance, detector models developed for a certain project could be reused by other projects as well, making knowledge transfer easier.
The best way to get started and learn Pyxel are the Tutorials and examples.
For convenience we provide a pre-defined conda environment file, so you can get additional useful packages together with Pyxel in a virtual isolated environment.
First install Miniconda and then just execute the following commands in the terminal:
Alternatively, you can use Mamba.
Mamba is an alternative package manager that support most of conda’s command but
offers higher installation speed and more reliable environment solutions.
mamba in the Conda base environment:
conda install mamba -n base -c conda-forge
then you can replace command
curl -O https://esa.gitlab.io/pyxel/doc/latest/pyxel-1.10.2-environment.yaml conda env create -f pyxel-1.10.2-environment.yaml
wget https://esa.gitlab.io/pyxel/doc/latest/pyxel-1.10.2-environment.yaml -outfile "pyxel-1.10.2-environment.yaml" conda env create -f pyxel-1.10.2-environment.yaml
Once the conda environment has been created you can active it using:
conda activate pyxel-1.10.2
You can now proceed to download the Pyxel tutorial notebooks. The total size to download is ~200 MB.
Select the location where you want to install the tutorials and datasets and
proceed with the following command to download them in folder
Finally start a notebook server by executing:
cd pyxel-examples jupyter lab
Are you new to Pyxel ? This is the place to start !