Changelog#
Pyxel version numbers are in the of form x.y.z.
The major release number (x) is incremented if a feature release includes a significant backward incompatible change that affects a significant fraction of users.
The minor release number (y) is incremented on each feature release. Minor releases include updated stdlib stubs from typeshed.
The point release number (z) is incremented when there are fixes only.
Pyxel doesn’t use SemVer anymore, since most minor releases have at least minor backward incompatible changes.
2.8.2 / 2025-01-27#
This release fixes two models
from Data Processing
.
Models#
Fix issues with models
signal_to_noise_ratio
,remove_cosmic_rays
andmean variance
fromData Processing
. (See !1027 !1028).
2.8.1 / 2025-01-16#
This is a quick release to fix a bug in model load_star_map
in Scene Generation
with astroquery
version 0.4.8+
Models#
Fix bug in model
load_star_map
inScene Generation
when using ‘astroquery’ version 0.4.8+. (See !1024).
Others#
2.8 / 2025-01-15#
This release introduces significant updates and new features.
🆕 New model exponential_qe
in Charge Generation
#
Model exponential_qe
from Charge Generation
has been added.
This model computes the Quantum Efficiency (QE) of a detector based on key characteristics such as:
Front/Back Illumination
Charge Collection Efficiency
Absorption coefficient
Reflectivity
Epilayer thickness
Poly gate thickness
🆕 FITS Header Propagation#
It is now possible to propagate the FITS header, read using model
the load_image
from Photon Collection
with a FITS Image data file into the FITS output file(s).
For example, if the FITS file my_image.fits
contains a FITS header into its HDU (Header Data Unit) ‘RAW’, you
can extract and store it into an output FITS file by using the following YAML configuration:
observation: # or 'exposure'
outputs:
output_folder: 'output' # <== output FITS file(s) will be save in this folder
save_data_to_file:
- detector.image.array: ['fits'] # <== generate at least one FITS file
cmos_detector:
...
pipeline:
photon_collection:
func: pyxel.models.photon_collection.load_image
enabled: true
arguments:
image_file: my_image.fits # <== input FITS filename
convert_to_photons: false
include_header: true
header_section_index: 'RAW' # <== HDU where to retrieve the FITS header (optional)
...
⌨️ Add more instructions for setting a development environment with uv
#
Add additional instructions in the contribution guide
on how to set up a development environment using uv
(Unified Python Packaging).
Breaking changes#
Support for Python 3.9 has been dropped.
The minimum versions of some dependencies were also changed:
Package |
Old |
New |
---|---|---|
astropy |
4.3 |
5.2+ |
typing-extensions |
4.5 |
4.9+ |
xarray |
2023.12.0 |
2024.10.0+ |
Core#
Documentation#
Add more documentation about installing Pyxel and using it with VSCode/PyCharm and
uv
. (See !1009).
Models#
Use
photutils
instead ofsep
for modelsource_extractor
inData Processing
. (See !1002).Fix bug in model
load_star_map
inScene Generation
due to recent update by the Gaia database. (See !1010 and !1015).New model
Exponential QE
fromCharge Generation
. (See !1005, !1014 and !1017).
Others#
2.7 / 2024-11-11#
This release brings a number of bug fixes and improvements.
Fix memory leak issue with function pyxel.run
and command python -m pyxel
in Observation mode#
A critical memory leak that occur when running the command pyxel -m pyxel configuration.yaml
or
the python function pyxel.run('configuration.yaml')
in Observation mode with parameter with_dask
enabled is fixed.
This fix prevents the computer from running out of memory in Observation mode.
New feature: return list of output filenames with function pyxel.run
#
The pyxel.run
command now returns a list of generated output filenames.
Example:
>>> import pyxel
>>> filenames = pyxel.run('observation.yaml')
>>> filenames
id data_format bucket_name filename
0 0 fits image detector_image_array_1.fits
1 1 fits image detector_image_array_2.fits
2 2 fits image detector_image_array_3.fits
3 3 fits image detector_image_array_4.fits
4 4 fits image detector_image_array_5.fits
5 5 fits image detector_image_array_6.fits
Core#
Deprecated more code. (See !979).
Improve representer magic methods for ‘Outputs’ and ‘CustomMode’. (See !980).
Refactor
ObservationDask
. (See !981).Refactor function
eval_entry
. (See !984).Add unit tests for function
convert_values
. (See !985).Fix issue with
Processor.has
. (See !986).Outputs are not generated with
run_mode
and Observation mode. (See !982).Refactor functions
pyxel.load_image
andpyxel.load_header
. (See !989).
Documentation#
Fix documentation for model
AC/DC crosstalks
from Charge Measurement model group by Antoine Kaszczyc from CRAL (Centre de Recherche Astrophysique de Lyon). (See !983).
Models#
Fix bug in model
load_image
from Photon Collection group where the photon array is now correctly “added to” instead of “replaced by a new one”. By Antoine Kaszczyc. (See !977).Add a
USAF pattern illumination
model from Photon Collection. (See !990 and !992).Add parameters to extract header from parameter
image_file
in modelload_image
from from Photon Collection. (See !988).Fix issue with model
NxRG
from Charge Measurement group when adding pink noise. (See !993).Fix issue in model
physical_non_linearity_with_saturation
in Charge Measurement. (See !994).
Others#
2.6.1 / 2024-10-14#
This release brings a number of bug fixes since version 2.6
Core#
Cannot set readout time as a single value. (See !973).
Fix bug when trying to set
observation.readout.times
in Observation mode. (See !972).Cannot set readout time as a single value. (See !973).
Fix bug in function
pyxel.plotting.plot_ptc
. (See !974).
Models#
Fix bug in model
mean_variance
when only a single readout time is provided. (See !975).
2.6 / 2024-10-11#
This release brings a number of bug fixes and improvements.
📈Plotting utilities#
A new plotting utilities library has been added in
pyxel.plotting
.
The first plot is the function pyxel.plotting.plot_ptc
to plot a Photon Transfer Curve (PTC) on log-log scale using Matplotlib.
💪Observation mode with dask
enabled#
When using Observation mode with with_dask
enabled in
pyxel.run_mode
,
the output is a DataTree
containing Dask Arrays instead of
Numpy Arrays.
With the Dask Arrays, the resulting
DataTree can handle data larger than the
available memory. This allows for efficient processing and computation on large-scale data without memory constraints.
More information on how to work with Xarray and Dask, check out the Xarray tutorial with Dask.
Example of YAML file with with_dask
enabled:
observation:
with_dask: true
...
and how to use it:
>>> import pyxel
>>> config = pyxel.load('observation.yaml')
>>> data_tree = pyxel.run_mode(
... mode=config.running_mode,
... detector=config.detector,
... pipeline=config.pipeline,
... )
>>> data_tree['/bucket']
<xarray.DataArray 'bucket'>
Group: /bucket
...
Data variables:
photon (temperature, ..., time, y, x) dask.array<chunksize=(1, ..., 100, 256, 256)>
...
image (temperature, ..., time, y, x) dask.array<chunksize=(1, ..., 100, 256, 256)>
>>> data_tree['/bucket'].compute()
...
Core#
Improved Observation mode with
dask
enabled. (See !951).Add compatibility with xarray 2024.09.0. (See !953).
Use method
xarray.drop_vars
instead ofxarray.drop
. (See !955).Fix bug when using function
load_table
with data containing only a single column. (See !954).Fix bug when using parameter
debug
withpyxel.run_mode
. (See !957).Remove progress bar when running Observation mode with Dask enabled. (See !958).
Force parameter
with_inherited_coords
inpyxel.run_mode
to True if ‘Scene’ is not empty. (See !962).Fix bug in Observation mode. (See !967).
Add new module
pyxel.plotting
. (See !966).Better error message when a parameter for Observation mode is wrong. (See !968).
Documentation#
Add more documentation for model
mean_variance
fromData Processing
. (See !963).Add more documentation. (See !965).
Add more documentation for function
pyxel.plotting
. (See !970).Add more documentation for Observation mode when using dask. (See !971).
Models#
Model
dark_current_rule07
fromCharge Generation
can also be used with CCDs. (See !956).Model
radiation_induced_dark_current
fromCharge Generation
can also be used with CCDs. (See !959 and !961).
Others#
2.5.1 / 2024-09-12#
This release is to fix a bug with xarray
version 2024.9.0
Others#
Pin
xarray
version to <2024.9.0. (See !946).
2.5 / 2024-09-11#
This release brings a number of bugfixes and improvements.
🚀 New way to quickly install and use Pyxel 🚀#
We’ve introduced a new quickstart setup guide for faster and easier installation and use of Pyxel with uv.
How to get Started:#
Then, run the following commands to download the Pyxel tutorial notebooks (~200 MB) and open them in Jupyter Lab:
$ uvx pyxel-sim download-examples
Downloading examples: 388MB [00:08, 47.9MB/s]
Done in folder /.../pyxel-examples.
$ cd pyxel-examples
$ uvx --with pyxel-sim[model] jupyter lab
[Server App] Jupyter Server is running at:
[Server App] http://localhost:8888/lab?token=...
This streamlined process makes it simpler to get Pyxel up and running quickly !
New parameter with_inherited_coords
for pyxel.run_mode
function#
A new optional with_inherited_coords
parameter has been added to the pyxel.run_mode
function.
This ensures that coordinates are inherited within the DataTree, simplifying the hierarchical structure and
reducing data redundancy. For more detail, see Xarray issue #9077.
⚠️ This parameter is provisional. ⚠️
Example:
>>> import pyxel
>>> cfg = pyxel.load('configuration.yaml')
>>> result = pyxel.run_mode(
... mode=cfg.running_mode,
... detector=cfg.detector,
... pipeline=cfg.pipeline,
... with_inherited_coords=True, # <== Use parameter 'with_inherited_coords'
... )
>>> result
<xarray.DataTree>
Group: /
│ Dimensions: ()
│ Data variables:
│ *empty*
│ Attributes:
│ pyxel version: 2.4.1+37.gff6da221.dirty
│ running mode: Exposure
├── Group: /bucket
│ │ Dimensions: (time: 100, y: 64, x: 64)
│ │ Coordinates:
│ │ * y (y) int64 512B 0 1 2 3 4 5 6 7 8 9 ... 55 56 57 58 59 60 61 62 63
│ │ * x (x) int64 512B 0 1 2 3 4 5 6 7 8 9 ... 55 56 57 58 59 60 61 62 63
│ │ * time (time) float64 800B 0.0001 0.0001103 0.0001216 ... 1.437 1.585
│ │ Data variables:
│ │ photon (time, y, x) float64 3MB 98.0 101.0 97.0 ... 1.465e+05 1.478e+05
| | ...
│ │ image (time, y, x) uint16 819kB 79 76 73 74 ... 63018 62978 62896 63024
│ └── Group: /bucket/scene
└── Group: /data
└── Group: /data/mean_variance
└── Group: /data/mean_variance/image
Dimensions: (pipeline_idx: 100)
Coordinates:
* pipeline_idx (pipeline_idx) int64 800B 1 2 3 4 5 6 7 ... 94 95 96 97 98 99
Data variables:
mean (pipeline_idx) float64 800B 7.316 8.086 ... 6.299e+04
variance (pipeline_idx) float64 800B 12.17 13.45 ... 1.348e+03
Breaking changes#
The minimum versions of some dependencies were changed:
Package |
Old |
New |
---|---|---|
matplotlib |
3.1 |
3.6+ |
numba |
0.56.4 |
1.24+ |
numpy |
1.23 |
1.24+ |
pandas |
1.5+ |
|
scikit-image |
0.20.0+ |
|
scipy |
1.10+ |
|
xarray |
2022.6 |
2023.12.0+ |
Core#
Add error message when a YAML file uses
Observation
mode withoutparameters
. (See !933).Add possibility to use strings in the
parameters
fields in a YAML observation file. (See !936).Add better error message when a pipeline failed during
Observation
mode. (See !937).Add new parameter
with_inherited_coords
into functionpyxel.run_mode
. (See !939).
Documentation#
Update documentation about the new dependencies. (See !934).
Models#
Fix issue in function
aggregate_multiwavelength
for modelsimple_collection
fromPhoton Collection
. (See !928).Fix bug with charges getting accumulated between two loads of YAML config with model
load_charge
fromCharge Generation
. (See !931).Fix bug with incorrect window_mode with model
nghxrg
fromCharge Measurement
(See !930).Fix issue when using model
mean_variance
from groupData Processing
in Observation mode. (See !938).Fix bug in model
output_node_noise_cmos
fromCharge Measurement
with some values. (See !941).Fix bug in model
dc_offset
inCharge Measurement
. (See !940).Fix bug in model
output_node_linearity_poly
inCharge Measurement
. (See !942).
Others#
2.4.1 / 2024-07-10#
The documentation was not updated for version 2.4.1 (missing environment file, …).
Others#
Add missing files for version 2.4.1. (See !922).
2.4 / 2024-07-10#
This release brings a number of bugfixes and improvements.
New parameter working_directory
for the YAML file
A new optional parameter working_directory
has been added in the YAML configuration files.
This parameter defines the current working directory, which will be used ad the
base directory for all relative paths used in the YAML configuration file.
See the following example:
working_directory: ~/my_folder # <== define working directory to `~/my_folder` (optional)
simulation:
mode: calibration
calibration:
target_data_path: ['CTI/input/data.fits'] # <== will be converted as
# +-----------------+ `~/my_folder/CTI/input/data.fits`
# | +---------+
# relative path |
# from 'working_directory'
New parameter --override
for the command line tool
A new optional parameter --override
in
the pyxel run
command line tool allows users to override specific configuration parameters from a YAML configuration file.
This can be particularly useful for making quick adjustments to the configuration without modifying the original YAML file
Example of running the configuration configuration.yaml
and overriding its parameters exposure.outputs.output_folder
and pipeline.photon_collection.load_image.arguments.image_file
$ python -m pyxel run configuration.yaml --override exposure.outputs.output_folder=new_folder \
--override pipeline.photon_collection.load_image.arguments.image_file=new_image.fits
from this YAML configuration file:
exposure:
outputs:
output_folder: old_folder
pipeline:
photon_collection:
- name: load_image
func: pyxel.models.photon_collection.load_image
enabled: true
arguments:
image_file: data/Pleiades_HST.fits
New parameter stepsize
for model CosmiX
A new optional parameter stepsize
has been added for model
Cosmix
in group Charge Generation
.
This parameter allows adding defined step size files when running_mode: stepsize
is enabled.
Example of a YAML configuration file to use this parameter:
- name: cosmix
func: pyxel.models.charge_generation.cosmix
enabled: true
arguments:
simulation_mode: cosmic_ray
running_mode: "stepsize"
particle_type: proton
initial_energy: 100. # MeV
particles_per_second: 100
incident_angles:
starting_position:
spectrum_file: 'data/proton_L2_solarMax_11mm_Shielding.txt'
seed: 4321
stepsize:
- type: proton
energy: 100.0 # MeV
thickness: 40.0 # um
filename: pyxel/models/charge_generation/cosmix/data/stepsize_proton_100MeV_40um_Si_10k.ascii
- type: proton
energy: 100.0 # MeV
thickness: 50.0 # um
filename: pyxel/models/charge_generation/cosmix/data/stepsize_proton_100MeV_50um_Si_10k.ascii
- type: proton
energy: 100.0 # MeV
thickness: 60.0 # um
filename: pyxel/models/charge_generation/cosmix/data/stepsize_proton_100MeV_60um_Si_10k.ascii
- type: proton
energy: 100.0 # MeV
thickness: 70.0 # um
filename: pyxel/models/charge_generation/cosmix/data/stepsize_proton_100MeV_70um_Si_10k.ascii
- type: proton
energy: 100.0 # MeV
thickness: 100.0 # um
filename: pyxel/models/charge_generation/cosmix/data/stepsize_proton_100MeV_100um_Si_10k.ascii
Updated dependencies#
The minimum versions of some dependencies were changed:
Package |
Old |
New |
---|---|---|
hvplot |
0.9+ |
Core#
Add new parameter
working_directory
in YAML configuration files. (See !838).Use
DataTree
from modulexarray.core.datatree
when possible. (See !897).Add an option to override parameter(s) from
pyxel -m run
. (See !903).Function
pyxel.run_mode
does not generate DataTree internally. (See !906).Add more info in the header of generated FITS files. (See !904).
Reinject FITS header of inputs file(s) into output file(s). (See !905).
Cannot access attribute
observation
from processor. (See !907).Improve error message when loading an non-existing model. (See !912).
Documentation#
Fix typo in documentation for model
charge_deposition
fromCharge Generation
. (See !908).
Models#
Replace deprecated
scipy.integrate.cumtrapz
byscipy.integrate.cumulative_trapezoid
in modelwavelength_dependence_airs
in groupPhoton Collection
. (See !900).Better error message when no photons are provided in model
simple_conversion
in groupCharge Generation
. (See !909).Add possibility to provide external files with incident energy for model
Cosmix
in groupCharge Generation
. (See !919).Fix bug with
thermal_velocity
in modelCDM
in groupCharge Transfer
. (See !920).
Others#
2.3 / 2024-06-19#
This release brings a number of bugfixes and improvements.
Core#
Add option to generate a new model directly in the console with
pyxel -m create-model
. (See !894).
Documentation#
Others#
Add a code of conduct. (See !881).
2.2 / 2024-05-29#
This release brings a number of bugfixes and improvements.
Documentation#
Possible bug in
dark current
calculation. (See !880).
Models#
Refactor
dark current
anddark current rule 07
from Charge Generation. (See !892).
Others#
2.1.1 / 2024-03-19#
Add missing documentation on version 2.1 (and 2.1.1).
2.1 / 2024-03-19#
This release brings a number of bugfixes and improvements.
The Pyxel Wheel package size has been reduced from 22 MB to less than 1 MB.
Several serious bugs where solved in models:
ktc_noise
fromCharge Measurement
: Now kTc noise is only added to the frame(s) right after reset.load_star_map
fromScene Generation
: Astroquery 0.4.7 package broke the model.
Parameter outputs
in the YAML configuration is now optional.
See the following examples:
Before:
exposure:
readout:
times: [1., 5., 7.]
non_destructive: false
outputs:
output_folder: my_folder # An output folder is generated but nothing is stored there.
# It is still compulsory to add 'outputs'
After:
exposure:
readout:
times: [1., 5., 7.]
non_destructive: false
# No need to add 'outputs'
Core#
Parameter
outputs
is optional in YAML files. (See !872).Add more units in outputs generated by
pyxel.run_mode()
. (See !873).
Documentation#
Add more documentation. (See !876).
Models#
Add kTC noise in model
ktc_noise
fromCharge Measurement
only to the frame acquired right after reset. (See !867).Fix issue in model
load_star_map
fromScene Generation
with Astroquery 0.4.7+. (See !875 and !877).
Others#
2.0 / 2024-02-22#
This is a major release of Pyxel that brings number of new features such as support for multi-wavelength.
Version 2.0 brings a number of bugfixes, improvements and deprecations.
Breaking Changes#
Removed models#
The deprecated models in optics
and photon_generation
model groups are removed.
The deprecated model simple_aperture
in photon_collection
is removed.
New unit for wavelength
#
Parameter wavelength
in model optical_psf
in photon_collection
is defined in nanometer instead of meter.
Before
- name: optical_psf
func: pyxel.models.photon_collection.optical_psf
enabled: true
arguments:
wavelength: 0.6e-6 # wavelength in meters
Now
- name: optical_psf
func: pyxel.models.photon_collection.optical_psf
enabled: true
arguments:
wavelength: 600 # wavelength in nm
# ^^^ ^^
# new
Updated dependencies#
The minimum versions of some dependencies were changed:
Package |
Old |
New |
---|---|---|
Bokeh |
3.3+ |
Core#
Fix bug when
pyxel.load
is executed and output folder already exists. (See !835 and #643).Fix bug in function
pyxel.run
when saving YAML configuration file. (See !843).Fix issue with
pyxel.run_mode()
in Calibration mode. (See !844).Fix bug in
ModelFittingDataTree
. (See !845).Add new parameter
new_display
in functionpyxel.display_detector
. (See !850).Rename class
Array
toArrayBase
. (See !851).Fix bug with
pyxel.display_scene
. (See !855).Fix issues in
pyxel.display_detector
with parameternew_display=True
. (See !858 and !863).
Documentation#
Update documentation about quick start installation. (See !830).
Use
sphinx-design
instead ofsphinx-panels
in the documentation. (See !831).Output files generated by detector_import_export notebook guide are saved into a temporary file. (See !842).
Add links from Pyxel Data directly into the documentation. (See !861).
Remove references to ‘gitlab.esa.int’ with Docker. (See !834).
Update documentation for 2.0. (See !856).
Models#
Remove deprecated models under
optics
andphoton_generation
model groups. (See !825).Remove deprecated model
simple_aperture
. (See !827).Merge
optical_psf_with_multiwavelength
intooptical_psf
. (See !837).Add capability to integrate photon in
simple_conversion
incharge_generation
model groups. (See !848).Add unit tests for model
simple_collection
inphoton_collection
. (See !847).Add more unit tests for model
optical_psf
inphoton_collection
. (See !854).Rename parameter
pixelscale
topixel_scale
in modelssimple_collection
andoptical_psf
inphoton_collection
. (See !857 and !859).Add new parameter
extract_psf
inoptical_psf
inphoton_collection
. (See !860).
Others#
Bump pre-commit versions. (See !826).
Remove warnings when using function
pyxel.show_versions()
. (See !828).Reduce size of the Docker image(s). (See !833).
1.15 / 2024-01-29#
This release brings a number of bugfixes and improvements.
The bucket Photon
can now be 2D or 3D (with additional dimension wavelength
).
A new function pyxel.display_scene()
was added to display the scene
, which is generated by models inside the Scene Generation
.
New models were added to Photon Collection
and Charge Generation
that can manage multi-wavelength photons.
The following new models were added:
load_wavelength_psf
inPhoton Collection
.optical_psf_multi_wavelength
inPhoton Collection
.apply_qe_curve
inCharge Generation
.conversion_with_3d_qe_map
inCharge Generation
.
Breaking Changes#
The model argument pixel_scale
was moved to the Detector.geometry
.
The model aperture
in photon_collection
is deprecated and will be removed in Pyxel 2.0.
Please use simple_collection
instead.
Core#
Models#
Add model that converts 3D scene to 3D photon. (See !760).
Implement a wavelength-dependency for the QE map. (See !765).
Add model “load_PSF_wavelength”. (See !686).
Refactor aperture and simple collection. (See !818).
Add model ‘optical_psf_multi_wavelength’ from group ‘Photon Collection’. (See !820).
Others#
Convert DeprecationWarning to FutureWarning. (See !821).
1.14 / 2024-01-19#
This release brings a number of bugfixes and improvements.
The functions pyxel.exposure_mode(...)
, pyxel.observation_mode(...)
and pyxel.calibration_mode(...)
are deprecated and will be removed in Pyxel 2.0.
These functions are replaced by pyxel.run_mode(...)
Core#
Documentation#
Add documentation for
Detector.scene
. (See !800).
Models#
Others#
Catch exception
ModuleNotFoundError
instead ofImportError
. (See !789).Refactor functions in
state.py
. (See !790).Add missing packages in
environment.yml
. (See !792).Prepare for Numpy 2. (See !795).
Parameter
with_intermediate_steps
is not optional in functionrun_pipeline
. (See !794).Package
sep
must be an optional package. (See !805).Speedup function
run_mode
. (See !806).Improved some error messages. (See !810).
1.13.1 / 2023-11-28#
This release brings a number of bugfixes and improvements.
With the new breaking changes in version 1.13 the pixel array was reset also when using non-destructive readout mode. This new release fixes the bug. The error message is improved when an array is not initialized and the documentation for the model groups is updated, such that the user is better informed.
Core#
Documentation#
Review model descriptions in reference documentation. (See !784).
1.13 / 2023-11-22#
This release brings a number of bugfixes and improvements.
Breaking changes#
The containers such as Photon
, Pixel
, Signal
and Image
are not
initialized before running a pipeline. The models must initialize the containers.
Core#
Removed deprecated
Detector.set_output_dir
method andDetector.output_dir
property. (See !759).Image data bucket only allows integer data. (See !764).
Fix issue in Observation mode with a 2D parameter. (See !770).
Changed Array class initializer. The internal array is initialized to None not np.zeroes. (See !767).
Remove attribute
input_image
fromDetector
. (See !772).Fix bug in
Array.__repr__
. (See !773).Fix bugs in Calibration mode. (See !774).
Add two new
load_table_v2
andload_image_v2
functions. These functions are more flexible thanload_table
andload_image
and are provisional. (See !775).
Models#
Improvements in model ‘pulse_processing’ in Model group ‘phasing’. (See !665).
Model ‘amplifier_crosstalk’ is moved from ‘readout_electronics’ to ‘charge_measurement’. (See !763).
Remove warnings from model ‘Cosmix’ from ‘Charge Generation. (See !768).
Remove all warnings in dark current model. (See !769).
Fix issue with model ‘wavelength_dependence_airs’ in ‘Photon Collection’. (See !776 and !777).
Others#
1.12 / 2023-10-27#
This release brings a number of bugfixes, documentation and improvements.
The function pyxel.display_detector
used in the jupyter notebooks to visualise the detector at each stage of the
pipeline, has now the option to display in logarithmic scale besides the linear scale and to change the color of the image.
The bin size and the x-axis range can now be changed in the related histogram plot.
Core#
In ‘Custom Observation’ mode, add a sanity test to verify input custom data. (See !749).
Nan output and missing output in observation mode. (See !750).
Improved function
pyxel.display_detector
. (See !739).Add filter to ignore warnings in scene_generation. (See !751).
Reduce warning in dark current model. (See !643).
Documentation#
Add more information about the Conda environments in the installation documentation. (See !746).
Add documentation for ModelGroup ‘Scene Generation’. (See !752).
1.11.1 / 2023-10-19#
This release brings one bugfix.
Others#
Remove Scopesim as a dependency of Pyxel. (See !745).
1.11 / 2023-10-18#
This release brings a number of bugfixes, documentation and improvements.
The following new models were added:
load_star_map
inScene Generation
.simple_aperture
inPhoton Collection
.
Parameter data_type
is now optional in model
simple_adc
in Readout Electronics
.
If this parameter is not provided then it is inferred from adc_bit_resolution
in Detector
.
Core#
Bug when using with a configuration file with extension ‘.yml’ instead of ‘.yaml’. (See !737).
Speedup function
pyxel.load
. (See !738).Add
Scene
topyxel.run_mode
. (See !740).Fix bug with the output of
pyxel.run_mode
. The ‘image’ container has typefloat64
instead ofint
. (See !742).
Documentation#
Add info about Jupyter book being not interactive. (See !726).
Add new icon/badge ‘I want to contribute !’ (See !727).
Update EMCCD cic model
multiplication_register_cic
inCharge Transfer
. (See !728).Fix documentation for model
load_charge
incharge_generation
. (See !743).
Models#
Add first model for group
load_star_map
inScene Generation
. (See !715 and !716).Fix unexpected value in
simple_adc
inReadout Electronics
. (See !732).Add model
simple_aperture
inPhoton Collection
to convert from scene to photon. (See !733).Parameter
data_type
is optional in modelsimple_adc
inReadout Electronics
. (See !736).Rename induced dark_current model to
radiation induced dark current
. (See !731).
Others#
1.10.2 / 2023-08-29#
This release brings a bugfix with the conda package.
1.10.1 / 2023-08-28#
This release brings a bugfix.
Others#
Update lacosmic dependency to optional. (See !721).
1.10 / 2023-08-28#
This release brings a number of bugfixes, documentation and improvements.
The Pixel Coordinate conventions is now clarified.
The following new models were added:
Wavelength dependence AIRS
from CEA Paris-Saclay.Dark Current induced
from ISAE Supaero.EMCCD Clock Induced Charge
from Niels Bohr Institute and University of Copenhagen.
A new parameter with_intermediate_steps
in function pyxel.run_mode
has been added. With this parameter, it is now possible to display all intermediate steps executed in the
pipeline. This parameter is provisional and may change in the future.
Breaking changes#
Bucket Detector.processed_data
is removed. This bucket was used in the
Data Processing group
and is now replaced by the Detector.data
bucket.
Core#
Remove data structure
ProcessedData
and bucketDetector.processed_data
. (See !693).Add parameter
with_intermediate_steps
in functionpyxel.run_mode
. (See !687).Get full size ‘simulated’ and ‘target’ image when running a Calibration pipeline with
pyxel.run_mode
. (See !695).Fix KeyError issue with function
pyxel.display_simulated
. (See !696).Fix issue when running Calibration mode with weight files with
pyxel.run_mode
. (See !700).Wrong shape when using parameters ‘result_fit_range’ and ‘target_fit_range’ in Calibration mode. (See !701).
Simplify outputs of
pyxel.run_mode
in Exposure mode. (See !702 and !709).Refactor class
ReadoutProperties
. (See !705).
Documentation#
Models#
New model
Wavelength dependence AIRS
inPhoton Collection
from CEA Paris Saclay. (See !677).Refactor
EMCCD multiplication register
model inCharge Transfer
with clock-induced-charges (CIC). (See !678).New model of
Dark Current induced
inCharge Geneneration
. This model was developed by ISAE Supaero. (See !698).New data processing model
Remove Cosmic Rays
inData Processing
. (See !685).New
Signal to Noise Ratio
model inData Processing
. (See !707).Use new Pyxel Coordinate Conventions for model
Load Charge
inCharge Geneneration
. (See !717).
Others#
Refactoring. (See !682).
Reduce code complexity by enabling McCabe plugin ruff. (See !257).
Add rule ‘pep8-naming’ to ‘ruff’. (See !699).
Fix coverage and generate an HTML report. (See !704 and !706).
Fix issue E721 found by flake8 version 6.1.0. (See !708).
Apply ‘ruff’ to folder ‘tests’. (See !718).
1.9.1 / 2023-07-07#
This release brings a number of bugfixes.
Models#
Others#
1.9 / 2023-06-01#
This release brings a number of bugfixes and documentation improvements.
Detector
contains a new bucket data
which contains a xarray.DataTree
(see !631)
Breaking changes#
Function pyxel.run_mode
is not (yet) stable and may change.
Support for Python 3.8 has been dropped and support for Python 3.11 has been added.
The minimum versions of some dependencies were changed:
Package |
Old |
New |
---|---|---|
Python |
3.8+ |
3.9+ |
Poppy |
1.0.3 |
1.1.0+ |
Core#
Use
xarray.DataTree
for a newDetector.data
bucket. (See !631).Function
pyxel.run_mode
returns aDataTree
. (See !647).Refactoring method
Calibration.run_calibration_new
. (See !661 and !663).Fix issue in function
pyxel.run_mode
. (See !669).Improve Calibration mode when using
pyxel.run_mode
. (See !666).
Documentation#
The general documentation has been reviewed and minor fixes made such as: spelling mistakes, typos in markup, grammatical issues, dead hyperlinks, and wording simplification. (see !579).
Fix documentation for ‘JSON Schema’. (see !648).
Update JSON Schema Documentation. (see !649).
Fix typing information for model ‘charge_generation.charge_deposition’. (see !652).
Add more documentation for ‘data_processing’ models ‘mean_variance’ and ‘linear_regression’. (see !660).
Fix documentation. (see !668).
Models#
New data processing model ‘data_processing.mean-variance’. (See !645).
Improve ‘data_processing.statistics’ model usage. (See !646).
Improved model ‘charge_measurement.physical_non_linearity_with_saturation’. (See !655).
Add new model ‘data_processing.linear_regression’. (See !658).
Fix issues with ‘data_processing.linear_regression’ model. (See !670).
Add unit tests to models in model group data processing. (See !703).
Others#
Remove support to Python 3.8. (See !633).
Add units to data buckets in display detector. (See !641).
Adding more linter rules to ‘ruff’. (See !644).
Fix CI/CD pipelines. (See !650).
Add compatibility to Python 3.11. (See !651).
Move and update ‘requirements-dev.txt’. (See !654).
Fixed Windows compatibility issue with several tests. (See !655).
Add missing packages in
pyxel.show_versions()
. (See !657).Poppy version 1.0.3 is not compatible with numpy 1.24. (See !659).
Remove noisy error messages when using ‘tox’. (See !662).
1.8 / 2023-03-30#
This release brings a number of bugfixes and documentation improvements.
A new function pyxel.run_mode
has been added and will replace pyxel.exposure_mode
, pyxel.observation_mode
and pyxel.calibration_mode
functions. This function pyxel.run_mode
always returns an Xarray Dataset
A new parameter custom_dir_name
has been added to customize the name of the output folder.
Example of a configuration file:
exposure: # This is also valid for 'observation:' and 'calibration:'
outputs:
output_folder: output
custom_dir_name: custom # <= NEW
save_data_to_file:
In this example, a new output folder output/custom_...
will be created.
In the calibration configuration files, it is now possible to add different boundaries for values defined as a list.
Example of configuration file before:
parameters:
- key: pipeline.charge_transfer.cdm.arguments.beta
values: _
logarithmic: false
boundaries: [0.1, 0.9]
- key: pipeline.charge_transfer.cdm.arguments.trap_release_times
values: [_, _, _, _]
logarithmic: true
boundaries: [1.e-5, 1.e-1] # Same boundaries for the four values
- key: pipeline.charge_transfer.cdm.arguments.trap_densities
values: [_, _, _, _]
logarithmic: true
boundaries: [1.e-2, 1.e+2] # Same boundaries for the four values
and after:
parameters:
- key: pipeline.charge_transfer.cdm.arguments.beta
values: _
logarithmic: false
boundaries: [0.1, 0.9]
- key: pipeline.charge_transfer.cdm.arguments.trap_release_times
values: [_, _, _, _]
logarithmic: true
boundaries: [1.e-5, 1.e-1] # Same boundaries for the four values
- key: pipeline.charge_transfer.cdm.arguments.trap_densities
values: [_, _, _, _]
logarithmic: true
boundaries: # NEW different boundaries for the four values
- [1.e-2, 1.e+2]
- [1.e-3, 1.e+3]
- [1.e-4, 1.e+4]
- [1.e-5, 1.e+5]
Breaking changes#
The minimum versions of some dependencies were changed:
Package |
Old |
New |
---|---|---|
numpy |
1.20 |
1.21 |
xarray |
0.19 |
2022.06 |
Core#
Multiple boundary conditions for calibration mode. It’s now possible to add different boundaries condition (See !612).
Add a option to force data type in function ‘load_table’. (See !615).
Observation mode, build table with string not only float. (See !613).
Check that in exposure readout time is strictly increasing. (See !516).
Improve Calibration Dataset output. (See !624).
Fix warning message in Calibration. (See !625).
Add charge detector bucket to xarray output when charge is not a dataframe. (See !629).
Add photon and charge buckets also to calibration mode. (See !632).
Ability to name the outputs instread of timestamp directory creation. (See !211).
Documentation#
Models#
Add new ‘Source Extractor’ for ‘Data Processing’ model group. (See !634).
Others#
1.7 / 2023-02-09#
This release brings a number of bugfixes and documentation improvements.
The first peer-reviewed paper of Pyxel was published in the Journal of Astronomical Telescops, Instruments, and Systems and Pyxel has now an entry in the Astrophysics Source Code Library.
A new model group ‘Photon Collection’ was added to replace the groups ‘Photon Generation’ and ‘Optics’. All models from ‘Photon Generation’ and ‘Optics’ are copied into ‘Photon Collection’. The current models from ‘Photon Generation’ and ‘Optics’ are obsolete/deprecated and will be removed in version 2.0.
Example of migration from a model from ‘Photon Generation’ to ‘Optics’:
Before:
pipeline:
photon_generation:
- name: shot_noise
func: pyxel.models.photon_generation.shot_noise
enabled: true
optics:
- name: optical_psf
func: pyxel.models.optics.optical_psf
enabled: true
arguments:
fov_arcsec: 5 # FOV in arcseconds
pixelscale: 0.01 #arcsec/pixel
After:
pipeline:
photon_collection:
# ^^^^^^^^^^^^^^^^^
# modified
- name: shot_noise
func: pyxel.models.photon_collection.shot_noise
# ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^~~~~~~~~~~~
# modified
enabled: true
- name: optical_psf
func: pyxel.models.photon_collection.optical_psf
# ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^~~~~~~~~~~~~
# modified
enabled: true
arguments:
fov_arcsec: 5 # FOV in arcseconds
pixelscale: 0.01 #arcsec/pixel
Core#
Remove python37. (See !594).
Documentation#
Add Pyxel paper in documentation + Gitlab page. (See !589).
Added citation segment in README.md. (See !591).
Add documentation about ModelGroup ‘Photon Collection’. (See !598 and !602).
Add Pyxel to ASCL.net. (See !603).
Update contribution guide with steps for a merge request. (See !607).
Add more information in the contribution guide. (See !606).
Models#
Cannot reload a ‘detector’ from model ‘pyxel.load_detector’. (See !588).
Move all models in ModelGroup ‘Photon Generation and ‘Optics’ into a new ModelGroup ‘Photon Collection’. All models in ‘Photon Generation’ and ‘Optics’ are obsolete/deprecated and will be removed in version 2.0. (See !597).
Add new ModelGroup ‘Scene Generation’. (See !600).
Add new decorator ‘deprecated’ to deprecate old models. (See !604).
Others#
Remove
CCDCharacteristics
,CMOSCharacteristics
andMKIDCharacteristics
. (See !590).Simplification when using ‘group models’ when generating a JSON Schema file. (See !596).
Create a ‘tox’ environment to check if the JSON schema is unchanged. (See !601).
Fix issues when running tests without having ‘asdf’ installed. (See !605).
1.6.1 / 2023-01-09#
This release brings a number of bugfixes and documentation improvements.
Core#
Bug in data processing model group. (See !585).
Documentation#
Update documentation example. (See !584).
1.6 / 2023-01-05#
This release brings a number of bugfixes and documentation improvements. A single release candidate (1.6rc0) was made to fix some issues.
The JSON Schema files for the ‘stable’ and ‘latest’ are respectively located in https://esa.gitlab.io/pyxel/pyxel_schema.json and https://esa.gitlab.io/pyxel/pyxel_schema_latest.json. And detailed How-to guide about JSON Schema is available.
Add new models load_detector
and save_detector
for each Model Groups to load/inject or
to save/extract a Detector
object to/from a running pipeline.
Add new model group data_processing
with a new model statistics
.
Core#
Documentation#
Models#
Others#
Add unit tests to charge deposition in MCT model. (See !553).
Move JSON Schema files to https://esa.gitlab.io/pyxel (See !555 and !556).
Remove old Python 2.x type annotations. (See !557).
Fix issue when generating the JSON Schema file. (See !558).
Add a CI/CD pipeline to generate/check the JSON Schema file. (See !535).
Refactoring with ‘refurb’. (See !560).
Use ‘pyproject.toml’. (See !530).
Fix issue with unit test ‘json schema’. (See !569).
Move ‘environment.yml’ in folder ‘continuous_integration’. (See !570).
Enable ‘License Compliance’. (See !567).
Add attrs as dependency. (See !573).
Create Wheel files in CI/CD. (See !575).
Pygmo error in calibration. (See !580).
1.5 / 2022-11-21#
This is a minor release that brings documentation improvements.
Documentation#
Others#
1.4 / 2022-11-15#
This release brings a number of bugfixes and documentation improvements. A new ‘charge_deposition_in_mct’ model is added in the ‘Charge Generation’ group and it’s now possible to import/export a Detector object to/from an ASDF file.
Core#
Implement multi-wavelength photon descriptions in
Detector.scene
. (See !505).Implement a function that converts from
scopesim.Source
object toScene
object. (See !506).Refactor and simplify
Calibration
andObservation
classes. (See !507 and !508.Import/Export a Detector from/to an ASDF file. (See !513).
Identical argument names for different models crashes observation mode. (See !524).
Add methods ‘.plot()’ and ‘.to_xarray’ for ‘Pixel’, ‘Photon’, ‘Signal’, ‘Image’ and ‘Phase’. (See !528).
Documentation#
Models#
Others#
Improved JSON Schema. (See !509).
Add more information in the output xarray. (See !515).
Remove decorator ‘temporary_random_state’. (See !519).
Fix issue that runs two CI/CD pipeline. (See !520).
Enable creating a ‘Calibration’ configuration without installing pygmo. (See !521).
Add unit tests for ‘Observation’ mode. (See !523).
Fix bug in observation mode when using bad value. (See !525).
Remove used unit tests ‘test_pyxel_loader’. (See !531).
‘JupyterLab’ as an optional dependency of Pyxel. (See !532).
1.3.2 / 2022-09-08#
This is a minor release to add a new reference about the latest SPIE paper.
Documentation#
Add a reference to new paper from SPIE presented at SPIE Astronomical Telescopes & Instrumentation conference. (See !502).
1.3.1 / 2022-09-07#
This release is a bugfix to resolve issues with command pyxel create-model
.
Documentation#
Clarify full installation in the documentation. (See !500).
Others#
Command
pyxel create-model
is not working with Pyxel 1.3. (See !499).
1.3 / 2022-08-30#
Documentation#
Models#
Add physical models of non-linearity. Code provided by Thibault Pichon. (See !483).
Others#
Exposed configuration.build_configuration to the developer API as a private function.
First contribution by Kieran Leschinski. (See !494).Function create model not working properly. (See !495).
1.2.1 / 2022-08-05#
Documentation.#
Fix issues with latest version of ‘fsspec’ (2022.7.1) and ‘doc8’ (1.0.0). (See !491).
1.2.0 / 2022-07-12#
Core#
Documentation#
Models#
Others#
1.1.2 / 2022-06-06#
Models#
Fix for: Charge generation model suppressing shot noise. Solution from Gitter by Lawrence Jones. (See !475).
Fix for: Redundant normalization in SAR ADC model. (See !478).
Others#
1.1.1 / 2022-05-13#
Core#
Documentation#
Models#
Others#
Fix issues found by ‘mypy’ version 0.950 and ‘myst-nb’ version 0.14.0. (See !471).
1.1.0 / 2022-04-22#
Core#
Remove maximum limit for attributes ‘col’ and ‘row’ in class
Geometry
. The previous limit was set at a maximum of 10000 columns and 10000 rows. (See !434).Replace deprecated appeding to dataframes with concatenating. (See !444).
Add an APD detector. Based on code from James Gilbert. (See !449).
Implement a property setter for the attribute times in class Readout. (See !455).
Convert a Detector (CCD, CMOS…) to a dictionary and vice versa. (See !267).
Implement methods
Detector.from_hdf5
andDetector.to_hdf5
. (See !448).Fix issues when saving/loading CMOS, APD and MKID Detector objects. (See !463).
Documentation#
Models#
Add a DC offset model. Based on code from James Gilbert. (See !452).
Add kTC reset noise model. (See !451).
Add an APD dark current model. Based on code from James Gilbert. (See !453).
Add an APD gain model. (See !450).
Add an APD readout noise model. Based on code from James Gilbert. (See !454).
Add a simple model that loads and applies PSF from a file. (See !459).
Fix models for usage in non-destructive mode. (See !465).
Others#
1.0.0 / 2022-02-10#
We are happy to announce that Pyxel has reached a stable version 1.0.0! Pyxel releases will use semantic versioning notation. Version 1.0 brings a simplified user experience, new models, parallel computing in observation mode, updated documentation, new examples, various bug fixes and much more. Excited for what comes next, stay tuned!
Changes since last version:
Documentation#
Add pyxel brief history to documentation. (See !429).
1.0.0-rc.6 / 2022-02-09#
Others#
Update function display_persist. (See !426).
1.0.0-rc.5 / 2022-02-09#
Others#
1.0.0-rc.4 / 2022-01-27#
Models#
Fix a bug when converting to photons in load_image. (See !419).
Others#
Pin astropy version due to a bug. (See !420).
1.0.0-rc.3 / 2022-01-26#
Core#
Documentation#
Models#
Others#
Fix mypy issues with new version of numpy 1.22.0. (See !408).
1.0.0-rc.2 / 2022-01-18#
Core#
Fix Characteristics validation checks. (See !402).
1.0.0-rc.1 / 2022-01-18#
Core#
Documentation#
Add more documentation for CCDCharacteristics, CMOSCharacteristics, …. (See !399).
Others#
0.11.7 / 2022-01-07#
Documentation#
Models#
Refactoring of CDM model. (See !375).
Others#
0.11.6 / 2021-12-13#
Core#
Add new attribute ‘Config.detector’. (See !378).
Documentation#
Split documentation into ‘stable’ and ‘latest’’. (See !380).
Others#
Include netcdf4 in dependencies. (See !374).
0.11.5 / 2021-12-07#
Core#
Models#
0.11.4 / 2021-11-23#
Core#
Implement array-like data structures as numpy custom array containers. (See !325).
Documentation#
Models#
Others#
0.11.3 / 2021-11-15#
Core#
Others#
Remove some TODOs. (See !288).
0.11.2 / 2021-11-09#
Core#
Remove unnecessary warnings when Pygmo is not installed. (See !286).
Remove parallel computing with Numba. (See !290).
Use library ‘click’ to generate a Command Line Interface for script ‘pyxel/run.py’. (See !287).
Simplify imports of sub packages. (See !296).
Fix an issue in imports. (See !297).
Re-enable dask for observation mode. (See !172).
Documentation#
Others#
0.11.1 / 2021-10-29#
Models#
Add a readout noise model for CMOS detectors. (See !283).
0.11 / 2021-10-27#
Core#
Output folder already existing when running ‘load’ two times. (See !232).
Implement normalisation for calibration mode. (See !266).
Refactor class
Charge
. (See !271).Add new detector MKID. Enrico Biancalani (See !206).
Refactor single and dynamic mode into one named observation. (See !263).
Include observation mode functions in parametric mode. (See !264).
Include observation mode functions in calibration mode. (See !265).
Rename observation to exposure and parametric to observation. (See !274).
Improve the speed of function detector.reset. (See !273).
Optimize the speed of calibration in time-domain. (See !276).
Documentation#
Models#
Others#
0.10.2 / 2021-09-02#
Core#
Enable logarithmic timing in dynamic mode. (See !249).
Others#
Fix issue with latest version of Mypy. (See !253).
0.10.1 / 2021-08-18#
Core#
Documentation#
Install a specific conda package version. (See !235).
Others#
0.10 / 2021-06-13#
Core#
Add capability to save outputs of parametric mode as a xarray dataset. (See !212).
Add capability to save calibration result dataset to disk from YAML. (See !214).
Hide built-in Pyxel plotting capabilities (matplotlib figures from YAML). (See !213).
dynamic mode progress bar. (See !219).
Add capability to create models through command line using a template. (See !217).
Improved dynamic mode. (See !229).
Fix issue in creating parametric datasets. (See !230).
Documentation#
Models#
Others#
0.9.1 / 2021-05-17#
Core#
Add missing packages when running ‘pyxel.show_versions(). (See !193).
Fix issues with ‘fsspec’ version 0.9. (See !198).
Refactoring class `Arguments. (See !203).
Add new detector MKID. Enrico Biancalani (See !206).
Others#
Fix issue when displaying current version. (See !196).
Cannot import sub-packages ‘calibration’ and ‘models.optics’. (See !189).
Drop support for Python 3.6. (See !199).
Solve typing issues with numpy. (See !200).
Add functions to display calibration inputs and outputs in notebooks. (See !194).
Fix issue with the latest click version and pipeline ‘license’. (See !208).
Resolve “Add ‘LICENSE.txt’ in MANIFEST.in”. (See !207).
0.9 / 2021-03-25#
Core#
Fix a circular import in ‘pyxel.data_structure’. (See !171).
Add ability to download Pyxel examples from command line. (See !176).
Add capability to read files from remote filesystems (e.g. http, ftp, …). (See !169).
Add a mechanism to set option in Pyxel. (See !170).
Add capability to cache files in functions ‘load_image’ and ‘load_data’. (See !177).
Add a stripe pattern illumination model. (See !174).
Add methods to display a Detector or an array of the Detector. (See !173).
Initiate Processor object inside running mode functions. (See !184).
Add HTML display methods for objects. (See !185).
Add ability to display input image in the display_detector function. (See !186).
Issue when creating islands in a Grid. (See !188).
Documentation#
Others#
Pipelines#
0.8.1 / 2021-01-26#
Documentation#
Enabled sphinxcontrib-bibtex version 2. (See #155).
Others#
0.8 / 2020-12-11#
Core#
Improved user friendliness. (See #144).
Simplified the look of YAML configuration files. (See #118).
Extracted functions to run modes separately from pyxel.run.run() (See #61).
Refactored YAML loader, returns a class Configuration instead of a dictionary. (See #60).
Created new classes Single and Dynamic to store running mode parameters. (See #121).
Split class Outputs for different modes and moved to inputs_ouputs. (See #149).
Added a simple Inter Pixel Capacitance model for CMOS detectors. (See #65).
Added a model for the amplifier crosstalk. (See #116).
Added ability to load custom QE maps. (See #117).
Use ‘Dask’ for Calibration mode. (See !145).
Others#
0.7 / 2020-10-22#
Core#
Update .gitignore file. (See !123).
Added capability to load more image formats and tests. (See !113).
Create a function ‘pyxel.show_versions(). (See !114).
Shorter path to import/reference the models. (See !126).
Remove deprecated methods from Photon class. (See !119).
Instances of ‘DetectionPipeline’ are not serializable. (See !120).
Cannot run ‘calibration’ pipeline with multiprocessing or ipyparallel islands. (See !121).
Make package and script ‘pyxel’ executable. (See !112).
Created a function inputs_outputs.load_table(). (See !132).
Reimplement convolution in POPPY optical_psf model. (See #52).
Add property ‘Detector.numbytes’ and/or method ‘Detector.memory_usage()’ (See !116).
Created jupyxel.py for jupyter notebook visualization. (See !122).
Documentation#
Remove comments for magic methods. (See !127).
0.6 / 2020-09-16#
Improved contributing guide (See #68).
Remove file ‘.gitlab-ci-doc.yml’ (See #73).
Change license and add copyrights to all source files. (See #69).
Fix issues with example file ‘examples/calibration_CDM_beta.yaml’. (See #75).
Fix issues with example file ‘examples/calibration_CDM_irrad.yaml’. (See #76).
Updated Jupyter notebooks examples. (See #87).
Apply command ‘isort’ to the code base.
Refactor class
ParametricPlotArgs
. (See #77).Create class
SinglePlot
. (See #78).Create class
CalibrationPlot
. (See #79).Create class
ParametricPlot
. (See #80).Add templates for bug report, feature request and merge request. (See #105).
Parallel computing for ‘parametric’ mode. (See #111).
Improved docker image. (See #96).
Fix calibration pipeline. (See #113).
CI/CD pipeline ‘licenses-latests’ fails. (See #125).
0.5 / 2019-12-20#
0.4 / 2019-07-09#
Running modes implemented:
Calibration mode for model fitting and detector optimization
Dynamic mode for time-dependent (destructive and non-destructive) detector readout
Parallel option for Parametric mode
Models added:
CDM Charge Transfer Inefficiency model
POPPY physical optical propagation model
SAR ADC signal digitization model
Outputs class for post-processing and saving results
Logging, setup and versioneer
Examples
Documentation
0.3 / 2018-03-26#
Single and Parametric mode have been implemented
Infrastructure code has been placed in 2 new projects: esapy_config and esapy_web
Web interface (GUI) is dynamically generated based on attrs definitions
NGHxRG noise generator model has been added
0.2 / 2018-01-18#
TARS cosmic ray model has been reimplemented and added
0.1 / 2018-01-10#
Prototype: first pipeline for a CCD detector