w3geo / bml-fast

FaST Tool für den Agraratlas des BML
BSD 2-Clause "Simplified" License
1 stars 0 forks source link

Ertragslagenbereiche nach Oben hin offen - Wie soll dies umgesetzt werden? #19

Closed simonkriegnerschramml closed 1 month ago

simonkriegnerschramml commented 3 months ago

Hallo,

Bei allen Kulturen ist die höchste Ertragslage nach oben hin offen. Bis welchen Wert soll ich das in den Stammdaten einbauen. z.B. hat Winterweichweizen in Ertragslage hoch 3 nur den Wert >9 Tonnen angeführt. Wie soll nach Oben hin begrenzen oder nur diesen einen Wert eintragen?

Es gibt Kulturen mit 5 Ertragslagenstufen, 3 Ertragslagenstufen oder eben nur einer einzigen, weil die anderen Werte darunter oder darüber ident sind mit der mittleren oder der niedrigen Ertragslage.

Wenn ich nun für eine Kultur, die Ertragslagen niedrig, mittel und hoch eingestuft wird für die Ertragslagen hoch 2 und hoch 3 dieselben Werte, wie bei hoch 1 eingebe, dann gibt es keinen Unterschied zwischen den Ertragslagen hoch 1, hoch 2 und hoch 3. Würde das nicht zu invaliden Datensätzen führen?

Soll ich die Kulturen kategorisieren? Wie viele Ertragslagen angezeigt werden sollen?

LG Simon

simonkriegnerschramml commented 3 months ago

Eine weitere Frage ergibt sich aus den Zahlen für die Dokumentation in Kubikmeter anstatt Tonnen. Wir haben nun Kulturen, welche in Tonnen (üblicher Fall), Kubikmeter (für einige wenige Kulturen - Silomais etc.) und in Kubikmeter oder Tonnen (Futtergetreide etc.) angeführt werden können. Sollen wir das vereinfachen und in jenen Fällen in denen beide Einheiten möglich wären nur Tonnen zulassen. Für die Erntebuchung steht man hier bei Weichweizen und Braugerste ohnehin vor dem Problem, dass die Entzüge nur anhand von Tonnen, Rohproteinangabe und Kornfeuchte berechnet werden können. Es wäre sehr sehr aufwändig hier auch noch eine Funktion mit Hektolitergewichten einzuführen und der User ist meist damit überfordert, weil sehr aufwändig auch in der Eingabe.

LG Simon

arnold-pichler commented 3 months ago

Eine weitere Frage ergibt sich aus den Zahlen für die Dokumentation in Kubikmeter anstatt Tonnen....

Ja, ich würde es nur in einer Einheit zulassen - vor allem, wenn die Berechnung ohnehin nur aus einer Einheit möglich ist. Man kann ja notfalls einen entsprechenden Hinweis anbringen.

arnold-pichler commented 3 months ago

Bei allen Kulturen ist die höchste Ertragslage nach oben hin offen. Bis welchen Wert soll ich das in den Stammdaten einbauen. z.B. hat Winterweichweizen in Ertragslage hoch 3 nur den Wert >9 Tonnen angeführt. Wie soll nach Oben hin begrenzen oder nur diesen einen Wert eintragen?......

Kannst du mir das anhand eines Auszugs verdeutlichen? In den bestehenden Stammdaten ist das ja nicht wirklich ersichtlich. Ich denke, ich versteht nur zu 50% das Problem.

Und die Ertragslagenstufe ist vermutlich berechnungsrelevant für die Bilanz?

simonkriegnerschramml commented 3 months ago

Bei allen Kulturen ist die höchste Ertragslage nach oben hin offen. Bis welchen Wert soll ich das in den Stammdaten einbauen. z.B. hat Winterweichweizen in Ertragslage hoch 3 nur den Wert >9 Tonnen angeführt. Wie soll nach Oben hin begrenzen oder nur diesen einen Wert eintragen?......

Kannst du mir das anhand eines Auszugs verdeutlichen? In den bestehenden Stammdaten ist das ja nicht wirklich ersichtlich. Ich denke, ich versteht nur zu 50% das Problem.

  • Soweit ich das jetzt begreife, geht es darum, dass jede Kultur 5-1 Ertragslagenstufen hat
  • und die ergibt sich aus der eingefahrenen Ernte, korrekt?
  • D.h. die selbe Kultur hat dann z.B. für 3 Tonnen eine andere Stufe wie für 5 Tonnen (oder auch nicht, das ist von Kultur zu Kultur offenbar unterschiedlich?).

Und die Ertragslagenstufe ist vermutlich berechnungsrelevant für die Bilanz?

Also, zur Klärung, das hat etwas mit der Auswahl der Kultur und der Selbsteinschätzung der Ertragslage bei der Buchung der Aussaat Hauptfrucht und gleichzeitig etwas mit der Ernte zu tun. Also hat es letztendlich auch was mit der Bilanzierung zu tun. Ich spreche es nur an, da wir bei jeder Aufzeichnungssoftware in den Stammdaten vor diesem Problem stehen.

Ich erläutere es an folgendem Beispiel. Die Ertragslagen für Körnermais liegen folgendermaßen:

Nun gibt es aber auch andere Kulturen, wie bspw. Sojabohne, Ackerbohne oder Körnererbse. Diese haben zwar Ertragslagen, niedrig bis hoch 1, jedoch immer dieselbe Düngemöglichkeit, welche unabhängig vom erreichten Ertrag ist.

Und um jetzt zur Problematik an sich zu gelangen, gibt es auch noch Kulturen, welche gar keine Tonnagen als Kategorisierung aufweisen, sondern nur aufgrund ihrer Existenz gedüngt werden dürfen. - Welche fiktiven Werte für die Ertragslage sollen wir annehmen, damit man damit im Programm rechnen kann? - 0 - 1000.000 als Vorschlag?

Und um das ganze abzurunden, gibt es vor allem bei den Ackerfutterkulturen noch Kulturen, die lediglich eine oder zwei Ertragslagen besitzen. bspw. Kleegras 5 Nutzungen hat die EL mittel und hoch 1, Kleegras 6 Nutzungen nur mehr EL hoch 1 mit >12,5 Tonnen. Die Frage ist, was machen wir bei Kleegras 6 Nutzungen <12,5 Tonnen.

Da das für die Struktur der Stammdaten von Relevanz ist, brauche ich eine abgestimmte Vorgehensweise. Daher wären folgende Fragen zu klären:

LG Simon

arnold-pichler commented 3 months ago

OK, bevor ich das zu beantworten versuche, noch eine Verständnis-Frage: Die Ertragslage bestimmt die Bilanz, also wie viel gedüngt werden darf, korrekt? D.h. es muss dann ja auch noch irgend einen Wert dafür geben, also wie viel Dünger bei welcher Ertragslage. Denn die Tonnen bestimmen ja nur , welche Ertragslage es ist.

Sprich: Es gibt dann ja noch irgendwo die Info für jede Kultur, wie viel für jede Ertragslage gedüngt werden darf? Ist das in der selben Tabelle oder extra?

simonkriegnerschramml commented 3 months ago

OK, bevor ich das zu beantworten versuche, noch eine Verständnis-Frage: Die Ertragslage bestimmt die Bilanz, also wie viel gedüngt werden darf, korrekt? D.h. es muss dann ja auch noch irgend einen Wert dafür geben, also wie viel Dünger bei welcher Ertragslage. Denn die Tonnen bestimmen ja nur , welche Ertragslage es ist.

Sprich: Es gibt dann ja noch irgendwo die Info für jede Kultur, wie viel für jede Ertragslage gedüngt werden darf? Ist das in der selben Tabelle oder extra?

Diese Info ist in den Stammdaten enthalten, diese ist aber für die Fragestellung irrelevant, da die Düngehöhe nur eine Konsequenz der Ertragslageneinstufung darstellt.

LG Simon

arnold-pichler commented 3 months ago

Für ein Modelling ist es nicht irrelevant, denn je nach Anzahl der Ertragslagen brauche ich dann ja auch noch eine entsprechende Anzahl von Düngehöhen! Aber ich habe das mal versucht, in einem Vorschlag abzubilden. Unterschiedliche Strukturen pro Kultur sind nicht gut, deshalb eine einheitliche Struktur, die alles kann:

image

Die Logik dahinter: Die 5 Düngehöhen werden von unten nach oben durchgegangen und die Ertragslage wird auf die Düngehöhe gesetzt, für die gilt geerntete Menge >= Schwellenwert. Im zweiten Block sind dann für jede Ertragslage die Düngehöhen definiert. Dazu kommt noch der Entzugsfaktor. Wenn es den wirklich nur für eine einzige Kultur gibt, kann man die Ausnahme auch programmatisch hinzufügen, aber so ist es halt sauber in den Daten.

Beispiele:

Versuch Modellierung Ertragslagen Düngehöhe.xlsx

simonkriegnerschramml commented 3 months ago

Für ein Modelling ist es nicht irrelevant, denn je nach Anzahl der Ertragslagen brauche ich dann ja auch noch eine entsprechende Anzahl von Düngehöhen! Aber ich habe das mal versucht, in einem Vorschlag abzubilden. Unterschiedliche Strukturen pro Kultur sind nicht gut, deshalb eine einheitliche Struktur, die alles kann:

image

Die Logik dahinter: Die 5 Düngehöhen werden von unten nach oben durchgegangen und die Ertragslage wird auf die Düngehöhe gesetzt, für die gilt geerntete Menge >= Schwellenwert. Im zweiten Block sind dann für jede Ertragslage die Düngehöhen definiert. Dazu kommt noch der Entzugsfaktor. Wenn es den wirklich nur für eine einzige Kultur gibt, kann man die Ausnahme auch programmatisch hinzufügen, aber so ist es halt sauber in den Daten.

Beispiele:

  • Körnermails mit 9 Tonnen Ernte kriegt Ertragslage "mittel", Körnermais mit 15,1 Tonnen kriegt "hoch3" und der Entzug wird wirksam
  • Soja: Hier kriegt alles unter 2 Tonnen "niedrig" und alles ab 4 Tonnen "hoch", mehr kann nicht erreicht werden. Aber die Düngehöhen sind immer gleich hoch. Über "hoch" müssen sie nicht definiert sein, weil das nicht erreicht werden kann (dürfen aber, ist völlig egal).
  • Irgendwas als Beispiel für "das reine Vorhandensein": Wenn alles Schwellenwerte auf 0 sind, wird immer die Ertragslage "hoch3" erreicht und dafür die Düngehöhe definiert. Zusätzlich baue ich aber eine Logik ein, die dann die Ertragslage nicht anzeigt oder als "Ertrag erzielt" oder sonstwas angibt, damit keine Verwirrung durch das "hoch" entsteht.
  • Kleegras 5 Nutzungen / 6 Nutzungen: Das ist an sich analog zum Soja.

Versuch Modellierung Ertragslagen Düngehöhe.xlsx

Wir sprechen hier nicht nur von geernteter Menge. Es geht auch um die Einstufung entlang eines mehrjährigen Durchschnittsertrages, die der User bei der Auswahl der Kultur bei Aussaat Hauptfrucht selber auswählen muss. Das ist der erste Schritt. Der Schritt bei dem es um die Bilanzierung/ Saldierung geht, muss je Kultur entweder anhand der erreichten Ertragslage oder aber anhand des Entzuges je Tonne oder Kubikmeter erfolgen. Für alle in der NAPV (mit Ausnahme der Körnerleguminosen Soja, Ackerbohne und Körnererbse) gelisteten Kulturen, gibt es einen Entzugsfaktor je Mengeneinheit (Tonnen oder eben Kubikmeter) - hier ist die erreichte Ertragslage irrelevant, da hier die Erntemenge einfach mit dem Ertrags multipliziert wird. Bei allen Kulturen, die keinen Entzugsfaktor gem. NAPV besitzen (auch die Körnerleguminosen Soja, Ackerbohne und Körnererbse) ist die Düngeobergrenze der erreichten Ertragslage gleichzeitig auch der Stickstoffentzug durch das Erntegut. Die jeweiligen Kulturen sind in der bestehenden und werden in der neuen Version der Stammdaten entsprechend gekennzeichnet.

arnold-pichler commented 3 months ago

Ob das jetzt die geerntete Menge oder ein Durchschnittsertrag ist, ist ja egal für die Logik, die ich hier zu skizzieren probiert habe.

Ich weise nur darauf hin: Eine Datenstruktur, in der jeder Zeile dieselben Spalten hat, ist auf jeden Fall zu bevorzugen. Egal, ob in einem Fall dann nur X von Y Spalten Relevanz haben, aber da sein sollten sie.

Natürlich können wir alles programmieren, alle Sonderfälle berücksichtigen usw. - aber ihr müsst das dann testen! Und alles, was ich nicht anhand einer Vergleichstabelle verifizieren kann, ist super aufwändig im Test.

Ich denke, wir müssen auch das morgen durchbesprechen.

simonkriegnerschramml commented 3 months ago

Ob das jetzt die geerntete Menge oder ein Durchschnittsertrag ist, ist ja egal für die Logik, die ich hier zu skizzieren probiert habe.

Ich weise nur darauf hin: Eine Datenstruktur, in der jeder Zeile dieselben Spalten hat, ist auf jeden Fall zu bevorzugen. Egal, ob in einem Fall dann nur X von Y Spalten Relevanz haben, aber da sein sollten sie.

Natürlich können wir alles programmieren, alle Sonderfälle berücksichtigen usw. - aber ihr müsst das dann testen! Und alles, was ich nicht anhand einer Vergleichstabelle verifizieren kann, ist super aufwändig im Test.

Ich denke, wir müssen auch das morgen durchbesprechen.

Eben das will ich ja als Ziel verfolgen - Eine Liste in der alle Kulturen in dieselbe Struktur gepackt werden. Nun bleiben eben aber Zellen bei bestimmten Kulturen leer, weil bspw. keine Ertragslage hoch 2 und hoch 3 existiert.

Die Frage ist nur, wie mit diesen leeren Einträgen umgegangen werden muss/soll.

LG Simon

arnold-pichler commented 3 months ago

Die Frage ist nur, wie mit diesen leeren Einträgen umgegangen werden muss/soll.

Ich habe das im Excel abgebildet, meine ich? Ob leer oder 0 ist letztlich egal. Wenn leer übersichtlicher ist, auch schön.

simonkriegnerschramml commented 3 months ago

Ich werde die Liste heute fertig stellen und euch dann morgen erläutern. Es gibt, wie erwähnt, hier einiges zu bedenken. Der Körnermais ist nicht die einzige Kultur mit Entzugsfaktoren. Er ist aber die einzige Kultur, welche über die Ertragslage hoch 3 hinausgehend einen eigenen Entzugsfaktor besitzt. Alle anderen Kulturen haben ab deren höchster Ertragslage einen nach Oben hin offenen Ertragslagenbereich.

LG Simon

simonkriegnerschramml commented 3 months ago

Ob 0 oder Leer ist mir egal, was für euch leichter ist. aber 0 hat eben immer einen Wert und der kann und wird niedriger sein als eine eigentlich niedrigere Ertragslage.

simonkriegnerschramml commented 3 months ago

Hallo Arnold,

Wie gestern besprochen gibt es ja zu den einzelnen Ertragslagen in den Stammdaten ausschließlich Untergrenzen, sprich "ab" bzw. größer gleich. Mit einer Ausnahmen funktioniert das in den Stammdaten, denn wir haben bei Ertragslage hoch drei für Körnermais auf noch ein "bis" stehen. Hintergrund ist der Entzugsfaktor bei Erntemengen über 15 t/ha bei Körnermais und Corn Cob Mix (CCM). Was sollen wir als Obergrenze für alle anderen Kulturen (z.B.: 1000000) in die Spalte schreiben, oder sollen diese einfach leer bleiben und ich definiere dann einfach die IDs für die zwei Kulturen als Sonderfall.

LG Simon

arnold-pichler commented 3 months ago

Sorry, war gestern auswärts: Ja, lass sie leer und die beiden IDs sind ein Sonderfall und werden entsprechend behandelt!

simonkriegnerschramml commented 3 months ago

OK. Ich bin im Zuge der Überarbeitung der Stammdaten, noch auf Fehler in den Publikationen des BML und der AMA gestoßen. Diese habe ich jetzt zumindest in den Stammdaten bereits ausgebessert. Wir haben leider auch Kulturen drin, für die es keinerlei Einstufung gem. irgendeiner Ertragslage gibt. Das sind die Arznei und Gewürzpflanzen. Für die gibt es zwar Düngeobergrenzen für Stickstoff, nicht aber vollständig für Kalium und Phosphor. Was machen wir damit. nehmen wir diese raus? Oder lassen wir diese drin und schreiben eine 0 Düngung vor?

LG Simon

arnold-pichler commented 3 months ago

Fachlich darf / kann ich das natürlich nicht bestimmen. Wir können es erstmal drinlassen mit 0-Düngung, aber noch nachfragen und ggf. ändern. Wenn die Struktur bleibt, kann man die Stammdaten ja jederzeit sofort neu einspielen.

simonkriegnerschramml commented 3 months ago

2024_08_01_Stammdaten Kulturen.CSV

Anbei die Kulturstammdaten. Es fehlen aber noch teilweise die fiktiven Düngewerte für nicht vorhandene Ertragslagen, die wir aber unbedingt zur Programmlogik benötigen. Die Struktur ist aber so wie diese sein soll.

LG Simon

simonkriegnerschramml commented 3 months ago

Entzugstabelle B-Gerste.CSV Entzugstabelle Weizen.CSV

Das sind die Stammdaten für die Entzugszahlen für Weichweizen und Braugerste. Diese sind in der vorletzten Spalte der Stammdaten_Kulturen für Weichweizen mit der Zahl 4 und für Braugerste mit der Zahl 5 gekennzeichnet.

LG Simon

simonkriegnerschramml commented 3 months ago

Und jetzt nochmal gesammelt die Stammdaten als UTF 8 (Ich hatte die Formatierung teilweise vergessen):

Kulturen: 2024_08_01_Stammdaten Kulturen.CSV

Handelsdünger: 2024_08_01_Stammdaten Handelsdünger.CSV

Wirtschaftsdünger: 2024_08_01_Stammdaten Wirtschaftsdünger.CSV

Sekundärrohstoffe: 2024_08_01_Stammdaten Sekundärrohstoffe.CSV

Felstücknutzungsarten: Feldstücknutzungsarten.CSV

Entzugstabelle -Braugerste: Entzugstabelle B-Gerste.CSV

Entzugstabelle - Weichweizen: Entzugstabelle Weizen.CSV

simonkriegnerschramml commented 3 months ago

Die Wirtschaftsdünger habe ich drastisch gekürzt: Es sind jetzt nur mehr 7 Zeilen drin. Das ist bei weitem übersichtlicher für den User und erfüllt den Zweck völlig. Jauche, Geflügelgülle, Schweinegülle, Rindergülle, Stallmist, Rottemist, Stallmistkompost bleiben übrig.

Ich habe das in der Spezifikation bereits angepasst.

LG Simon

simonkriegnerschramml commented 3 months ago

Anbei ein erstere Versuch der Anzeigelogiken zur Aussaat Hauptfrucht. Morgen folgt noch die Logik zur Anzeige der Düngeobergenzen in eben dieses File, es wird also noch erweitert.

Aussaat Hauptfrucht - EL Auswahl - Düngeobergrenzen.xlsx

LG Simon

simonkriegnerschramml commented 3 months ago

So nun habe ich das Schema mit den Spaltenbezügen und den Entscheidungskaskaden für die Aussaat Hauptfrucht inkl. der Ertragslagenauswahl, der Anzeige der Düngeobergrenzen für Stickstoff und des Nährstoffbedarfs für Phosphor und Kalium vervollständigt. Bei Fragen bitte gerne melden. Die Datei beinhaltet auch schon einen Punkt für die Entzugszahlen für Phosphor und Kalium. Diese bitte ignorieren, diese habe ich einfach schon mal hineingegeben, da ich diese für die Ertragserfassung benötige und ich diese später einfach herauskopieren kann.

Aussaat Hauptfrucht - EL Auswahl - Düngeobergrenzen.xlsx

LG Simon

simonkriegnerschramml commented 3 months ago

Ich habe die Aussaat Zwischenfrucht ungenutzt und genutzt noch ergänzt und eine Änderung für die Aussaat Hauptfrucht durchgeführt. Bitte das aktuelle File heranziehen. Ich bin gerade dabei die Maßnahme Ernte zu systematisieren und dabei auch die Entzugsformeln festzulegen. Das wird aber bis inkl. Montag dauern, dass ich das beisammen habe. Das sind dann alle Grundvoraussetzungen für die Berechnung des Saldos und der Bilanzen.

Aussaat Hauptfrucht - EL Auswahl - Düngeobergrenzen.xlsx

LG Simon

simonkriegnerschramml commented 3 months ago

Ich sehe gerade, dass ich im falschen Issue bin. Ich werde die Stammdaten noch in das zutreffende Issue geben.

LG Simon

arnold-pichler commented 1 month ago

Sollte mittlerweile korrekt umgesetzt werden.