|
3 | 3 | About xarray-simlab
|
4 | 4 | ===================
|
5 | 5 |
|
| 6 | +xarray-simlab provides a framework for easily building custom models from a set |
| 7 | +of re-usable components (i.e., Python classes), called processes. |
6 | 8 |
|
| 9 | +The framework handles issues that scientists who develop models should not care |
| 10 | +too much about, like a model interface and its data structure as well as its |
| 11 | +overall workflow management. Both are automatically determined from the |
| 12 | +succint, declarative-like interfaces of the model processes. |
| 13 | + |
| 14 | +Next versions of xarray-simlab will hopefully also handle other technical issues |
| 15 | +like logging, command line integration and running (many) simulations in |
| 16 | +parallel. |
7 | 17 |
|
8 | 18 | Motivation
|
9 | 19 | ----------
|
| 20 | +xarray-simlab is being developped with the idea of reducing the gap between the |
| 21 | +environment used for building and running a computational model and the one(s) |
| 22 | +used for processing and analysing simulation results. It also encourages |
| 23 | +building new models from re-usable components and avoid reinventing the wheel. |
10 | 24 |
|
11 |
| -The project is being developped with the idea of |
| 25 | +Ultimately, it should reduce the time lag between the ideas that scientists have |
| 26 | +on how to model a particular phenomenon and the insights they get from exploring |
| 27 | +the behavior of the model, which often itself lead to new modeling ideas. |
12 | 28 |
|
13 | 29 | Sources of inspiration
|
14 | 30 | ----------------------
|
15 | 31 |
|
16 |
| -xarray: data structure |
17 |
| -dask: task graphs (DAGs) |
18 |
| -luigi: use classes as primary, re-usable units for chaining many tasks |
19 |
| -django: especially The Django's ORM part (i.e., django.db.models) for the |
20 |
| -design of Process and Variable classes |
21 |
| -param: another source of inspiration for Process interface and Variable objects. |
22 |
| -climlab: another python package for process-oriented modeling, applied to |
23 |
| -climate |
24 |
| - |
25 |
| - |
26 |
| -(put this in create models section) |
| 32 | +- xarray_: data structure |
| 33 | +- dask_: build and run task graphs (DAGs) |
| 34 | +- luigi_: use Python classes as re-usable units that help building complex |
| 35 | + workflows. |
| 36 | +- django_: especially The Django's ORM part (i.e., django.db.models) for the |
| 37 | + design of Process and Variable classes |
| 38 | +- param_: another source of inspiration for Process interface and Variable objects. |
| 39 | +- climlab_: another python package for process-oriented modeling, applied to |
| 40 | + climate. |
| 41 | + |
| 42 | +.. _xarray: https://github.com/pydata/xarray |
| 43 | +.. _dask: https://github.com/dask/dask |
| 44 | +.. _luigi: https://github.com/spotify/luigi |
| 45 | +.. _django: https://github.com/django/django |
| 46 | +.. _param: https://github.com/ioam/param |
| 47 | +.. _climlab: https://github.com/brian-rose/climlab |
| 48 | + |
| 49 | +**Draft: put this in create models section** |
| 50 | + |
| 51 | +The framework consists of a few base classes, e.g., :py:class:`xrsimlab.Variable`, |
| 52 | +:py:class:`xrsimlab.Process` and :py:class:`xrsimlab.Model`. The latter class |
| 53 | +represents a model with which we interact using the xarray's |
| 54 | +:py:class:`xarray.Dataset` structure. |
27 | 55 |
|
28 | 56 | Variable.state (or value, rate, change) should not be used (get/set) outside
|
29 | 57 | of Process subclasses.
|
|
0 commit comments