Skip to main content

Practical photometric calculations on EULUMDAT data

Project description

eulumdat-analysis

PyPI PyPI - Python Version License: MIT

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 None for 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 parser
  • scipy ≥ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eulumdat_analysis-1.0.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eulumdat_analysis-1.0.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

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

Hashes for eulumdat_analysis-1.0.0.tar.gz
Algorithm Hash digest
SHA256 f567862f4bbfd89412ced8e5c9f65df01e51f8b5284a83b80decb1b095423491
MD5 a55bf2c9a65875e08d9d6302228ec108
BLAKE2b-256 33f03297ff804175d71e404f5e85b89bb24ff2485926b0ca7f02ec75b70f1a91

See more details on using hashes here.

File details

Details for the file eulumdat_analysis-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for eulumdat_analysis-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3e9895c6f9608c8d2551972a18975a8ca2092fd99db731f6427a2f4102ab7b27
MD5 e23c29d41b44df32f42c666bdc2480e3
BLAKE2b-256 8f6b90034347b81b0010192ca27452b40aa1e1ccdb95522c1e6ca4996c4d4342

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page