Luminance table generation from EULUMDAT (.ldt) photometric files — extension to eulumdat-py
Project description
eulumdat-luminance
Luminance table generation from EULUMDAT (.ldt) photometric files — extension to eulumdat-py.
Features
- Luminance table (cd/m²) computed from intensity distribution and luminous area geometry
- UGR grid (C: 0°–345° in 15° steps, γ: 65°–85° in 5° steps) with automatic bilinear interpolation when the native LDT resolution does not match
- Full native grid mode for detailed photometric analysis
- Polar luminance diagram (SVG + PNG/JPG): all 24 C-planes visible simultaneously, one curve per γ angle, blue gradient palette, optional threshold circle
- Print-ready output via
PolarStyle.for_print(width_cm, dpi)— exact physical dimensions for PDF/Word documents - CSV and JSON export
Installation
pip install eulumdat-luminance
Dependencies
- eulumdat-py — EULUMDAT parser
- numpy, scipy
- vl-convert-python — SVG rasterisation
- Pillow — JPG conversion
Quick start
from pyldt import LdtReader
from eulumdat_luminance import LuminanceCalculator, LuminancePlot, PolarStyle
ldt = LdtReader.read("luminaire.ldt")
result = LuminanceCalculator.compute(ldt)
print(f"{result.luminaire_name} — {result.maximum:.0f} cd/m²")
plot = LuminancePlot(result)
plot.polar("polar.svg")
plot.polar("polar.png")
# Print-ready: 8 cm wide at 300 dpi
plot.polar("polar_print.png", style=PolarStyle.for_print(width_cm=8, dpi=300))
Running the tests
# All tests (numerical validation + diagram generation)
pytest
# Numerical tests only (fast, ~10 s)
pytest tests/test_calculator.py
# Visual diagram generation only
pytest tests/test_diagrams.py
# Verbose with print output
pytest -v -s
# Filter by sample
pytest -k sample_04
# Filter by test type
pytest -k "svg" # SVG generation only
pytest -k "png" # PNG generation only
pytest -k "for_print" # print/PDF sizing tests
pytest -k "Relux" # Relux numerical validation (30 tests)
pytest -k "not Smoke" # exclude smoke tests
# Coverage
pytest --cov=eulumdat_luminance tests/test_calculator.py
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
eulumdat_luminance-1.0.0.tar.gz
(22.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eulumdat_luminance-1.0.0.tar.gz.
File metadata
- Download URL: eulumdat_luminance-1.0.0.tar.gz
- Upload date:
- Size: 22.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1986e28b714e2da8d5bad11bd89426cb6e6265bbee6654a69d473664283101f
|
|
| MD5 |
aaba1561da0836c64c8ae109906dc861
|
|
| BLAKE2b-256 |
d89645e5909f0eb74200ffbac008be1b2e1e32f4e4f32a692f5a575fd5153068
|
File details
Details for the file eulumdat_luminance-1.0.0-py3-none-any.whl.
File metadata
- Download URL: eulumdat_luminance-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80dc722f9da697c8f60e608541b1432893c9feac6a65a8a61279f2391b71fd52
|
|
| MD5 |
3af4352bdd600ad689c204575ab417a1
|
|
| BLAKE2b-256 |
f3a7ef5fed9efe3ce7877da9f78f02d41bb7b3a8c35f2f774acd785ba6f2f18f
|