Skip to content

Commit 8410ad2

Browse files
committed
wip documentation (faq and about sections)
1 parent a7aac27 commit 8410ad2

File tree

3 files changed

+61
-16
lines changed

3 files changed

+61
-16
lines changed

doc/about.rst

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,55 @@
33
About xarray-simlab
44
===================
55

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.
68

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.
717

818
Motivation
919
----------
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.
1024

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.
1228

1329
Sources of inspiration
1430
----------------------
1531

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.
2755

2856
Variable.state (or value, rate, change) should not be used (get/set) outside
2957
of Process subclasses.

doc/faq.rst

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,31 @@ Frequently Asked Questions
66
Does xarray-simlab provide built-in models?
77
-------------------------------------------
88

9-
No.
9+
No, xarray-simlab provides only the framework for creating, customizing and
10+
running computational models. It is intended to be a general-purpose tool.
11+
Domain specific models should be implemented in 3rd party packages. For example,
12+
`xarray-topo`_ provides xarray-simlab models and model components for simulating
13+
landscape evolution.
14+
15+
.. _`xarray-topo`: https://gitext.gfz-potsdam.de/sec55-public/xarray-topo
1016

1117
Will xarray-simlab support Python 2.7.x?
1218
----------------------------------------
1319

14-
No, unless there are very good reasons to do so.
20+
No, unless there are very good reasons to do so. The main packages of the Python
21+
scientific ecosystem support Python 3.4 or later, and it seems that Python 2.x
22+
will not be maintained anymore past 2020 (see `PEP 373`_). Although some tools
23+
easily allow supporting both Python 2 and 3 versions in a single code base,
24+
it still makes the code harder to maintain.
25+
26+
.. _`PEP 373`: https://www.python.org/dev/peps/pep-0373/
27+
1528

1629
Which features are likely to be implemented in next xarray-simlab releases?
1730
---------------------------------------------------------------------------
1831

19-
(put here a link to the roadmap).
32+
Some ideas for future development can be found in the roadmap_ on the
33+
xarray-simlab's Github wiki_.
34+
35+
.. _roadmap: https://github.com/benbovy/xarray-simlab/wiki/Roadmap
36+
.. _wiki: https://github.com/benbovy/xarray-simlab/wiki

doc/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Documentation Index
4646
Get in touch
4747
------------
4848

49-
- Report bugs, suggest features or view the source code `on GitHub`_.
49+
- You can report bugs, suggest features or view the source code `on GitHub`_.
5050

5151
.. _on GitHub: http://github.com/benbovy/xarray-simlab
5252

0 commit comments

Comments
 (0)