Count provinces from the geometry the map actually draws
f728831d switched the interactive maps to the web-sized boundaries — 232 KB against
1.84 MB, which matters on a leaf built for thousands of embeds — and this builder kept
reading the full-precision file. The map would have drawn provinces from one outline
while the table counted them from another. My own staged-assets gate caught it on the
merge, which is exactly the drift it was added for a day ago.
Measured before following the map rather than after: same 36 states, same names, 0 groups
move province, 0 dropped, and 2 GAINED. Great Andamanese and the Sentinelese had been
listed as unassigned because their points fell just outside the detailed coastline of
islands that ARE in the file; on the simplified outline both land inside Andaman and
Nicobar. 1,005 assigned becomes 1,007 and unassigned 4 becomes 2 — only Jing and Pana on
China's Vietnam and Laos borders, outside its twelve-province subset.
A coarser outline is not a worse answer here. It is a more forgiving one at the scale a
single coordinate for a whole people is honest to.
The note that called those two a precision artefact said "Four remain" and named them; it
would have been false the moment this landed, so it says what is true now and records what
the switch measured.
This commit is contained in:
parent
873d73f5eb
commit
6abf71908c
5 changed files with 80 additions and 58 deletions
|
|
@ -4,7 +4,7 @@
|
|||
"why": "Published so no other build has to repeat this point-in-polygon. gospel-internet ran the identical ray-casting over the identical geometry and could only check itself against our aggregates; a second implementation of the same geometry is a second place for it to drift.",
|
||||
"generated": "2026-09-27",
|
||||
"grain": "one row per PLACED people group; the four that fall outside every polygon are in the aggregate file's `unassigned`",
|
||||
"rows": 1005,
|
||||
"rows": 1007,
|
||||
"agrees_with": "gospel-by-province.json — per-province counts and the assigned total are reconciled at build time, and neither file is written if they differ",
|
||||
"approximate": "Every row is approximate. The coordinate marks where a PEOPLE is found, not a settlement, and near a border it can fall on the wrong side. No surface may present a province as a fact about a group."
|
||||
},
|
||||
|
|
@ -2761,6 +2761,16 @@
|
|||
"tier": 2,
|
||||
"approximate": true
|
||||
},
|
||||
{
|
||||
"people_group": "Great Andamanese",
|
||||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"province": "Andaman and Nicobar Islands",
|
||||
"iso639_3": "hca",
|
||||
"population": 60,
|
||||
"tier": 1,
|
||||
"approximate": true
|
||||
},
|
||||
{
|
||||
"people_group": "Guddi Eluguwallu",
|
||||
"country": "India",
|
||||
|
|
@ -7421,6 +7431,16 @@
|
|||
"tier": 2,
|
||||
"approximate": true
|
||||
},
|
||||
{
|
||||
"people_group": "Sentinelese",
|
||||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"province": "Andaman and Nicobar Islands",
|
||||
"iso639_3": "std",
|
||||
"population": 60,
|
||||
"tier": 0,
|
||||
"approximate": true
|
||||
},
|
||||
{
|
||||
"people_group": "Seok",
|
||||
"country": "India",
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@
|
|||
"generated": "2026-09-27",
|
||||
"provinces_with_groups": 46,
|
||||
"provinces_available": 48,
|
||||
"groups_assigned": 1005,
|
||||
"groups_unassigned": 4,
|
||||
"groups_assigned": 1007,
|
||||
"groups_unassigned": 2,
|
||||
"per_group_file": "gospel-by-province-groups.json — one row per placed group, reconciled with these counts at build time",
|
||||
"india_note": "India is read from the COMPLETE ADM1 (36 states, geoBoundaries via DataMeet India, CC BY 2.5 IN). The first build of this table read gb-IND-ADM1.geojson, which is the UPG-100 list's curated 34-unit partition, and eleven groups came out with no province because they stood in states that partition does not draw. Switching the file moved 998 assigned to 1,005 and 44 province rows to 46, and turned the province names into India's own states.",
|
||||
"unassigned_note": "Four remain, each one legible rather than lost. Great Andamanese and the Sentinelese sit on small islands whose simplified coastline the point falls just outside — Andaman and Nicobar IS in the file, so this is geometry precision, not a missing province. Jing and Pana are on China's Vietnam and Laos borders, outside the twelve-province subset. They are listed in `unassigned` with their coordinates.",
|
||||
"unassigned_note": "TWO remain, both on China's borders — Jing on the Vietnam coast and Pana near Laos, outside the twelve-province subset. They are listed in `unassigned` with their coordinates. Great Andamanese and the Sentinelese were here too, falling just outside the detailed coastline of islands that ARE in the file; reading the web-sized geometry the interactive maps now fetch put both of them inside Andaman and Nicobar. Measured on the switch: 0 groups moved province, 0 were dropped, 2 were gained.",
|
||||
"china_note": "China's ADM1 file carries 12 provinces, not 31+. Measured rather than assumed: 152 of 154 Chinese groups fall inside them and all twelve are used, so the file is cut to the provinces where the unreached peoples are.",
|
||||
"ways_in": "Chosen FOR THE PROVINCE where the province can answer: the languages of groups standing in it that already have Scripture AND film, ranked by the people here who already hold them. The column says which basis was used. This replaces a country-level answer that produced a measured absurdity — Arunachal Pradesh, in the far north-east, was offered TELUGU, because the curated bridge table is keyed by country and a curated bridge outranks a computed one. A province with no tier-2 language of its own still falls back to the country answer, and ways_in_basis says so rather than hiding it. It is a NEIGHBOUR, not a recommendation: whether a group actually speaks it is a question for someone on the ground.",
|
||||
"approximate": "A province is assigned by point-in-polygon on the group's coordinate, and that coordinate marks where a PEOPLE is found, not a settlement — 108 groups across the roster even share a coordinate with another group. Near a border the point can fall on the wrong side. Every row is flagged approximate and the unassigned are counted, never dropped. No surface may present a province as a fact about a group."
|
||||
|
|
@ -160,20 +160,20 @@
|
|||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"province": "Andaman and Nicobar Islands",
|
||||
"groups": 7,
|
||||
"people": 81900,
|
||||
"zero_access_groups": 2,
|
||||
"zero_access_people": 500,
|
||||
"zero_access_examples": "Jarawas; Onge",
|
||||
"prayer_pages": 5,
|
||||
"groups": 9,
|
||||
"people": 82020,
|
||||
"zero_access_groups": 3,
|
||||
"zero_access_people": 560,
|
||||
"zero_access_examples": "Jarawas; Onge; Sentinelese",
|
||||
"prayer_pages": 7,
|
||||
"pray_first": {
|
||||
"name": "Onge",
|
||||
"url": "https://pray.doxa.life/onge?source=doxalife&utm_source=agwm",
|
||||
"people": 150,
|
||||
"has_nothing": true
|
||||
},
|
||||
"nobody_praying_groups": 4,
|
||||
"nobody_praying_people": 69450,
|
||||
"nobody_praying_groups": 5,
|
||||
"nobody_praying_people": 69510,
|
||||
"ways_in": "Telugu (67,000 here)",
|
||||
"ways_in_basis": "in this province",
|
||||
"ways_in_country": "Telugu",
|
||||
|
|
@ -1117,20 +1117,6 @@
|
|||
}
|
||||
],
|
||||
"unassigned": [
|
||||
{
|
||||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"people_group": "Great Andamanese",
|
||||
"lat": 12.211728,
|
||||
"lng": 92.833491
|
||||
},
|
||||
{
|
||||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"people_group": "Sentinelese",
|
||||
"lat": 11.557662,
|
||||
"lng": 92.267154
|
||||
},
|
||||
{
|
||||
"country": "China",
|
||||
"iso3": "CHN",
|
||||
|
|
|
|||
|
|
@ -104,8 +104,17 @@ const prayKey = (name, iso3) =>
|
|||
does not draw. gb-IND-ADM1-full.geojson is the complete ADM1 (36 states, geoBoundaries via
|
||||
DataMeet India, CC BY 2.5 IN). A partition of somebody else's list is not a country's states,
|
||||
even when the filename looks like it is. */
|
||||
/* ⚠ THE WEB-SIZED GEOMETRY, BECAUSE THE MAP DRAWS THAT ONE. f728831d switched the interactive
|
||||
maps to the -web boundaries (232 KB against 1.84 MB, which matters on a leaf meant for thousands
|
||||
of embeds), and this builder kept reading the full-precision file — so the map would have drawn
|
||||
provinces from one outline while the table counted them from another. My own staged-assets gate
|
||||
caught it on the merge, which is what it was written for.
|
||||
Measured before following: same 36 states, same names, 0 groups move province, 0 dropped, and 2
|
||||
GAINED — Great Andamanese and the Sentinelese, whose points fell just outside the detailed island
|
||||
coastline, land inside Andaman and Nicobar on the simplified one. A coarser outline is not a
|
||||
worse answer here; it is a more forgiving one at the scale a coordinate is honest to. */
|
||||
const COUNTRIES = [
|
||||
{ iso3: 'IND', file: 'gb-IND-ADM1-full.geojson', country: 'India' },
|
||||
{ iso3: 'IND', file: 'gb-IND-ADM1-full-web.geojson', country: 'India' },
|
||||
{ iso3: 'CHN', file: 'gb-CHN-ADM1.geojson', country: 'China' },
|
||||
]
|
||||
|
||||
|
|
@ -291,11 +300,12 @@ if (!assigned || assigned < 900) {
|
|||
'province because they stood in states that partition does not draw. Switching the file ' +
|
||||
'moved 998 assigned to 1,005 and 44 province rows to 46, and turned the province names ' +
|
||||
'into India\'s own states.',
|
||||
unassigned_note: 'Four remain, each one legible rather than lost. Great Andamanese and ' +
|
||||
'the Sentinelese sit on small islands whose simplified coastline the point falls just ' +
|
||||
'outside — Andaman and Nicobar IS in the file, so this is geometry precision, not a ' +
|
||||
'missing province. Jing and Pana are on China\'s Vietnam and Laos borders, outside the ' +
|
||||
'twelve-province subset. They are listed in `unassigned` with their coordinates.',
|
||||
unassigned_note: 'TWO remain, both on China\'s borders — Jing on the Vietnam coast and Pana ' +
|
||||
'near Laos, outside the twelve-province subset. They are listed in `unassigned` with their ' +
|
||||
'coordinates. Great Andamanese and the Sentinelese were here too, falling just outside the ' +
|
||||
'detailed coastline of islands that ARE in the file; reading the web-sized geometry the ' +
|
||||
'interactive maps now fetch put both of them inside Andaman and Nicobar. Measured on the ' +
|
||||
'switch: 0 groups moved province, 0 were dropped, 2 were gained.',
|
||||
china_note: 'China\'s ADM1 file carries 12 provinces, not 31+. Measured rather than ' +
|
||||
'assumed: 152 of 154 Chinese groups fall inside them and all twelve are used, so the ' +
|
||||
'file is cut to the provinces where the unreached peoples are.',
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
"why": "Published so no other build has to repeat this point-in-polygon. gospel-internet ran the identical ray-casting over the identical geometry and could only check itself against our aggregates; a second implementation of the same geometry is a second place for it to drift.",
|
||||
"generated": "2026-09-27",
|
||||
"grain": "one row per PLACED people group; the four that fall outside every polygon are in the aggregate file's `unassigned`",
|
||||
"rows": 1005,
|
||||
"rows": 1007,
|
||||
"agrees_with": "gospel-by-province.json — per-province counts and the assigned total are reconciled at build time, and neither file is written if they differ",
|
||||
"approximate": "Every row is approximate. The coordinate marks where a PEOPLE is found, not a settlement, and near a border it can fall on the wrong side. No surface may present a province as a fact about a group."
|
||||
},
|
||||
|
|
@ -2761,6 +2761,16 @@
|
|||
"tier": 2,
|
||||
"approximate": true
|
||||
},
|
||||
{
|
||||
"people_group": "Great Andamanese",
|
||||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"province": "Andaman and Nicobar Islands",
|
||||
"iso639_3": "hca",
|
||||
"population": 60,
|
||||
"tier": 1,
|
||||
"approximate": true
|
||||
},
|
||||
{
|
||||
"people_group": "Guddi Eluguwallu",
|
||||
"country": "India",
|
||||
|
|
@ -7421,6 +7431,16 @@
|
|||
"tier": 2,
|
||||
"approximate": true
|
||||
},
|
||||
{
|
||||
"people_group": "Sentinelese",
|
||||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"province": "Andaman and Nicobar Islands",
|
||||
"iso639_3": "std",
|
||||
"population": 60,
|
||||
"tier": 0,
|
||||
"approximate": true
|
||||
},
|
||||
{
|
||||
"people_group": "Seok",
|
||||
"country": "India",
|
||||
|
|
|
|||
|
|
@ -5,11 +5,11 @@
|
|||
"generated": "2026-09-27",
|
||||
"provinces_with_groups": 46,
|
||||
"provinces_available": 48,
|
||||
"groups_assigned": 1005,
|
||||
"groups_unassigned": 4,
|
||||
"groups_assigned": 1007,
|
||||
"groups_unassigned": 2,
|
||||
"per_group_file": "gospel-by-province-groups.json — one row per placed group, reconciled with these counts at build time",
|
||||
"india_note": "India is read from the COMPLETE ADM1 (36 states, geoBoundaries via DataMeet India, CC BY 2.5 IN). The first build of this table read gb-IND-ADM1.geojson, which is the UPG-100 list's curated 34-unit partition, and eleven groups came out with no province because they stood in states that partition does not draw. Switching the file moved 998 assigned to 1,005 and 44 province rows to 46, and turned the province names into India's own states.",
|
||||
"unassigned_note": "Four remain, each one legible rather than lost. Great Andamanese and the Sentinelese sit on small islands whose simplified coastline the point falls just outside — Andaman and Nicobar IS in the file, so this is geometry precision, not a missing province. Jing and Pana are on China's Vietnam and Laos borders, outside the twelve-province subset. They are listed in `unassigned` with their coordinates.",
|
||||
"unassigned_note": "TWO remain, both on China's borders — Jing on the Vietnam coast and Pana near Laos, outside the twelve-province subset. They are listed in `unassigned` with their coordinates. Great Andamanese and the Sentinelese were here too, falling just outside the detailed coastline of islands that ARE in the file; reading the web-sized geometry the interactive maps now fetch put both of them inside Andaman and Nicobar. Measured on the switch: 0 groups moved province, 0 were dropped, 2 were gained.",
|
||||
"china_note": "China's ADM1 file carries 12 provinces, not 31+. Measured rather than assumed: 152 of 154 Chinese groups fall inside them and all twelve are used, so the file is cut to the provinces where the unreached peoples are.",
|
||||
"ways_in": "Chosen FOR THE PROVINCE where the province can answer: the languages of groups standing in it that already have Scripture AND film, ranked by the people here who already hold them. The column says which basis was used. This replaces a country-level answer that produced a measured absurdity — Arunachal Pradesh, in the far north-east, was offered TELUGU, because the curated bridge table is keyed by country and a curated bridge outranks a computed one. A province with no tier-2 language of its own still falls back to the country answer, and ways_in_basis says so rather than hiding it. It is a NEIGHBOUR, not a recommendation: whether a group actually speaks it is a question for someone on the ground.",
|
||||
"approximate": "A province is assigned by point-in-polygon on the group's coordinate, and that coordinate marks where a PEOPLE is found, not a settlement — 108 groups across the roster even share a coordinate with another group. Near a border the point can fall on the wrong side. Every row is flagged approximate and the unassigned are counted, never dropped. No surface may present a province as a fact about a group."
|
||||
|
|
@ -160,20 +160,20 @@
|
|||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"province": "Andaman and Nicobar Islands",
|
||||
"groups": 7,
|
||||
"people": 81900,
|
||||
"zero_access_groups": 2,
|
||||
"zero_access_people": 500,
|
||||
"zero_access_examples": "Jarawas; Onge",
|
||||
"prayer_pages": 5,
|
||||
"groups": 9,
|
||||
"people": 82020,
|
||||
"zero_access_groups": 3,
|
||||
"zero_access_people": 560,
|
||||
"zero_access_examples": "Jarawas; Onge; Sentinelese",
|
||||
"prayer_pages": 7,
|
||||
"pray_first": {
|
||||
"name": "Onge",
|
||||
"url": "https://pray.doxa.life/onge?source=doxalife&utm_source=agwm",
|
||||
"people": 150,
|
||||
"has_nothing": true
|
||||
},
|
||||
"nobody_praying_groups": 4,
|
||||
"nobody_praying_people": 69450,
|
||||
"nobody_praying_groups": 5,
|
||||
"nobody_praying_people": 69510,
|
||||
"ways_in": "Telugu (67,000 here)",
|
||||
"ways_in_basis": "in this province",
|
||||
"ways_in_country": "Telugu",
|
||||
|
|
@ -1117,20 +1117,6 @@
|
|||
}
|
||||
],
|
||||
"unassigned": [
|
||||
{
|
||||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"people_group": "Great Andamanese",
|
||||
"lat": 12.211728,
|
||||
"lng": 92.833491
|
||||
},
|
||||
{
|
||||
"country": "India",
|
||||
"iso3": "IND",
|
||||
"people_group": "Sentinelese",
|
||||
"lat": 11.557662,
|
||||
"lng": 92.267154
|
||||
},
|
||||
{
|
||||
"country": "China",
|
||||
"iso3": "CHN",
|
||||
|
|
|
|||
Loading…
Reference in a new issue