Comments (2)
Here are some ideas, structured by spreadsheet
Commodity
- Stock commodities must have a numeric attributes for 'price', 'max' and 'maxperstep'. Attribute 'price' must be finite, while the other two may be
inf
inite. - Environmental commodities must have numeric (may be
inf
) values in attributes 'max' and 'maxperstep'. - Emit a (suppressable) warning for all numeric values that are set for Demand and SupIm commodities. They are ignored.
Further thought: Should these basically empty rows point to a bad data model? Essentially, this table could only declare existing (Commodity, Type) tuples and an additional Site-Commodity table could bundle all attributes (including DSM) which are defined over those combinations. Continue this train of thought in another issue, once there is time.
Process
- All columns must be numeric.
- Interval checks: 'cap-lo' <= 'cap-up' and 'inst-cap' <= 'cap-up'. Note that 'inst-cap' < 'cap-lo' is allowed (to enforce minimum capacity expansion goals).
Process-Commodity
- All columns must be numeric.
- Much more advanced: Calculate an indicator from the (hard to spot, if one is not aware of the startup & partial feature) relationship between 'ratio-min' (if set) and the process properties 'min-fraction' and 'startup-cost'. This could trigger an informational message to STDOUT, listing proportional (process, commodity) combinations with an "easy to understand" (whatever that means) indicator of the process characteristic (e.g. efficiency ranges that are possible).
Transmission
- All columns must be numeric.
- Same as for process: checks for 'inst-cap', 'cap-lo', 'cap-up'.
- Efficiency <= 1. At least emit a STRONG warning if not.
Storage
- All columns must be numeric.
- Same as for process: checks for 'inst-cap-c', 'cap-lo-c', 'cap-up-c' and 'inst-cap-p', 'cap-lo-p', 'cap-up-p'.
- As to efficiency: there might be reasons to have 'eff-in' and 'eff-out' assume "interesting" values. Their product, however, should probably be <= 1. Otherwise, emit a warning.
Demand
- All columns must be numeric, finite and non-negative.
SupIm
- All columns must be numeric, non-negative and <= 1.
Buy-Sell-Price
- All columns must be numeric and bounded (but may be negative).
Hacks
- 'Global CO2 limit' must be numeric, though may be
inf
to disable the constraint.
DSM
- All columns must be numeric.
Please add your thoughts and experiences with funny errors caused by logical glitches in your input files, which you hoped that urbs would have told you about right away!
from urbs.
validation.py already exists. Will be further improved.
from urbs.
Related Issues (20)
- Installation error: running runme.py AttributeError: module 'pandas.core' has no attribute 'index' HOT 2
- Errors while running comp.py HOT 3
- DC power flow equation unit HOT 1
- FYI: outdated case-studies 1house + 1node now reproducible
- urbs-env not working properly
- runme.py no execute properly HOT 6
- FYI: Misleading naming instructions in single_year.xlsx example input file
- urbs-env not working - ImportError: DLL load failed - PyTables HOT 1
- using urbs on Mac HOT 1
- Multi Site Electricity Trade
- runme.py throws ModuleNotFoundError error HOT 1
- in file runme.py, when it imports urbs, i get the error ModuleNotFoundError: No module named 'xlrd' HOT 1
- python comp.py fails with KeyError: 'level_0' HOT 2
- Add multi objective function for the model HOT 1
- Overpay factor calculation
- Twice investment cost of the transmission lines is calculated
- Change conversion parameters in scenarios.py HOT 1
- General problems with installation following the instructions HOT 2
- Battery storage technology HOT 1
- HiGHS for urbs?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from urbs.