2016-07-22 5 views

Antwort

0

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.

+0

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? –

+0

Danke @Calvin, der Klassenname ist in der Tat MonteCarloLCA. – MPa

Verwandte Themen