Tree Gen 1.48.0: Kronen-Huelle, weniger Blaetter, Formband neu geeicht

Vom User im Wald abgenommen: "sehr schoen etwas weniger blaetter und wir
koennen das fuer alle baeume uebernehmen".

1) KRONEN-HUELLE statt Einzelkappen
   Kugeln auf die Aeste, Mesh to Volume, Volume to Mesh, dann Streuung auf der
   verschmolzenen Oberflaeche - der Standard-Ablauf aus den
   Produktions-Breakdowns, den wir uebersprungen hatten. Die Aeste verschwinden
   im Inneren der Krone; die Polster sind nicht mehr als getrennte Koerper
   sichtbar.

   Drei Befunde, alle gemessen:
   - ast_id kam nur an 3 von 10 Aesten an. Nicht das Sampling, sondern die
     Eingabe: nur VIER Cluster-Zentren auf drei Aesten. Sichtbar erst mit
     Points to Vertices - to_mesh() auf eine Punktwolke liefert eine leere Mesh
     und misst nichts.
   - S1 stand kahl. Reihe ueber die Stufen 0/20/41/109 Zentren: allmaehlicher
     Abfall, keine Klippe, also die Cluster-Dichte. "Dichte" ist Kugeln je m2
     Zweigflaeche, die schrumpft quadratisch - sie laeuft jetzt mit 1/g^2
     gegen die Groesse, damit die ANZAHL konstant bleibt. Skalenfrei, kein
     Sonderweg fuer Setzlinge.
   - 31 % der Cards lagen unter dem Kronenansatz: die Verschmelzung weitet die
     Form nach unten, der Filter griff nur auf den Zentren. Jetzt auch auf der
     Huelle.

2) WENIGER BLAETTER (-15 % auf die Stufen-Ziele)
   Gemessen an der Eiche: 381 -> 319 Cards, Deckung 10.4 -> 8.6, 372 Tris
   gespart. Der Gegenversuch - Cards um 15 % verkleinern - kostet MEHR Deckung
   (7.9, die Flaeche geht quadratisch) und spart kein Dreieck.

3) FORMBAND um das Abgenommene gelegt, nicht umgekehrt
   Alle Referenzformen unter der neuen Bauform neu gemessen:
     Eiche      u/m 1.04-1.16   o/m 0.79-0.91
     abgenommen u/m 0.78-1.02   o/m 0.68-0.79
     Trichter   u/m 0.68-0.78   o/m 1.04-1.14
     Pilz       u/m 0.59-0.90   o/m 0.82-0.95
     Haube      u/m 0.94-1.03   o/m 0.71-0.78

   u/m TRENNT NICHTS MEHR - der abgenommene Bereich ueberlappt den Pilz und
   stoesst an den Trichter. Die alte 0.82-Schranke stammt aus der
   Einzelkappen-Aera; dagegen zu kalibrieren haette die Krone verbogen, um eine
   Zahl zu retten, die ihre Aussagekraft verloren hat. u/m wird nur noch
   mitgedruckt. o/m trennt sauber und traegt die Formpruefung allein.

27 Tests bestehen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-07 15:40:49 +02:00
co-authored by Claude Opus 4.8
parent 869b008d4f
commit a718476592
8 changed files with 136 additions and 38 deletions
+30 -22
View File
@@ -316,26 +316,34 @@ for seed in SEEDS:
# Die Krone muss sich nach OBEN schliessen. Die Eiche, die laut Abnahme als
# Baum liest, kommt auf 0.90; der Trichter lag bei 1.07. 0.85 als Grenze
# laesst Spielraum nach oben, schliesst den Trichter aber sicher aus.
# Die Grenzen kommen aus einer Messung ALLER Formen mit DIESEM Mass, nicht
# aus dem Wunschband - die Streuung von Seed zu Seed ist breiter als das
# Band, das die Spielseite genannt hat (u/m 0.85-0.95). Gemessen ueber neun
# Seeds:
# Eiche u/m 1.04-1.15 o/m 0.77-0.88
# Trichter u/m 0.66-0.72 o/m 1.18-1.31
# Haube u/m 0.99-1.13 o/m 0.69-0.80
# Pilz u/m 0.75-0.90 o/m 0.78-0.94
# Kugel u/m 0.86-1.01 o/m 0.63-0.74
# Die Schranken trennen die Kugel von Trichter und Pilz; von der Haube
# trennt sie der Kugel-Kennwert weiter unten.
# Die Grenzen sind unter der KRONEN-HUELLE neu erhoben und um die Form
# gelegt, die der User im Wald ABGENOMMEN hat - nicht umgekehrt. Spannen
# ueber neun Seeds, alle mit demselben Mass:
#
# Eiche u/m 1.04-1.16 o/m 0.79-0.91
# ABGENOMMEN u/m 0.78-1.02 o/m 0.68-0.79
# Trichter u/m 0.68-0.78 o/m 1.04-1.14
# Pilz u/m 0.59-0.90 o/m 0.82-0.95
# Haube u/m 0.94-1.03 o/m 0.71-0.78
#
# DARAUS FOLGT ETWAS UNBEQUEMES: u/m trennt unter der neuen Bauform NICHTS
# mehr. Der abgenommene Bereich (0.78-1.02) ueberlappt den Pilz (0.59-0.90)
# und stoesst an den Trichter (bis 0.78). Die fruehere 0.82-Schranke stammt
# aus der Einzelkappen-Aera; haette man dagegen kalibriert, waere die Krone
# verbogen worden, um eine Zahl zu retten, die ihre Aussagekraft verloren
# hat - derselbe Fall wie beim Kugel-Kennwert eine Runde zuvor.
#
# o/m trennt dagegen sauber: abgenommen bis 0.79, Pilz ab 0.82, Trichter ab
# 1.04. Diese eine Schranke traegt die Formpruefung, und der Kugel-Kennwert
# weiter unten trennt zusaetzlich von der Haube.
if om > 0.80:
fails.append("Seed %d: Krone oben %.1f m breit, in der Mitte %.1f "
"(%.2f) - sie schliesst sich oben nicht (Trichter lag bei "
"1.18-1.31)" % (seed, profil[2], profil[1], om))
if um < 0.82:
fails.append("Seed %d: Krone unten %.1f m breit, in der Mitte %.1f "
"(%.2f) - unten zu schmal, das wird ein Pilz bzw. ein "
"Trichter (0.66-0.90)"
% (seed, profil[0], profil[1], um))
"(%.2f) - abgenommen ist bis 0.79, darueber liegen Pilz "
"(ab 0.82) und Trichter (ab 1.04)"
% (seed, profil[2], profil[1], om))
# u/m wird nur noch MITGEDRUCKT. Ein Kriterium, das die Fehlformen nicht
# mehr ausschliesst, ist schlimmer als keines: es sieht aus wie ein Schutz
# und ist keiner.
if kugel > EICHE_KUGEL * 0.65:
fails.append("Seed %d: Kugel-Kennwert %.2f, Eiche %.2f (%.0f %%) - der "
"Obstbaum muss die RUNDESTE Art bleiben, Richtwert <= 65 %%"
@@ -431,14 +439,14 @@ for _k, _x in enumerate(_st, 1):
print("")
print("Kronenradius/Card ueber alle Seeds: %.2f - %.2f" % (min(verh), max(verh)))
print("Krone unten/mitte ueber alle Seeds: %.2f - %.2f (Pilz 0.75-0.90, "
"Trichter 0.66-0.72)" % (min(untenmitte), max(untenmitte)))
print("Krone unten/mitte ueber alle Seeds: %.2f - %.2f (nur Info - trennt "
"unter der Huelle nichts mehr)" % (min(untenmitte), max(untenmitte)))
print("Kugel (KronH/KronB) ueber alle Seeds: %.2f - %.2f, Eiche %.2f "
"(%.0f-%.0f %% - Vorgabe <= 65 %%)"
% (min(kugeln), max(kugeln), EICHE_KUGEL,
100 * min(kugeln) / EICHE_KUGEL, 100 * max(kugeln) / EICHE_KUGEL))
print("Krone oben/mitte ueber alle Seeds: %.2f - %.2f (Trichter 1.18-1.31)"
% (min(obenmitte), max(obenmitte)))
print("Krone oben/mitte ueber alle Seeds: %.2f - %.2f (Pilz ab 0.82, "
"Trichter ab 1.04)" % (min(obenmitte), max(obenmitte)))
print("Kronen-Deckung ueber alle Seeds: %.1f - %.1f m2/m3, Eiche %.1f "
"(%.0f-%.0f %%)"
% (min(deckungen), max(deckungen), EICHE,