Giter Club home page Giter Club logo

ksmet1977 / luxpy Goto Github PK

View Code? Open in Web Editor NEW
111.0 13.0 29.0 368.58 MB

Python toolbox for lighting and color science

License: GNU General Public License v3.0

Python 31.56% Jupyter Notebook 67.55% Scala 0.12% Shell 0.77%
lighting python-toolbox color-science colorimetry color color-appearance spectral-measurement color-rendition ies-tm30 chromatic-adaptation color-differences cct duv cie cielab ciexyz ciede2000 color-fidelity cri2012 cqs

luxpy's Introduction

Python toolbox for lighting and color science

  • Author: Kevin A.G. Smet (ksmet1977 at gmail.com)
  • Version: 1.11.3
  • Date: August 9, 2024
  • License: GPLv3

DOI

Cite LuxPy:

If you use the package, please cite the following tutorial paper published in LEUKOS: Smet, K. A. G. (2020). Tutorial: The LuxPy Python Toolbox for Lighting and Color Science. LEUKOS, 1โ€“23. DOI: 10.1080/15502724.2018.1518717

NEW luxpy basic web-app [under development]:

For some online spectral calculations (ANSI/IES TM30, CIE 13.3-1995 Ra, CIE 224:2017 Rf, alpha-opic irradiances, Equivalent Daylight Illuminance (EDI), Efficacy of Luminous Radiation (ELR), Daylight Efficacy Ratio (DER), IES/LDT Luminous Intensity Distribution plots/renders, ...) using a python web-application: ksmet1977-luxpy.streamlit.app/


What is LuxPy?

Luxpy is an open source package under a GPLv3 license that supports several common lighting, colorimetric, color appearance and other color science related calculations and models, such as:

  • spectral data interpolation (conform CIE15-2018) and normalization
  • calculation of daylight phase, blackbody radiator and other reference illuminant spectra
  • calculation of tristimulus values
  • correlated color temperature and Duv (methods: robertson1968/2022, ohno2014, li2016, zhang2019, li2022)
  • color space transformations
  • chromatic adaptation transforms
  • color appearance models
  • color rendition indices (eg. CIE Ra, CIE 224:2017 Rf, ANSI/IES TM30 Rf, Rg, ... + IES TM30 Annex E priority levels & reports)
  • calculation of photobiological quantities (eg melanopic irradiance, MEDI, CS, ...)
  • multi-component spectrum creation and optimization
  • hyper-spectral image simulation and rendering
  • MacAdam ellipses
  • color differences (cam02ucs, DE2000, ...)
  • modelling of individual observer color matching functions (Asano, 2016)
  • calculation of CIEOP06 (cfr. CIE TC1-97) color matching functions and cone-fundamentals
  • display characterization
  • reading and visualizing IES and LDT photometric files (vizualizations: 2D polar plots, 3D plots, single-bounce physical-based rendering)
  • spectral mismatch (f1', correction factors) and measurement uncertainty (under development)
  • Basic TechnoTeam LMK (LabSoft) control: do XYZ-map and Y-map measurements
  • Virtual Reality Head-Mounted-Display viewer for stereoscopic (equirectangular) images using Harfang Python framework
  • ...

As of May 2019, LuxPy now also has a toolbox spectro for spectral measurements with JETI and OceanOptics spectrometers:

  • spectro.jeti: easy installation (dll's are part of sub-package).
  • spectro.oceanoptics: more tricky installation (requires manual install of python-seabreeze, ...; see here or subpackage help for more info)

UPDATED (May, 2021): ANSI/IES-TM30-2018 graphical output (Color Rendition Reports, Color Vector Graphics, Annex E priority levels...)


How to use LuxPy (basics)?

Luxpy can be easily installed from pypi pip install luxpy or anaconda conda install -c ksmet1977 luxpy.

An overview of the basic usage is given in the luxpy basic usage.ipynb jupyter notebook (!! Don't right-click to save, see below for download instructions !!), as well as the tutorial paper published in LEUKOS: Smet, K. A. G. (2020). Tutorial: The LuxPy Python Toolbox for Lighting and Color Science. LEUKOS, 1โ€“23. DOI: 10.1080/15502724.2018.1518717

  • !!! To download jupyter notebook:
    1. Open the notebook in github by clicking it and then press download button at the top right; don't right-click the notebook link itself and use 'save as ...', as this apparently results in some NotJSONError when opening the notebook!
    2. If the jupyter notebook fails to open or download or still gives an error: (Github seems to experience some type of problem sometimes with its jupyter notebook backend, see issue), try opening the file using the nbviewer.jupyter.org online viewer, (or just click this direct link: nbviewer.jupyter.org/github/ksmet1977/luxpy/blob/master/luxpy_basic_usage.ipynb) and then download it from there (use download notebook button at the top right of the page).

For more details on structure, functionality, etc., see:

  1. the github pages on: ksmet1977.github.io/luxpy/

  2. the LuxPy_Documentation pdf

  3. or, the __doc__string of each function.

    To get help on, for example the spd_to_xyz() function, type:

        import luxpy as lx
        ?lx.spd_to_xyz
    

    To get a list of functions/modules, type:

        dir(lx)
    

Python tutorials

Some basic tutorials can be found at:

A list of basic and more advanced is given at:

Matlab versus Python:

Udemy.com:

  • Udemy.com offers some great courses. Although some of these are payed, they often come at huge discounted prices.

Youtube.com:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.