Record the shipped places and streets as a decision, and say so in the README and changelog

This commit is contained in:
2026-10-11 16:20:23 +02:00
committed by Lillem4n
parent 99ba0b30ee
commit 5db699469b
4 changed files with 21 additions and 18 deletions
+1 -1
View File
@@ -90,7 +90,7 @@ In [docs/decisions.md](docs/decisions.md):
- A path is walked once without drawing before it is walked for real - A path is walked once without drawing before it is walked for real
- A country's postal codes and streets are siblings under its locality - A country's postal codes and streets are siblings under its locality
- A locale package imports its country's geo package, and its `Modules()` returns both - A locale package imports its country's geo package, and its `Modules()` returns both
- The default embed holds every Swedish postort the import can place and give a street-delivery code and a street, and the US places of 25,000 or more - The default embed holds every Swedish postort the import can place, a tenth of the US places owning a ZCTA drawn by population, and a tenth of each place's streets, at least ten
- A locale's `address` binds its country's record once and prints it whole - A locale's `address` binds its country's record once and prints it whole
- A postort's kommun comes from its name, its tätort or its codes, never from distance - A postort's kommun comes from its name, its tätort or its codes, never from distance
- A highway designation is not a street, and a US postal code belongs to the place holding most of its land inside places - A highway designation is not a street, and a US postal code belongs to the place holding most of its land inside places
+3 -1
View File
@@ -93,7 +93,9 @@ replacement, and each removed path, column or flag.
`address` record binding one locality and drawing its street and postal code inside `address` record binding one locality and drawing its street and postal code inside
it. `sv_SE.address` and `en_US.address` bind those records once, so it. `sv_SE.address` and `en_US.address` bind those records once, so
`en_US.address.street` no longer carries `name` and `suffix`, and a locale's `address` `en_US.address.street` no longer carries `name` and `suffix`, and a locale's `address`
reads its country's `geo` module. reads its country's `geo` module. Every Swedish postort ships, and a tenth of the US
incorporated places owning a ZCTA, drawn by population down to villages of a few
hundred people; each place carries a tenth of its streets, at least ten.
- `{date(from,to,'layout')}` and `{time('layout')}`: a second between two days, or - `{date(from,to,'layout')}` and `{time('layout')}`: a second between two days, or
within one, in a single-quoted Go layout, drawn in UTC; `from` may equal `to`. within one, in a single-quoted Go layout, drawn in UTC; `from` may equal `to`.
`sv_SE.date`, `en_US.date`, `sv_SE.time` and `en_US.time` render through them, so `sv_SE.date`, `en_US.date`, `sv_SE.time` and `en_US.time` render through them, so
+3 -3
View File
@@ -311,9 +311,9 @@ neighbouring one.
|-------|----------|----------|--------| |-------|----------|----------|--------|
| `region` | län, by code or name | state, by USPS abbreviation or name; `code` is the FIPS code | population | | `region` | län, by code or name | state, by USPS abbreviation or name; `code` is the FIPS code | population |
| `municipality` | kommun, by code or name | county, by FIPS code or name | population | | `municipality` | kommun, by code or name | county, by FIPS code or name | population |
| `locality` | postort, by name; [`geo-se.py`](data-import/geo-se.py)'s `localities` picks the candidates, and one with no street is dropped | incorporated place of 25,000 people or more with a postal code and a street of its own, by GEOID or name; Hawaii has none | tätort population, the kommun's where the postort names it, else 200; place population | | `locality` | postort, by name; [`geo-se.py`](data-import/geo-se.py)'s `localities` picks the candidates, and one with no street is dropped | a tenth of the incorporated places owning a ZCTA, drawn with odds by population, by GEOID or name; Hawaii has none | tätort population, the kommun's where the postort names it, else 200; place population |
| `postal-code` | postnummer with street delivery, by code | ZCTA, by code | one; address ranges | | `postal-code` | postnummer with street delivery, by code | ZCTA, by code | one; address ranges |
| `street` | gatunamn, the ten with most road segments per postort | street name, the ten with most address ranges per place | segments; address ranges | | `street` | gatunamn, the tenth with most road segments per postort, at least ten | street name, the tenth with most address ranges per place, at least ten | segments; address ranges |
`geo.SE.region[Skåne län].municipality` draws a kommun in Skåne, `geo.SE.region[Skåne län].municipality` draws a kommun in Skåne,
`geo.SE.locality[Lund].street` a street in Lund, and `geo.SE.locality[Lund].street` a street in Lund, and
@@ -1139,7 +1139,7 @@ A shipped table built from a source is rebuilt by its script under
`data-import/cache/`, which is ignored by version control and grows past a `data-import/cache/`, which is ignored by version control and grows past a
gigabyte, so pass `--cache DIR` to reuse a copy you already have and delete it to gigabyte, so pass `--cache DIR` to reuse a copy you already have and delete it to
fetch afresh; `geo-us.py` fetches two fetch afresh; `geo-us.py` fetches two
TIGER/Line files per county it ships, a few hundred megabytes, `geo-se.py` needs TIGER/Line files per county it ships, about a gigabyte, `geo-se.py` needs
a Trafikverket API key, free at [data.trafikverket.se](https://data.trafikverket.se/), a Trafikverket API key, free at [data.trafikverket.se](https://data.trafikverket.se/),
in `TRAFIKVERKET_API_KEY` or a `--key-file`, and the Census host behind `geo-us.py` in `TRAFIKVERKET_API_KEY` or a `--key-file`, and the Census host behind `geo-us.py`
and `names-us.py` rejects a client for a while after a burst, so `--surnames` takes and `names-us.py` rejects a client for a while after a burst, so `--surnames` takes
+14 -13
View File
@@ -555,7 +555,7 @@ A link is proved against the parent's keys and a key's uniqueness is a data mist
both are load-time; the row lookup, by name and by parent, serves only a draw, so it waits both are load-time; the row lookup, by name and by parent, serves only a draw, so it waits
for the first one, keeping `New` linear in the bytes read. On 2026-10-05, building every for the first one, keeping `New` linear in the bytes read. On 2026-10-05, building every
shipped lookup at load added 13 ms and 3.2 MiB to a 60 ms `New`. That cost grows with every shipped lookup at load added 13 ms and 3.2 MiB to a 60 ms `New`. That cost grows with every
locale and with item 78, and most tables are never drawn by name or parent. The maintainer locale and every place the geo tables ship, and most tables are never drawn by name or parent. The maintainer
kept building the lookup on first draw, once per table. kept building the lookup on first draw, once per table.
## Two categories may name one TSV ## Two categories may name one TSV
@@ -603,17 +603,18 @@ providing `geo.SE`'s paths, and without one `sv_SE.address` fails at first reach
`FS` works against goal 6.2. Every package exports `Modules()`, so one spelling loads any of `FS` works against goal 6.2. Every package exports `Modules()`, so one spelling loads any of
them; a data package imports only the packages it reads. them; a data package imports only the packages it reads.
## The default embed holds every Swedish postort the import can place and give a street-delivery code and a street, and the US places of 25,000 or more ## The default embed holds every Swedish postort the import can place, a tenth of the US places owning a ZCTA drawn by population, and a tenth of each place's streets, at least ten
2026-09-24, Lilleman auf Larv. 2026-10-11, Lilleman auf Larv, through `todo.md` item 78. Goals 2 and 14: ten streets a
place crowded 500 Stockholm customers onto ten streets, and US places of 25,000 or more
Sweden fits whole in 700 KB; every US place of 10,000 would pass a megabyte and fetch left out every town and village. `geo-us.py` draws among the places owning a ZCTA, since
1,200 counties of TIGER files, so the threshold sits where the two countries match in a place owning none can carry no postal code, with Efraimidis and Spirakis's weighted
size, and `--min-population` and `--streets-per-locality` on the import scripts build a sampling from a fixed seed, so a rerun on the same sources draws the same places. The
fuller set. Loading the whole shipped set took about 45 ms, about 20 ms of it the two draw keeps about 950 of the 1,584 places of 25,000 or more, and its smallest place holds
trees. 210 people. On 2026-10-11 the embed grew from 1.3 MB to 5.2 MB, and the first draw of
`en_US.address` took 75 ms against 19 ms before, within goal 13. `--place-share`,
Withdrawn by the maintainer on 2026-10-03; `todo.md` item 78 replaces it. `--street-share` and `--min-streets` on the import scripts build another set. Valid while
the first reach of a country stays unnoticed beside a test run.
## A locale's `address` binds its country's record once and prints it whole ## A locale's `address` binds its country's record once and prints it whole
@@ -640,8 +641,8 @@ postort none of the three rules place is dropped, as is one not cased like a pla
`I- 55 Bus` and `US Hwy 1` carry the most address ranges in many places and would head `I- 55 Bus` and `US Hwy 1` carry the most address ranges in many places and would head
every address, so the import drops names spelled as a route. A ZCTA goes to the place every address, so the import drops names spelled as a route. A ZCTA goes to the place
its largest in-place part lies in, census-designated places left out since they never its largest in-place part lies in, census-designated places left out since they never
ship, and ships only when that place does, so a few dozen places whose every code lies ship, and ships only when that place does, so a place whose every code lies mostly in a
mostly in a bigger neighbour ship no address; counting the land outside every place too bigger neighbour is never drawn; counting the land outside every place too
would drop a quarter of the places, whose codes straddle unincorporated land, for a would drop a quarter of the places, whose codes straddle unincorporated land, for a
postal city the USPS mostly names the same way. postal city the USPS mostly names the same way.