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:
+30
-22
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user