# Recorders

This page describes the process of creating a new Recorder in WaterStrategy and a selection of the most commonly used Pywrrecorder types, and most commonly used attributes. The full list of built-in recorders and their exhaustive list of attributes are [here](https://pywr.github.io/pywr-docs/master/api/pywr.recorders.html).

{% embed url="<https://youtu.be/ZAGU8HQ78to>" %}

## 1. Creating a Recorder in WaterStrategy

In a Network page, click the 'Recorders' Tab:

<figure><img src="https://2363830371-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FODCd8VK2OOl9jOdp5KFf%2Fuploads%2Fpjrb3LZOXOjzZj85Pt5B%2Fimage.png?alt=media&#x26;token=76b7a83c-76e7-4344-924f-59d48a961025" alt=""><figcaption><p>CLick the 'Recorders' Tab</p></figcaption></figure>

Next to the 'Recorders-Type Categories' Text, click the '+' button and select 'PYWR\_RECORDER':\\

<figure><img src="https://2363830371-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FODCd8VK2OOl9jOdp5KFf%2Fuploads%2Ff37Iwg8xSOfWyWISIq85%2FScreenshot%202024-07-09%20091615.png?alt=media&#x26;token=a55a74fb-a942-48e9-bcd2-38f56083454c" alt=""><figcaption></figcaption></figure>

Enter the name of your recorder. This can be anything you like, <mark style="color:red;">**but must be unique within the network**</mark>**.**

<figure><img src="https://2363830371-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FODCd8VK2OOl9jOdp5KFf%2Fuploads%2FCYvIfPPTuTEeHE83a1nI%2Fimage.png?alt=media&#x26;token=857508ed-33f0-4679-bfb2-0705ea9549b0" alt=""><figcaption></figcaption></figure>

Populate the recorder in the JSON editor:

<figure><img src="https://2363830371-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FODCd8VK2OOl9jOdp5KFf%2Fuploads%2FkYYvZTc8FzlFdev0E8rd%2Fimage.png?alt=media&#x26;token=0585916a-a12d-417d-aef0-6d80a57f7001" alt=""><figcaption></figcaption></figure>

## 2. Recorder editors in WaterStrategy

Currently, there are two different ways to input a Recorder in WaterStrategy. ....

## 3. NumpyArrayNodeRecorder

Recorder for timeseries information from a Node. [API Reference](https://pywr.github.io/pywr-docs/master/api/generated/pywr.recorders.NumpyArrayNodeRecorder.html#pywr.recorders.NumpyArrayNodeRecorder)

This class stores flow from a specific node for each time-step of a simulation. The results of a recorder are output on the Network Attributes panel, and will be named 'simulated\_\<recordername>'

### 3.1. Attributes

<table><thead><tr><th width="196">Name</th><th width="243">Description</th><th>Required</th><th>Default value</th></tr></thead><tbody><tr><td>type</td><td>numpyarraynoderecorder</td><td>Yes</td><td>None</td></tr><tr><td>node</td><td>Name of the node to record</td><td>Yes</td><td>None</td></tr><tr><td>temporal_agg_func</td><td></td><td>Optional</td><td>mean</td></tr><tr><td>agg_func</td><td></td><td>Optional</td><td>mean</td></tr></tbody></table>

### 3.2. Example

```json
{
	"type": "NumpyArrayNodeRecorder",
	"node": "Reservoir 1",
	"temporal_agg_func": "mean",
	"agg_func": "mean"
}
```
