@mailwoman/tiger 10.0.0 → 10.2.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/lib/block-group.ts +7 -7
- package/lib/class-code.ts +387 -266
- package/lib/constants.ts +7 -6
- package/lib/county/subdivision.ts +7 -7
- package/lib/{county/index.ts → county.ts} +7 -7
- package/lib/files.ts +37 -20
- package/lib/functional-status.ts +6 -4
- package/lib/geoid.ts +44 -26
- package/lib/index.ts +1 -1
- package/lib/legal-statistical-area.ts +7 -5
- package/lib/{sdk/schema.ts → schema.ts} +32 -42
- package/lib/state.ts +26 -23
- package/lib/tabulation-block.ts +4 -4
- package/lib/tract.ts +3 -3
- package/out/block-group.d.ts +7 -7
- package/out/class-code.d.ts +387 -266
- package/out/class-code.d.ts.map +1 -1
- package/out/class-code.js +387 -266
- package/out/class-code.js.map +1 -1
- package/out/constants.d.ts +7 -6
- package/out/constants.d.ts.map +1 -1
- package/out/constants.js +3 -3
- package/out/county/subdivision.d.ts +7 -7
- package/out/{county/index.d.ts → county.d.ts} +8 -8
- package/out/county.d.ts.map +1 -0
- package/out/{county/index.js → county.js} +2 -2
- package/out/county.js.map +1 -0
- package/out/files.d.ts +21 -13
- package/out/files.d.ts.map +1 -1
- package/out/files.js +27 -13
- package/out/files.js.map +1 -1
- package/out/functional-status.d.ts +6 -4
- package/out/functional-status.d.ts.map +1 -1
- package/out/functional-status.js +6 -4
- package/out/functional-status.js.map +1 -1
- package/out/geoid.d.ts +34 -16
- package/out/geoid.d.ts.map +1 -1
- package/out/geoid.js +16 -10
- package/out/geoid.js.map +1 -1
- package/out/index.d.ts +1 -1
- package/out/index.d.ts.map +1 -1
- package/out/index.js +1 -1
- package/out/index.js.map +1 -1
- package/out/legal-statistical-area.d.ts +7 -5
- package/out/legal-statistical-area.d.ts.map +1 -1
- package/out/legal-statistical-area.js +7 -5
- package/out/legal-statistical-area.js.map +1 -1
- package/out/{sdk/schema.d.ts → schema.d.ts} +26 -20
- package/out/schema.d.ts.map +1 -0
- package/out/{sdk/schema.js → schema.js} +12 -31
- package/out/schema.js.map +1 -0
- package/out/sdk/download.d.ts +7 -15
- package/out/sdk/download.d.ts.map +1 -1
- package/out/sdk/download.js +6 -15
- package/out/sdk/download.js.map +1 -1
- package/out/sdk/fetch.d.ts +36 -29
- package/out/sdk/fetch.d.ts.map +1 -1
- package/out/sdk/fetch.js +18 -53
- package/out/sdk/fetch.js.map +1 -1
- package/out/sdk/redistricting.d.ts +29 -15
- package/out/sdk/redistricting.d.ts.map +1 -1
- package/out/sdk/redistricting.js +47 -36
- package/out/sdk/redistricting.js.map +1 -1
- package/out/sdk/state/TIGERTabulatedBlockEntity.d.ts +2 -2
- package/out/sdk/state/TIGERTabulatedBlockEntity.d.ts.map +1 -1
- package/out/sdk/state/TIGERTabulatedBlockEntity.js +3 -3
- package/out/sdk/state/TIGERTabulatedBlockEntity.js.map +1 -1
- package/out/sdk/state/TIGERTractEntity.d.ts.map +1 -1
- package/out/sdk/state/TIGERTractEntity.js.map +1 -1
- package/out/sdk/state/block-operations.d.ts +3 -2
- package/out/sdk/state/block-operations.d.ts.map +1 -1
- package/out/sdk/state/block-operations.js +4 -3
- package/out/sdk/state/block-operations.js.map +1 -1
- package/out/sdk/{state/index.d.ts → state.d.ts} +1 -1
- package/out/sdk/state.d.ts.map +1 -0
- package/out/sdk/{state/index.js → state.js} +1 -1
- package/out/sdk/state.js.map +1 -0
- package/out/sdk/tsconfig.tsbuildinfo +1 -0
- package/out/state.d.ts +18 -15
- package/out/state.d.ts.map +1 -1
- package/out/state.js +17 -14
- package/out/state.js.map +1 -1
- package/out/tabulation-block.d.ts +4 -4
- package/out/tools/race/dots/map.d.ts +23 -9
- package/out/tools/race/dots/map.d.ts.map +1 -1
- package/out/tools/race/dots/map.js +9 -5
- package/out/tools/race/dots/map.js.map +1 -1
- package/out/tools/race/dots.d.ts +47 -0
- package/out/tools/race/dots.d.ts.map +1 -0
- package/out/tools/race/{dots/index.js → dots.js} +10 -27
- package/out/tools/race/dots.js.map +1 -0
- package/out/tools/serve-range.d.ts +13 -7
- package/out/tools/serve-range.d.ts.map +1 -1
- package/out/tools/serve-range.js +10 -8
- package/out/tools/serve-range.js.map +1 -1
- package/out/tools/tsconfig.tsbuildinfo +1 -0
- package/out/tract.d.ts +3 -3
- package/out/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +61 -44
- package/sdk/download.ts +41 -0
- package/{lib/sdk → sdk}/fetch.ts +58 -62
- package/{lib/sdk → sdk}/redistricting.ts +57 -40
- package/{lib/sdk → sdk}/state/TIGERTabulatedBlockEntity.ts +3 -3
- package/{lib/sdk → sdk}/state/block-operations.ts +5 -4
- package/{lib/tools → tools}/race/dots/map.ts +30 -12
- package/{lib/tools/race/dots/index.ts → tools/race/dots.ts} +14 -31
- package/{lib/tools → tools}/serve-range.ts +17 -10
- package/lib/sdk/download.ts +0 -49
- package/lib/sdk/index.ts +0 -10
- package/lib/tools/index.ts +0 -11
- package/out/county/index.d.ts.map +0 -1
- package/out/county/index.js.map +0 -1
- package/out/sdk/index.d.ts +0 -10
- package/out/sdk/index.d.ts.map +0 -1
- package/out/sdk/index.js +0 -10
- package/out/sdk/index.js.map +0 -1
- package/out/sdk/schema.d.ts.map +0 -1
- package/out/sdk/schema.js.map +0 -1
- package/out/sdk/state/index.d.ts.map +0 -1
- package/out/sdk/state/index.js.map +0 -1
- package/out/tools/index.d.ts +0 -11
- package/out/tools/index.d.ts.map +0 -1
- package/out/tools/index.js +0 -11
- package/out/tools/index.js.map +0 -1
- package/out/tools/race/dots/index.d.ts +0 -61
- package/out/tools/race/dots/index.d.ts.map +0 -1
- package/out/tools/race/dots/index.js.map +0 -1
- /package/{lib/sdk → sdk}/state/TIGERTractEntity.ts +0 -0
- /package/{lib/sdk/state/index.ts → sdk/state.ts} +0 -0
package/out/state.d.ts
CHANGED
|
@@ -513,17 +513,17 @@ export declare const AdminLevel1CodeToAbbreviation: Record<AdminLevel1Code, Admi
|
|
|
513
513
|
/**
|
|
514
514
|
* Type-predicate to determine if a given string is a valid state FIPS code.
|
|
515
515
|
*/
|
|
516
|
-
export declare function isStateFIPSCode(code: string | null
|
|
516
|
+
export declare function isStateFIPSCode(code: string | null): code is FIPSStateCode;
|
|
517
517
|
/**
|
|
518
518
|
* Type-predicate to determine if a given string is a valid territory FIPS code.
|
|
519
519
|
*/
|
|
520
|
-
export declare function isTerritoryFIPSCode(code: string | null
|
|
520
|
+
export declare function isTerritoryFIPSCode(code: string | null): code is FIPSTerritoryCode;
|
|
521
521
|
/**
|
|
522
522
|
* Type-predicate to determine if a given string is a valid state-level FIPS code.
|
|
523
523
|
*
|
|
524
524
|
* This includes both states and territories.
|
|
525
525
|
*/
|
|
526
|
-
export declare function isAdminLevel1FIPSCode(code: string | null
|
|
526
|
+
export declare function isAdminLevel1FIPSCode(code: string | null): code is AdminLevel1Code;
|
|
527
527
|
/**
|
|
528
528
|
* Two-letter abbreviations of a US states.
|
|
529
529
|
*
|
|
@@ -586,7 +586,8 @@ export declare const StateAbbreviation: {
|
|
|
586
586
|
};
|
|
587
587
|
export type StateAbbreviation = (typeof StateAbbreviation)[keyof typeof StateAbbreviation];
|
|
588
588
|
/**
|
|
589
|
-
* Postal abbreviations for US territories, kept apart from the states
|
|
589
|
+
* Postal abbreviations for US territories, kept apart from the states
|
|
590
|
+
* so callers can include or exclude them.
|
|
590
591
|
*/
|
|
591
592
|
export declare const TerritoryAbbreviation: {
|
|
592
593
|
readonly "American Samoa": "AS";
|
|
@@ -606,7 +607,7 @@ export type TerritoryAbbreviation = (typeof TerritoryAbbreviation)[keyof typeof
|
|
|
606
607
|
*/
|
|
607
608
|
export type AdminLevel1Abbreviation = StateAbbreviation | TerritoryAbbreviation;
|
|
608
609
|
/**
|
|
609
|
-
* Every admin-level-1 postal abbreviation — the fifty states, DC
|
|
610
|
+
* Every admin-level-1 postal abbreviation — the fifty states, DC and the territories together.
|
|
610
611
|
*/
|
|
611
612
|
export declare const AdminLevel1Abbreviation: {
|
|
612
613
|
readonly Alaska: "AK";
|
|
@@ -733,22 +734,24 @@ export declare const StateName: {
|
|
|
733
734
|
};
|
|
734
735
|
export type StateName = (typeof StateName)[keyof typeof StateName];
|
|
735
736
|
/**
|
|
736
|
-
* Predicate for checking if a string is a proper abbreviation for a US State
|
|
737
|
-
* 2-letter string.
|
|
737
|
+
* Predicate for checking if a string is a proper abbreviation for a US State
|
|
738
|
+
* or territory, rather than a random 2-letter string.
|
|
738
739
|
*
|
|
739
740
|
* @see {@link isStateAbbreviation} for a specific check for US States.
|
|
740
741
|
* @see {@link isStateTerritoryAbbreviation} for a specific check for US Territories.
|
|
741
742
|
*/
|
|
742
743
|
export declare function isStateLevelAbbreviation(input: unknown): input is AdminLevel1Abbreviation;
|
|
743
744
|
/**
|
|
744
|
-
* Predicate for checking if a string is a proper abbreviation for a US State,
|
|
745
|
+
* Predicate for checking if a string is a proper abbreviation for a US State,
|
|
746
|
+
* rather than a random 2-letter string.
|
|
745
747
|
*
|
|
746
748
|
* @see {@link isStateLevelAbbreviation} for a general check for US States and Territories.
|
|
747
749
|
* @see {@link isStateTerritoryAbbreviation} for a specific check for US Territories.
|
|
748
750
|
*/
|
|
749
751
|
export declare function isStateAbbreviation(input: unknown): input is StateAbbreviation;
|
|
750
752
|
/**
|
|
751
|
-
* Predicate for checking if a string is a proper abbreviation for a US Territory,
|
|
753
|
+
* Predicate for checking if a string is a proper abbreviation for a US Territory,
|
|
754
|
+
* rather than a random 2-letter string.
|
|
752
755
|
*
|
|
753
756
|
* @see {@link isStateLevelAbbreviation} for a general check for US States and Territories.
|
|
754
757
|
* @see {@link isStateAbbreviation} for a specific check for US States.
|
|
@@ -785,16 +788,16 @@ export interface StateDetails {
|
|
|
785
788
|
*/
|
|
786
789
|
FIPSCode: string;
|
|
787
790
|
/**
|
|
788
|
-
* The
|
|
791
|
+
* The ansi code for the state or territory.
|
|
789
792
|
*
|
|
790
|
-
* @title
|
|
793
|
+
* @title ansi Code
|
|
791
794
|
*/
|
|
792
795
|
ANSICode: string;
|
|
793
796
|
}
|
|
794
797
|
/**
|
|
795
|
-
* A US state as defined by the Census Bureau's
|
|
798
|
+
* A US state as defined by the Census Bureau's tiger system.
|
|
796
799
|
*
|
|
797
|
-
* @title Census
|
|
800
|
+
* @title Census tiger State
|
|
798
801
|
* @public
|
|
799
802
|
*/
|
|
800
803
|
export interface TIGERState {
|
|
@@ -817,8 +820,8 @@ export interface TIGERState {
|
|
|
817
820
|
*/
|
|
818
821
|
[GeoIDPart.State]: AdminLevel1Code;
|
|
819
822
|
/**
|
|
820
|
-
* The geometry of the tabulated block, typically a polygon, but may be a
|
|
821
|
-
* islands.
|
|
823
|
+
* The geometry of the tabulated block, typically a polygon, but may be a
|
|
824
|
+
* multi-polygon for blocks with holes, or islands.
|
|
822
825
|
*
|
|
823
826
|
* @title Geometry
|
|
824
827
|
*/
|
package/out/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../lib/state.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../lib/state.ts"],"names":[],"mappings":"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"}
|
package/out/state.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*/
|
|
6
|
-
|
|
6
|
+
// #region FIPS Codes
|
|
7
7
|
/**
|
|
8
8
|
* FIPS codes for US States.
|
|
9
9
|
*
|
|
@@ -308,8 +308,8 @@ export function isTerritoryFIPSCode(code) {
|
|
|
308
308
|
export function isAdminLevel1FIPSCode(code) {
|
|
309
309
|
return isStateFIPSCode(code) || isTerritoryFIPSCode(code);
|
|
310
310
|
}
|
|
311
|
-
|
|
312
|
-
|
|
311
|
+
// #endregion
|
|
312
|
+
// #region State Abbreviation
|
|
313
313
|
/**
|
|
314
314
|
* Two-letter abbreviations of a US states.
|
|
315
315
|
*
|
|
@@ -371,7 +371,8 @@ export const StateAbbreviation = {
|
|
|
371
371
|
Wyoming: "WY",
|
|
372
372
|
};
|
|
373
373
|
/**
|
|
374
|
-
* Postal abbreviations for US territories, kept apart from the states
|
|
374
|
+
* Postal abbreviations for US territories, kept apart from the states
|
|
375
|
+
* so callers can include or exclude them.
|
|
375
376
|
*/
|
|
376
377
|
export const TerritoryAbbreviation = {
|
|
377
378
|
"American Samoa": "AS",
|
|
@@ -382,14 +383,14 @@ export const TerritoryAbbreviation = {
|
|
|
382
383
|
"Puerto Rico": "PR",
|
|
383
384
|
};
|
|
384
385
|
/**
|
|
385
|
-
* Every admin-level-1 postal abbreviation — the fifty states, DC
|
|
386
|
+
* Every admin-level-1 postal abbreviation — the fifty states, DC and the territories together.
|
|
386
387
|
*/
|
|
387
388
|
export const AdminLevel1Abbreviation = {
|
|
388
389
|
...StateAbbreviation,
|
|
389
390
|
...TerritoryAbbreviation,
|
|
390
391
|
};
|
|
391
|
-
|
|
392
|
-
|
|
392
|
+
// #endregion
|
|
393
|
+
// #region State Name
|
|
393
394
|
/**
|
|
394
395
|
* US State abbreviations to their full names.
|
|
395
396
|
*
|
|
@@ -454,11 +455,11 @@ export const StateName = {
|
|
|
454
455
|
MP: "Northern Mariana Islands",
|
|
455
456
|
GU: "Guam",
|
|
456
457
|
};
|
|
457
|
-
|
|
458
|
-
|
|
458
|
+
// #endregion
|
|
459
|
+
// #region State Utilities
|
|
459
460
|
/**
|
|
460
|
-
* Predicate for checking if a string is a proper abbreviation for a US State
|
|
461
|
-
* 2-letter string.
|
|
461
|
+
* Predicate for checking if a string is a proper abbreviation for a US State
|
|
462
|
+
* or territory, rather than a random 2-letter string.
|
|
462
463
|
*
|
|
463
464
|
* @see {@link isStateAbbreviation} for a specific check for US States.
|
|
464
465
|
* @see {@link isStateTerritoryAbbreviation} for a specific check for US Territories.
|
|
@@ -469,7 +470,8 @@ export function isStateLevelAbbreviation(input) {
|
|
|
469
470
|
return Object.hasOwn(FIPSStateCode, input) || Object.hasOwn(FIPSTerritoryCode, input);
|
|
470
471
|
}
|
|
471
472
|
/**
|
|
472
|
-
* Predicate for checking if a string is a proper abbreviation for a US State,
|
|
473
|
+
* Predicate for checking if a string is a proper abbreviation for a US State,
|
|
474
|
+
* rather than a random 2-letter string.
|
|
473
475
|
*
|
|
474
476
|
* @see {@link isStateLevelAbbreviation} for a general check for US States and Territories.
|
|
475
477
|
* @see {@link isStateTerritoryAbbreviation} for a specific check for US Territories.
|
|
@@ -480,7 +482,8 @@ export function isStateAbbreviation(input) {
|
|
|
480
482
|
return Object.hasOwn(FIPSStateCode, input);
|
|
481
483
|
}
|
|
482
484
|
/**
|
|
483
|
-
* Predicate for checking if a string is a proper abbreviation for a US Territory,
|
|
485
|
+
* Predicate for checking if a string is a proper abbreviation for a US Territory,
|
|
486
|
+
* rather than a random 2-letter string.
|
|
484
487
|
*
|
|
485
488
|
* @see {@link isStateLevelAbbreviation} for a general check for US States and Territories.
|
|
486
489
|
* @see {@link isStateAbbreviation} for a specific check for US States.
|
|
@@ -490,5 +493,5 @@ export function isStateTerritoryAbbreviation(input) {
|
|
|
490
493
|
return false;
|
|
491
494
|
return Object.hasOwn(FIPSTerritoryCode, input);
|
|
492
495
|
}
|
|
493
|
-
|
|
496
|
+
// #endregion
|
|
494
497
|
//# sourceMappingURL=state.js.map
|
package/out/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../lib/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../lib/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import type { MultiPolygonLiteral } from "@mailwoman/spatial";
|
|
|
7
7
|
import type { TIGERProperty, TIGERPropertyRecord } from "#constants";
|
|
8
8
|
import type { GeoIDPart, FIPSBlockGeoID, ParsedGeoIDBlockLevel } from "#geoid";
|
|
9
9
|
/**
|
|
10
|
-
* The properties of a tabulated block from the
|
|
10
|
+
* The properties of a tabulated block from the tiger/Line dataset.
|
|
11
11
|
*/
|
|
12
12
|
export type TIGERTabulatedBlockProperties = Pick<TIGERPropertyRecord<FIPSBlockGeoID>, typeof TIGERProperty.GeoID | typeof GeoIDPart.CountySubDivision | typeof GeoIDPart.Tract | typeof GeoIDPart.Place | typeof GeoIDPart.BlockGroup | typeof GeoIDPart.Block | typeof GeoIDPart.Place | typeof GeoIDPart.CongressionalDistrict | typeof TIGERProperty.ClassCode | typeof TIGERProperty.UrbanRuralCode | typeof TIGERProperty.UrbanizedAreaCode | typeof TIGERProperty.FunctionalStatus | typeof TIGERProperty.LandAreaSqm | typeof TIGERProperty.WaterAreaSqm | typeof TIGERProperty.CentroidLatitude | typeof TIGERProperty.CentroidLongitude | typeof TIGERProperty.HousingUnitCount | typeof TIGERProperty.Population>;
|
|
13
13
|
export interface TIGERBlockFeature {
|
|
@@ -21,7 +21,7 @@ export interface TIGERBlockFeatureCollection {
|
|
|
21
21
|
features: TIGERBlockFeature[];
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* A tabulated block from the
|
|
24
|
+
* A tabulated block from the tiger/Line dataset.
|
|
25
25
|
*
|
|
26
26
|
* @public
|
|
27
27
|
*/
|
|
@@ -33,8 +33,8 @@ export interface TIGERTabulatedBlock extends ParsedGeoIDBlockLevel, TIGERTabulat
|
|
|
33
33
|
*/
|
|
34
34
|
GEOID: FIPSBlockGeoID;
|
|
35
35
|
/**
|
|
36
|
-
* The geometry of the tabulated block, typically a polygon, but may be a
|
|
37
|
-
* islands.
|
|
36
|
+
* The geometry of the tabulated block, typically a polygon, but may be a
|
|
37
|
+
* multi-polygon for blocks with holes, or islands.
|
|
38
38
|
*
|
|
39
39
|
* @title Geometry
|
|
40
40
|
*/
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* category. The dots PMTiles is read client-side via the `pmtiles` protocol.
|
|
10
10
|
*
|
|
11
11
|
* Each dot is one of `per` people of a category, placed at random inside its Census block — a
|
|
12
|
-
* representation
|
|
13
|
-
*
|
|
12
|
+
* representation rather than a record about any address. Serve over localhost (the house tile server
|
|
13
|
+
* cors-restricts to localhost + the docs domains) — `mailwoman tiger race-dots-map --serve` wires
|
|
14
14
|
* {@linkcode serveWithRangeSupport} for exactly this.
|
|
15
15
|
*
|
|
16
16
|
* Run: `mailwoman tiger race-dots-map --pmtiles-url
|
|
@@ -21,31 +21,45 @@
|
|
|
21
21
|
*/
|
|
22
22
|
export interface RaceDotsMapOptions {
|
|
23
23
|
/**
|
|
24
|
-
* Dots tileset URL the page reads client-side.
|
|
24
|
+
* Dots tileset URL the page reads client-side.
|
|
25
|
+
*
|
|
26
|
+
* @defaultValue `http://localhost:8899/race-dots-oc.pmtiles`
|
|
25
27
|
*/
|
|
26
28
|
pmtilesURL?: string;
|
|
27
29
|
/**
|
|
28
|
-
* Output
|
|
30
|
+
* Output html path.
|
|
31
|
+
*
|
|
32
|
+
* @defaultValue `/tmp/race-dots-oc.html`
|
|
29
33
|
*/
|
|
30
34
|
out?: string;
|
|
31
35
|
/**
|
|
32
|
-
* People represented by one dot (title/legend copy only).
|
|
36
|
+
* People represented by one dot (title/legend copy only).
|
|
37
|
+
*
|
|
38
|
+
* @defaultValue `5`
|
|
33
39
|
*/
|
|
34
40
|
per?: number;
|
|
35
41
|
/**
|
|
36
|
-
* Page title.
|
|
42
|
+
* Page title.
|
|
43
|
+
*
|
|
44
|
+
* @defaultValue derives from `per`.
|
|
37
45
|
*/
|
|
38
46
|
title?: string;
|
|
39
47
|
/**
|
|
40
|
-
* Initial map center longitude.
|
|
48
|
+
* Initial map center longitude.
|
|
49
|
+
*
|
|
50
|
+
* @defaultValue `-117.83` (Orange County, CA)
|
|
41
51
|
*/
|
|
42
52
|
lng?: number;
|
|
43
53
|
/**
|
|
44
|
-
* Initial map center latitude.
|
|
54
|
+
* Initial map center latitude.
|
|
55
|
+
*
|
|
56
|
+
* @defaultValue `33.68`
|
|
45
57
|
*/
|
|
46
58
|
lat?: number;
|
|
47
59
|
/**
|
|
48
|
-
* Initial map zoom.
|
|
60
|
+
* Initial map zoom.
|
|
61
|
+
*
|
|
62
|
+
* @defaultValue `9.4`
|
|
49
63
|
*/
|
|
50
64
|
zoom?: number;
|
|
51
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../
|
|
1
|
+
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../tools/race/dots/map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAMH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CAClB;AAwCD;;GAEG;AACH,wBAAsB,WAAW,CAChC,OAAO,GAAE,kBAAuB,EAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CA8F5B"}
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* category. The dots PMTiles is read client-side via the `pmtiles` protocol.
|
|
10
10
|
*
|
|
11
11
|
* Each dot is one of `per` people of a category, placed at random inside its Census block — a
|
|
12
|
-
* representation
|
|
13
|
-
*
|
|
12
|
+
* representation rather than a record about any address. Serve over localhost (the house tile server
|
|
13
|
+
* cors-restricts to localhost + the docs domains) — `mailwoman tiger race-dots-map --serve` wires
|
|
14
14
|
* {@linkcode serveWithRangeSupport} for exactly this.
|
|
15
15
|
*
|
|
16
16
|
* Run: `mailwoman tiger race-dots-map --pmtiles-url
|
|
@@ -18,13 +18,17 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { tempRootPath } from "@mailwoman/core/data-root";
|
|
20
20
|
import { writeLocalFile } from "@mailwoman/core/fs/writers";
|
|
21
|
+
import { stringifyJSON } from "@mailwoman/core/json";
|
|
21
22
|
const MAPLIBRE_VERSION = "5.24.0";
|
|
22
23
|
const MAPLIBRE_JS_SRI = "sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp";
|
|
23
24
|
const MAPLIBRE_CSS_SRI = "sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK";
|
|
24
25
|
const PMTILES_VERSION = "4.4.1";
|
|
25
26
|
const BASEMAP_SOURCE_ID = "basemap-v4";
|
|
26
27
|
const BASEMAP_TILEJSON_URL = "https://tiles.mailwoman.ai/basemap-v4.json";
|
|
27
|
-
|
|
28
|
+
// The glyph mirror and its Bliss Pro stacks, as `@mailwoman/cartographer/styles/fonts` documents them.
|
|
29
|
+
// Cartographer depends on this package, so these values are restated here rather than imported.
|
|
30
|
+
const GLYPHS_URL = "https://public.mailwoman.ai/protomaps/fonts/{fontstack}/{range}.pbf";
|
|
31
|
+
const MAP_FONTS = { regular: "Bliss Pro Regular", bold: "Bliss Pro Medium", italic: "Bliss Pro Italic" };
|
|
28
32
|
const SPRITE_URL = "https://protomaps.github.io/basemaps-assets/sprites/v4/light";
|
|
29
33
|
/**
|
|
30
34
|
* Cooper Center "Racial Dot Map" palette, by `pl_block`/P2 category.
|
|
@@ -77,7 +81,7 @@ export async function raceDotsMap(options = {}, report) {
|
|
|
77
81
|
dots: { type: "vector", url: "pmtiles://" + PMTILES_URL },
|
|
78
82
|
},
|
|
79
83
|
layers: [
|
|
80
|
-
...layers(BASEMAP_SOURCE_ID, namedFlavor("light"), { lang: "en" }),
|
|
84
|
+
...layers(BASEMAP_SOURCE_ID, { ...namedFlavor("light"), ...MAP_FONTS }, { lang: "en" }),
|
|
81
85
|
{
|
|
82
86
|
id: "race-dots",
|
|
83
87
|
type: "circle",
|
|
@@ -124,7 +128,7 @@ export async function raceDotsMap(options = {}, report) {
|
|
|
124
128
|
maplibregl.addProtocol("pmtiles", protocol.tile);
|
|
125
129
|
var map = new maplibregl.Map({
|
|
126
130
|
container: "map",
|
|
127
|
-
style: ${
|
|
131
|
+
style: ${stringifyJSON(style)},
|
|
128
132
|
center: [${CENTER_LNG}, ${CENTER_LAT}],
|
|
129
133
|
zoom: ${ZOOM},
|
|
130
134
|
attributionControl: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../tools/race/dots/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license AGPL-3.0
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*
|
|
6
|
+
* A dot is a representation rather than a record: a random position inside the block it belongs to,
|
|
7
|
+
* making no statement about any individual address.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Options for {@linkcode raceDots}.
|
|
11
|
+
*/
|
|
12
|
+
export interface RaceDotsOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Tiger SQLite DB (`tabblock20` ⋈ `pl_block`).
|
|
15
|
+
*/
|
|
16
|
+
db?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Output ndjson path.
|
|
19
|
+
*/
|
|
20
|
+
out?: string;
|
|
21
|
+
/**
|
|
22
|
+
* People represented by one dot.
|
|
23
|
+
*/
|
|
24
|
+
per?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Tippecanoe layer name.
|
|
27
|
+
*/
|
|
28
|
+
layer?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Result of {@linkcode raceDots}.
|
|
32
|
+
*/
|
|
33
|
+
export interface RaceDotsResult {
|
|
34
|
+
outPath: string;
|
|
35
|
+
dots: number;
|
|
36
|
+
skipped: number;
|
|
37
|
+
blocks: number;
|
|
38
|
+
/**
|
|
39
|
+
* Dots emitted per P2 category.
|
|
40
|
+
*/
|
|
41
|
+
totals: Record<string, number>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Race-by-dot-density ndjson builder.
|
|
45
|
+
*/
|
|
46
|
+
export declare function raceDots(options?: RaceDotsOptions, report?: (line: string) => void): Promise<RaceDotsResult>;
|
|
47
|
+
//# sourceMappingURL=dots.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dots.d.ts","sourceRoot":"","sources":["../../../tools/race/dots.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9B;AAsCD;;GAEG;AACH,wBAAsB,QAAQ,CAC7B,OAAO,GAAE,eAAoB,EAC7B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,cAAc,CAAC,CAoHzB"}
|
|
@@ -3,33 +3,16 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
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` then
|
|
19
|
-
* `mailwoman tiger redistricting --state 06 --county 059 --out tiger-oc.db`.
|
|
20
|
-
*
|
|
21
|
-
* Run: `mailwoman tiger race-dots --db tiger-oc.db --per 10 --out /tmp/race-dots.ndjson`
|
|
6
|
+
* A dot is a representation rather than a record: a random position inside the block it belongs to,
|
|
7
|
+
* making no statement about any individual address.
|
|
22
8
|
*/
|
|
23
9
|
import { dataRootPath, tempRootPath } from "@mailwoman/core/data-root";
|
|
24
10
|
import { openWriteStream } from "@mailwoman/core/fs/streams";
|
|
25
|
-
import { tryParsingJSON } from "@mailwoman/core/json";
|
|
11
|
+
import { tryParsingJSON, stringifyJSON } from "@mailwoman/core/json";
|
|
26
12
|
import { DatabaseClient } from "@mailwoman/sqlite/client";
|
|
27
|
-
/**
|
|
28
|
-
* Attempts to place a dot inside its polygon by rejection sampling before giving up on it.
|
|
29
|
-
*/
|
|
30
13
|
const MAX_PLACEMENT_TRIES = 60;
|
|
31
14
|
/**
|
|
32
|
-
* The
|
|
15
|
+
* The P2 categories (columns in `pl_block`) that partition each block's population.
|
|
33
16
|
*/
|
|
34
17
|
const CATEGORIES = ["hispanic", "white", "black", "asian", "aian", "nhpi", "other", "multi"];
|
|
35
18
|
function bbox(rings) {
|
|
@@ -51,17 +34,17 @@ function bbox(rings) {
|
|
|
51
34
|
return [minX, minY, maxX, maxY];
|
|
52
35
|
}
|
|
53
36
|
/**
|
|
54
|
-
* Race-by-dot-density
|
|
37
|
+
* Race-by-dot-density ndjson builder.
|
|
55
38
|
*/
|
|
56
39
|
export async function raceDots(options = {}, report) {
|
|
57
40
|
const DB = options.db || dataRootPath("tiger", "tiger-oc.db");
|
|
58
41
|
const OUT = options.out || tempRootPath("race-dots.ndjson");
|
|
59
|
-
const PER = options.per ?? 10;
|
|
42
|
+
const PER = options.per ?? 10;
|
|
60
43
|
const LAYER = options.layer || "dots";
|
|
61
44
|
// Heavy dep, lazy-imported so loading the tools barrel stays cheap.
|
|
62
45
|
const { default: booleanContains } = await import("@turf/boolean-contains");
|
|
63
|
-
//
|
|
64
|
-
//
|
|
46
|
+
// Pick a bbox-area-weighted sub-polygon, then rejection-sample inside it.
|
|
47
|
+
// Turf handles holes and winding.
|
|
65
48
|
function randomPointIn(polys, areas, totalArea) {
|
|
66
49
|
let r = Math.random() * totalArea;
|
|
67
50
|
let pick = 0;
|
|
@@ -115,7 +98,7 @@ export async function raceDots(options = {}, report) {
|
|
|
115
98
|
skipped++;
|
|
116
99
|
continue;
|
|
117
100
|
}
|
|
118
|
-
out.write(
|
|
101
|
+
out.write(stringifyJSON({
|
|
119
102
|
type: "Feature",
|
|
120
103
|
tippecanoe: { layer: LAYER },
|
|
121
104
|
properties: { cat },
|
|
@@ -136,4 +119,4 @@ export async function raceDots(options = {}, report) {
|
|
|
136
119
|
}
|
|
137
120
|
return { outPath: OUT, dots, skipped, blocks: rows.length, totals: Object.fromEntries(totals) };
|
|
138
121
|
}
|
|
139
|
-
//# sourceMappingURL=
|
|
122
|
+
//# sourceMappingURL=dots.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dots.js","sourceRoot":"","sources":["../../../tools/race/dots.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* @license AGPL-3.0
|
|
4
4
|
* @author Teffen Ellis, et al.
|
|
5
5
|
*
|
|
6
|
-
* Minimal static file server that
|
|
7
|
-
* not
|
|
6
|
+
* Minimal static file server that honors http Range requests (206) — Python's `http.server` does
|
|
7
|
+
* not. PMTiles reads via Range, so this server cannot serve it. Used to preview/render a local
|
|
8
8
|
* `.pmtiles` tileset (e.g. the race-dot map, via `mailwoman tiger race-dots-map --serve`). Not for
|
|
9
|
-
* production
|
|
9
|
+
* production. the deployed tiles go through the tile worker.
|
|
10
10
|
*
|
|
11
11
|
* Internal helper module — no standalone command.
|
|
12
12
|
*/
|
|
@@ -16,11 +16,15 @@ import { type Server } from "node:http";
|
|
|
16
16
|
*/
|
|
17
17
|
export interface ServeRangeOptions {
|
|
18
18
|
/**
|
|
19
|
-
* Directory to serve.
|
|
19
|
+
* Directory to serve.
|
|
20
|
+
*
|
|
21
|
+
* @defaultValue `/tmp`
|
|
20
22
|
*/
|
|
21
23
|
dir?: string;
|
|
22
24
|
/**
|
|
23
|
-
* Port to listen on.
|
|
25
|
+
* Port to listen on.
|
|
26
|
+
*
|
|
27
|
+
* @defaultValue `8899`
|
|
24
28
|
*/
|
|
25
29
|
port?: number;
|
|
26
30
|
}
|
|
@@ -33,8 +37,10 @@ export interface RangeServer extends AsyncDisposable {
|
|
|
33
37
|
server: Server;
|
|
34
38
|
}
|
|
35
39
|
/**
|
|
36
|
-
* Serve `dir` over localhost with
|
|
37
|
-
*
|
|
40
|
+
* Serve `dir` over localhost with http Range support.
|
|
41
|
+
*
|
|
42
|
+
* Resolves once the server is listening.
|
|
43
|
+
* The caller owns the lifetime (dispose it to stop. Commands typically hold the process open instead).
|
|
38
44
|
*/
|
|
39
45
|
export declare function serveWithRangeSupport(options?: ServeRangeOptions, report?: (line: string) => void): Promise<RangeServer>;
|
|
40
46
|
//# sourceMappingURL=serve-range.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve-range.d.ts","sourceRoot":"","sources":["../../
|
|
1
|
+
{"version":3,"file":"serve-range.d.ts","sourceRoot":"","sources":["../../tools/serve-range.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAA;AAQhG;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IACnD,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACd;AAUD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,GAAE,iBAAsB,EAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAC7B,OAAO,CAAC,WAAW,CAAC,CAqDtB"}
|