fix(extract): Polygonlöcher im Chunk-Payload erhalten, split_by_chunk_all abdecken
Ruling 34 (Important, Fix-Runde 1 zu Aufgabe 6): _ring() verwarf jedes Loch eines Polygons (nur poly.exterior wurde in Weltkoordinaten -> three.js uebertragen). Vor dem Chunk-Zuschnitt war das meist harmlos, weil das groesste Loch die Bucht selbst ist und beim Zuschneiden ohnehin herausfaellt - danach blieb es aber ein echter Datenverlust: ein von Strassen umschlossener Block wurde zu Asphalt, ein Innenhof zu Gebaeudemasse, ein Teich im Park zu Wiese. Gemessen an echten Daten: 120 Strassen-Chunk-Stuecke (449.876 m2), 127 Stadtflaechen-Stuecke (208.657 m2 wobei 1 weiteres Park-Stueck), 30 Land-Stuecke (11.402 m2) und mindestens 75 Gebaeude-Stuecke trugen ein verworfenes Loch. _ring() wird _rings(): liefert [poly.exterior, *poly.interiors] in derselben Transformation, Aussenring zuerst. Payload-Schema aendert sich entsprechend fuer land/surfaces/roads/buildings von einem flachen Ring zu einer Liste von Ringen; centerlines und palms sind unveraendert (keine Polygone). Task 7s extrudePolygons() ruft ShapeUtils.triangulateShape(ring, []) bereits mit einem (bisher leeren) Loecher-Array - die Aenderung passt jetzt durchgehend, bevor Aufgabe 7 gebaut wird. write_debug_png() zeichnet weiterhin nur den Aussenring (poly[0]), Loecher werden im Debug-Bild nicht dargestellt. Neuer Test test_polygon_holes_survive_into_the_payload prueft das direkt an einem Block mit Loch; die Koordinaten wurden vor dem Festschreiben gegen die tatsaechliche chunk_payload()-Transformation nachgerechnet (uv run python, nicht nur von Hand). test_coordinates_are_chunk_local_three_js musste auf das neue [0]-Aussenring-Indexing angepasst werden. Ruling 35 (Important): split_by_chunk_all() - die Variante, die run.py tatsaechlich benutzt, nicht das getestete split_by_chunk() - hatte einen MultiPolygon-Zweig ohne jede Testabdeckung. Neuer Test mit einer Klammerform (Steg ausserhalb der Chunk-Zelle, zwei Zinken je einmal hineinreichend) trifft genau diesen Zweig gezielt; er war schon vor der Aenderung gruen - bestaetigt als Abdeckungsluecke, nicht als Bug. uv run pytest -v: 36 passed (34 zuvor + 2 neu). Pipeline (run.py) am gecachten Mosaik neu durchlaufen: weiterhin 144 Chunk-Dateien, public/data/vice-a/ jetzt 2,7 MB (zuvor 2,5 MB; +0,2 MB fuer die erhaltenen Loecher). Insgesamt tragen jetzt 415 Chunk-Stuecke mindestens ein Loch: Land 30/213, Stadtflaechen 127/1145 (+1 Park-Flaeche), Strassen 120/953, Gebaeude 137/2859 (80 global-eindeutige Gebaeude vor Chunk-Duplizierung). Land/Strassen/Stadtflaechen treffen die oben genannten Referenzwerte exakt; bei Gebaeuden weicht die Stueckzahl vom Review-Befund (75) ab. Stichprobe der vier flaechenmaessig groessten Gebaeude-Loecher (Debug-PNGs chunk_8_0, chunk_2_10, chunk_5_11 sowie ein viertes) zeigt plausible echte Ring-Bauwerke (ein stadionartiger Rundbau, eine Wendel-Parkrampe) statt offensichtlicher Fehlklassifikation - die verbleibende Abweichung duerfte an der bereits im Task-6-Bericht offengelegten Restunsicherheit der Gebaeude-Ueberlappungsrekonstruktion liegen (263 vs. 258 spekulative Gebaeude), nicht an dieser Aenderung; im Fix-Bericht dokumentiert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
062a9af2fd
commit
22ac8f530c
289 files changed
+194
-156
No files matched your search
@@ -1 +1 @@
|
||||
{"chunk":[3,10],"origin":[-250,0],"land":[[[111.5,16.0],[111.5,19.0],[105.5,30.0],[105.5,33.0],[99.5,44.0],[93.5,61.0],[69.5,105.0],[69.5,111.0],[62.5,121.0],[54.5,147.0],[41.5,176.0],[27.5,232.0],[25.79,250.0],[0.0,250.0],[0.0,-0.0],[119.5,-0.0],[111.5,16.0]]],"surfaces":[{"poly":[[79.0,62.5],[72.0,56.5],[58.0,50.5],[56.0,47.5],[52.0,47.5],[0.0,17.74],[0.0,7.13],[8.0,10.5],[10.0,7.5],[14.0,9.5],[19.0,1.5],[116.0,1.5],[112.5,3.0],[114.5,5.0],[109.5,10.0],[113.5,13.0],[107.5,15.0],[110.5,20.0],[104.5,21.0],[107.5,28.0],[100.5,30.0],[99.5,37.0],[95.5,42.0],[97.5,44.0],[93.5,47.0],[96.5,51.0],[91.5,52.0],[93.5,58.0],[89.0,58.5],[87.5,61.0],[90.0,65.5],[79.0,62.5]],"kind":"urban"}],"roads":[{"poly":[[3.0,47.5],[15.0,52.5],[26.0,59.5],[40.5,76.0],[42.0,79.5],[57.0,81.5],[61.5,86.0],[62.5,91.0],[61.5,98.0],[48.5,127.0],[0.0,202.69],[0.0,182.23],[36.5,126.0],[44.5,109.0],[44.5,106.0],[37.5,98.0],[36.5,94.0],[37.5,89.0],[35.5,85.0],[24.0,70.5],[17.0,64.5],[6.0,58.5],[0.0,56.5],[0.0,47.2],[3.0,47.5]],"bridge":false},{"poly":[[5.5,248.0],[6.61,250.0],[0.0,250.0],[0.0,242.94],[5.5,248.0]],"bridge":false},{"poly":[[0.5,84.0],[0.5,87.0],[0.0,87.88],[0.0,83.73],[0.5,84.0]],"bridge":false},{"poly":[[1.5,130.0],[8.5,137.0],[10.5,140.0],[10.5,143.0],[8.0,144.5],[0.0,135.74],[0.0,125.0],[1.5,130.0]],"bridge":false},{"poly":[[0.5,153.0],[0.5,158.0],[0.0,158.57],[0.0,152.36],[0.5,153.0]],"bridge":false},{"poly":[[18.0,1.5],[16.23,-0.0],[18.3,-0.0],[18.0,1.5]],"bridge":false}],"centerlines":[[[50.0,93.0],[50.0,107.0],[44.0,123.0],[1.0,189.0]],[[49.0,92.0],[20.0,61.0],[12.0,56.0],[-1.0,51.0],[-15.0,54.0]],[[-25.0,237.0],[-19.0,221.0],[-3.0,198.0],[0.0,190.0]],[[9.0,142.0],[-1.0,131.0],[-4.0,120.0],[-11.0,109.0]]],"buildings":[{"poly":[[8.0,10.5],[7.0,9.5],[6.0,10.5],[5.0,9.5],[3.0,9.5],[1.0,6.5],[0.0,7.5],[-4.0,6.5],[-6.0,3.5],[-8.0,4.5],[-9.0,2.5],[-10.0,3.5],[-12.0,1.5],[-12.5,2.0],[-11.5,3.0],[-12.5,5.0],[-13.0,5.5],[-14.0,4.5],[-15.0,5.5],[-19.0,3.5],[-19.0,1.5],[-21.0,2.5],[-21.5,2.0],[-20.5,1.0],[-22.5,-0.0],[-23.0,-2.5],[-26.5,-2.0],[-22.5,1.0],[-23.0,1.5],[-29.0,1.5],[-31.0,-0.5],[-36.0,-0.5],[-37.5,-2.0],[-37.0,-3.5],[-36.0,-2.5],[-30.0,-2.5],[-29.5,-4.0],[-30.0,-4.5],[-31.0,-3.5],[-32.0,-4.5],[-34.0,-4.5],[-38.0,-7.5],[-40.0,-7.5],[-40.0,-9.5],[-41.0,-8.5],[-44.0,-9.5],[-44.5,-11.0],[-43.5,-12.0],[-43.5,-14.0],[-48.0,-16.5],[-50.0,-16.5],[-52.0,-19.5],[-53.0,-18.5],[-61.0,-22.5],[-62.0,-24.5],[-63.0,-23.5],[-79.0,-31.5],[-79.0,-33.5],[-81.0,-32.5],[-81.0,-34.5],[-82.0,-33.5],[-85.0,-34.5],[-86.5,-36.0],[-86.5,-38.0],[-92.0,-40.5],[-93.5,-42.0],[-92.5,-43.0],[-95.0,-45.5],[-100.0,-47.5],[-100.0,-48.5],[-98.0,-48.5],[-96.5,-50.0],[-96.5,-56.0],[-96.0,-56.5],[-93.5,-54.0],[-91.0,-48.5],[-85.0,-48.5],[-84.0,-47.5],[-83.0,-52.5],[-78.0,-48.5],[-70.0,-48.5],[-69.0,-49.5],[-67.0,-48.5],[-66.5,-49.0],[-67.5,-50.0],[-64.5,-53.0],[-63.0,-56.5],[-62.5,-49.0],[-60.0,-48.5],[-59.0,-47.5],[-58.0,-48.5],[-54.5,-49.0],[-54.0,-58.5],[-52.5,-57.0],[-50.5,-52.0],[-47.0,-48.5],[-40.0,-48.5],[-39.5,-49.0],[-40.5,-50.0],[-40.5,-67.0],[-37.0,-67.5],[-36.0,-68.5],[-35.5,-66.0],[-34.5,-65.0],[-35.5,-64.0],[-34.5,-62.0],[-34.5,-57.0],[-35.5,-56.0],[-34.5,-54.0],[-35.5,-52.0],[-34.5,-51.0],[-34.5,-49.0],[-28.0,-48.5],[-27.5,-50.0],[-25.5,-51.0],[-27.5,-54.0],[-26.5,-55.0],[-27.5,-56.0],[-26.5,-58.0],[-27.5,-60.0],[-26.5,-61.0],[-27.5,-67.0],[-26.0,-68.5],[-23.0,-67.5],[-22.5,-67.0],[-23.5,-66.0],[-23.5,-64.0],[-25.5,-61.0],[-25.0,-60.5],[-23.0,-61.5],[-21.0,-59.5],[-19.0,-59.5],[-17.5,-58.0],[-17.5,-56.0],[-18.5,-55.0],[-17.5,-54.0],[-18.5,-53.0],[-18.5,-51.0],[-22.5,-46.0],[-22.5,-43.0],[-21.0,-40.5],[-20.0,-41.5],[-18.0,-41.5],[-13.5,-46.0],[-11.5,-50.0],[-11.0,-53.5],[-9.0,-50.5],[-5.5,-49.0],[-6.5,-48.0],[-6.0,-47.5],[-4.0,-48.5],[2.0,-45.5],[2.0,-43.5],[3.0,-44.5],[4.5,-44.0],[3.5,-43.0],[4.0,-42.5],[6.0,-43.5],[6.0,-41.5],[8.0,-42.5],[9.0,-40.5],[10.0,-41.5],[16.0,-38.5],[17.0,-36.5],[19.0,-37.5],[20.5,-36.0],[20.5,-33.0],[19.5,-32.0],[20.0,-31.5],[22.0,-32.5],[24.0,-31.5],[25.5,-30.0],[24.5,-29.0],[25.0,-28.5],[26.5,-30.0],[25.5,-31.0],[28.0,-31.5],[34.5,-28.0],[34.5,-24.0],[33.0,-21.5],[32.0,-22.5],[31.5,-22.0],[32.5,-20.0],[30.5,-16.0],[28.5,-16.0],[29.5,-14.0],[27.5,-14.0],[28.5,-12.0],[27.0,-9.5],[25.0,-9.5],[21.0,-11.5],[21.0,-13.5],[20.0,-12.5],[16.0,-11.5],[16.0,-13.5],[14.0,-12.5],[11.0,-14.5],[8.0,-13.5],[5.0,-15.5],[3.5,-15.0],[7.0,-13.5],[7.0,-11.5],[8.0,-12.5],[9.0,-10.5],[11.0,-11.5],[11.0,-9.5],[13.0,-10.5],[13.0,-8.5],[14.0,-9.5],[15.5,-9.0],[16.5,-7.0],[16.5,-4.0],[13.5,-2.0],[17.0,-0.5],[17.5,-0.0],[16.5,1.0],[18.5,2.0],[15.5,8.0],[14.0,9.5],[12.0,9.5],[10.0,7.5],[8.0,10.5]],"height":53.5,"source":"district","speculative":false},{"poly":[[115.0,1.5],[19.0,1.5],[18.5,-1.0],[16.5,-2.0],[115.0,-2.5],[117.5,-4.0],[116.5,-5.0],[117.0,-5.5],[121.0,-5.5],[121.5,-4.0],[120.5,-2.0],[116.0,-1.5],[115.0,1.5]],"height":33.6,"source":"district","speculative":false},{"poly":[[113.0,12.5],[112.0,12.5],[109.5,10.0],[111.5,9.0],[110.5,8.Line truncated
|
||||
{"chunk":[3,10],"origin":[-250,0],"land":[[[[111.5,16.0],[111.5,19.0],[105.5,30.0],[105.5,33.0],[99.5,44.0],[93.5,61.0],[69.5,105.0],[69.5,111.0],[62.5,121.0],[54.5,147.0],[41.5,176.0],[27.5,232.0],[25.79,250.0],[0.0,250.0],[0.0,-0.0],[119.5,-0.0],[111.5,16.0]]]],"surfaces":[{"poly":[[[79.0,62.5],[72.0,56.5],[58.0,50.5],[56.0,47.5],[52.0,47.5],[0.0,17.74],[0.0,7.13],[8.0,10.5],[10.0,7.5],[14.0,9.5],[19.0,1.5],[116.0,1.5],[112.5,3.0],[114.5,5.0],[109.5,10.0],[113.5,13.0],[107.5,15.0],[110.5,20.0],[104.5,21.0],[107.5,28.0],[100.5,30.0],[99.5,37.0],[95.5,42.0],[97.5,44.0],[93.5,47.0],[96.5,51.0],[91.5,52.0],[93.5,58.0],[89.0,58.5],[87.5,61.0],[90.0,65.5],[79.0,62.5]]],"kind":"urban"}],"roads":[{"poly":[[[3.0,47.5],[15.0,52.5],[26.0,59.5],[40.5,76.0],[42.0,79.5],[57.0,81.5],[61.5,86.0],[62.5,91.0],[61.5,98.0],[48.5,127.0],[0.0,202.69],[0.0,182.23],[36.5,126.0],[44.5,109.0],[44.5,106.0],[37.5,98.0],[36.5,94.0],[37.5,89.0],[35.5,85.0],[24.0,70.5],[17.0,64.5],[6.0,58.5],[0.0,56.5],[0.0,47.2],[3.0,47.5]]],"bridge":false},{"poly":[[[5.5,248.0],[6.61,250.0],[0.0,250.0],[0.0,242.94],[5.5,248.0]]],"bridge":false},{"poly":[[[0.5,84.0],[0.5,87.0],[0.0,87.88],[0.0,83.73],[0.5,84.0]]],"bridge":false},{"poly":[[[1.5,130.0],[8.5,137.0],[10.5,140.0],[10.5,143.0],[8.0,144.5],[0.0,135.74],[0.0,125.0],[1.5,130.0]]],"bridge":false},{"poly":[[[0.5,153.0],[0.5,158.0],[0.0,158.57],[0.0,152.36],[0.5,153.0]]],"bridge":false},{"poly":[[[18.0,1.5],[16.23,-0.0],[18.3,-0.0],[18.0,1.5]]],"bridge":false}],"centerlines":[[[50.0,93.0],[50.0,107.0],[44.0,123.0],[1.0,189.0]],[[49.0,92.0],[20.0,61.0],[12.0,56.0],[-1.0,51.0],[-15.0,54.0]],[[-25.0,237.0],[-19.0,221.0],[-3.0,198.0],[0.0,190.0]],[[9.0,142.0],[-1.0,131.0],[-4.0,120.0],[-11.0,109.0]]],"buildings":[{"poly":[[[8.0,10.5],[7.0,9.5],[6.0,10.5],[5.0,9.5],[3.0,9.5],[1.0,6.5],[0.0,7.5],[-4.0,6.5],[-6.0,3.5],[-8.0,4.5],[-9.0,2.5],[-10.0,3.5],[-12.0,1.5],[-12.5,2.0],[-11.5,3.0],[-12.5,5.0],[-13.0,5.5],[-14.0,4.5],[-15.0,5.5],[-19.0,3.5],[-19.0,1.5],[-21.0,2.5],[-21.5,2.0],[-20.5,1.0],[-22.5,-0.0],[-23.0,-2.5],[-26.5,-2.0],[-22.5,1.0],[-23.0,1.5],[-29.0,1.5],[-31.0,-0.5],[-36.0,-0.5],[-37.5,-2.0],[-37.0,-3.5],[-36.0,-2.5],[-30.0,-2.5],[-29.5,-4.0],[-30.0,-4.5],[-31.0,-3.5],[-32.0,-4.5],[-34.0,-4.5],[-38.0,-7.5],[-40.0,-7.5],[-40.0,-9.5],[-41.0,-8.5],[-44.0,-9.5],[-44.5,-11.0],[-43.5,-12.0],[-43.5,-14.0],[-48.0,-16.5],[-50.0,-16.5],[-52.0,-19.5],[-53.0,-18.5],[-61.0,-22.5],[-62.0,-24.5],[-63.0,-23.5],[-79.0,-31.5],[-79.0,-33.5],[-81.0,-32.5],[-81.0,-34.5],[-82.0,-33.5],[-85.0,-34.5],[-86.5,-36.0],[-86.5,-38.0],[-92.0,-40.5],[-93.5,-42.0],[-92.5,-43.0],[-95.0,-45.5],[-100.0,-47.5],[-100.0,-48.5],[-98.0,-48.5],[-96.5,-50.0],[-96.5,-56.0],[-96.0,-56.5],[-93.5,-54.0],[-91.0,-48.5],[-85.0,-48.5],[-84.0,-47.5],[-83.0,-52.5],[-78.0,-48.5],[-70.0,-48.5],[-69.0,-49.5],[-67.0,-48.5],[-66.5,-49.0],[-67.5,-50.0],[-64.5,-53.0],[-63.0,-56.5],[-62.5,-49.0],[-60.0,-48.5],[-59.0,-47.5],[-58.0,-48.5],[-54.5,-49.0],[-54.0,-58.5],[-52.5,-57.0],[-50.5,-52.0],[-47.0,-48.5],[-40.0,-48.5],[-39.5,-49.0],[-40.5,-50.0],[-40.5,-67.0],[-37.0,-67.5],[-36.0,-68.5],[-35.5,-66.0],[-34.5,-65.0],[-35.5,-64.0],[-34.5,-62.0],[-34.5,-57.0],[-35.5,-56.0],[-34.5,-54.0],[-35.5,-52.0],[-34.5,-51.0],[-34.5,-49.0],[-28.0,-48.5],[-27.5,-50.0],[-25.5,-51.0],[-27.5,-54.0],[-26.5,-55.0],[-27.5,-56.0],[-26.5,-58.0],[-27.5,-60.0],[-26.5,-61.0],[-27.5,-67.0],[-26.0,-68.5],[-23.0,-67.5],[-22.5,-67.0],[-23.5,-66.0],[-23.5,-64.0],[-25.5,-61.0],[-25.0,-60.5],[-23.0,-61.5],[-21.0,-59.5],[-19.0,-59.5],[-17.5,-58.0],[-17.5,-56.0],[-18.5,-55.0],[-17.5,-54.0],[-18.5,-53.0],[-18.5,-51.0],[-22.5,-46.0],[-22.5,-43.0],[-21.0,-40.5],[-20.0,-41.5],[-18.0,-41.5],[-13.5,-46.0],[-11.5,-50.0],[-11.0,-53.5],[-9.0,-50.5],[-5.5,-49.0],[-6.5,-48.0],[-6.0,-47.5],[-4.0,-48.5],[2.0,-45.5],[2.0,-43.5],[3.0,-44.5],[4.5,-44.0],[3.5,-43.0],[4.0,-42.5],[6.0,-43.5],[6.0,-41.5],[8.0,-42.5],[9.0,-40.5],[10.0,-41.5],[16.0,-38.5],[17.0,-36.5],[19.0,-37.5],[20.5,-36.0],[20.5,-33.0],[19.5,-32.0],[20.0,-31.5],[22.0,-32.5],[24.0,-31.5],[25.5,-30.0],[24.5,-29.0],[25.0,-28.5],[26.5,-30.0],[25.5,-31.0],[28.0,-31.5],[34.5,-28.0],[34.5,-24.0],[33.0,-21.5],[32.0,-22.5],[31.5,-22.0],[32.5,-20.0],[30.5,-16.0],[28.5,-16.0],[29.5,-14.0],[27.5,-14.0],[28.5,-12.0],[27.0,-9.5],[25.0,-9.5],[21.0,-11.5],[21.0,-13.5],[20.0,-12.5],[16.0,-11.5],[16.0,-13.5],[14.0,-12.5],[11.0,-14.5],[8.0,-13.5],[5.0,-15.5],[3.5,-15.0],[7.0,-13.5],[7.0,-11.5],[8.0,-12.5],[9.0,-10.5],[11.0,-11.5],[11.0,-9.5],[13.0,-10.5],[13.0,-8.5],[14.0,-9.5],[15.5,-9.0],[16.5,-7.0],[16.5,-4.0],[13.5,-2.0],[17.0,-0.5],[17.5,-0.0],[16.5,1.0],[18.5,2.0],[15.5,8.0],[14.0,9.5],[12.0,9.5],[10.0,7.5],[8.0,10.5]]],"height":53.5,"source":"district","speculative":false},{"poly":[[[115.0,1.5],[19.0,1.5],[18.5,-1.0],[16.5,-2.0],[115.0,-2.5],[117.5,-4.0],[116.5,-5.0],[117.0,-5.5],[121.0,-5.5],[121.5,-4.0],[120.5,-2.0],[116.0,-1.5],[115.0,1.5]]],"height":33.6,"source":"district","speculative":false},{"poly":[[[113.0,12.5],[112.0,12.5],[109.5,10.0],Line truncated
|
||||
Reference in new issue
Block a user