Skip to content
Simon Rouchier edited this page Mar 14, 2015 · 1 revision

#summary How to display results

= Post-processing =

Let's say you have correctly defined all simulation [Inputs inputs] and successfully performed a [Simulate simulation run]. The last part of your script may look like this: {{{ from hamopy.algorithm import calcul

results = calcul(mesh, clim, init, time) }}} Now you want to display and analyse some results, which is why you use this program in the first place.

==Simulation outcome==

By default, the main algorithm of hamopy returns a dictionary containing all simulation results and everything one needs to interpret them. Here is a list of all keys and values stored within this dictionary.

|| Key || Value || size || || 'x' || Mesh node coordinates || (N,) || || 't' || All time coordinates of the simulation || (M,) || || 'T' || Temperature || (M,N) || || 'PC' || Capillary pressure || (M,N) || || 'HR' || Relative humidity || (M,N) || || 'PV' || Vapor pressure || (M,N) ||

All values are numpy arrays. This is for instance how to read the temperature of the i^th^ node at the j^th^ time of simulation: {{{ results['T'][j,i] }}}

As this data is a bit raw, two methods are available to easily extract data at user-defined times and locations without having to directly manipulate elements of the results dictionary.

==evolution()==

The evolution() method of the hamopy.postpro module helps extract the temporal evolution of a variable at a specific location. {{{ from hamopy.postpro import evolution import numpy as np

x_out = 0.05 t_out = np.array([0, 60, 120, 180, 240, 300, 360]) T_out = evolution(results, 'T', x_out, t_out) }}}

This example returns the evolution of the temperature over time, at the point given by x_out, with the temporal discretisation given by t_out. The function may take 4 input arguments:

  • the dictionary of results, provided by the simulation
  • a string denoting which variable to extract (it must be one of the keys of results)
  • the location of the point (preferably a single value)
  • the time scale on which to extract the data (numpy array) The last argument is optional: if not given, evolution() will take all time coordinates in results['t'] (this is not advised if the simulation time step size was adaptative).

==distribution()==

The distribution() method of the hamopy.postpro module helps extract the spatial distribution of a variable at a specific time. {{{ from hamopy.postpro import distribution import numpy as np

x_out = np.array([0, 0.02, 0.04, 0.06, 0.08, 0.10]) t_out = 3600 HR_out = distribution(results, 'HR', x_out, t_out) }}}

This example returns the distribution of relative humidity, at the time given by t_out, over the spatial discretisation given by x_out. The function may take 4 input arguments:

  • the dictionary of results, provided by the simulation
  • a string denoting which variable to extract (it must be one of the keys of results)
  • the coordinates on which the distribution spans (numpy array)
  • the time of the distribution (preferably a single value) The third argument is optional: if not given, distribution() will take all mesh node coordinates in results['x'].

[Overview Documentation main page]

Clone this wiki locally