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 interpolation- 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
ldt = LdtReader.read("luminaire.ldt")
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}
The function returns the absolute gamma angle (degrees from nadir) where intensity drops to 50 % of the C-plane maximum, searching from γ_max toward 90°.
Examples
| File | Description |
|---|---|
examples/01_basic_usage.md |
Basic usage, return values, FWHM |
Project structure
eulumdat-analysis/
├── src/
│ └── ldt_analysis/
│ ├── __init__.py
│ └── half_angle.py
├── examples/
│ └── 01_basic_usage.md
├── tests/
│ └── test_half_angle.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 |
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
Release history Release notifications | RSS feed
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.0.0.tar.gz.
File metadata
- Download URL: eulumdat_analysis-1.0.0.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f567862f4bbfd89412ced8e5c9f65df01e51f8b5284a83b80decb1b095423491
|
|
| MD5 |
a55bf2c9a65875e08d9d6302228ec108
|
|
| BLAKE2b-256 |
33f03297ff804175d71e404f5e85b89bb24ff2485926b0ca7f02ec75b70f1a91
|
File details
Details for the file eulumdat_analysis-1.0.0-py3-none-any.whl.
File metadata
- Download URL: eulumdat_analysis-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.3 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 |
3e9895c6f9608c8d2551972a18975a8ca2092fd99db731f6427a2f4102ab7b27
|
|
| MD5 |
e23c29d41b44df32f42c666bdc2480e3
|
|
| BLAKE2b-256 |
8f6b90034347b81b0010192ca27452b40aa1e1ccdb95522c1e6ca4996c4d4342
|