- Name: Geetansh Saxena
- Organisation: NumFOCUS
- Sub-Organisation: Colour Science
- Project Title: Adding New Colour Models
Colour, an affiliated project of NumFOCUS, is an open-source Python package that provides a comprehensive number of algorithms and datasets for colour science. My task was to add new colour models and colour spaces to Colour. In the coding period of 10 weeks, I have been successfully able to add four colour models to Colour. It also included writing unit tests, doctests, docstrings, and documentation for them. In addition to that, I have also added a parser to read and write spectral data from Sekonic and UPRTek spectrometers.
-
A parser for reading spectral data from UPRTek spectrometer pseudo-XLS files and generating IESTM2714 SPDX files from it. After discussion with the mentor, it was decided to subclass it from the already existing
SpectralDistribution_IESTM2714
class and modify the read method so that the data can be re-written in a standard specification. I also wrote unit tests, doctests, and docstrings for the same. The parser is now available via thecolour.SpectralDistribution_UPRTek
class.Pull Request: colour-science/colour#813
-
A parser for reading spectral data from Sekonic spectrometer pseudo-CSV files and generating IESTM2714 SPDX files from it. This was implemented as a sub-class of the UPRTek parser by simply changing the delimiter in the UPRTek parser and modifying a few variable names. I also wrote unit tests, doctests, and docstrings for the sub-class. This is now available via the
colour.SpectralDistribution_Sekonic
class.Pull Request: colour-science/colour#813
-
Prolab is a relatively new colourspace that is derived as a 3-D projective transformation of CIE XYZ. Upon pull request merging, Colour will have support for ProLab colourspace via the
colour.XYZ_to_ProLab
andcolour.ProLab_to_XYZ
definitions.Pull Request: colour-science/colour#841
-
The ICaCb colourspace in an IPT-like colourspace. The original plan was to implement a common base for all IPT-like colour spaces such as ICtCp, JzAzBz, and OKLab. But after discussion with the mentor, this is currently kept as a near-future goal. Upon pull request merging, Colour will have support for the ICaCb colourspace via the
colour.XYZ_to_ICaCb
andcolour.ICaCb_to_XYZ
definitions.Pull Request: colour-science/colour#834
-
In the beginning it was planned to use the existing code written by previous contributors, write tests and merge the code. Later it was found that this was already worked upon by my mentor, Thomas, here. All that was required was to cherry-pick some of the commits, fix some minor issues and merge the changes. Colour has now support for the IHLS colourspace via the
colour.RGB_to_IHLS
andcolour.IHLS_to_RGB
definitions.Pull Request: colour-science/colour#822
-
Colour already had support for the DIN99 colourspace but not for the variants. I have refactored the existing code and added the support for choosing the variant DIN99b, DIN99c, or DIN99d while performing conversions. Backward compatibility had to be kept in mind while implementing this. Upon pull request merging, Colour will have support for the DIN99 refined formulas via the existing
colour.Lab_to_DIN99
andcolour.DIN99_to_Lab
modified definitions.Pull Request: colour-science/colour#845
As stated above, a common base for IPT-like colourspaces needs to be implemented. Most of the colourspaces that were mentioned in the original project idea have been completed however two are still left, ULab colourspace and Y"u"v" colourspace. I am currently working on the ULab colourspace, and given I will continue to contribute to Colour after GSoC ends, they should be completed soon.
I would like to extend my gratitude to Thomas Mansencal and Michael Mauderer for being such amazing and incredibly patient mentors throughout the summer. Special thanks to Thomas, for letting me take some time off after my grandfather passed away in July. Also thanks to NumFOCUS for providing me this opportunity.