Ich möchte die Verteilung für die Auswirkungen von Ecoinvent-Prozessen, unter Verwendung einer der bestehenden Folgenabschätzung Methoden, Monte-Carlo-Simulationen tun. Gibt es ein Beispiel Notebook oder Anweisungen dazu?Erhalt der Verteilung der Ergebnisse von LCIA
Antwort
Hier ist der einfachste Weg, es zu tun (für eine zufällige Aktivität und Verfahren):
from brightway2 import *
import numpy as np
ecoinvent = Database("ecoinvent 3.2 cutoff")
Die Monte-Carlo-Klasse ergibt sich aus der LCA-Klasse und instanziiert wird wie ein LCA-Objekt.
my_MC = MonteCarloLCA({ecoinvent.random():1}, methods.random())
Sagen Sie 1000 Proben erhalten möchten:
iterations = 1000
Sie können ein leeres numpy Array erstellen, die Ergebnisse zu sammeln:
scores = np.zeros([1, iterations])
Dann berechnen Sie Noten mit next
auf Objekt:
for iteration in range(1000):
next(my_MC)
scores[0, iteration] = my_MC.score
In diesem Beispiel wird dies ein numpliges Array mit 1000 Elementen sein. Sie können dieses Array dann mit den statistischen Modulen analysieren, mit denen Sie sich auskennen.
Es gibt mehrere andere Monte-Carlo-basierte Klassen, die andere Funktionalitäten erlauben. Schauen Sie sich die source code an, vielleicht finden Sie etwas Nützliches.
- 1. Erhalt der Reihenfolge der Funktionsimplementierung
- 2. Verbesserung der Verteilung der Hash-Funktion Werte
- 3. Excel 2013, Erhalt der "App-Katalog"
- 4. jQuery - Erhalt der $ _FILES-Array mit $ .post
- 5. Randomly in dynamischer Arrays der Verteilung von
- 6. Verteilung der Tabelle in der Zeit
- 7. Verteilung der php's random_int() Funktion
- 8. Knotenmodul vor der Verteilung bündeln
- 9. Maven-Plugin zur Verteilung der Unit-Testausführung
- 10. Parsen der Ergebnisse von askopenfilenames()?
- 11. SQL Server-Abfrage für den Erhalt der Prozentsatz der Umfrage ausgewählten Antworten
- 12. Berechnung der Poisson-Verteilung in C
- 13. Konfiguration des Installationsprogramms vor der Verteilung
- 14. Mischung der Gaußschen Verteilung in C++
- 15. Math.Net Wie Vektor der exponentiellen Verteilung Zufallszahlen
- 16. Erhalt der Mindestanzahl von Münzenden nach mehrmaligem Umdrehen der gesamten Reihe oder Spalte
- 17. Interleaving zwei Strings, Erhalt der Reihenfolge: funktionalen Stil
- 18. Was bedeutet "Verteilung der Hash-Funktion"?
- 19. Verteilung der Testversion einer Windows Phone-Anwendung
- 20. CUDA: Zusammenfassung der Ergebnisse
- 21. Funktion dauert, um nach Erhalt der Antwort fortzufahren
- 22. Extrahieren Parameter nach der Anpassung von Poisson-Verteilung
- 23. Unterschiedliche Größe der Ergebnisse
- 24. Erhalt von "=" (gleichen) Zeichen in Batchdateiparametern
- 25. Erhalt letzten Wert von Spaltendatenrahmen ohne Index
- 26. Probleme beim Einlesen der Ergebnisse von ResultSet
- 27. Summe der Ergebnisse von verschiedenen Abfragen
- 28. Ändern der Reihenfolge der Listview-Ergebnisse von SQlite
- 29. Ändern von Objekt der Struktur der Ergebnisse in CakePHP 3
- 30. Dauerhafte Zwischenspeicherung der Ergebnisse der Python-Klassengenerierung
Als ich versucht habe, den von Ihnen bereitgestellten Code auszuführen, wurde der folgende Fehler angezeigt: "NameError: Name 'MonteCarlo' ist nicht definiert". Die "MonteCarlo" -Klasse scheint nicht in dem Quellcode definiert zu sein, auf den Sie verwiesen haben. Das "Getting Started" -Beispiel für Brightway2 (https://brightwaylca.org/examples/getting-started.html) verwendet "MonteCarloLCA" für die Klasse, und dies schien mit dem von Ihnen bereitgestellten Code zu funktionieren. Haben Sie eine Empfehlung, welche Klasse Sie verwenden sollen oder wie Sie "MonteCarlo" zu einer definierten Klasse machen? –
Danke @Calvin, der Klassenname ist in der Tat MonteCarloLCA. – MPa