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 @@
|
||||
{"chunk":[4,9],"origin":[0,-250],"land":[[[239.0,21.5],[229.0,17.5],[223.0,17.5],[217.0,11.5],[208.0,8.5],[198.0,2.5],[195.0,2.5],[190.0,0.0],[250.0,0.0],[250.0,26.89],[239.0,21.5]]],"surfaces":[{"poly":[[245.0,19.5],[242.0,23.5],[240.0,17.5],[237.0,20.5],[236.0,15.5],[230.0,12.5],[228.0,14.5],[225.0,10.5],[222.0,12.5],[221.5,9.0],[217.0,6.5],[213.0,9.5],[212.5,5.0],[204.0,0.5],[200.0,4.5],[198.07,0.0],[250.0,0.0],[250.0,22.19],[245.0,19.5]],"kind":"urban"}],"roads":[],"centerlines":[],"buildings":[{"poly":[[193.0,0.5],[189.0,-0.5],[188.0,-1.5],[186.0,-1.5],[180.0,-4.5],[179.5,-7.0],[182.0,-9.5],[183.0,-7.5],[185.0,-8.5],[187.0,-7.5],[188.0,-5.5],[189.0,-6.5],[190.0,-4.5],[191.0,-5.5],[193.0,-4.5],[193.0,0.5]],"height":7.1,"source":"district","speculative":false},{"poly":[[212.0,9.5],[208.0,8.5],[206.0,6.5],[202.0,5.5],[201.5,3.0],[204.0,0.5],[205.0,2.5],[206.0,1.5],[207.0,3.5],[208.0,2.5],[210.0,3.5],[211.0,5.5],[212.0,4.5],[212.0,9.5]],"height":6.1,"source":"district","speculative":false},{"poly":[[220.0,13.5],[217.0,11.5],[215.0,11.5],[212.5,10.0],[216.0,6.5],[217.0,6.5],[221.5,9.0],[221.5,12.0],[220.0,13.5]],"height":7.4,"source":"district","speculative":false},{"poly":[[236.0,20.5],[230.0,18.5],[227.5,15.0],[230.0,12.5],[231.0,14.5],[232.0,13.5],[234.0,14.5],[235.0,16.5],[236.0,15.5],[236.0,20.5]],"height":9.1,"source":"district","speculative":false},{"poly":[[251.0,27.5],[244.0,24.5],[242.5,23.0],[242.5,22.0],[245.0,19.5],[246.0,21.5],[247.0,20.5],[248.0,22.5],[249.0,21.5],[250.0,23.5],[251.0,22.5],[251.0,27.5]],"height":8.3,"source":"district","speculative":false}],"palms":[]}
|
||||
Reference in new issue
Block a user