Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ss2022:mathesis_meets_histlab [2022/09/29 17:23] NoEyeDeer [Projektziele] |
ss2022:mathesis_meets_histlab [2022/09/29 18:28] (aktuell) malte.wieseke [Vorgehen] |
||
---|---|---|---|
Zeile 15: | Zeile 15: | ||
=====Projektziele===== | =====Projektziele===== | ||
- | Das Endziel unseres Projektes war es das World 2 Modell aus DYNAMO in Phython zu überführen. | + | Das Endziel unseres Projektes war es das World 2 Modell aus DYNAMO in Python zu überführen. |
- | Hierzu wurde bevor der Projektphase grundlegende Python Programierung übermittelt so wie die idee hinter dem World 2 Modell besprochen. | + | Hierzu wurde bevor der Projektphase grundlegende Python Programmierung übermittelt so wie die Idee hinter dem World 2 Modell besprochen. |
- | In der Projektphase war das erste Ziel sich in den DYNAMO Code einzuarbeiten und diesen nach zu vollziehen. Anschließend sollten die einzelnen Abläufe ungeordnet von in Python Methoden überführt werden sowie die Konstanten und die Startwerte der Variablen festgelegt Werden. | + | In der Projektphase war das erste Ziel sich in den DYNAMO Code einzuarbeiten und diesen nach zu vollziehen. Anschließend sollten die einzelnen Abläufe ungeordnet von in Python Methoden überführt werden sowie die Konstanten und die Startwerte der Variablen festgelegt werden. |
- | Diese Python Bausteine sollten anschließend in eine für ein Python Programm logische anordnung gebracht werden um das selbe resultat zu erziehlen wie das zugrunde liegende DYNAMO programm. | + | Diese Python Bausteine sollten anschließend in eine für ein Python Programm logische Anordnung gebracht werden um das selbe Resultat zu erzielen wie das zugrunde liegende DYNAMO Programm. |
- | Als weiterreichende Ziele sollten noch die Parameter veränderlich gestaltet werden um ihren Einfluss auf das komplete System nochvollziehen zu können so wie eine möglichkeit diese Parameter änderungen durch zu iterieren um den einfluss von verschiedenen Veränderungen effizient überprüfen zu können. | + | Als weiterreichende Ziele sollten noch die Parameter veränderlich gestaltet werden um ihren Einfluss auf das komplette System nachvollziehen zu können so wie eine Möglichkeit diese Parameter Änderungen durch zu iterieren um den Einfluss von verschiedenen Veränderungen effizient überprüfen zu können. |
=====Vorgehen===== | =====Vorgehen===== | ||
- | Nach Abschluss des Einführungskurses in die Programmiersprache Python haben wir einen passenden Rahmen für unsere Projektarbeit gesucht. Diesen haben wir in der „Übersetzung“ des World 2 Programmcodes aus der Programmiersprache DYNAMO in Python gefunden. Ein weiterer Teil war das fertig übersetzte Modell auf seine Sensitivität zu testen. Das bedeutet die Eingabevariablen des Modells zu verändern und den Effekt auch die Ausgabewerte festzustellen. Daraufhin haben wir damit begonnen ein Verständnis für die Ausgangssprache DYNAMO zu entwickeln, indem wir den Programmcode analysiert haben. Nachdem wir verstanden, hatten was einzelne Zeilen des Programmcodes tatsächlich im Modell bewirken, konnten wir mit der Übersetzung des Modells beginnen. Hierfür haben wir zuerst jede Zeile für sich in Python übersetzt. Da jedoch der Programmablauf in Python anders funktioniert als in DYNAMO mussten wir eine Lösung finden, die dem Ablauf des Programms treu bleibt, aber auch die gewünschten Ausgabewerte erzielt. Durch eine Implementation von Methoden im Python Programmcode konnte diese Hürde umgangen werden. | + | Nach Abschluss des Einführungskurses in die Programmiersprache Python haben wir einen passenden Rahmen für unsere Projektarbeit gesucht. Diesen haben wir in der „Übersetzung“ des World 2 Programmcodes aus der Programmiersprache DYNAMO in Python gefunden. Ein weiterer Teil war, das fertig übersetzte Modell auf seine Sensitivität zu testen. Das bedeutet die Eingabevariablen des Modells zu verändern und den Effekt auch die Ausgabewerte festzustellen. Daraufhin haben wir damit begonnen ein Verständnis für die Ausgangssprache DYNAMO zu entwickeln, indem wir den Programmcode analysiert haben. Nachdem wir verstanden, hatten was einzelne Zeilen des Programmcodes tatsächlich im Modell bewirken, konnten wir mit der Übersetzung des Modells beginnen. Hierfür haben wir zuerst jede Zeile für sich in Python übersetzt. Da jedoch der Programmablauf in Python anders funktioniert als in DYNAMO mussten wir eine Lösung finden, die dem Ablauf des Programms treu bleibt, aber auch die gewünschten Ausgabewerte erzielt. Durch eine Implementation von Methoden im Python Programmcode konnte diese Hürde umgangen werden. |
Noch haben wir dieses Projekt jedoch nicht vollendet da der Rahmen eines Semesters für ein weit gefächertes Projekt wie dieses nicht ausreichte. | Noch haben wir dieses Projekt jedoch nicht vollendet da der Rahmen eines Semesters für ein weit gefächertes Projekt wie dieses nicht ausreichte. | ||
+ | |||
+ | |||
+ | =====DYNAMO-Funktionsweise===== | ||
+ | |||
+ | Dynamo unterscheidet zwischen drei Berechnungsebenen: Levels, Rates und Auxiliaries. Levels werden zuerst berechnet. Es sind die Variablen, die am Ende von Interesse sind: Bevölkerung, natürliche Ressourcen, Kapital, Investitionen in der Landwirtschaft und Verschmutzung. Sie werden für jeden Zeitabschnitt berechnet und die Werte am Ende als Graph ausgegeben. Rates, zum Beispiel die Geburtenrate, sind die Änderungsraten eines Levels zu einem bestimmten Zeitpunkt. Auxiliaries sind Hilfswerte, die für die Berechnung der Rates benötigt werden. Pro Zeitschritt werden immer zuerst die Levels, dann die Rates und dann die Auxiliaries berechnet. Die jeweiligen Werte ergeben sich aus den Werten des vorherigen Zeitschritts. | ||
Zeile 65: | Zeile 70: | ||
von Seifenblasen]] oder einfach [[https://www.br.de/nachrichten/wissen/wie-wetter-vorhersagen-entstehen-moderne-meteorologie,TBZSq6H|das Wetter]]. | von Seifenblasen]] oder einfach [[https://www.br.de/nachrichten/wissen/wie-wetter-vorhersagen-entstehen-moderne-meteorologie,TBZSq6H|das Wetter]]. | ||
=====Fazit===== | =====Fazit===== | ||
+ | |||
+ | Die Einarbeitung in DYNAMO und die Verschaffung eines Verständnis für das World 2 Modell hat gut funktioniert. Die Übersetzung des DYNAMO Codes war allerdings aufwendiger als anfangs geplant, da unsere Gruppe kleiner als üblich war, weshalb die letzten Projektziele leider nicht erreicht werden konnten. Deshalb war es uns nicht möglich, die Sensitivitätstests durchzuführen. Dieses Projekt und unsere bisherigen Fortschritte könnten jedoch zukünftigen weiterführenden Projekten zu Gute kommen. |