Core Tools¶
The core subpackage of HydPy essentially defines how models can and should be programmed, documented and applied. As can be seen in the side-bar, the list of modules contained in the core subpackage is quite large. The following paragraphs try to give some hints to novices, which basic aspects of using HydPy are related with which module.
Module hydpytools
provides the HydPy
class. The main purpose
of this class is to help users accomplish possibly complex things via
a simple interface. Very often, you will only need to initialize an
HydPy
object and to call its methods in order to e.g. load all input
data, perform a simulation run, and to store the relevant results.
So trying to get an overview of the methods of class HydPy
is generally
a good idea.
The documentation on module filetools
describes the standard
directory structure of HydPy projects. Module filetools
offers some flexibility in adjusting this project structure to your
needs. Also, it is responsible for many aspects of loading data from
files and storing data to files. It is supplemented by module
netcdftools
for reading data from and storing data to NetCDF files.
HydPy represents the network of a river basin via connected
objects of the classes Node
and Element
. These are defined in module
devicetools
. It is often helpful to define subsets of networks, which
is provided by module selectiontools
. In this context, reading the
documentation on module networktools
could also be of interest, as it
implements strategies to define HydPy networks in large basins.
The actual data to run a certain model is handled in control files
(containing parameter values), condition files (containing state
conditions) and sequence files (containing input or output time
series). Modules parametertools
and sequencetools
provide
features to handle these different kinds of data.
Module timetools
provides the Timegrids
class, of which an object
needs to be stored in the “global information” module pub
. Use this
Timegrids
object to define the time period for which data shall be
initialized and the time period for which one simulation (or multiple
simulations) shall be performed.
The other modules serve more special purposes. If you are thinking
about adding new code to HydPy or changing existing one, you
should read the documentation of some other modules as well.
autodoctools
provides features for automatically generating this
online documentation. Modules testtools
provides features for
testing new code (or old code, that has not been covered by the
existing tests so far). Module objecttools
(need to be refactored)
provides very different kinds of features to simplify and standardize
writing HydPy code.