UGR (Unified Glare Rating) calculation from EULUMDAT (.ldt) photometric files — extension to eulumdat-py
Project description
eulumdat-ugr
UGR (Unified Glare Rating) calculation from EULUMDAT (.ldt) photometric files — part of the eulumdat-* ecosystem.
Produces the full 19 × 10 UGR table per CIE 117:1995 and CIE 190:2010, compatible with DIALux and Relux catalogue output.
Installation
pip install eulumdat-ugr
Quick start
from pyldt import LdtReader
from eulumdat_ugr import UgrCalculator
ldt = LdtReader.read("luminaire.ldt")
result = UgrCalculator.compute(ldt)
# NumPy array (19, 10)
print(result.values)
# Export to CSV
with open("ugr_table.csv", "w") as f:
f.write(result.to_csv())
# Export to JSON (compact)
with open("ugr_table.json", "w") as f:
f.write(result.to_json())
# Export to JSON (human-readable)
with open("ugr_table.json", "w") as f:
f.write(result.to_json(indent=2))
Output format
result.values is a (19 × 10) NumPy array:
- 19 rows — standard room configurations from CIE 190:2010 (2H×2H to 12H×8H)
- Columns 0–4 — crosswise orientation, 5 reflectance combinations
- Columns 5–9 — endwise orientation, same 5 reflectance combinations
Reflectance combinations (col % 5):
| Index | Ceiling | Walls | Reference plane |
|---|---|---|---|
| 0 | 0.7 | 0.5 | 0.2 |
| 1 | 0.7 | 0.3 | 0.2 |
| 2 | 0.5 | 0.5 | 0.2 |
| 3 | 0.5 | 0.3 | 0.2 |
| 4 | 0.3 | 0.3 | 0.2 |
Standards
- CIE 117:1995 — UGR formula, Guth position index (Table 4.1)
- CIE 190:2010 — tabular method, background luminance (E_WID), standard room geometry
Validation
Validated against DIALux and Relux reference tables on 11 luminaire samples (SHR = 0.25):
| Reference | Max deviation |
|---|---|
| Relux | ≤ 0.43 UGR |
| DIALux | ≤ 1.01 UGR |
DIALux values are systematically 0.1–0.8 UGR below Relux for small rooms (k ≤ 2.0) — a known inter-software variation. Our implementation follows CIE 190:2010 and aligns with Relux.
Dependencies
- eulumdat-py >= 1.0.0
- eulumdat-luminance >= 1.2.0
- numpy >= 1.24
- scipy >= 1.10
Geometry
Fixed geometry per CIE 190:2010 §4.2:
- H = 2.0 m (luminaire height above observer eye level)
- Observer at mid-point of short wall, eye level 1.2 m
- SHR = 0.25 (standard catalogue spacing)
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_ugr-1.0.1.tar.gz.
File metadata
- Download URL: eulumdat_ugr-1.0.1.tar.gz
- Upload date:
- Size: 27.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 |
d50dc5a64f21362e25fe67e286cb6a1ef508305a41e48dfd52c2c757d821ddce
|
|
| MD5 |
f0c88120e2028b6347f892c62b147b81
|
|
| BLAKE2b-256 |
2c4379d7268ff4ae89d23debd919309fa683e8a29d394e9112e3eac8d7ff2b1b
|
File details
Details for the file eulumdat_ugr-1.0.1-py3-none-any.whl.
File metadata
- Download URL: eulumdat_ugr-1.0.1-py3-none-any.whl
- Upload date:
- Size: 17.7 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 |
74d3bd8015948446636f86c2e9233ff43ad4d56ed4e37c71b8bd36e83075aac7
|
|
| MD5 |
5c3cbe3f8dc4f1ab6b8986ca03d6c51e
|
|
| BLAKE2b-256 |
5698114dbdb4684fb311f6783f04035d76073af7d758058b1928f965d175e23e
|