An open API service indexing awesome lists of open source software.

https://github.com/jimlynchcodes/capacity-testing-sieve-stack

Math stuff for measuring solar panel performance. 📊
https://github.com/jimlynchcodes/capacity-testing-sieve-stack

Last synced: about 1 year ago
JSON representation

Math stuff for measuring solar panel performance. 📊

Awesome Lists containing this project

README

          

# Capacity Testing Data Point Sieve Stack

A function that filters data points for ASTM 2848-13 capacity and performance ratio tests!



## What's Here

Custom Types:

- CapacityTestDataPoint: All the input data from observed weather, numbers from the models, and timestamp.

Functions:

- send_through_sieve_stack: Takes a collection of one or more CapacityTestDataPoints and returns the subset of data points that should be used for the capacity performance ratio tests.


## Inputs
The CapacityTestDataPoint represents all the inputs needed for the send_through_sieve_stack logic. This includes:

- Raw data from the PVSYST model:
1. Global Horizontal (GHI) irradiance
2. Ambient temperature
3. Wind speed
4. Correction factors (relevant to calculate plane of array (POA) irradiance)
5. Timestamp

- Climate and performance data from your data acquisition system:
1. Temperature
2. Wind speed
3. Plane of array (POA) irradiance
4. Timestamp


## Filtering Logic

This is roughly how the sieve stack decides which data points keep and which to filter out.

- 50 / 15-minute points (huh?)
- Exclude data below 400w/m2
- Exclude data above the clipping point of the inverter
- Reporting condition POA should be sorted in a +/-20% range

- Temperature sorting requirements?

- Wind sorting requirements?

- Exclusions applied "because they do not correlate with the performance"?


## Running The Code

Steps for running the Rust code here.


### 0) Install
The command line tool _"cargo"_ is used for this Rust project. It can be easily installed on linux, mac, and windows via [rustup](https://rustup.rs/).


### 1) Run Unit Tests
The unit tests are sets of inputs and expected filtered outputs for different situations in order to check that send_through_sieve_stack function correctly sieves in all cases.
```sh
cargo test
```


### 2) Run Locally
Allows you to run the send_through_sieve_stack function with your own custom input data points and inspect the result.

First, edit the `input_data_points.cvs` file with your desired custom input data.

Then run the start command:
```
cargo start
```


### 3) Deploy?
Deploy the "send_through_sieve_stack" function and a Rust _library_ so that it can be used... somewhere else?


## More Info On ASTM E2848 Capacity Testing

- [ASTM E2848 Capacity Test For Beginners Blog Post](https://www.purepower.com/blog/astm-e2848-capacity-test-for-beginners)


## Other Possible Names
Here are some other potential names for this project:

- Sieve Stack 6000
- Pure Sieve Stack
- DSD Sieve Stack
- Sievester Stallone
- Sievezilla
- Keanu Sieves
- A Sieve Sieves
- Sieve City
- The Grim Siever
- Savage Sieve Stack
- Let's Sieve We Can Do This
- New Year's Sieve Stack
- Sieveral Names At Once
- Sieven Spielberg
- Sieve You Can Think Of Any!