Practical photometric calculations on EULUMDAT data
Project description
eulumdat-analysis
Practical photometric calculations on EULUMDAT data.
Part of the eulumdat-* Python ecosystem built on eulumdat-py.
Developed in an ISO 17025 accredited photometry laboratory.
Features
half_angle— half-angle at half maximum (HAHM) per C-plane, with CubicSpline interpolationresample— resample aLdtto a coarser angular resolution (linear interpolation, ISO 17025 traceable)- Handles all ISYM symmetry types including full rotational symmetry (ISYM=1)
- Automatically rejects multi-peak distributions (secondary peak prominence > 5 % of I_max)
- Returns
Nonefor undefined cases — never raises unhandled exceptions
Installation
pip install eulumdat-analysis
For development:
git clone https://github.com/123VincentB/eulumdat-analysis.git cd eulumdat-analysis pip install -e ".[dev]"
Quick start
from pyldt import LdtReader
from ldt_analysis import half_angle, resample
ldt = LdtReader.read("luminaire.ldt")
# Half-angle at half maximum per C-plane
result = half_angle(ldt, [0.0, 90.0, 180.0, 270.0])
print(result)
# {0.0: 35.4, 90.0: 36.1, 180.0: 35.8, 270.0: 36.0}
# Resample a raw 2.5°×1° measurement to standard 15°×5°
ldt_raw = LdtReader.read("luminaire_raw.ldt") # 144 C-planes × 181 γ-angles
ldt_15x5 = resample(ldt_raw) # → 24 C-planes × 37 γ-angles
Examples
| File | Description |
|---|---|
examples/01_basic_usage.md |
half_angle — basic usage, return values, FWHM |
examples/02_resample.md |
resample — resolution resampling, guards, preserved fields |
Project structure
eulumdat-analysis/
├── src/
│ └── ldt_analysis/
│ ├── __init__.py
│ ├── half_angle.py
│ └── resample.py
├── examples/
│ ├── 01_basic_usage.md
│ └── 02_resample.md
├── tests/
│ ├── test_half_angle.py
│ └── test_resample.py
├── CHANGELOG.md
├── LICENSE
└── README.md
Dependencies
eulumdat-py≥ 1.0.0 — EULUMDAT parserscipy≥ 1.7 — CubicSpline interpolation and Brent root-finding
half_angle — return values
| Case | Return value |
|---|---|
| Normal beam | float — crossing angle in degrees |
| C-plane not found in file (±0.01°) | None |
I_max = 0 (dark or inactive plane) |
None |
| Intensity never drops to half-max within [γ_max, 90°] | None |
| Multi-peak distribution | None |
resample — return values
| Case | Return value |
|---|---|
| Success | Ldt — new object at target resolution |
c_step <= 0 or g_step <= 0 |
None |
| Source has fewer than 2 C-planes or γ-angles | None |
| Target finer than source | None |
eulumdat-* ecosystem
New to the ecosystem? eulumdat-quickstart — a step-by-step guide covering all 8 packages with working examples.
| Package | Description |
|---|---|
| eulumdat-py | Read / write EULUMDAT files |
| eulumdat-symmetry | Symmetrise and detect ISYM |
| eulumdat-plot | Polar intensity diagram (SVG/PNG) |
| eulumdat-luminance | Luminance table and polar diagram |
| eulumdat-ugr | UGR catalogue (CIE 117/190) |
eulumdat-analysis |
Beam half-angle, FWHM — this package |
| eulumdat-report | Full photometric datasheet (HTML/PDF) |
| eulumdat-ies | LDT ↔ IES LM-63-2002 conversion |
License
MIT — see LICENSE.
Context
This package was developed as a practical tool in the context of ISO 17025 accredited photometric testing. It is shared as open-source in the hope that it will be useful to others working with EULUMDAT files in Python.
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
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_analysis-1.1.0.tar.gz.
File metadata
- Download URL: eulumdat_analysis-1.1.0.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b995452f2ce13d44947b115102b8272afbe1da302cba86c25ba7aaf44b5400bf
|
|
| MD5 |
38115a7ee57497110494e6d0a05b6ef7
|
|
| BLAKE2b-256 |
f195d1275a03d41cb820294f35392d36e08d6804a56abe22ec2d4181815eb5a2
|
File details
Details for the file eulumdat_analysis-1.1.0-py3-none-any.whl.
File metadata
- Download URL: eulumdat_analysis-1.1.0-py3-none-any.whl
- Upload date:
- Size: 8.5 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 |
5e5bd26622e55774b892f8ea39bdf4caa5c79002584c261712ab994315091570
|
|
| MD5 |
572c7644a3e8e51fe61a2cc3719d4750
|
|
| BLAKE2b-256 |
eaaf73070b3de6e41e70fd8ce6fbd6ccf6b507b35163d12e9d8e99a73100a7e3
|