precooltool
an online web application that enables you simulate solar pre-cooling for a range of exsiting buildings in Australian building stock.
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: sciencedirect.com -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.7%) to scientific vocabulary
Keywords
Repository
an online web application that enables you simulate solar pre-cooling for a range of exsiting buildings in Australian building stock.
Basic Info
- Host: GitHub
- Owner: ShayanNaderi
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: http://www.precooltool.com/
- Size: 3.23 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Residential Solar Pre-Cooling Tool (RESPCT)
RESPCT is an online web application that enables you simulate solar pre-cooling for a range of exsiting buildings
in Australian building stock.
Badges can go here
pre-cooling and solar pre-cooling background
Pre-cooling means running the air conditioning (AC) before peak periods, and reducing the indoor temperautre below the temperature that is usaully set by occupants. The reduction of indoor temperature then reduces the temperature of thermal mass in the building, and the cooled down thermal mass results in lower cooling demand later in the day.
If the surplus PV generation from the rooftop PV system is used to pre-cool the building instead of the imported electricity from the grid, it is defined as solar pre-cooling. to learn more about pre-cooling and solar pre-cooling please refer to the following papers:
- Demand response via pre-cooling and solar pre-cooling: A review
- Consumer cost savings, improved thermal comfort, and reduced peak air conditioning demand through pre-cooling in Australian housing
Overview of the tool
RESPCT is an online web application that allows you simulate pre-cooling and solar pre-cooling for a range of existing
buildings in Australian building stock. It has a database of the thermal behavior of the available buildings that allows
you simulate the AC demand, indoor temperature, electricity cost, and the thermal discomfort index.
Summary page and statistics
The tool has two tabs. Be selecting the Solar pre-cooling potential in Australia at the top left, the user can see
a range of statistics about the current building in Australia, and their solar pre-cooling potential.
How to use the simulation tool
By clicking on Simulation tool tab in the top left, the simulation tool appears.
The user need to answer to a few questions.
Create thermal model
The first step is to create the thermal model of the building. The user can choose the location, star rating, construction weight, dwelling type, and floor area.
Define occupied periods
There are fields for the user to enter their typical occupancy patterns. It is done easily be selecting the occupied periods in the checkbox.
Define ideal indoor temperature
The preferred indoor temperature during occupied hours and acceptable deviation from the ideal temperature is done under
the Ideal indoor temperature button.
Tariff structure
There is a database of the available tariffs in Australia, from which the user can choose.
Air conditioning excluded demand
There is a database of AC excluded net demand profiles from around 450 Australian households. The user can choose the demand profile that is similar to their consumption. The result of solar pre-cooling is sensitive to the demand profile, and you can try different demand profiles to understand the effect of changing the behaviour on the potential savings.
Air condition and PV system
PV generation and the amount of surplus PV generation after meeting households demand must be available for simulating solar pre-cooling. For simulating the performance of the rooftop PV system, the user needs to enter the rated capacity of the PV system, and the orientaion of the panels.
Adding the created case study
After entering all the information, the user must choose a name for the case study, and click on Add the case study.
The user can add as many case studies as they want. For example, two case that are similar from all aspects but they have different star rating. This helps the user
understand how much the solar pre-cooling potential changes if they renovate their building and implement some energy
efficient measures.
It is also possible to delete all the case studies by clicking on Clean all case studies.
Running the simulation
The last step is to run the solar pre-cooling simulation by clicking on Run solar pre-cooling.
Visualization of the reuslts
The user can choose different figures from the dropdown to visualize the result of solar pre-cooling. The avaialable figures are AC demand, monthly cost savings, thermal discomfort reduction, and surplus PV generation.
Useful links
Nothing helps as much as examples.
- This is a great guide that provides a brief overview of all the tools we use in this template.
- All of the tooling is based on
UNSW CEEM Python Package Template
Documentation
Quick start
Check out the Documentation
to understand the algorithms and datasets used in RESPCT, and for guide on to use RESPCT.
Basic
Updating repo info
Poetry
Poetry is used for dependency management, dependency resolution and can also be used as a build tool.
- Install
poetry- Edit the project info in
pyproject.toml, or delete it and usepoetry initto start from scratch (if you are proceeding to the next few sections, it is best not to delete the existigpyproject.toml) - You can add dependencies in the
pyproject.tomlor use the command line:- You can add a core dependency via
poetry add, e.g.poetry add pandas - You can add dependencies to a group (adding to a group is optional) using
poetry add pytest --group test - You can install the dependencies from
poetry.lock, including optional groups, usingpoetry install --with=test - You can update dependencies and create a
poetry.lockfile usingpoetry update
- You can add a core dependency via
- Run scripts with
poetry run, or jsut spawn a shell in the poetry virtual environment usingpoetry shelland then run your code - Commit
pyproject.tomlandpoetry.lockto version control
- Edit the project info in
Testing
- To install testing dependencies, use
poetry install --with=test - Put your tests in
tests/ - Run your tests by running
pytestin the project directory - Test coverage will be in
tests/htmlcov/index.html
Intermediate
Linters, Auto-formatting and pre-commit
Because code shouldn't look awful. We will be using isort (import sorting), flake8 (python linter) and black (an autoformatter) via pre-commit.
pre-commit streamlines creating pre-commit hooks, which are run prior to a commit being accepted by git (locally). This way, your code won't be committed if there are style issues (some of which will be automatically addressed by black or isort, after which you must stage any further changes).
- Install the style packages using
poetry install --with=style - (Optional) Configure any additional pre-commit hooks in the YAML
- Run
pre-commit installto install the hooks - To run manually, you can run
pre-commit run -a. Alternatively, these hooks will run as you try and commit changes - (Optional) Install
blackextensions that auto-format on save in your favourite IDE
Automated testing and publishing to PyPI
Both of these can be achieved via GitHub Actions.
Note that some testing config is specified in the pyproject.toml.
- The workflow is located here. It is commented to give you an understanding of what it does
- Automatically runs linting and autoformatting as above
- If that passes, then runs your code tests across Mac and Ubuntu for a couple of Python versions
- If a GitHub release is created based on a Git tag, it will build the package and upload to PyPI
- To get this to work, you will need to add your PyPI username and password as GitHub secrets
- Uncomment the lines specified. This should allow the workflow to run on a push, pull-request or when manually triggered. Note that publishing to PyPI is only triggered on a release
- Activate the workflow. Do this by navigating to the Actions tab, selecting
...and activating it.
Advanced
If you've made it this far, well done. Prepare for the most tricky bit: documentation
This section is a WIP. We will add to it as we come across good resources.
Documentation
Documentation is located in the docs folder.
This project uses:
- Sphinx to generate documentation. Sphinx is based on reStructuredText.
- We use several Sphinx extensions that make using Sphinx easier
- Sphinx is configured in
conf.py
- MyST, a parser which optionally lets you write your documentation using Markdown. If you know Markdown, this can reduce, but not eliminate, the need for reStructuredText.
- readthedocs to host our documentation online. You'll need to link RtD to your repo (see here). Settings can be configured in the YAML
Gotcha: clearing your browser cache
If you make changes to your docs, successfully build it locally (see below) or on RtD and then see that no change has been made, your browser may be caching the old version of the docs. Clear your browser cache and then try again.
Building locally
First, install the packages required for buildings docs using poetry install --with=docs
You can test whether your documentation builds locally by using the commands offered by the Makefile. To do this, change directory to docs and run make to see build options. The easiest option is make html.
Sphinx tutorials
There is a fair bit to learn to be able to write docs. Even if you use MyST, you will need to learn about roles and directives.
Here are some tutorials: - A tutorial prepared for PyCon 2021 - The official Sphinx tutorial
Examples
Tool Config
flake8is configured by .flake8pytest,isortandmypy(not included) can be configured in the pyproject.toml- See relevant sections above for config for
pre-commit,read-the-docsand Sphinx
Contributing
Interested in contributing? Check out the contributing guidelines, which also includes steps to install your_package for development.
Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.
License
RESPCT was created by Shayan Naderi. It is licensed under the terms of the MIT.
Credits
This template was created using cookiecutter, the py-pkgs-cookiecutter template and using Marwan Debbiche's excellent walkthrough
Owner
- Name: Shayan Naderi
- Login: ShayanNaderi
- Kind: user
- Location: Sydney, Australia
- Company: @UNSW-CEEM
- Repositories: 2
- Profile: https://github.com/ShayanNaderi
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Naderi" given-names: "Shayan" orcid: "https://orcid.org/0000-0002-1985-0254" title: "Residnetial Solar Pre-Cooling Tool (RESPCT)" version: 0.1.0 date-released: 2022-10-20 url: "https://github.com/ShayanNaderi/RESPCT"
GitHub Events
Total
- Watch event: 1
Last Year
- Watch event: 1
Committers
Last synced: about 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Shayan | s****4@g****m | 36 |
| Shayan | 6****i | 1 |
Issues and Pull Requests
Last synced: about 2 years ago
All Time
- Total issues: 0
- Total pull requests: 4
- Average time to close issues: N/A
- Average time to close pull requests: 1 minute
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 4
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- ShayanNaderi (4)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- 141 dependencies
- dash ^2.6.2
- dash-bootstrap-components ^1.2.1
- diskcache ^5.4.0
- matplotlib ^3.6.1
- pandas ^1.5.1
- pvlib ^0.9.3
- python ^3.8
- sklearn ^0.0
- statsmodels ^0.13.2