|
@@ -0,0 +1,26 @@
|
|
|
+import json
|
|
|
+
|
|
|
+import numpy as np
|
|
|
+
|
|
|
+from analyze import oklab2hex
|
|
|
+
|
|
|
+with open("web/database.js") as infile:
|
|
|
+ next(infile)
|
|
|
+ data = [
|
|
|
+ (d := json.loads(s))["total"]
|
|
|
+ for line in infile
|
|
|
+ if (s := line.strip().strip(",")) != "]"
|
|
|
+ ]
|
|
|
+
|
|
|
+sizes = np.array([d["size"] for d in data])
|
|
|
+centroids = np.array([d["centroid"] for d in data])
|
|
|
+medians = np.array([d["median"] for d in data])
|
|
|
+
|
|
|
+print("Simple mean of...")
|
|
|
+print(" Centroids:", oklab2hex(centroids.mean(axis=0)))
|
|
|
+print(" Medians:", oklab2hex(medians.mean(axis=0)))
|
|
|
+print("Reweighted mean of...")
|
|
|
+print(" Centroids:", oklab2hex(
|
|
|
+ (centroids * sizes[:, np.newaxis]).sum(axis=0) / sizes.sum()))
|
|
|
+print(" Medians:", oklab2hex(
|
|
|
+ (medians * sizes[:, np.newaxis]).sum(axis=0) / sizes.sum()))
|