rtc-tools 2.7.1__tar.gz → 2.7.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.
- {rtc_tools-2.7.1/src/rtc_tools.egg-info → rtc_tools-2.7.2}/PKG-INFO +2 -2
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/README.md +6 -6
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/setup.py +1 -1
- {rtc_tools-2.7.1 → rtc_tools-2.7.2/src/rtc_tools.egg-info}/PKG-INFO +2 -2
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtc_tools.egg-info/requires.txt +1 -1
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/_version.py +3 -3
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/pi.py +37 -24
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/rtctoolsapp.py +1 -1
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/COPYING.LESSER +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/MANIFEST.in +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/pyproject.toml +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/setup.cfg +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtc_tools.egg-info/SOURCES.txt +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtc_tools.egg-info/dependency_links.txt +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtc_tools.egg-info/entry_points.txt +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtc_tools.egg-info/top_level.txt +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/__init__.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/_internal/__init__.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/_internal/alias_tools.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/_internal/caching.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/_internal/casadi_helpers.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/_internal/debug_check_helpers.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/__init__.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/csv.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/interpolation/__init__.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/interpolation/bspline.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/interpolation/bspline1d.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/interpolation/bspline2d.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/netcdf.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/rtc.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/data/storage.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/__init__.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/collocated_integrated_optimization_problem.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/control_tree_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/csv_lookup_table_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/csv_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/goal_programming_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/goal_programming_mixin_base.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/homotopy_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/initial_state_estimation_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/io_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/linearization_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/linearized_order_goal_programming_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/min_abs_goal_programming_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/modelica_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/netcdf_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/optimization_problem.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/pi_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/planning_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/single_pass_goal_programming_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/timeseries.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/simulation/__init__.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/simulation/csv_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/simulation/io_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/simulation/pi_mixin.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/simulation/simulation_problem.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/util.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/tests/test_case.py +0 -0
- {rtc_tools-2.7.1 → rtc_tools-2.7.2}/versioneer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rtc-tools
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.2
|
|
4
4
|
Summary: Toolbox for control and optimization of water systems.
|
|
5
5
|
Home-page: https://oss.deltares.nl/web/rtc-tools/home
|
|
6
6
|
Download-URL: http://github.com/deltares/rtc-tools/
|
|
@@ -25,7 +25,7 @@ Classifier: Operating System :: Unix
|
|
|
25
25
|
Classifier: Operating System :: MacOS
|
|
26
26
|
Requires-Python: >=3.9
|
|
27
27
|
License-File: COPYING.LESSER
|
|
28
|
-
Requires-Dist: casadi!=3.6.6
|
|
28
|
+
Requires-Dist: casadi!=3.6.6,<3.8,>=3.6.3
|
|
29
29
|
Requires-Dist: numpy>=1.16.0
|
|
30
30
|
Requires-Dist: scipy>=1.0.0
|
|
31
31
|
Requires-Dist: pymoca==0.9.*,>=0.9.1
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Deltares RTC-Tools
|
|
2
2
|
|
|
3
|
-
[](
|
|
4
|
+
https://github.com/rtc-tools/rtc-tools/actions/workflows/ci.yml
|
|
5
5
|
)
|
|
6
6
|
[
|
|
57
57
|
to here.
|
|
58
58
|
To change the git remote url, run
|
|
59
59
|
|
|
60
|
-
`git remote set-url origin https://github.com/
|
|
60
|
+
`git remote set-url origin https://github.com/rtc-tools/rtc-tools.git`
|
|
61
61
|
|
|
62
62
|
and
|
|
63
63
|
|
|
64
|
-
`git remote set-url --push origin https://github.com/
|
|
64
|
+
`git remote set-url --push origin https://github.com/rtc-tools/rtc-tools.git`.
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
## License
|
|
@@ -73,4 +73,4 @@ and can be used free of charge. Deltares offers support packages for users who r
|
|
|
73
73
|
If you use RTC-Tools in your work, please acknowledge it in any resulting publications.
|
|
74
74
|
You can do this by citing RTC-Tools and providing a link to our
|
|
75
75
|
[website](https://oss.deltares.nl/web/rtc-tools/home) or
|
|
76
|
-
[GitHub repository](https://github.com/
|
|
76
|
+
[GitHub repository](https://github.com/rtc-tools/rtc-tools).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rtc-tools
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.2
|
|
4
4
|
Summary: Toolbox for control and optimization of water systems.
|
|
5
5
|
Home-page: https://oss.deltares.nl/web/rtc-tools/home
|
|
6
6
|
Download-URL: http://github.com/deltares/rtc-tools/
|
|
@@ -25,7 +25,7 @@ Classifier: Operating System :: Unix
|
|
|
25
25
|
Classifier: Operating System :: MacOS
|
|
26
26
|
Requires-Python: >=3.9
|
|
27
27
|
License-File: COPYING.LESSER
|
|
28
|
-
Requires-Dist: casadi!=3.6.6
|
|
28
|
+
Requires-Dist: casadi!=3.6.6,<3.8,>=3.6.3
|
|
29
29
|
Requires-Dist: numpy>=1.16.0
|
|
30
30
|
Requires-Dist: scipy>=1.0.0
|
|
31
31
|
Requires-Dist: pymoca==0.9.*,>=0.9.1
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-
|
|
11
|
+
"date": "2025-11-25T14:13:12+0100",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.7.
|
|
14
|
+
"full-revisionid": "280b3e8717728329dcbec06fd57fd2e61d5dadbf",
|
|
15
|
+
"version": "2.7.2"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -411,6 +411,7 @@ class Timeseries:
|
|
|
411
411
|
self.__forecast_index = None
|
|
412
412
|
self.__contains_ensemble = False
|
|
413
413
|
self.__ensemble_size = 1
|
|
414
|
+
ensemble_indexes = set()
|
|
414
415
|
for series in self.__xml_root.findall("pi:series", ns):
|
|
415
416
|
header = series.find("pi:header", ns)
|
|
416
417
|
|
|
@@ -471,14 +472,23 @@ class Timeseries:
|
|
|
471
472
|
|
|
472
473
|
el = header.find("pi:ensembleMemberIndex", ns)
|
|
473
474
|
if el is not None:
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
475
|
+
ensemble_indexes.add(int(el.text))
|
|
476
|
+
|
|
477
|
+
# We assume the ensemble ids are zero-based and increasing by 1
|
|
478
|
+
if len(ensemble_indexes) > 1:
|
|
479
|
+
# check if ids are zero-based and increasing by 1
|
|
480
|
+
sorted_ensemble_indexes = sorted(ensemble_indexes)
|
|
481
|
+
if sorted_ensemble_indexes != list(range(len(sorted_ensemble_indexes))):
|
|
482
|
+
raise ValueError(
|
|
483
|
+
"PI: Ensemble ids must be zero-based and increasing by 1 when more than one"
|
|
484
|
+
" ensemble member is present."
|
|
485
|
+
)
|
|
486
|
+
self.__contains_ensemble = True
|
|
487
|
+
self.__ensemble_size = len(ensemble_indexes)
|
|
488
|
+
else:
|
|
489
|
+
# There are no ensemble members, or a single ensemble member of arbitrary id
|
|
490
|
+
self.__contains_ensemble = False
|
|
491
|
+
self.__ensemble_size = 1
|
|
482
492
|
|
|
483
493
|
# Define the times, and floor the global forecast_datetime to the
|
|
484
494
|
# global time step to get its index
|
|
@@ -538,24 +548,27 @@ class Timeseries:
|
|
|
538
548
|
end_datetime = self.__parse_date_time(header.find("pi:endDate", ns))
|
|
539
549
|
|
|
540
550
|
make_virtual_ensemble = False
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
self.__values
|
|
546
|
-
|
|
547
|
-
self.__units
|
|
551
|
+
if self.__contains_ensemble:
|
|
552
|
+
el = header.find("pi:ensembleMemberIndex", ns)
|
|
553
|
+
if el is not None:
|
|
554
|
+
ensemble_member = int(el.text)
|
|
555
|
+
while ensemble_member >= len(self.__values):
|
|
556
|
+
self.__values.append({})
|
|
557
|
+
while ensemble_member >= len(self.__units):
|
|
558
|
+
self.__units.append({})
|
|
559
|
+
else:
|
|
560
|
+
ensemble_member = 0
|
|
561
|
+
if el is None:
|
|
562
|
+
# Expand values dict to accommodate referencing of (virtual)
|
|
563
|
+
# ensemble series to the input values. This is e.g. needed
|
|
564
|
+
# for initial states that have a single historical values.
|
|
565
|
+
while self.ensemble_size > len(self.__values):
|
|
566
|
+
self.__values.append({})
|
|
567
|
+
while self.ensemble_size > len(self.__units):
|
|
568
|
+
self.__units.append({})
|
|
569
|
+
make_virtual_ensemble = True
|
|
548
570
|
else:
|
|
549
571
|
ensemble_member = 0
|
|
550
|
-
if el is None and self.contains_ensemble is True:
|
|
551
|
-
# Expand values dict to accommodate referencing of (virtual)
|
|
552
|
-
# ensemble series to the input values. This is e.g. needed
|
|
553
|
-
# for initial states that have a single historical values.
|
|
554
|
-
while self.ensemble_size > len(self.__values):
|
|
555
|
-
self.__values.append({})
|
|
556
|
-
while self.ensemble_size > len(self.__units):
|
|
557
|
-
self.__units.append({})
|
|
558
|
-
make_virtual_ensemble = True
|
|
559
572
|
|
|
560
573
|
if self.__dt:
|
|
561
574
|
n_values = int(
|
|
@@ -105,7 +105,7 @@ def download_examples(*args):
|
|
|
105
105
|
|
|
106
106
|
version = rtctools.__version__
|
|
107
107
|
try:
|
|
108
|
-
url = "https://github.com/
|
|
108
|
+
url = "https://github.com/rtc-tools/rtc-tools/zipball/{}".format(version)
|
|
109
109
|
|
|
110
110
|
opener = urllib.request.build_opener()
|
|
111
111
|
urllib.request.install_opener(opener)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/goal_programming_mixin_base.py
RENAMED
|
File without changes
|
|
File without changes
|
{rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/initial_state_estimation_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/min_abs_goal_programming_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{rtc_tools-2.7.1 → rtc_tools-2.7.2}/src/rtctools/optimization/single_pass_goal_programming_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|