feat(extract): Chunk-Ausgabe, Manifest und Ablaufsteuerung
Task 6: leonida/emit.py (chunk_box, split_by_chunk, chunk_payload und die
Chunk-lokalen three.js-Koordinaten, write_chunks, write_debug_png) sowie
run.py als Ablaufsteuerung, die alles aus den Tasks 3-5 zu 144 Chunk-Dateien
und einem Manifest unter public/data/vice-a/ zusammenfuehrt.
Zwei Abweichungen vom Referenzcode der Aufgabe, beide durch Gegenrechnen
gegen die dort genannten Realwerte gefunden:
- test_emit.py::test_coordinates_are_chunk_local_three_js gab im Original
das ungeschnittene BIG (spannt vier Chunks) direkt an chunk_payload();
chunk_payload() clippt selbst nicht (das tut in run.py split_by_chunk_all
vorher), darum lag der Rand bei x=300 statt <=250 und der Test schlug mit
dem gegebenen Code fehl. Fix: BIG vor dem Aufruf mit split_by_chunk auf
Chunk (0,0) zuschneiden, wie es run.py fuer "land" ohnehin tut.
- run.pys Filter "Gebaeude, die zu >50% in einem Strassenpolygon liegen,
gelten als Strasse" pruefte im Original ALLE rohen Gebaeude gegen
road_polygons(labels) direkt. road_polygons() zaehlt "spekulativ" selbst
zu den Strassenklassen (ROAD_CLASSES) und schliesst zusaetzlich mit
disk(3) gegen Strassennamen; ein isoliertes "spekulativ"-Gebaeude
ueberlappt sich darueber praktisch mit sich selbst. Ergebnis am realen
Mosaik: von 267 rohen spekulativen Gebaeuden ueberlebten nur 3 (statt der
in der Aufgabe genannten Groessenordnung von 258), und die Schliessung
riss zusaetzlich 211 gewoehnliche graue Gebaeude mit heraus, die die
Notiz aus Task 5 ausdruecklich nicht meinte ("die ROTEN Flaechen ...
werden abgezogen"). Fix: eigenes, unzweideutiges Strassenmass nur aus
"strasse"/"weg" (ohne "spekulativ", ohne Namens-Schliessung), Pruefung
nur auf spekulative Kandidaten begrenzt. Ergebnis: 2.348 Gebaeude, davon
263 spekulativ (Aufgabe: 2.352 bzw. 258) - Wahrzeichenhoehen (68 Stueck,
31-248 m) und Palmenzahl (2.133) treffen die genannten Referenzwerte exakt.
Pipeline-Lauf am gecachten Mosaik: 144 Chunk-Dateien + Manifest, 2,5 MB
gesamt (Budget 10 MB), groesste Datei chunk_9_1.json/chunk_10_1.json mit
je 40 KB. Alle drei Toleranzgrenzen (wasser/strasse/gebaeude) eingehalten.
Debug-PNGs stichprobenartig gesichtet: Kuestenlinie, Strassennetz
(inklusive Kreuzungen und einer Auffahrt-Rampe) und ein Strand mit
Palmenreihe liegen deckungsgleich auf dem Mosaik; der wasserreine Chunk
(4,10) zeigt korrekt keine Vektoren.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2c355aa3d8
commit
ce90ea1d5f
292 files changed
+953
No files matched your search
@@ -0,0 +1,596 @@
|
||||
{
|
||||
"slice": "vice-a",
|
||||
"source_commit": "4093e8c874e480d47c38b37fe7a404f8b0c5275e",
|
||||
"seed": 20260912,
|
||||
"chunk_size": 250,
|
||||
"chunks": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
1,
|
||||
0
|
||||
],
|
||||
[
|
||||
2,
|
||||
0
|
||||
],
|
||||
[
|
||||
3,
|
||||
0
|
||||
],
|
||||
[
|
||||
4,
|
||||
0
|
||||
],
|
||||
[
|
||||
5,
|
||||
0
|
||||
],
|
||||
[
|
||||
6,
|
||||
0
|
||||
],
|
||||
[
|
||||
7,
|
||||
0
|
||||
],
|
||||
[
|
||||
8,
|
||||
0
|
||||
],
|
||||
[
|
||||
9,
|
||||
0
|
||||
],
|
||||
[
|
||||
10,
|
||||
0
|
||||
],
|
||||
[
|
||||
11,
|
||||
0
|
||||
],
|
||||
[
|
||||
0,
|
||||
1
|
||||
],
|
||||
[
|
||||
1,
|
||||
1
|
||||
],
|
||||
[
|
||||
2,
|
||||
1
|
||||
],
|
||||
[
|
||||
3,
|
||||
1
|
||||
],
|
||||
[
|
||||
4,
|
||||
1
|
||||
],
|
||||
[
|
||||
5,
|
||||
1
|
||||
],
|
||||
[
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
7,
|
||||
1
|
||||
],
|
||||
[
|
||||
8,
|
||||
1
|
||||
],
|
||||
[
|
||||
9,
|
||||
1
|
||||
],
|
||||
[
|
||||
10,
|
||||
1
|
||||
],
|
||||
[
|
||||
11,
|
||||
1
|
||||
],
|
||||
[
|
||||
0,
|
||||
2
|
||||
],
|
||||
[
|
||||
1,
|
||||
2
|
||||
],
|
||||
[
|
||||
2,
|
||||
2
|
||||
],
|
||||
[
|
||||
3,
|
||||
2
|
||||
],
|
||||
[
|
||||
4,
|
||||
2
|
||||
],
|
||||
[
|
||||
5,
|
||||
2
|
||||
],
|
||||
[
|
||||
6,
|
||||
2
|
||||
],
|
||||
[
|
||||
7,
|
||||
2
|
||||
],
|
||||
[
|
||||
8,
|
||||
2
|
||||
],
|
||||
[
|
||||
9,
|
||||
2
|
||||
],
|
||||
[
|
||||
10,
|
||||
2
|
||||
],
|
||||
[
|
||||
11,
|
||||
2
|
||||
],
|
||||
[
|
||||
0,
|
||||
3
|
||||
],
|
||||
[
|
||||
1,
|
||||
3
|
||||
],
|
||||
[
|
||||
2,
|
||||
3
|
||||
],
|
||||
[
|
||||
3,
|
||||
3
|
||||
],
|
||||
[
|
||||
4,
|
||||
3
|
||||
],
|
||||
[
|
||||
5,
|
||||
3
|
||||
],
|
||||
[
|
||||
6,
|
||||
3
|
||||
],
|
||||
[
|
||||
7,
|
||||
3
|
||||
],
|
||||
[
|
||||
8,
|
||||
3
|
||||
],
|
||||
[
|
||||
9,
|
||||
3
|
||||
],
|
||||
[
|
||||
10,
|
||||
3
|
||||
],
|
||||
[
|
||||
11,
|
||||
3
|
||||
],
|
||||
[
|
||||
0,
|
||||
4
|
||||
],
|
||||
[
|
||||
1,
|
||||
4
|
||||
],
|
||||
[
|
||||
2,
|
||||
4
|
||||
],
|
||||
[
|
||||
3,
|
||||
4
|
||||
],
|
||||
[
|
||||
4,
|
||||
4
|
||||
],
|
||||
[
|
||||
5,
|
||||
4
|
||||
],
|
||||
[
|
||||
6,
|
||||
4
|
||||
],
|
||||
[
|
||||
7,
|
||||
4
|
||||
],
|
||||
[
|
||||
8,
|
||||
4
|
||||
],
|
||||
[
|
||||
9,
|
||||
4
|
||||
],
|
||||
[
|
||||
10,
|
||||
4
|
||||
],
|
||||
[
|
||||
11,
|
||||
4
|
||||
],
|
||||
[
|
||||
0,
|
||||
5
|
||||
],
|
||||
[
|
||||
1,
|
||||
5
|
||||
],
|
||||
[
|
||||
2,
|
||||
5
|
||||
],
|
||||
[
|
||||
3,
|
||||
5
|
||||
],
|
||||
[
|
||||
4,
|
||||
5
|
||||
],
|
||||
[
|
||||
5,
|
||||
5
|
||||
],
|
||||
[
|
||||
6,
|
||||
5
|
||||
],
|
||||
[
|
||||
7,
|
||||
5
|
||||
],
|
||||
[
|
||||
8,
|
||||
5
|
||||
],
|
||||
[
|
||||
9,
|
||||
5
|
||||
],
|
||||
[
|
||||
10,
|
||||
5
|
||||
],
|
||||
[
|
||||
11,
|
||||
5
|
||||
],
|
||||
[
|
||||
0,
|
||||
6
|
||||
],
|
||||
[
|
||||
1,
|
||||
6
|
||||
],
|
||||
[
|
||||
2,
|
||||
6
|
||||
],
|
||||
[
|
||||
3,
|
||||
6
|
||||
],
|
||||
[
|
||||
4,
|
||||
6
|
||||
],
|
||||
[
|
||||
5,
|
||||
6
|
||||
],
|
||||
[
|
||||
6,
|
||||
6
|
||||
],
|
||||
[
|
||||
7,
|
||||
6
|
||||
],
|
||||
[
|
||||
8,
|
||||
6
|
||||
],
|
||||
[
|
||||
9,
|
||||
6
|
||||
],
|
||||
[
|
||||
10,
|
||||
6
|
||||
],
|
||||
[
|
||||
11,
|
||||
6
|
||||
],
|
||||
[
|
||||
0,
|
||||
7
|
||||
],
|
||||
[
|
||||
1,
|
||||
7
|
||||
],
|
||||
[
|
||||
2,
|
||||
7
|
||||
],
|
||||
[
|
||||
3,
|
||||
7
|
||||
],
|
||||
[
|
||||
4,
|
||||
7
|
||||
],
|
||||
[
|
||||
5,
|
||||
7
|
||||
],
|
||||
[
|
||||
6,
|
||||
7
|
||||
],
|
||||
[
|
||||
7,
|
||||
7
|
||||
],
|
||||
[
|
||||
8,
|
||||
7
|
||||
],
|
||||
[
|
||||
9,
|
||||
7
|
||||
],
|
||||
[
|
||||
10,
|
||||
7
|
||||
],
|
||||
[
|
||||
11,
|
||||
7
|
||||
],
|
||||
[
|
||||
0,
|
||||
8
|
||||
],
|
||||
[
|
||||
1,
|
||||
8
|
||||
],
|
||||
[
|
||||
2,
|
||||
8
|
||||
],
|
||||
[
|
||||
3,
|
||||
8
|
||||
],
|
||||
[
|
||||
4,
|
||||
8
|
||||
],
|
||||
[
|
||||
5,
|
||||
8
|
||||
],
|
||||
[
|
||||
6,
|
||||
8
|
||||
],
|
||||
[
|
||||
7,
|
||||
8
|
||||
],
|
||||
[
|
||||
8,
|
||||
8
|
||||
],
|
||||
[
|
||||
9,
|
||||
8
|
||||
],
|
||||
[
|
||||
10,
|
||||
8
|
||||
],
|
||||
[
|
||||
11,
|
||||
8
|
||||
],
|
||||
[
|
||||
0,
|
||||
9
|
||||
],
|
||||
[
|
||||
1,
|
||||
9
|
||||
],
|
||||
[
|
||||
2,
|
||||
9
|
||||
],
|
||||
[
|
||||
3,
|
||||
9
|
||||
],
|
||||
[
|
||||
4,
|
||||
9
|
||||
],
|
||||
[
|
||||
5,
|
||||
9
|
||||
],
|
||||
[
|
||||
6,
|
||||
9
|
||||
],
|
||||
[
|
||||
7,
|
||||
9
|
||||
],
|
||||
[
|
||||
8,
|
||||
9
|
||||
],
|
||||
[
|
||||
9,
|
||||
9
|
||||
],
|
||||
[
|
||||
10,
|
||||
9
|
||||
],
|
||||
[
|
||||
11,
|
||||
9
|
||||
],
|
||||
[
|
||||
0,
|
||||
10
|
||||
],
|
||||
[
|
||||
1,
|
||||
10
|
||||
],
|
||||
[
|
||||
2,
|
||||
10
|
||||
],
|
||||
[
|
||||
3,
|
||||
10
|
||||
],
|
||||
[
|
||||
4,
|
||||
10
|
||||
],
|
||||
[
|
||||
5,
|
||||
10
|
||||
],
|
||||
[
|
||||
6,
|
||||
10
|
||||
],
|
||||
[
|
||||
7,
|
||||
10
|
||||
],
|
||||
[
|
||||
8,
|
||||
10
|
||||
],
|
||||
[
|
||||
9,
|
||||
10
|
||||
],
|
||||
[
|
||||
10,
|
||||
10
|
||||
],
|
||||
[
|
||||
11,
|
||||
10
|
||||
],
|
||||
[
|
||||
0,
|
||||
11
|
||||
],
|
||||
[
|
||||
1,
|
||||
11
|
||||
],
|
||||
[
|
||||
2,
|
||||
11
|
||||
],
|
||||
[
|
||||
3,
|
||||
11
|
||||
],
|
||||
[
|
||||
4,
|
||||
11
|
||||
],
|
||||
[
|
||||
5,
|
||||
11
|
||||
],
|
||||
[
|
||||
6,
|
||||
11
|
||||
],
|
||||
[
|
||||
7,
|
||||
11
|
||||
],
|
||||
[
|
||||
8,
|
||||
11
|
||||
],
|
||||
[
|
||||
9,
|
||||
11
|
||||
],
|
||||
[
|
||||
10,
|
||||
11
|
||||
],
|
||||
[
|
||||
11,
|
||||
11
|
||||
]
|
||||
],
|
||||
"class_shares": {
|
||||
"wasser": 0.33120933333333336,
|
||||
"land": 0.06419,
|
||||
"gruen": 0.0025388888888888887,
|
||||
"sand": 0.009492777777777777,
|
||||
"stadt": 0.32565655555555556,
|
||||
"gebaeude": 0.11125188888888889,
|
||||
"strasse": 0.12149255555555556,
|
||||
"weg": 0.008454,
|
||||
"spekulativ": 0.025714
|
||||
},
|
||||
"attribution": "Kartenkacheln: GTA VI Map (CC BY 4.0) \u2014 https://map.gtadb.org, YANIS v15. Wahrzeichen: rolux/gtamaplib-vc (Unlicense)."
|
||||
}
|
||||
Reference in new issue
Block a user