Coverage for colour/colorimetry/datasets/illuminants/chromaticity_coordinates.py: 100%

39 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2025-11-15 19:01 +1300

1""" 

2Chromaticity Coordinates of Illuminants 

3======================================= 

4 

5Define the chromaticity coordinates of the illuminants for the 

6*CIE 1931 2 Degree Standard Observer* and 

7*CIE 1964 10 Degree Standard Observer*. 

8 

9The following *CIE* illuminants are available: 

10 

11- CIE Standard Illuminant A 

12- CIE Illuminant B 

13- CIE Illuminant C 

14- CIE Illuminant D Series (D50, D55, D60, D65, D75) 

15- CIE Illuminant E 

16- Illuminants F Series (FL1, FL2, FL3, FL4, FL5, FL6, FL7, FL8, FL9, FL10, 

17 FL11, FL12, FL3.1, FL3.10, FL3.11, FL3.12, FL3.13, FL3.14, FL3.15, FL3.2, 

18 FL3.3, FL3.4, FL3.5, FL3.6, FL3.7, FL3.8, FL3.9) 

19- High Pressure Discharge Lamps (HP1, HP2, HP3, HP4, HP5) 

20- Typical LED illuminants (LED-B1, LED-B2, LED-B3, LED-B4, LED-B5, LED-BH1, 

21 LED-RGB1, LED-V1, LED-V2) 

22- Recommended indoor illuminants ID65 and ID50. 

23 

24The following *ISO* illuminants are available: 

25 

26- ISO 7589 Photographic Daylight 

27- ISO 7589 Sensitometric Daylight 

28- ISO 7589 Studio Tungsten 

29- ISO 7589 Sensitometric Studio Tungsten 

30- ISO 7589 Photoflood 

31- ISO 7589 Sensitometric Photoflood 

32- ISO 7589 Sensitometric Printer 

33 

34The following additional illuminants are available for the 

35*CIE 1931 2 Degree Standard Observer* only: 

36 

37- ACES 

38- Blackmagic Wide Gamut 

39- DCI-P3 

40- ICC D50 

41- PLASA ANSI E1.54 

42 

43Illuminants whose chromaticity coordinates are defined at 15 decimal 

44places have been computed using practise *ASTM E308-15* method. 

45 

46References 

47---------- 

48- :cite:`BlackmagicDesign2021` : Blackmagic Design. (2021). Blackmagic 

49 Generation 5 Color Science. https://drive.google.com/file/d/\ 

501FF5WO2nvI9GEWb4_EntrBoV9ZIuFToZd/view 

51- :cite:`CIETC1-482004h` : CIE TC 1-48. (2004). CIE 015:2004 Colorimetry, 

52 3rd Edition. In CIE 015:2004 Colorimetry, 3rd Edition. Commission 

53 Internationale de l'Eclairage. ISBN:978-3-901906-33-6 

54- :cite:`Carter2018` : Carter, E. C., Schanda, J. D., Hirschler, R., Jost, 

55 S., Luo, M. R., Melgosa, M., Ohno, Y., Pointer, M. R., Rich, D. C., Vienot, 

56 F., Whitehead, L., & Wold, J. H. (2018). CIE 015:2018 Colorimetry, 4th 

57 Edition. International Commission on Illumination. doi:10.25039/TR.015.2018 

58- :cite:`DigitalCinemaInitiatives2007b` : Digital Cinema Initiatives. (2007). 

59 Digital Cinema System Specification - Version 1.1. 

60 http://www.dcimovies.com/archives/spec_v1_1/\ 

61DCI_DCinema_System_Spec_v1_1.pdf 

62- :cite:`InternationalOrganizationforStandardization2002` : International 

63 Organization for Standardization. (2002). INTERNATIONAL STANDARD ISO 

64 7589-2002 - Photography - Illuminants for sensitometry - Specifications for 

65 daylight, incandescent tungsten and printer. 

66- :cite:`InternationalColorConsortium2010` : International Color Consortium. 

67 (2010). Specification ICC.1:2010 (Profile version 4.3.0.0) (pp. 1-130). 

68 http://www.color.org/specification/ICC1v43_2010-12.pdf 

69- :cite:`PLASANorthAmerica2015` : PLASA North America. (2015). ANSI E1.54 - 

70 2015 - PLASA Standard for Color Communication in Entertainment Lighting. 

71 https://webstore.ansi.org/preview-pages/ESTA/preview_ANSI+E1.54-2015.pdf 

72- :cite:`TheAcademyofMotionPictureArtsandSciences2014q` : The Academy of 

73 Motion Picture Arts and Sciences, Science and Technology Council, & Academy 

74 Color Encoding System (ACES) Project Subcommittee. (2014). Technical 

75 Bulletin TB-2014-004 - Informative Notes on SMPTE ST 2065-1 - Academy Color 

76 Encoding Specification (ACES) (pp. 1-40). Retrieved December 19, 2014, from 

77 http://j.mp/TB-2014-004 

78- :cite:`Wikipedia2006a` : Wikipedia. (2006). White points of standard 

79 illuminants. Retrieved February 24, 2014, from 

80 http://en.wikipedia.org/wiki/Standard_illuminant#\ 

81White_points_of_standard_illuminants 

82""" 

83 

84from __future__ import annotations 

85 

86import numpy as np 

87 

88from colour.utilities import CanonicalMapping 

89 

90__author__ = "Colour Developers" 

91__copyright__ = "Copyright 2013 Colour Developers" 

92__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause" 

93__maintainer__ = "Colour Developers" 

94__email__ = "colour-developers@colour-science.org" 

95__status__ = "Production" 

96 

97__all__ = [ 

98 "CCS_ILLUMINANTS_CIE_STANDARD_OBSERVER_2_DEGREE_CIE1931", 

99 "CCS_ILLUMINANTS_ACES_STANDARD_OBSERVER_2_DEGREE_CIE1931", 

100 "CCS_ILLUMINANTS_BLACKMAGIC_DESIGN_STANDARD_OBSERVER_2_DEGREE_CIE1931", 

101 "CCS_ILLUMINANTS_DCI_STANDARD_OBSERVER_2_DEGREE_CIE1931", 

102 "CCS_ILLUMINANTS_ICC_STANDARD_OBSERVER_2_DEGREE_CIE1931", 

103 "CCS_ILLUMINANTS_ISO_STANDARD_OBSERVER_2_DEGREE_CIE1931", 

104 "CCS_ILLUMINANTS_PLASA_STANDARD_OBSERVER_2_DEGREE_CIE1931", 

105 "CCS_ILLUMINANTS_CIE_STANDARD_OBSERVER_10_DEGREE_CIE1964", 

106 "CCS_ILLUMINANTS_ISO_STANDARD_OBSERVER_10_DEGREE_CIE1964", 

107 "CCS_ILLUMINANTS", 

108] 

109 

110CCS_ILLUMINANTS_CIE_STANDARD_OBSERVER_2_DEGREE_CIE1931: CanonicalMapping = ( 

111 CanonicalMapping( 

112 { 

113 illuminant: np.array(coordinates) 

114 for illuminant, coordinates in { 

115 "A": [0.44758, 0.40745], 

116 "B": [0.34842, 0.35161], 

117 "C": [0.31006, 0.31616], 

118 "D50": [0.34570, 0.35850], 

119 "D55": [0.33243, 0.34744], 

120 "D60": [0.321616709705268, 0.337619916550817], 

121 "D65": [0.31270, 0.32900], 

122 "D75": [0.29903, 0.31488], 

123 "E": [1 / 3, 1 / 3], 

124 "FL1": [0.31310, 0.33710], 

125 "FL2": [0.37210, 0.37510], 

126 "FL3": [0.40910, 0.39410], 

127 "FL4": [0.44020, 0.40310], 

128 "FL5": [0.31380, 0.34520], 

129 "FL6": [0.37790, 0.38820], 

130 "FL7": [0.31290, 0.32920], 

131 "FL8": [0.34580, 0.35860], 

132 "FL9": [0.37410, 0.37270], 

133 "FL10": [0.34580, 0.35880], 

134 "FL11": [0.38050, 0.37690], 

135 "FL12": [0.43700, 0.40420], 

136 "FL3.1": [0.44070, 0.40330], 

137 "FL3.2": [0.38080, 0.37340], 

138 "FL3.3": [0.31530, 0.34390], 

139 "FL3.4": [0.44290, 0.40430], 

140 "FL3.5": [0.37490, 0.36720], 

141 "FL3.6": [0.34880, 0.36000], 

142 "FL3.7": [0.43840, 0.40450], 

143 "FL3.8": [0.38200, 0.38320], 

144 "FL3.9": [0.34990, 0.35910], 

145 "FL3.10": [0.34550, 0.35600], 

146 "FL3.11": [0.32450, 0.34340], 

147 "FL3.12": [0.43770, 0.40370], 

148 "FL3.13": [0.38300, 0.37240], 

149 "FL3.14": [0.34470, 0.36090], 

150 "FL3.15": [0.31270, 0.32880], 

151 "HP1": [0.53300, 0.4150], 

152 "HP2": [0.47780, 0.41580], 

153 "HP3": [0.43020, 0.40750], 

154 "HP4": [0.38120, 0.37970], 

155 "HP5": [0.37760, 0.37130], 

156 "LED-B1": [0.45600, 0.40780], 

157 "LED-B2": [0.43570, 0.40120], 

158 "LED-B3": [0.37560, 0.37230], 

159 "LED-B4": [0.34220, 0.35020], 

160 "LED-B5": [0.31180, 0.32360], 

161 "LED-BH1": [0.44740, 0.40660], 

162 "LED-RGB1": [0.45570, 0.42110], 

163 "LED-V1": [0.45480, 0.40440], 

164 "LED-V2": [0.37810, 0.37750], 

165 "ID65": [0.310656625403120, 0.330663091836953], 

166 "ID50": [0.343211370103531, 0.360207541805137], 

167 }.items() 

168 } 

169 ) 

170) 

171""" 

172Chromaticity coordinates of the *CIE* illuminants for the 

173*CIE 1931 2 Degree Standard Observer*. 

174 

175References 

176---------- 

177:cite:`CIETC1-482004h`, :cite:`Wikipedia2006a` 

178""" 

179 

180CCS_ILLUMINANTS_ACES_STANDARD_OBSERVER_2_DEGREE_CIE1931: CanonicalMapping = ( 

181 CanonicalMapping( 

182 { 

183 "ACES": np.array([0.32168, 0.33767]), 

184 } 

185 ) 

186) 

187""" 

188Chromaticity coordinates of the *Academy Color Encoding System* (ACES) 

189illuminants for the *CIE 1931 2 Degree Standard Observer*. 

190 

191References 

192---------- 

193:cite:`TheAcademyofMotionPictureArtsandSciences2014q` 

194""" 

195 

196CCS_ILLUMINANTS_BLACKMAGIC_DESIGN_STANDARD_OBSERVER_2_DEGREE_CIE1931: CanonicalMapping = CanonicalMapping( # noqa: E501 

197 { 

198 "Blackmagic Wide Gamut": np.array([0.3127170, 0.3290312]), 

199 } 

200) 

201""" 

202Chromaticity coordinates of the *Blackmagic Design* illuminants for the 

203*CIE 1931 2 Degree Standard Observer*. 

204 

205References 

206---------- 

207:cite:`BlackmagicDesign2021` 

208""" 

209 

210CCS_ILLUMINANTS_DCI_STANDARD_OBSERVER_2_DEGREE_CIE1931: CanonicalMapping = ( 

211 CanonicalMapping( 

212 { 

213 "DCI-P3": np.array([0.31400, 0.35100]), 

214 } 

215 ) 

216) 

217""" 

218Chromaticity coordinates of the *DCI* illuminants for the 

219*CIE 1931 2 Degree Standard Observer*. 

220 

221References 

222---------- 

223:cite:`DigitalCinemaInitiatives2007b` 

224""" 

225 

226CCS_ILLUMINANTS_ICC_STANDARD_OBSERVER_2_DEGREE_CIE1931: CanonicalMapping = ( 

227 CanonicalMapping({"ICC D50": np.array([0.345702914918791, 0.358538596679933])}) 

228) 

229""" 

230Chromaticity coordinates of the *ICC* illuminants for the 

231*CIE 1931 2 Degree Standard Observer*. 

232 

233References 

234---------- 

235:cite:`InternationalColorConsortium2010` 

236""" 

237 

238CCS_ILLUMINANTS_ISO_STANDARD_OBSERVER_2_DEGREE_CIE1931: CanonicalMapping = ( 

239 CanonicalMapping( 

240 { 

241 illuminant: np.array(coordinates) 

242 for illuminant, coordinates in { 

243 "ISO 7589 Photographic Daylight": [ 

244 0.332039098470978, 

245 0.347263885596614, 

246 ], 

247 "ISO 7589 Sensitometric Daylight": [ 

248 0.333818313227557, 

249 0.353436231513603, 

250 ], 

251 "ISO 7589 Studio Tungsten": [0.430944089109761, 0.403585442674295], 

252 "ISO 7589 Sensitometric Studio Tungsten": [ 

253 0.431418223648390, 

254 0.407471441950342, 

255 ], 

256 "ISO 7589 Photoflood": [0.411146015714843, 0.393719378241161], 

257 "ISO 7589 Sensitometric Photoflood": [ 

258 0.412024776908998, 

259 0.398177410548532, 

260 ], 

261 "ISO 7589 Sensitometric Printer": [ 

262 0.412087967973680, 

263 0.421104984758526, 

264 ], 

265 }.items() 

266 } 

267 ) 

268) 

269""" 

270Chromaticity coordinates of the *ISO* illuminants for the 

271*CIE 1931 2 Degree Standard Observer*. 

272 

273References 

274---------- 

275:cite:`InternationalOrganizationforStandardization2002` 

276""" 

277 

278CCS_ILLUMINANTS_PLASA_STANDARD_OBSERVER_2_DEGREE_CIE1931: CanonicalMapping = ( 

279 CanonicalMapping({"PLASA ANSI E1.54": np.array([0.4254, 0.4044])}) 

280) 

281""" 

282Chromaticity coordinates of the *PLASA* illuminants for the 

283*CIE 1931 2 Degree Standard Observer*. 

284 

285References 

286---------- 

287:cite:`PLASANorthAmerica2015` 

288""" 

289 

290CCS_ILLUMINANTS_CIE_STANDARD_OBSERVER_10_DEGREE_CIE1964: CanonicalMapping = ( 

291 CanonicalMapping( 

292 { 

293 illuminant: np.array(coordinates) 

294 for illuminant, coordinates in { 

295 "A": [0.45117, 0.40594], 

296 "B": [0.34980, 0.35270], 

297 "C": [0.31039, 0.31905], 

298 "D50": [0.34773, 0.35952], 

299 "D55": [0.33412, 0.34877], 

300 "D60": [0.322986926715820, 0.339275732345997], 

301 "D65": [0.31382, 0.33100], 

302 "D75": [0.29968, 0.31740], 

303 "E": [1 / 3, 1 / 3], 

304 "FL1": [0.31811, 0.33559], 

305 "FL2": [0.37925, 0.36733], 

306 "FL3": [0.41761, 0.38324], 

307 "FL4": [0.44920, 0.39074], 

308 "FL5": [0.31975, 0.34246], 

309 "FL6": [0.38660, 0.37847], 

310 "FL7": [0.31569, 0.32960], 

311 "FL8": [0.34902, 0.35939], 

312 "FL9": [0.37829, 0.37045], 

313 "FL10": [0.35090, 0.35444], 

314 "FL11": [0.38541, 0.37123], 

315 "FL12": [0.44256, 0.39717], 

316 "FL3.1": [0.449830684010003, 0.390231404321266], 

317 "FL3.2": [0.386924116672933, 0.365756034732821], 

318 "FL3.3": [0.321176986855865, 0.340501092654981], 

319 "FL3.4": [0.448121275113995, 0.397077112142482], 

320 "FL3.5": [0.377814166608895, 0.366625766963060], 

321 "FL3.6": [0.351976478983504, 0.361094432889677], 

322 "FL3.7": [0.444309208810922, 0.396791387314871], 

323 "FL3.8": [0.387588931999771, 0.376305569410173], 

324 "FL3.9": [0.354688990710449, 0.353445033593383], 

325 "FL3.10": [0.349344792334400, 0.354984421140869], 

326 "FL3.11": [0.329267975695120, 0.338865386643537], 

327 "FL3.12": [0.442252080438001, 0.401220551071252], 

328 "FL3.13": [0.386275268780817, 0.374283190950586], 

329 "FL3.14": [0.347255078638291, 0.366808242504180], 

330 "FL3.15": [0.314613997909246, 0.333377149377113], 

331 "HP1": [0.543334600247307, 0.405289298480431], 

332 "HP2": [0.482647330648721, 0.410815644179685], 

333 "HP3": [0.435560034503954, 0.398801084399711], 

334 "HP4": [0.385193641123543, 0.368275479241015], 

335 "HP5": [0.380316415606638, 0.366617114797851], 

336 "LED-B1": [0.462504966271043, 0.403041801546906], 

337 "LED-B2": [0.442119475258745, 0.396633702892576], 

338 "LED-B3": [0.380851979328052, 0.368518548904765], 

339 "LED-B4": [0.348371362473402, 0.345065503264192], 

340 "LED-B5": [0.316916877024753, 0.322060276350364], 

341 "LED-BH1": [0.452772610754910, 0.400032462750000], 

342 "LED-RGB1": [0.457036370583652, 0.425381348780888], 

343 "LED-V1": [0.453602699414564, 0.398199587905174], 

344 "LED-V2": [0.377728483834020, 0.374512315539769], 

345 "ID65": [0.312074043269908, 0.332660121024630], 

346 "ID50": [0.345621427535976, 0.361228962209198], 

347 }.items() 

348 } 

349 ) 

350) 

351""" 

352Chromaticity coordinates of the *CIE* illuminants for the 

353*CIE 1964 10 Degree Standard Observer*. 

354 

355References 

356---------- 

357:cite:`CIETC1-482004h`, :cite:`Wikipedia2006a` 

358""" 

359 

360CCS_ILLUMINANTS_ISO_STANDARD_OBSERVER_10_DEGREE_CIE1964: CanonicalMapping = ( 

361 CanonicalMapping( 

362 { 

363 illuminant: np.array(coordinates) 

364 for illuminant, coordinates in { 

365 "ISO 7589 Photographic Daylight": [ 

366 0.333716908394534, 

367 0.348592494683065, 

368 ], 

369 "ISO 7589 Sensitometric Daylight": [ 

370 0.336125906007630, 

371 0.354997062476417, 

372 ], 

373 "ISO 7589 Studio Tungsten": [0.434575926493196, 0.402219691745325], 

374 "ISO 7589 Sensitometric Studio Tungsten": [ 

375 0.435607674215215, 

376 0.406129244796761, 

377 ], 

378 "ISO 7589 Photoflood": [0.414144647169611, 0.392458587686395], 

379 "ISO 7589 Sensitometric Photoflood": [ 

380 0.415625819190627, 

381 0.397002292994179, 

382 ], 

383 "ISO 7589 Sensitometric Printer": [ 

384 0.418841052206998, 

385 0.418695130974955, 

386 ], 

387 }.items() 

388 } 

389 ) 

390) 

391""" 

392Chromaticity coordinates of the *ISO* illuminants for the 

393*CIE 1964 10 Degree Standard Observer*. 

394 

395References 

396---------- 

397:cite:`InternationalOrganizationforStandardization2002` 

398""" 

399 

400CCS_ILLUMINANTS: CanonicalMapping = CanonicalMapping( 

401 { 

402 "CIE 1931 2 Degree Standard Observer": CanonicalMapping( 

403 CCS_ILLUMINANTS_CIE_STANDARD_OBSERVER_2_DEGREE_CIE1931 

404 ), 

405 "CIE 1964 10 Degree Standard Observer": CanonicalMapping( 

406 CCS_ILLUMINANTS_CIE_STANDARD_OBSERVER_10_DEGREE_CIE1964 

407 ), 

408 } 

409) 

410CCS_ILLUMINANTS.__doc__ = """ 

411Chromaticity coordinates of the illuminants. 

412 

413Warnings 

414-------- 

415*DCI-P3* illuminant has no associated spectral distribution. *DCI* has no 

416official reference spectral measurement for this whitepoint. The closest 

417matching spectral distribution is *Kinoton 75P* projector. 

418 

419Notes 

420----- 

421 

422*CIE Illuminant D Series D60* illuminant chromaticity coordinates were 

423computed as follows:: 

424 

425 CCT = 6000 * 1.4388 / 1.438 

426 xy = colour.temperature.CCT_to_xy_CIE_D(CCT) 

427 

428 sd = colour.sd_CIE_illuminant_D_series(xy) 

429 colour.XYZ_to_xy( 

430 colour.sd_to_XYZ( 

431 sd, colour.MSDS_CMFS["CIE 1964 10 Degree Standard Observer"] 

432 ) 

433 ) 

434 

435- *CIE Illuminant D Series D50* illuminant and *CIE Standard Illuminant 

436 D Series D65* chromaticity coordinates are rounded to 4 decimals as 

437 specified in typical RGB colourspaces literature. Their chromaticity 

438 coordinates as specified in :cite:`CIETC1-482004h` are (0.34567, 

439 0.35851) and (0.31272, 0.32903) respectively. 

440- *CIE* illuminants with chromaticity coordinates not defined in the 

441 reference :cite:`Wikipedia2006a` have been calculated using their 

442 correlated colour temperature and 

443 :func:`colour.temperature.CCT_to_xy_CIE_D` 

444 :func:`colour.sd_CIE_illuminant_D_series` and / or 

445 :func:`colour.sd_to_XYZ` definitions. 

446- *ICC D50* chromaticity coordinates were computed with 

447 :func:`colour.XYZ_to_xy` definition from the *CIE XYZ* tristimulus 

448 values as specified by *ICC*: [96.42, 100.00, 82.49]. 

449 

450References 

451---------- 

452:cite:`CIETC1-482004h`, :cite:`DigitalCinemaInitiatives2007b`, 

453:cite:`InternationalOrganizationforStandardization2002`, 

454:cite:`InternationalColorConsortium2010`, :cite:`PLASANorthAmerica2015` 

455:cite:`TheAcademyofMotionPictureArtsandSciences2014q`, 

456:cite:`Wikipedia2006a` 

457 

458Aliases: 

459 

460- 'cie_2_1931': 'CIE 1931 2 Degree Standard Observer' 

461- 'cie_10_1964': 'CIE 1964 10 Degree Standard Observer' 

462""" 

463CCS_ILLUMINANTS["cie_2_1931"] = CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"] 

464CCS_ILLUMINANTS["cie_10_1964"] = CCS_ILLUMINANTS["CIE 1964 10 Degree Standard Observer"] 

465 

466CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"].update( 

467 CCS_ILLUMINANTS_ACES_STANDARD_OBSERVER_2_DEGREE_CIE1931 

468) 

469 

470CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"].update( 

471 CCS_ILLUMINANTS_BLACKMAGIC_DESIGN_STANDARD_OBSERVER_2_DEGREE_CIE1931 

472) 

473 

474CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"].update( 

475 CCS_ILLUMINANTS_DCI_STANDARD_OBSERVER_2_DEGREE_CIE1931 

476) 

477 

478CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"].update( 

479 CCS_ILLUMINANTS_ICC_STANDARD_OBSERVER_2_DEGREE_CIE1931 

480) 

481 

482CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"].update( 

483 CCS_ILLUMINANTS_ISO_STANDARD_OBSERVER_2_DEGREE_CIE1931 

484) 

485 

486CCS_ILLUMINANTS["CIE 1964 10 Degree Standard Observer"].update( 

487 CCS_ILLUMINANTS_ISO_STANDARD_OBSERVER_10_DEGREE_CIE1964 

488) 

489 

490CCS_ILLUMINANTS["CIE 1931 2 Degree Standard Observer"].update( 

491 CCS_ILLUMINANTS_PLASA_STANDARD_OBSERVER_2_DEGREE_CIE1931 

492)