matpowercaseframes 2.0.1__tar.gz → 2.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/PKG-INFO +9 -8
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/README.md +3 -2
- matpowercaseframes-2.0.2/matpowercaseframes/__init__.py +15 -0
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/matpowercaseframes/constants.py +51 -0
- matpowercaseframes-2.0.2/matpowercaseframes/core.py +1567 -0
- matpowercaseframes-2.0.2/matpowercaseframes/testing.py +88 -0
- matpowercaseframes-2.0.2/matpowercaseframes/utils.py +27 -0
- matpowercaseframes-2.0.2/matpowercaseframes/version.py +1 -0
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/matpowercaseframes.egg-info/PKG-INFO +9 -8
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/matpowercaseframes.egg-info/SOURCES.txt +1 -0
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/matpowercaseframes.egg-info/requires.txt +5 -5
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/pyproject.toml +5 -5
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/tests/test_core.py +9 -3
- matpowercaseframes-2.0.2/tests/test_read_matpower_cases.py +280 -0
- matpowercaseframes-2.0.2/tests/test_run_matpower_cases.py +46 -0
- matpowercaseframes-2.0.1/matpowercaseframes/__init__.py +0 -2
- matpowercaseframes-2.0.1/matpowercaseframes/core.py +0 -808
- matpowercaseframes-2.0.1/matpowercaseframes/utils.py +0 -11
- matpowercaseframes-2.0.1/matpowercaseframes/version.py +0 -1
- matpowercaseframes-2.0.1/tests/test_read_matpower_cases.py +0 -118
- matpowercaseframes-2.0.1/tests/test_run_matpower_cases.py +0 -16
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/LICENSE.rst +0 -0
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/matpowercaseframes/reader.py +0 -0
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/matpowercaseframes.egg-info/dependency_links.txt +0 -0
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/matpowercaseframes.egg-info/top_level.txt +0 -0
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/setup.cfg +0 -0
- {matpowercaseframes-2.0.1 → matpowercaseframes-2.0.2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: matpowercaseframes
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.2
|
|
4
4
|
Summary: Parse MATPOWER case into pandas DataFrame.
|
|
5
5
|
Author-email: Muhammad Yasirroni <muhammadyasirroni@gmail.com>
|
|
6
6
|
Maintainer-email: Muhammad Yasirroni <muhammadyasirroni@gmail.com>
|
|
@@ -35,11 +35,11 @@ Requires-Dist: numpy>=1.21.5; extra == "dev"
|
|
|
35
35
|
Requires-Dist: oct2py>=5.5.1; extra == "dev"
|
|
36
36
|
Requires-Dist: openpyxl>=3.1.2; extra == "dev"
|
|
37
37
|
Requires-Dist: pandas>=1.2.0; extra == "dev"
|
|
38
|
-
Requires-Dist: pre-commit>=
|
|
39
|
-
Requires-Dist: pytest>=
|
|
40
|
-
Requires-Dist: pytest-cov>=
|
|
41
|
-
Requires-Dist: pytest-xdist>=3.
|
|
42
|
-
Requires-Dist: ruff>=0.
|
|
38
|
+
Requires-Dist: pre-commit>=3.8.0; extra == "dev"
|
|
39
|
+
Requires-Dist: pytest>=9.0.2; extra == "dev"
|
|
40
|
+
Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pytest-xdist>=3.8.0; extra == "dev"
|
|
42
|
+
Requires-Dist: ruff>=0.14.10; extra == "dev"
|
|
43
43
|
Dynamic: license-file
|
|
44
44
|
|
|
45
45
|
# MATPOWER Case Frames
|
|
@@ -128,6 +128,7 @@ m.exit()
|
|
|
128
128
|
Furthermore, `matpowercaseframes` also support generating data that is acceptable by `matpower` via `matpower-pip` package (requires `matlab` or `octave`),
|
|
129
129
|
|
|
130
130
|
```python
|
|
131
|
+
from matpower import start_instance
|
|
131
132
|
from matpowercaseframes import CaseFrames
|
|
132
133
|
|
|
133
134
|
case_path = 'case9.m'
|
|
@@ -152,7 +153,7 @@ LOAD_COL = ["LD_ID", "LD_BUS", "LD_STATUS", "LD_PD", "LD_QD"]
|
|
|
152
153
|
|
|
153
154
|
mpc = m.loadcase('case9', verbose=False)
|
|
154
155
|
cf = CaseFrames(mpc)
|
|
155
|
-
cf.
|
|
156
|
+
cf.set_attribute_as_df('load', mpc.load, columns_template=LOAD_COL)
|
|
156
157
|
```
|
|
157
158
|
|
|
158
159
|
If data already in `DataFrame`, we can use `setattr` directly as follows,
|
|
@@ -165,7 +166,7 @@ m = start_instance()
|
|
|
165
166
|
|
|
166
167
|
mpc = m.loadcase('case9', verbose=False)
|
|
167
168
|
cf = CaseFrames(mpc)
|
|
168
|
-
cf.
|
|
169
|
+
cf.set_attribute('load', df_load)
|
|
169
170
|
```
|
|
170
171
|
|
|
171
172
|
### Export as `xlsx`
|
|
@@ -84,6 +84,7 @@ m.exit()
|
|
|
84
84
|
Furthermore, `matpowercaseframes` also support generating data that is acceptable by `matpower` via `matpower-pip` package (requires `matlab` or `octave`),
|
|
85
85
|
|
|
86
86
|
```python
|
|
87
|
+
from matpower import start_instance
|
|
87
88
|
from matpowercaseframes import CaseFrames
|
|
88
89
|
|
|
89
90
|
case_path = 'case9.m'
|
|
@@ -108,7 +109,7 @@ LOAD_COL = ["LD_ID", "LD_BUS", "LD_STATUS", "LD_PD", "LD_QD"]
|
|
|
108
109
|
|
|
109
110
|
mpc = m.loadcase('case9', verbose=False)
|
|
110
111
|
cf = CaseFrames(mpc)
|
|
111
|
-
cf.
|
|
112
|
+
cf.set_attribute_as_df('load', mpc.load, columns_template=LOAD_COL)
|
|
112
113
|
```
|
|
113
114
|
|
|
114
115
|
If data already in `DataFrame`, we can use `setattr` directly as follows,
|
|
@@ -121,7 +122,7 @@ m = start_instance()
|
|
|
121
122
|
|
|
122
123
|
mpc = m.loadcase('case9', verbose=False)
|
|
123
124
|
cf = CaseFrames(mpc)
|
|
124
|
-
cf.
|
|
125
|
+
cf.set_attribute('load', df_load)
|
|
125
126
|
```
|
|
126
127
|
|
|
127
128
|
### Export as `xlsx`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from .core import (
|
|
2
|
+
CaseFrames,
|
|
3
|
+
DataFramesStruct,
|
|
4
|
+
ReservesFrames,
|
|
5
|
+
xGenDataTableFrames,
|
|
6
|
+
)
|
|
7
|
+
from .version import __version__
|
|
8
|
+
|
|
9
|
+
__all__ = [
|
|
10
|
+
"CaseFrames",
|
|
11
|
+
"DataFramesStruct",
|
|
12
|
+
"ReservesFrames",
|
|
13
|
+
"xGenDataTableFrames",
|
|
14
|
+
"__version__",
|
|
15
|
+
]
|
|
@@ -15,8 +15,17 @@ ATTRIBUTES = (
|
|
|
15
15
|
"dcline",
|
|
16
16
|
"dclinecost",
|
|
17
17
|
"case",
|
|
18
|
+
"reserves",
|
|
19
|
+
"xgd_table",
|
|
20
|
+
"xgd",
|
|
21
|
+
"f",
|
|
22
|
+
"et",
|
|
23
|
+
"success",
|
|
18
24
|
)
|
|
19
25
|
|
|
26
|
+
ATTRIBUTES_NAME = ("bus_name", "branch_name", "gen_name")
|
|
27
|
+
ATTRIBUTES_INFO = ("version", "baseMVA", "f", "et", "success")
|
|
28
|
+
|
|
20
29
|
COLUMNS = {
|
|
21
30
|
"bus": [
|
|
22
31
|
"BUS_I",
|
|
@@ -112,6 +121,48 @@ COLUMNS = {
|
|
|
112
121
|
"MU_QMINT",
|
|
113
122
|
"MU_QMAXT",
|
|
114
123
|
],
|
|
124
|
+
"reserves": {
|
|
125
|
+
"zones": [],
|
|
126
|
+
"req": ["PREQ"],
|
|
127
|
+
"cost": ["C1"],
|
|
128
|
+
"qty": ["PQTY"],
|
|
129
|
+
},
|
|
130
|
+
"xgd_table": [
|
|
131
|
+
"CommitKey",
|
|
132
|
+
"CommitSched",
|
|
133
|
+
"MinUp",
|
|
134
|
+
"MinDown",
|
|
135
|
+
"PositiveActiveReservePrice",
|
|
136
|
+
"PositiveActiveReserveQuantity",
|
|
137
|
+
"NegativeActiveReservePrice",
|
|
138
|
+
"NegativeActiveReserveQuantity",
|
|
139
|
+
"PositiveActiveDeltaPrice",
|
|
140
|
+
"NegativeActiveDeltaPrice",
|
|
141
|
+
"PositiveLoadFollowReservePrice",
|
|
142
|
+
"PositiveLoadFollowReserveQuantity",
|
|
143
|
+
"NegativeLoadFollowReservePrice",
|
|
144
|
+
"NegativeLoadFollowReserveQuantity",
|
|
145
|
+
],
|
|
146
|
+
"xgd": { # xGenData
|
|
147
|
+
"CommitSched": [],
|
|
148
|
+
"InitialPg": [],
|
|
149
|
+
"RampWearCostCoeff": [],
|
|
150
|
+
"PositiveActiveReservePrice": [],
|
|
151
|
+
"PositiveActiveReserveQuantity": [],
|
|
152
|
+
"NegativeActiveReservePrice": [],
|
|
153
|
+
"NegativeActiveReserveQuantity": [],
|
|
154
|
+
"PositiveActiveDeltaPrice": [],
|
|
155
|
+
"NegativeActiveDeltaPrice": [],
|
|
156
|
+
"PositiveLoadFollowReservePrice": [],
|
|
157
|
+
"PositiveLoadFollowReserveQuantity": [],
|
|
158
|
+
"NegativeLoadFollowReservePrice": [],
|
|
159
|
+
"NegativeLoadFollowReserveQuantity": [],
|
|
160
|
+
"TerminalPg": [],
|
|
161
|
+
"CommitKey": [],
|
|
162
|
+
"InitialState": [],
|
|
163
|
+
"MinUp": [],
|
|
164
|
+
"MinDow": [],
|
|
165
|
+
},
|
|
115
166
|
"if": {
|
|
116
167
|
# negative 'BRANCHIDX' defines opposite direction
|
|
117
168
|
"map": ["IFNUM", "BRANCHIDX"],
|