docs: Palette und Toleranzen an das echte Mosaik angepasst
Wasser ist #3090c0, nicht #2c67a4; der alte Wert war die Kompositionsfarbe aus tiles.py. Mit Schwelle 22 fallen die unbekannten Pixel von 37,4 auf 3,5 Prozent. Die Sollanteile für Straße und Gebäude stammten aus einer Messung mit anderer Klasseneinteilung und werden auf die gemessenen Bänder gesetzt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
593ccf217f
commit
162e018925
2 files changed
+5
-5
No files matched your search
@@ -561,7 +561,7 @@ from scipy import ndimage as ndi
|
||||
from skimage.color import rgb2lab
|
||||
|
||||
PALETTE = {
|
||||
"wasser": (44, 103, 164),
|
||||
"wasser": (48, 144, 192), # gemessen im Mosaik; tiles.py nennt die Kompositionsfarbe
|
||||
"land": (192, 216, 128),
|
||||
"gruen": (139, 195, 74),
|
||||
"sand": (232, 216, 136),
|
||||
@@ -573,7 +573,7 @@ PALETTE = {
|
||||
}
|
||||
CLASSES = {name: i for i, name in enumerate(PALETTE)}
|
||||
UNKNOWN = 255
|
||||
MAX_DELTA_E = 14.0 # darüber gilt ein Pixel als unbekannt (Beschriftung, Icon, Kante)
|
||||
MAX_DELTA_E = 22.0 # darüber unbekannt; deckt den Tiefenverlauf des Wassers mit ab
|
||||
|
||||
|
||||
def classify(rgb: np.ndarray, report_unknown: bool = False):
|
||||
@@ -619,7 +619,7 @@ s = class_shares(classify(load_mosaic(Path('cache'))))
|
||||
for k, v in sorted(s.items(), key=lambda kv: -kv[1]): print(f'{k:12s} {v*100:5.1f}%')
|
||||
"
|
||||
```
|
||||
Expected: Wasser rund 32 %, Stadt rund 31 %, Gebäude rund 9 %, Straße rund 8 %. Weichen die Werte um mehr als die Toleranz aus Task 8 ab, stimmt die Palette nicht — dann die Farben aus einer Kachel nachmessen, statt die Toleranz zu erhöhen.
|
||||
Expected: unbekannt unter 5 %, Wasser rund 33 %, Stadt rund 33 %, Gebäude rund 11 %, Straße rund 12 % (am echten Mosaik gemessen). Weichen die Werte deutlich ab, stimmt die Palette nicht — dann die Farben aus einer Kachel nachmessen, statt die Toleranz zu erhöhen.
|
||||
|
||||
- [ ] **Step 6: Commit**
|
||||
|
||||
@@ -1211,7 +1211,7 @@ from leonida.vectors import centerlines, land_polygons, mask_polygons, road_poly
|
||||
|
||||
SEED = 20260912
|
||||
OUT = Path(__file__).resolve().parents[2] / "public" / "data" / "vice-a"
|
||||
TOLERANCE = {"wasser": (0.29, 0.35), "strasse": (0.06, 0.10), "gebaeude": (0.07, 0.11)}
|
||||
TOLERANCE = {"wasser": (0.30, 0.36), "strasse": (0.10, 0.14), "gebaeude": (0.09, 0.13)}
|
||||
|
||||
|
||||
def main() -> None:
|
||||
|
||||
@@ -199,7 +199,7 @@ Spieler.
|
||||
- **pytest:** künstliche Masken (Quadrat → Rechteck, Straßenkreuz als ein Polygon, Insel
|
||||
mit Lagune behält das Loch, Wahrzeichen findet Grundriss, gleicher Seed → gleiche Höhen),
|
||||
Schema-Prüfung der Chunk-Dateien, Plausibilitätsgrenzen am echten Ausschnitt:
|
||||
Wasser 32 % ± 3, Straße 8 % ± 2, Gebäude 9 % ± 2.
|
||||
Wasser 30–36 %, Straße 10–14 %, Gebäude 9–13 % (am Mosaik gemessen, Stand Aufgabe 3).
|
||||
- **vitest:** Geometrie-Baustein — Dächer nach oben, Wände nach außen, UV-Bereiche,
|
||||
Koordinaten innerhalb der Chunk-Grenzen, Dreieckszahlen bei bekannter Eingabe. Dazu ein
|
||||
Node-Durchlauf über alle 144 Chunks: keine NaN, Budget eingehalten.
|
||||
|
||||
Reference in new issue
Block a user