summaryrefslogtreecommitdiff
path: root/crl_tools/make_tables.py
diff options
context:
space:
mode:
Diffstat (limited to 'crl_tools/make_tables.py')
-rw-r--r--crl_tools/make_tables.py108
1 files changed, 108 insertions, 0 deletions
diff --git a/crl_tools/make_tables.py b/crl_tools/make_tables.py
new file mode 100644
index 0000000..eeadd7d
--- /dev/null
+++ b/crl_tools/make_tables.py
@@ -0,0 +1,108 @@
+import numpy as np
+import os
+
+def prefix(path):
+ return os.path.join(os.path.dirname(__file__), "table_data", path)
+
+print("# Generated by make_tables.py, do not modify")
+print("import numpy as np")
+
+#
+# CIE CMFs
+#
+
+def load_cmf(path, ident, comment):
+ data = np.nan_to_num(np.genfromtxt(path, delimiter=","), copy=False)
+
+ print("\n# %s" % comment)
+ print("%s = np.array([" % ident)
+ for row in data:
+ print(("\t[" + "%.8g, " * 4 + "],") % tuple(row))
+ print("])")
+
+load_cmf(prefix("ciexyz31.csv"), "cmf",
+ "CIE 1931 2-deg, XYZ CMFs, http://www.cvrl.org/")
+load_cmf(prefix("ciexyzj.csv"), "cmf_judd",
+ "CIE 1931 2-deg, XYZ CMFs modified by Judd (1951), http://www.cvrl.org/")
+load_cmf(prefix("ciexyzjv.csv"), "cmf_judd_vos",
+ "CIE 1931 2-deg, XYZ CMFs modified by Judd (1951) and Vos (1978), http://www.cvrl.org/")
+load_cmf(prefix("ciexyz64.csv"), "cmf_1964",
+ "CIE 1964 10-deg, XYZ CMFs")
+load_cmf(prefix("linss2_10e_5.csv"), "cmf_lms",
+ "2-deg fundamentals based on the Stiles & Burch 10-deg CMFs (adjusted to 2-deg), http://www.cvrl.org/")
+
+#
+# CIE illuminants
+#
+
+data = np.genfromtxt(prefix("illuminants.csv"))
+print("\n# CIE standard illuminants")
+print("# https://law.resource.org/pub/us/cfr/ibr/003/cie.15.2004.tables.xls")
+print("# nm\tA\tD65\tC\tD50\tD55\tD75")
+print("illuminants = np.array([")
+for row in data:
+ print(("\t[" + "%.8g, " * 7 + "],") % tuple(row))
+print("])")
+
+#
+# CIE D illuminant eigenvectors
+#
+
+data = np.genfromtxt(prefix("D_eigenvectors.csv"))
+print("\n# #CIE D illuminant eigenvectors")
+print("# http://www.brucelindbloom.com/index.html?Eqn_DIlluminant.html")
+print("# wvl\tS0\tS1\tS2")
+print("D_eigenvectors = np.array([")
+for row in data:
+ print(("\t[" + "%.8g, " * 4 + "],") % tuple(row))
+print("])")
+
+# Series F illuminants
+
+data = np.genfromtxt(prefix("F.txt"))
+print("\n# CIE standard illuminants")
+print("# https://web.archive.org/web/20110725185449/http://www.colour.org/tc8-04/Data/F.txt")
+print("# https://web.archive.org/web/20110725185449/http://www.colour.org/tc8-04/Data/F.txt")
+print("#(nm)\tF1\tF2*\tF3\tF4\tF5\tF6+\tF7*\tF8+\tF9\tF10+\tF11*\tF12")
+print("illuminants_F = np.array([")
+for row in data:
+ print(("\t[" + "%.8g, " * 13 + "],") % tuple(row))
+print("])")
+
+#
+# CRI Ra test color samples
+#
+
+data = np.genfromtxt(prefix("tcs_ra.txt"))
+print("\n# CRI Ra test color samples")
+print("# https://www.waveformlighting.com/files/cri_1nm.txt")
+print("# nm\tTCS01\tTCS02\tTCS03\tTCS04\tTCS05\tTCS06\tTCS07\tTCS08\tTCS09\tTCS10\tTCS11\tTCS12\tTCS13\tTCS14")
+print("tcs_ra = np.array([")
+for row in data:
+ print(("\t[" + "%.8g, " * 15 + "],") % tuple(row))
+print("])")
+
+#
+# CQS test color samples
+#
+
+data = np.genfromtxt(prefix("tcs_cqs.csv"))
+print("\n# CQS test color samples")
+print("# https://www.researchgate.net/profile/Velu_Arasu/post/What_will_be_RGBA_LEDs_pattern_to_creat_white_light/attachment/59d62f13c49f478072e9fb7b/AS%3A273582771376136%401442238623549/download/CQS+9.0.3++%28Win%29.xls")
+print("# nm\tVS1\tVS2\tVS3\tVS4\tVS5\tVS6\tVS7\tVS8\tVS9\tVS10\tVS11\tVS12\tVS13\tVS14\tVS15")
+print("tcs_cqs = np.array([")
+for row in data:
+ print(("\t[" + "%.8g, " * 16 + "],") % tuple(row))
+print("])")
+
+#
+#
+#
+print("\n# CQS multiplication factors")
+print("# https://accreditedgemologists.org/lightingtaskforce/NISTDevelopmentofColorQualityScale.pdf")
+print("# CCT factor")
+data = np.genfromtxt(prefix("cqs_factors.csv"))
+print("cqs_factors = np.array([")
+for row in data:
+ print(("\t[" + "%.8g, " * 2 + "],") % tuple(row))
+print("])")