@mailwoman/tiger 5.5.0 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/geoid.ts +3 -1
- package/out/geoid.d.ts.map +1 -1
- package/out/geoid.js +2 -1
- package/out/geoid.js.map +1 -1
- package/out/sdk/fetch.d.ts.map +1 -1
- package/out/sdk/fetch.js +18 -9
- package/out/sdk/fetch.js.map +1 -1
- package/out/sdk/redistricting.d.ts.map +1 -1
- package/out/sdk/redistricting.js +10 -5
- package/out/sdk/redistricting.js.map +1 -1
- package/out/tools/race-dots-map.d.ts +19 -0
- package/out/tools/race-dots-map.d.ts.map +1 -0
- package/out/tools/race-dots-map.js +147 -0
- package/out/tools/race-dots-map.js.map +1 -0
- package/out/tools/race-dots.d.ts +25 -0
- package/out/tools/race-dots.d.ts.map +1 -0
- package/out/tools/race-dots.js +137 -0
- package/out/tools/race-dots.js.map +1 -0
- package/out/tools/serve-range.d.ts +14 -0
- package/out/tools/serve-range.d.ts.map +1 -0
- package/out/tools/serve-range.js +57 -0
- package/out/tools/serve-range.js.map +1 -0
- package/out/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -3
- package/sdk/fetch.ts +18 -9
- package/sdk/redistricting.ts +11 -5
- package/tools/race-dots-map.ts +166 -0
- package/tools/race-dots.ts +171 -0
- package/tools/serve-range.ts +61 -0
package/geoid.ts
CHANGED
|
@@ -591,7 +591,9 @@ export function parseGeoID(input: unknown): ParsedGeoID | null
|
|
|
591
591
|
export function parseGeoID(input: unknown): ParsedGeoID | null {
|
|
592
592
|
if (!input) return null
|
|
593
593
|
|
|
594
|
-
if (typeof input === "number")
|
|
594
|
+
if (typeof input === "number") {
|
|
595
|
+
input = input.toString()
|
|
596
|
+
}
|
|
595
597
|
|
|
596
598
|
if (typeof input !== "string") return null
|
|
597
599
|
|
package/out/geoid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geoid.d.ts","sourceRoot":"","sources":["../geoid.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"geoid.d.ts","sourceRoot":"","sources":["../geoid.ts"],"names":[],"mappings":"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"}
|
package/out/geoid.js
CHANGED
|
@@ -201,8 +201,9 @@ export function parseFIPSTractGeoID(input) {
|
|
|
201
201
|
export function parseGeoID(input) {
|
|
202
202
|
if (!input)
|
|
203
203
|
return null;
|
|
204
|
-
if (typeof input === "number")
|
|
204
|
+
if (typeof input === "number") {
|
|
205
205
|
input = input.toString();
|
|
206
|
+
}
|
|
206
207
|
if (typeof input !== "string")
|
|
207
208
|
return null;
|
|
208
209
|
if (input.length === GeoIDInputMatchers[GeoIDPart.Block].length) {
|
package/out/geoid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geoid.js","sourceRoot":"","sources":["../geoid.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"geoid.js","sourceRoot":"","sources":["../geoid.ts"],"names":[],"mappings":"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"}
|
package/out/sdk/fetch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../sdk/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAoBH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,CAAA;AAajE,MAAM,WAAW,iBAAiB;IACjC,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GACxB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CAChB;
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../sdk/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAoBH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,CAAA;AAajE,MAAM,WAAW,iBAAiB;IACjC,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GACxB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CAChB;AAsHD;;GAEG;AACH,wBAAuB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAwI/G"}
|
package/out/sdk/fetch.js
CHANGED
|
@@ -27,12 +27,12 @@ import { spawn } from "node:child_process";
|
|
|
27
27
|
import { createWriteStream, existsSync } from "node:fs";
|
|
28
28
|
import { mkdir, rename } from "node:fs/promises";
|
|
29
29
|
import { dirname, join } from "node:path";
|
|
30
|
-
import { createInterface } from "node:readline";
|
|
31
30
|
import { DatabaseSync } from "node:sqlite";
|
|
32
31
|
import { Readable } from "node:stream";
|
|
33
32
|
import { pipeline } from "node:stream/promises";
|
|
34
33
|
import { DatabaseClient } from "@mailwoman/core/kysley/client";
|
|
35
34
|
import { mailwomanDataRoot } from "@mailwoman/core/utils";
|
|
35
|
+
import { TextSpliterator } from "spliterator";
|
|
36
36
|
import { initializeTIGERSchema, TIGER_PRAGMAS } from "./schema.js";
|
|
37
37
|
const CENSUS_HOST = "https://www2.census.gov";
|
|
38
38
|
const DEFAULT_DATA_ROOT = mailwomanDataRoot();
|
|
@@ -141,8 +141,9 @@ async function discoverCounties(state, vintage) {
|
|
|
141
141
|
const html = await res.text();
|
|
142
142
|
const re = new RegExp(`tl_${vintage}_${state}(\\d{3})_addrfeat\\.zip`, "g");
|
|
143
143
|
const counties = new Set();
|
|
144
|
-
for (let m = re.exec(html); m; m = re.exec(html))
|
|
144
|
+
for (let m = re.exec(html); m; m = re.exec(html)) {
|
|
145
145
|
counties.add(m[1]);
|
|
146
|
+
}
|
|
146
147
|
return [...counties].sort();
|
|
147
148
|
}
|
|
148
149
|
/**
|
|
@@ -173,30 +174,36 @@ export async function* fetchTIGER(options) {
|
|
|
173
174
|
const kdb = new DatabaseClient({ database: db });
|
|
174
175
|
await initializeTIGERSchema(kdb);
|
|
175
176
|
const insertBatch = async (rows) => {
|
|
176
|
-
if (level === "tabblock20")
|
|
177
|
+
if (level === "tabblock20") {
|
|
177
178
|
await kdb
|
|
178
179
|
.insertInto("tabblock20")
|
|
179
180
|
.values(rows)
|
|
180
181
|
.execute();
|
|
181
|
-
|
|
182
|
+
}
|
|
183
|
+
else if (level === "place") {
|
|
182
184
|
await kdb
|
|
183
185
|
.insertInto("tiger_places")
|
|
184
186
|
.values(rows)
|
|
185
187
|
.execute();
|
|
186
|
-
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
187
190
|
await kdb
|
|
188
191
|
.insertInto("tiger_streets")
|
|
189
192
|
.values(rows)
|
|
190
193
|
.execute();
|
|
194
|
+
}
|
|
191
195
|
};
|
|
192
196
|
try {
|
|
193
197
|
// Idempotent re-run: drop this state's rows first (state_code for blocks, statefp otherwise).
|
|
194
|
-
if (level === "tabblock20")
|
|
198
|
+
if (level === "tabblock20") {
|
|
195
199
|
await kdb.deleteFrom("tabblock20").where("state_code", "=", state).execute();
|
|
196
|
-
|
|
200
|
+
}
|
|
201
|
+
else if (level === "place") {
|
|
197
202
|
await kdb.deleteFrom("tiger_places").where("statefp", "=", state).execute();
|
|
198
|
-
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
199
205
|
await kdb.deleteFrom("tiger_streets").where("statefp", "=", state).execute();
|
|
206
|
+
}
|
|
200
207
|
let inserted = 0;
|
|
201
208
|
let batch = [];
|
|
202
209
|
const flush = async () => {
|
|
@@ -231,7 +238,9 @@ export async function* fetchTIGER(options) {
|
|
|
231
238
|
let stderr = "";
|
|
232
239
|
child.stderr.on("data", (d) => (stderr += d));
|
|
233
240
|
const exited = new Promise((resolve) => child.on("close", (code) => resolve(code ?? 0)));
|
|
234
|
-
|
|
241
|
+
// GeoJSONSeq is line-delimited; keep the per-line `JSON.parse` in a try/catch so a malformed
|
|
242
|
+
// record is tolerated (skipped), not thrown.
|
|
243
|
+
for await (const line of TextSpliterator.fromAsync(child.stdout)) {
|
|
235
244
|
if (!line)
|
|
236
245
|
continue;
|
|
237
246
|
let feat;
|
package/out/sdk/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../sdk/fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../sdk/fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redistricting.d.ts","sourceRoot":"","sources":["../../sdk/redistricting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA2CH,MAAM,WAAW,yBAAyB;IACzC,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,uBAAuB,GAChC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CAChB;
|
|
1
|
+
{"version":3,"file":"redistricting.d.ts","sourceRoot":"","sources":["../../sdk/redistricting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AA2CH,MAAM,WAAW,yBAAyB;IACzC,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAA;IACjB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,uBAAuB,GAChC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,KAAK,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CAChB;AAgDD;;GAEG;AACH,wBAAuB,kBAAkB,CACxC,OAAO,EAAE,yBAAyB,GAChC,cAAc,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAsGnE"}
|
package/out/sdk/redistricting.js
CHANGED
|
@@ -16,15 +16,15 @@
|
|
|
16
16
|
* https://www2.census.gov/programs-surveys/decennial/2020/data/01-Redistricting_File--PL_94-171/
|
|
17
17
|
*/
|
|
18
18
|
import { spawn } from "node:child_process";
|
|
19
|
-
import {
|
|
19
|
+
import { createWriteStream, existsSync } from "node:fs";
|
|
20
20
|
import { mkdir, rename } from "node:fs/promises";
|
|
21
21
|
import { dirname, join } from "node:path";
|
|
22
|
-
import { createInterface } from "node:readline";
|
|
23
22
|
import { DatabaseSync } from "node:sqlite";
|
|
24
23
|
import { Readable } from "node:stream";
|
|
25
24
|
import { pipeline } from "node:stream/promises";
|
|
26
25
|
import { DatabaseClient } from "@mailwoman/core/kysley/client";
|
|
27
26
|
import { mailwomanDataRoot } from "@mailwoman/core/utils";
|
|
27
|
+
import { TextSpliterator } from "spliterator";
|
|
28
28
|
import { AdminLevel1CodeToAbbreviation, StateName } from "../state.js";
|
|
29
29
|
import { initializeTIGERSchema, TIGER_PRAGMAS } from "./schema.js";
|
|
30
30
|
const REDISTRICTING_BASE = "https://www2.census.gov/programs-surveys/decennial/2020/data/01-Redistricting_File--PL_94-171";
|
|
@@ -79,10 +79,15 @@ async function downloadIfNeeded(url, dest) {
|
|
|
79
79
|
await rename(tmp, dest);
|
|
80
80
|
return false;
|
|
81
81
|
}
|
|
82
|
+
// Pipe-delimited, fixed field-offset census rows — the manual `split("|")` at each call site stays (the
|
|
83
|
+
// parse indexes by position, not by header). spliterator keeps CRLF's trailing CR where readline stripped
|
|
84
|
+
// it, but every field this parser reads (geo GEOCODE/LOGRECNO ≤ 9, segment-1 LOGRECNO + P2 ≤ 86) sits well
|
|
85
|
+
// before the final column, so the retained CR only ever lands on an unread trailing field.
|
|
82
86
|
async function eachLine(path, fn) {
|
|
83
|
-
for await (const line of
|
|
84
|
-
if (line)
|
|
87
|
+
for await (const line of TextSpliterator.fromAsync(path)) {
|
|
88
|
+
if (line) {
|
|
85
89
|
fn(line);
|
|
90
|
+
}
|
|
86
91
|
}
|
|
87
92
|
}
|
|
88
93
|
/**
|
|
@@ -148,7 +153,7 @@ export async function* fetchRedistricting(options) {
|
|
|
148
153
|
inserted += rows.length;
|
|
149
154
|
};
|
|
150
155
|
// Pass 2: segment 1 → P2 counts for the mapped LOGRECNOs, flushing as we go.
|
|
151
|
-
for await (const line of
|
|
156
|
+
for await (const line of TextSpliterator.fromAsync(seg1Path)) {
|
|
152
157
|
if (!line)
|
|
153
158
|
continue;
|
|
154
159
|
const f = line.split("|");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redistricting.js","sourceRoot":"","sources":["../../sdk/redistricting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"redistricting.js","sourceRoot":"","sources":["../../sdk/redistricting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,OAAO,EAAE,6BAA6B,EAAE,SAAS,EAAwB,MAAM,aAAa,CAAA;AAC5F,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAyC,MAAM,aAAa,CAAA;AAEzG,MAAM,kBAAkB,GACvB,+FAA+F,CAAA;AAChG,MAAM,iBAAiB,GAAG,iBAAiB,EAAE,CAAA;AAE7C,6DAA6D;AAC7D,mGAAmG;AACnG,qEAAqE;AACrE,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB,MAAM,YAAY,GAAG,CAAC,CAAA;AACtB,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,+FAA+F;AAC/F,MAAM,YAAY,GAAG,CAAC,CAAA;AACtB,MAAM,EAAE,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;AAClD,2FAA2F;AAC3F,MAAM,cAAc,GAAG;IACtB,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAChB,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,gCAAgC;IACjD,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,4BAA4B;IAC1C,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACX,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACZ,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACX,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;IACb,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,oBAAoB;CAC1B,CAAA;AA6BV,SAAS,UAAU,CAAC,GAAW,EAAE,IAAc;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC9B,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1C,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,WAAW,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAC5F,CAAA;IACF,CAAC,CAAC,CAAA;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,IAAY;IACxD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC;YACJ,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;YAExC,OAAO,IAAI,CAAA;QACZ,CAAC;QAAC,MAAM,CAAC;YACR,8BAA8B;QAC/B,CAAC;IACF,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,GAAG,MAAM,CAAA;IACzB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEpD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC,CAAA;IAC/E,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAA8C,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAC5G,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAEvB,OAAO,KAAK,CAAA;AACb,CAAC;AAED,wGAAwG;AACxG,0GAA0G;AAC1G,2GAA2G;AAC3G,2FAA2F;AAC3F,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,EAA0B;IAC/D,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,IAAI,IAAI,EAAE,CAAC;YACV,EAAE,CAAC,IAAI,CAAC,CAAA;QACT,CAAC;IACF,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,kBAAkB,CACxC,OAAkC;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAA;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAA;IACtD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAA;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAA;IAE/B,MAAM,IAAI,GAAG,6BAA6B,CAAC,KAAwB,CAAC,CAAA;IAEpE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAA;IAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,IAA8B,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAA;IAClF,gGAAgG;IAChG,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;IACtE,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAElD,MAAM,OAAO,GAAG,GAAG,QAAQ,GAAG,OAAO,SAAS,CAAA;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,GAAG,kBAAkB,IAAI,OAAO,IAAI,OAAO,EAAE,CAAA;IAEzD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACnD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IAElD,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,MAAM,OAAO,KAAK,CAAC,CAAA;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,QAAQ,OAAO,KAAK,CAAC,CAAA;IAChE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAAQ,MAAM,OAAO,KAAK,EAAE,CAAA;IAE/D,4DAA4D;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;IAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC5C,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEzB,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK;YAAE,OAAM;QACnC,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QAElC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAM;QACrC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;IAExC,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAA;IACpC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACtB,MAAM,GAAG,GAAG,IAAI,cAAc,CAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/D,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAEhC,IAAI,CAAC;QACJ,4DAA4D;QAC5D,MAAM,GAAG;aACP,UAAU,CAAC,UAAU,CAAC;aACtB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;aACpC,OAAO,EAAE,CAAA;QAEX,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,KAAK,GAAmB,EAAE,CAAA;QAC9B,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAM;YACzB,MAAM,IAAI,GAAG,KAAK,CAAA;YAClB,KAAK,GAAG,EAAE,CAAA;YACV,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAA;YACvD,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAA;QACxB,CAAC,CAAA;QAED,6EAA6E;QAC7E,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,IAAI;gBAAE,SAAQ;YACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAA;YAEnD,IAAI,CAAC,KAAK;gBAAE,SAAQ;YACpB,KAAK,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACnD,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC3C,CAAC,CAAA;YAEF,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,KAAK,EAAE,CAAA;gBACb,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;YACzC,CAAC;QACF,CAAC;QACD,MAAM,KAAK,EAAE,CAAA;QAEb,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;QACxC,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;QAE3C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;IAChD,CAAC;YAAS,CAAC;QACV,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;IACpB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* Render a race-by-dot-density PMTiles tileset (from `race-dots.ts` → tippecanoe) as a standalone
|
|
7
|
+
* MapLibre page on the house stack: the Protomaps `basemap-v4` vector basemap (layers generated +
|
|
8
|
+
* inlined here, à la `registry/map-html.ts`) under a circle layer of the dots, colored by race
|
|
9
|
+
* category. The dots PMTiles is read client-side via the `pmtiles` protocol.
|
|
10
|
+
*
|
|
11
|
+
* Each dot is one of `--per` people of a category, placed at random inside its Census block — a
|
|
12
|
+
* representation, not a record about any address. Serve over localhost (the house tile server
|
|
13
|
+
* CORS-restricts to localhost + the docs domains).
|
|
14
|
+
*
|
|
15
|
+
* Run: node --experimental-strip-types scripts/census/race-dots-map.ts\
|
|
16
|
+
* --pmtiles-url http://localhost:8899/race-dots-oc.pmtiles --out /tmp/race-dots-oc.html
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=race-dots-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"race-dots-map.d.ts","sourceRoot":"","sources":["../../tools/race-dots-map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* Render a race-by-dot-density PMTiles tileset (from `race-dots.ts` → tippecanoe) as a standalone
|
|
7
|
+
* MapLibre page on the house stack: the Protomaps `basemap-v4` vector basemap (layers generated +
|
|
8
|
+
* inlined here, à la `registry/map-html.ts`) under a circle layer of the dots, colored by race
|
|
9
|
+
* category. The dots PMTiles is read client-side via the `pmtiles` protocol.
|
|
10
|
+
*
|
|
11
|
+
* Each dot is one of `--per` people of a category, placed at random inside its Census block — a
|
|
12
|
+
* representation, not a record about any address. Serve over localhost (the house tile server
|
|
13
|
+
* CORS-restricts to localhost + the docs domains).
|
|
14
|
+
*
|
|
15
|
+
* Run: node --experimental-strip-types scripts/census/race-dots-map.ts\
|
|
16
|
+
* --pmtiles-url http://localhost:8899/race-dots-oc.pmtiles --out /tmp/race-dots-oc.html
|
|
17
|
+
*/
|
|
18
|
+
import { writeFileSync } from "node:fs";
|
|
19
|
+
import { parseArgs } from "node:util";
|
|
20
|
+
import { layers, namedFlavor } from "@protomaps/basemaps";
|
|
21
|
+
// Loose scan parity with the retired local argv helpers: unknown flags tolerated.
|
|
22
|
+
const { values: rawValues } = parseArgs({
|
|
23
|
+
options: {
|
|
24
|
+
lat: { type: "string" },
|
|
25
|
+
lng: { type: "string" },
|
|
26
|
+
out: { type: "string" },
|
|
27
|
+
per: { type: "string" },
|
|
28
|
+
"pmtiles-url": { type: "string" },
|
|
29
|
+
title: { type: "string" },
|
|
30
|
+
zoom: { type: "string" },
|
|
31
|
+
},
|
|
32
|
+
strict: false,
|
|
33
|
+
allowPositionals: true,
|
|
34
|
+
});
|
|
35
|
+
// Typed view: strict:false loosens TS inference, but declared options always parse to their schema type.
|
|
36
|
+
const values = rawValues;
|
|
37
|
+
const PMTILES_URL = values["pmtiles-url"] || "http://localhost:8899/race-dots-oc.pmtiles";
|
|
38
|
+
const OUT = values["out"] || "/tmp/race-dots-oc.html";
|
|
39
|
+
const PER = Number(values["per"] || "5");
|
|
40
|
+
const PER_PHRASE = PER === 1 ? "one dot is one person" : `one dot ≈ ${PER} people`;
|
|
41
|
+
const TITLE = values["title"] || `Race in Orange County, CA — ${PER_PHRASE} (2020 Census)`;
|
|
42
|
+
const CENTER_LNG = Number(values["lng"] || "-117.83");
|
|
43
|
+
const CENTER_LAT = Number(values["lat"] || "33.68");
|
|
44
|
+
const ZOOM = Number(values["zoom"] || "9.4");
|
|
45
|
+
const MAPLIBRE_VERSION = "5.24.0";
|
|
46
|
+
const MAPLIBRE_JS_SRI = "sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp";
|
|
47
|
+
const MAPLIBRE_CSS_SRI = "sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK";
|
|
48
|
+
const PMTILES_VERSION = "4.4.1";
|
|
49
|
+
const BASEMAP_SOURCE_ID = "basemap-v4";
|
|
50
|
+
const BASEMAP_TILEJSON_URL = "https://tiles.sister.software/basemap-v4.json";
|
|
51
|
+
const GLYPHS_URL = "https://protomaps.github.io/basemaps-assets/fonts/{fontstack}/{range}.pbf";
|
|
52
|
+
const SPRITE_URL = "https://protomaps.github.io/basemaps-assets/sprites/v4/light";
|
|
53
|
+
// Cooper Center "Racial Dot Map" palette, by `pl_block`/P2 category.
|
|
54
|
+
const CATEGORY_COLOR = {
|
|
55
|
+
white: "#1f78b4", // blue
|
|
56
|
+
black: "#33a02c", // green
|
|
57
|
+
hispanic: "#ff7f00", // orange
|
|
58
|
+
asian: "#e31a1c", // red
|
|
59
|
+
aian: "#6a3d9a", // purple
|
|
60
|
+
nhpi: "#00b3b3", // teal
|
|
61
|
+
other: "#b15928", // brown
|
|
62
|
+
multi: "#9e9e9e", // grey
|
|
63
|
+
};
|
|
64
|
+
const CATEGORY_LABEL = {
|
|
65
|
+
white: "White (non-Hispanic)",
|
|
66
|
+
black: "Black (non-Hispanic)",
|
|
67
|
+
hispanic: "Hispanic or Latino",
|
|
68
|
+
asian: "Asian (non-Hispanic)",
|
|
69
|
+
aian: "Native American",
|
|
70
|
+
nhpi: "Pacific Islander",
|
|
71
|
+
other: "Other (non-Hispanic)",
|
|
72
|
+
multi: "Two or more races",
|
|
73
|
+
};
|
|
74
|
+
const colorMatch = ["match", ["get", "cat"]];
|
|
75
|
+
for (const [cat, color] of Object.entries(CATEGORY_COLOR)) {
|
|
76
|
+
colorMatch.push(cat, color);
|
|
77
|
+
}
|
|
78
|
+
colorMatch.push("#9e9e9e");
|
|
79
|
+
const style = {
|
|
80
|
+
version: 8,
|
|
81
|
+
glyphs: GLYPHS_URL,
|
|
82
|
+
sprite: SPRITE_URL,
|
|
83
|
+
sources: {
|
|
84
|
+
[BASEMAP_SOURCE_ID]: { type: "vector", url: BASEMAP_TILEJSON_URL },
|
|
85
|
+
dots: { type: "vector", url: "pmtiles://" + PMTILES_URL },
|
|
86
|
+
},
|
|
87
|
+
layers: [
|
|
88
|
+
...layers(BASEMAP_SOURCE_ID, namedFlavor("light"), { lang: "en" }),
|
|
89
|
+
{
|
|
90
|
+
id: "race-dots",
|
|
91
|
+
type: "circle",
|
|
92
|
+
source: "dots",
|
|
93
|
+
"source-layer": "dots",
|
|
94
|
+
paint: {
|
|
95
|
+
"circle-radius": ["interpolate", ["linear"], ["zoom"], 4, 0.7, 9, 1.7, 12, 2.8, 16, 4.5],
|
|
96
|
+
"circle-color": colorMatch,
|
|
97
|
+
"circle-opacity": 0.85,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
};
|
|
102
|
+
const legendRows = Object.keys(CATEGORY_COLOR)
|
|
103
|
+
.map((c) => `<div><i style="background:${CATEGORY_COLOR[c]}"></i>${CATEGORY_LABEL[c]}</div>`)
|
|
104
|
+
.join("");
|
|
105
|
+
// The client script avoids template literals / `${` so it survives this outer template verbatim.
|
|
106
|
+
const html = `<!doctype html>
|
|
107
|
+
<html lang="en">
|
|
108
|
+
<head>
|
|
109
|
+
<meta charset="utf-8" />
|
|
110
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
111
|
+
<title>${TITLE}</title>
|
|
112
|
+
<link rel="stylesheet" href="https://unpkg.com/maplibre-gl@${MAPLIBRE_VERSION}/dist/maplibre-gl.css" integrity="${MAPLIBRE_CSS_SRI}" crossorigin="anonymous" />
|
|
113
|
+
<style>
|
|
114
|
+
html, body { margin: 0; height: 100%; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; }
|
|
115
|
+
#map { position: absolute; inset: 0; background: #f4f4f2; }
|
|
116
|
+
.mw-panel { position: absolute; z-index: 1; background: rgba(255,255,255,0.94); padding: 10px 12px; border-radius: 8px; box-shadow: 0 1px 6px rgba(0,0,0,0.3); font-size: 12px; line-height: 1.5; color: #1a1a1a; }
|
|
117
|
+
.mw-title { top: 10px; left: 10px; max-width: 64%; }
|
|
118
|
+
.mw-title h1 { font-size: 14px; margin: 0 0 4px; }
|
|
119
|
+
.mw-legend { bottom: 22px; right: 10px; }
|
|
120
|
+
.mw-legend i { display: inline-block; width: 11px; height: 11px; margin-right: 6px; border-radius: 50%; vertical-align: -1px; }
|
|
121
|
+
.muted { color: #666; }
|
|
122
|
+
</style>
|
|
123
|
+
</head>
|
|
124
|
+
<body>
|
|
125
|
+
<div id="map"></div>
|
|
126
|
+
<div class="mw-panel mw-title"><h1>${TITLE}</h1><div class="muted">Each dot is ${PER === 1 ? "a person" : `~${PER} people`}, placed at random inside their Census block. Source: 2020 P.L. 94-171 (table P2) + TIGER blocks.</div></div>
|
|
127
|
+
<div class="mw-panel mw-legend">${legendRows}</div>
|
|
128
|
+
<script src="https://unpkg.com/maplibre-gl@${MAPLIBRE_VERSION}/dist/maplibre-gl.js" integrity="${MAPLIBRE_JS_SRI}" crossorigin="anonymous"></script>
|
|
129
|
+
<script src="https://unpkg.com/pmtiles@${PMTILES_VERSION}/dist/pmtiles.js" crossorigin="anonymous"></script>
|
|
130
|
+
<script>
|
|
131
|
+
var protocol = new pmtiles.Protocol();
|
|
132
|
+
maplibregl.addProtocol("pmtiles", protocol.tile);
|
|
133
|
+
var map = new maplibregl.Map({
|
|
134
|
+
container: "map",
|
|
135
|
+
style: ${JSON.stringify(style)},
|
|
136
|
+
center: [${CENTER_LNG}, ${CENTER_LAT}],
|
|
137
|
+
zoom: ${ZOOM},
|
|
138
|
+
attributionControl: false
|
|
139
|
+
});
|
|
140
|
+
map.addControl(new maplibregl.AttributionControl({ compact: true, customAttribution: "US Census 2020 · TIGER · Protomaps · OpenStreetMap" }));
|
|
141
|
+
</script>
|
|
142
|
+
</body>
|
|
143
|
+
</html>
|
|
144
|
+
`;
|
|
145
|
+
writeFileSync(OUT, html);
|
|
146
|
+
console.error(`[written] ${OUT} (pmtiles: ${PMTILES_URL})`);
|
|
147
|
+
//# sourceMappingURL=race-dots-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"race-dots-map.js","sourceRoot":"","sources":["../../tools/race-dots-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* Race-by-dot-density builder — the Cooper Center "Racial Dot Map" recipe, from the TIGER DB the
|
|
7
|
+
* `mailwoman tiger` CLI produces.
|
|
8
|
+
*
|
|
9
|
+
* Reads `tabblock20 ⋈ pl_block` (block geometry + Census 2020 P.L. 94-171 table P2 counts) and
|
|
10
|
+
* scatters one dot per `--per` people uniformly at random inside each block, tagged with its
|
|
11
|
+
* race/ethnicity category. Output is NDJSON (one GeoJSON Point Feature per line, with a
|
|
12
|
+
* `tippecanoe` layer hint) ready for `tippecanoe -o race-dots.pmtiles`.
|
|
13
|
+
*
|
|
14
|
+
* Point-in-polygon uses `@turf/boolean-contains` (ships with `@mailwoman/tiger`). The dot is a
|
|
15
|
+
* _representation_, not a record: a random position inside the block it belongs to, standing in
|
|
16
|
+
* for `--per` real people of that category. It says nothing about any individual address.
|
|
17
|
+
*
|
|
18
|
+
* Build the input DB first: mailwoman tiger fetch --state 06 --county 059 --out tiger-oc.db
|
|
19
|
+
* mailwoman tiger redistricting --state 06 --county 059 --out tiger-oc.db
|
|
20
|
+
*
|
|
21
|
+
* Run: node --experimental-strip-types scripts/census/race-dots.ts\
|
|
22
|
+
* --db tiger-oc.db --per 10 --out /tmp/race-dots.ndjson
|
|
23
|
+
*/
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=race-dots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"race-dots.d.ts","sourceRoot":"","sources":["../../tools/race-dots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG"}
|