open-space-toolkit-astrodynamics 16.3.0__py313-none-manylinux2014_x86_64.whl → 16.5.0__py313-none-manylinux2014_x86_64.whl
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.
- {open_space_toolkit_astrodynamics-16.3.0.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/METADATA +1 -1
- {open_space_toolkit_astrodynamics-16.3.0.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/RECORD +20 -15
- ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-313-x86_64-linux-gnu.so +0 -0
- ostk/astrodynamics/__init__.pyi +4 -4
- ostk/astrodynamics/flight/__init__.pyi +18 -9
- ostk/astrodynamics/flight/profile/model.pyi +19 -0
- ostk/astrodynamics/libopen-space-toolkit-astrodynamics.so.16 +0 -0
- ostk/astrodynamics/test/flight/profile/model/test_tabulated_profile.py +115 -0
- ostk/astrodynamics/test/flight/test_profile.py +4 -0
- ostk/astrodynamics/test/test_display.py +0 -2
- ostk/astrodynamics/test/test_trajectory.py +28 -7
- ostk/astrodynamics/test/trajectory/model/test_nadir_trajectory.py +87 -0
- ostk/astrodynamics/test/trajectory/model/test_tabulated_trajectory.py +303 -0
- ostk/astrodynamics/test/trajectory/model/test_target_scan_trajectory.py +126 -0
- ostk/astrodynamics/test/trajectory/test_orbit.py +7 -0
- ostk/astrodynamics/trajectory/__init__.pyi +17 -9
- ostk/astrodynamics/trajectory/model.pyi +259 -0
- {open_space_toolkit_astrodynamics-16.3.0.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/WHEEL +0 -0
- {open_space_toolkit_astrodynamics-16.3.0.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/top_level.txt +0 -0
- {open_space_toolkit_astrodynamics-16.3.0.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/zip-safe +0 -0
@@ -0,0 +1,303 @@
|
|
1
|
+
# Apache License 2.0
|
2
|
+
|
3
|
+
import pytest
|
4
|
+
|
5
|
+
import numpy as np
|
6
|
+
|
7
|
+
from ostk.mathematics.curve_fitting import Interpolator
|
8
|
+
|
9
|
+
from ostk.physics.time import Instant
|
10
|
+
from ostk.physics.time import DateTime
|
11
|
+
from ostk.physics.time import Scale
|
12
|
+
from ostk.physics.coordinate import Position
|
13
|
+
from ostk.physics.coordinate import Velocity
|
14
|
+
from ostk.physics.coordinate import Frame
|
15
|
+
|
16
|
+
from ostk.astrodynamics.trajectory import State
|
17
|
+
from ostk.astrodynamics.trajectory.model import Tabulated
|
18
|
+
|
19
|
+
|
20
|
+
@pytest.fixture
|
21
|
+
def reference_states() -> list[State]:
|
22
|
+
data = [
|
23
|
+
[
|
24
|
+
"2023-04-18T08:28:32.744064",
|
25
|
+
-3310024.847608758,
|
26
|
+
-6052528.239971979,
|
27
|
+
7626.534641683145,
|
28
|
+
-855.2088930507367,
|
29
|
+
495.9541573743367,
|
30
|
+
7536.520188134902,
|
31
|
+
],
|
32
|
+
[
|
33
|
+
"2023-04-18T08:28:33.744064",
|
34
|
+
-3310878.047628086,
|
35
|
+
-6052028.610429457,
|
36
|
+
15163.0493833017,
|
37
|
+
-851.1838953959017,
|
38
|
+
503.31279367207185,
|
39
|
+
7536.506322816037,
|
40
|
+
],
|
41
|
+
[
|
42
|
+
"2023-04-18T08:28:34.744064",
|
43
|
+
-3311727.222133691,
|
44
|
+
-6051521.622540367,
|
45
|
+
22699.545682944226,
|
46
|
+
-847.1578341126227,
|
47
|
+
510.67087060642456,
|
48
|
+
7536.483268627912,
|
49
|
+
],
|
50
|
+
[
|
51
|
+
"2023-04-18T08:28:35.744064",
|
52
|
+
-3312572.370064364,
|
53
|
+
-6051007.276868478,
|
54
|
+
30236.014351773065,
|
55
|
+
-843.1307141262514,
|
56
|
+
518.0283791399937,
|
57
|
+
7536.451025467619,
|
58
|
+
],
|
59
|
+
[
|
60
|
+
"2023-04-18T08:28:36.744064",
|
61
|
+
-3313413.490363804,
|
62
|
+
-6050485.573986613,
|
63
|
+
37772.44620082258,
|
64
|
+
-839.1025403636198,
|
65
|
+
525.3853102358,
|
66
|
+
7536.40959324377,
|
67
|
+
],
|
68
|
+
[
|
69
|
+
"2023-04-18T08:28:37.744064",
|
70
|
+
-3314250.5819806806,
|
71
|
+
-6049956.514476612,
|
72
|
+
45308.83204108345,
|
73
|
+
-835.0733177529921,
|
74
|
+
532.7416548573802,
|
75
|
+
7536.358971876497,
|
76
|
+
],
|
77
|
+
[
|
78
|
+
"2023-04-18T08:28:38.744064",
|
79
|
+
-3315083.6438685474,
|
80
|
+
-6049420.098929363,
|
81
|
+
52845.16268340493,
|
82
|
+
-831.0430512241197,
|
83
|
+
540.0974039686765,
|
84
|
+
7536.299161297429,
|
85
|
+
],
|
86
|
+
[
|
87
|
+
"2023-04-18T08:28:39.744064",
|
88
|
+
-3315912.6749859042,
|
89
|
+
-6048876.327944793,
|
90
|
+
60381.42893867038,
|
91
|
+
-827.0117457081434,
|
92
|
+
547.4525485342174,
|
93
|
+
7536.23016144972,
|
94
|
+
],
|
95
|
+
[
|
96
|
+
"2023-04-18T08:28:40.744064",
|
97
|
+
-3316737.6742961914,
|
98
|
+
-6048325.2021318525,
|
99
|
+
67917.62161760827,
|
100
|
+
-822.9794061376964,
|
101
|
+
554.8070795189376,
|
102
|
+
7536.1519722880375,
|
103
|
+
],
|
104
|
+
[
|
105
|
+
"2023-04-18T08:28:41.744064",
|
106
|
+
-3317558.640767768,
|
107
|
+
-6047766.722108539,
|
108
|
+
75453.73153099201,
|
109
|
+
-818.9460374467976,
|
110
|
+
562.1609878883643,
|
111
|
+
7536.064593778564,
|
112
|
+
],
|
113
|
+
[
|
114
|
+
"2023-04-18T08:28:42.744064",
|
115
|
+
-3318375.5733739412,
|
116
|
+
-6047200.888501875,
|
117
|
+
82989.7494894997,
|
118
|
+
-814.9116445709234,
|
119
|
+
569.5142646084902,
|
120
|
+
7535.968025898996,
|
121
|
+
],
|
122
|
+
[
|
123
|
+
"2023-04-18T08:28:43.744064",
|
124
|
+
-3319188.471092942,
|
125
|
+
-6046627.7019479135,
|
126
|
+
90525.66630384693,
|
127
|
+
-810.8762324469382,
|
128
|
+
576.866900645898,
|
129
|
+
7535.862268638544,
|
130
|
+
],
|
131
|
+
[
|
132
|
+
"2023-04-18T08:28:44.744064",
|
133
|
+
-3319997.332907958,
|
134
|
+
-6046047.163091751,
|
135
|
+
98061.47278470133,
|
136
|
+
-806.8398060131411,
|
137
|
+
584.2188869676824,
|
138
|
+
7535.747321997941,
|
139
|
+
],
|
140
|
+
[
|
141
|
+
"2023-04-18T08:28:45.744064",
|
142
|
+
-3320802.157807084,
|
143
|
+
-6045459.272587514,
|
144
|
+
105597.15974279115,
|
145
|
+
-802.8023702092072,
|
146
|
+
591.5702145415504,
|
147
|
+
7535.62318598943,
|
148
|
+
],
|
149
|
+
[
|
150
|
+
"2023-04-18T08:28:46.744064",
|
151
|
+
-3321602.9447833803,
|
152
|
+
-6044864.0310983565,
|
153
|
+
113132.71798877101,
|
154
|
+
-798.7639299762548,
|
155
|
+
598.9208743356983,
|
156
|
+
7535.48986063679,
|
157
|
+
],
|
158
|
+
[
|
159
|
+
"2023-04-18T08:28:47.744064",
|
160
|
+
-3322399.692834845,
|
161
|
+
-6044261.439296465,
|
162
|
+
120668.13833342775,
|
163
|
+
-794.7244902567405,
|
164
|
+
606.2708573190106,
|
165
|
+
7535.347345975296,
|
166
|
+
],
|
167
|
+
[
|
168
|
+
"2023-04-18T08:28:48.744064",
|
169
|
+
-3323192.400964402,
|
170
|
+
-6043651.497863061,
|
171
|
+
128203.41158748553,
|
172
|
+
-790.6840559945587,
|
173
|
+
613.6201544608678,
|
174
|
+
7535.195642051765,
|
175
|
+
],
|
176
|
+
[
|
177
|
+
"2023-04-18T08:28:49.744064",
|
178
|
+
-3323981.068179951,
|
179
|
+
-6043034.207488383,
|
180
|
+
135738.52856182377,
|
181
|
+
-786.6426321349277,
|
182
|
+
620.9687567313651,
|
183
|
+
7535.034748924513,
|
184
|
+
],
|
185
|
+
[
|
186
|
+
"2023-04-18T08:28:50.744064",
|
187
|
+
-3324765.6934943097,
|
188
|
+
-6042409.568871722,
|
189
|
+
143273.48006733102,
|
190
|
+
-782.6002236244674,
|
191
|
+
628.3166551011666,
|
192
|
+
7534.864666663388,
|
193
|
+
],
|
194
|
+
[
|
195
|
+
"2023-04-18T08:28:51.744064",
|
196
|
+
-3325546.2759252544,
|
197
|
+
-6041777.582721372,
|
198
|
+
150808.25691495842,
|
199
|
+
-778.5568354111685,
|
200
|
+
635.6638405415614,
|
201
|
+
7534.68539534976,
|
202
|
+
],
|
203
|
+
]
|
204
|
+
return [
|
205
|
+
State(
|
206
|
+
instant=Instant.date_time(DateTime.parse(row[0]), Scale.UTC),
|
207
|
+
position=Position.meters(
|
208
|
+
[float(row[1]), float(row[2]), float(row[3])], Frame.GCRF()
|
209
|
+
),
|
210
|
+
velocity=Velocity.meters_per_second(
|
211
|
+
[float(row[4]), float(row[5]), float(row[6])], Frame.GCRF()
|
212
|
+
),
|
213
|
+
)
|
214
|
+
for row in data
|
215
|
+
]
|
216
|
+
|
217
|
+
|
218
|
+
@pytest.fixture
|
219
|
+
def test_states(reference_states: list[State]) -> list[State]:
|
220
|
+
return reference_states[::4]
|
221
|
+
|
222
|
+
|
223
|
+
@pytest.fixture
|
224
|
+
def interpolation_type() -> Interpolator.Type:
|
225
|
+
return Interpolator.Type.CubicSpline
|
226
|
+
|
227
|
+
|
228
|
+
@pytest.fixture
|
229
|
+
def tabulated(
|
230
|
+
test_states: list[State],
|
231
|
+
interpolation_type: Interpolator.Type,
|
232
|
+
) -> Tabulated:
|
233
|
+
return Tabulated(
|
234
|
+
states=test_states,
|
235
|
+
interpolation_type=interpolation_type,
|
236
|
+
)
|
237
|
+
|
238
|
+
|
239
|
+
class TestTabulatedTrajectory:
|
240
|
+
@pytest.mark.parametrize(
|
241
|
+
"interpolation_type",
|
242
|
+
(
|
243
|
+
(Interpolator.Type.Linear),
|
244
|
+
(Interpolator.Type.CubicSpline),
|
245
|
+
(Interpolator.Type.BarycentricRational),
|
246
|
+
),
|
247
|
+
)
|
248
|
+
def test_constructor(
|
249
|
+
self,
|
250
|
+
test_states: list[State],
|
251
|
+
interpolation_type: Interpolator.Type,
|
252
|
+
):
|
253
|
+
assert (
|
254
|
+
Tabulated(
|
255
|
+
states=test_states,
|
256
|
+
interpolation_type=interpolation_type,
|
257
|
+
)
|
258
|
+
is not None
|
259
|
+
)
|
260
|
+
|
261
|
+
def test_get_interpolation_type(
|
262
|
+
self,
|
263
|
+
test_states: list[State],
|
264
|
+
tabulated: Tabulated,
|
265
|
+
interpolation_type: Interpolator.Type,
|
266
|
+
):
|
267
|
+
assert tabulated.get_interpolation_type() == Interpolator.Type.CubicSpline
|
268
|
+
|
269
|
+
@pytest.mark.parametrize(
|
270
|
+
"interpolation_type,error_tolerance",
|
271
|
+
(
|
272
|
+
(Interpolator.Type.Linear, 420.0),
|
273
|
+
(Interpolator.Type.CubicSpline, 5e-3),
|
274
|
+
(Interpolator.Type.BarycentricRational, 5e-2),
|
275
|
+
),
|
276
|
+
)
|
277
|
+
def test_calculate_state_at(
|
278
|
+
self,
|
279
|
+
test_states: list[State],
|
280
|
+
reference_states: list[State],
|
281
|
+
interpolation_type: Interpolator.Type,
|
282
|
+
error_tolerance: float,
|
283
|
+
):
|
284
|
+
tabulated: Tabulated = Tabulated(
|
285
|
+
states=test_states,
|
286
|
+
interpolation_type=interpolation_type,
|
287
|
+
)
|
288
|
+
|
289
|
+
for reference_state in reference_states:
|
290
|
+
if not tabulated.get_interval().contains_instant(
|
291
|
+
reference_state.get_instant()
|
292
|
+
):
|
293
|
+
continue
|
294
|
+
|
295
|
+
calculated_state: State = tabulated.calculate_state_at(
|
296
|
+
reference_state.get_instant()
|
297
|
+
)
|
298
|
+
assert np.all(
|
299
|
+
np.abs(
|
300
|
+
calculated_state.get_coordinates() - reference_state.get_coordinates()
|
301
|
+
)
|
302
|
+
< error_tolerance
|
303
|
+
)
|
@@ -0,0 +1,126 @@
|
|
1
|
+
# Apache License 2.0
|
2
|
+
|
3
|
+
import pytest
|
4
|
+
|
5
|
+
from ostk.physics.coordinate.spherical import LLA
|
6
|
+
from ostk.physics.environment.object.celestial import Earth
|
7
|
+
from ostk.physics.time import Instant
|
8
|
+
from ostk.physics.time import DateTime
|
9
|
+
from ostk.physics.time import Scale
|
10
|
+
from ostk.physics.time import Duration
|
11
|
+
from ostk.physics.unit import Derived
|
12
|
+
from ostk.astrodynamics.trajectory.model import TargetScan
|
13
|
+
from ostk.astrodynamics.trajectory import State
|
14
|
+
|
15
|
+
|
16
|
+
@pytest.fixture
|
17
|
+
def earth() -> Earth:
|
18
|
+
return Earth.WGS84()
|
19
|
+
|
20
|
+
|
21
|
+
@pytest.fixture
|
22
|
+
def start_lla() -> LLA:
|
23
|
+
return LLA.vector([0.0, 0.0, 0.0])
|
24
|
+
|
25
|
+
|
26
|
+
@pytest.fixture
|
27
|
+
def end_lla() -> LLA:
|
28
|
+
return LLA.vector([0.0, 1.0, 0.0])
|
29
|
+
|
30
|
+
|
31
|
+
@pytest.fixture
|
32
|
+
def start_instant() -> Instant:
|
33
|
+
return Instant.date_time(DateTime(2023, 1, 1, 0, 0, 0), Scale.UTC)
|
34
|
+
|
35
|
+
|
36
|
+
@pytest.fixture
|
37
|
+
def end_instant() -> Instant:
|
38
|
+
return Instant.date_time(DateTime(2023, 1, 1, 0, 10, 0), Scale.UTC)
|
39
|
+
|
40
|
+
|
41
|
+
@pytest.fixture
|
42
|
+
def target_scan(
|
43
|
+
earth: Earth,
|
44
|
+
start_lla: LLA,
|
45
|
+
end_lla: LLA,
|
46
|
+
start_instant: Instant,
|
47
|
+
end_instant: Instant,
|
48
|
+
) -> TargetScan:
|
49
|
+
return TargetScan(
|
50
|
+
start_lla=start_lla,
|
51
|
+
end_lla=end_lla,
|
52
|
+
start_instant=start_instant,
|
53
|
+
end_instant=end_instant,
|
54
|
+
celestial=earth,
|
55
|
+
)
|
56
|
+
|
57
|
+
|
58
|
+
class TestTargetScan:
|
59
|
+
def test_constructor(
|
60
|
+
self,
|
61
|
+
target_scan: TargetScan,
|
62
|
+
):
|
63
|
+
assert target_scan.is_defined()
|
64
|
+
|
65
|
+
def test_calculate_state_at(
|
66
|
+
self,
|
67
|
+
target_scan: TargetScan,
|
68
|
+
):
|
69
|
+
instant: Instant = Instant.date_time(DateTime(2023, 1, 1, 0, 5, 0), Scale.UTC)
|
70
|
+
state: State = target_scan.calculate_state_at(instant)
|
71
|
+
assert state is not None
|
72
|
+
|
73
|
+
def test_equality_operator(
|
74
|
+
self,
|
75
|
+
target_scan: TargetScan,
|
76
|
+
):
|
77
|
+
assert target_scan == target_scan
|
78
|
+
|
79
|
+
def test_inequality_operator(
|
80
|
+
self,
|
81
|
+
target_scan: TargetScan,
|
82
|
+
start_lla: LLA,
|
83
|
+
end_lla: LLA,
|
84
|
+
start_instant: Instant,
|
85
|
+
earth: Earth,
|
86
|
+
):
|
87
|
+
target_scan2 = TargetScan(
|
88
|
+
start_lla=start_lla,
|
89
|
+
end_lla=end_lla,
|
90
|
+
start_instant=start_instant,
|
91
|
+
end_instant=Instant.undefined(),
|
92
|
+
celestial=earth,
|
93
|
+
)
|
94
|
+
assert target_scan != target_scan2
|
95
|
+
|
96
|
+
def test_getters(
|
97
|
+
self,
|
98
|
+
target_scan: TargetScan,
|
99
|
+
):
|
100
|
+
assert target_scan.get_start_lla() is not None
|
101
|
+
assert target_scan.get_end_lla() is not None
|
102
|
+
assert target_scan.get_start_instant() is not None
|
103
|
+
assert target_scan.get_end_instant() is not None
|
104
|
+
assert target_scan.get_celestial() is not None
|
105
|
+
assert target_scan.get_step_size() is not None
|
106
|
+
|
107
|
+
def test_from_ground_speed(
|
108
|
+
self,
|
109
|
+
start_lla: LLA,
|
110
|
+
end_lla: LLA,
|
111
|
+
start_instant: Instant,
|
112
|
+
earth: Earth,
|
113
|
+
):
|
114
|
+
ground_speed: Derived = Derived(100.0, Derived.Unit.meter_per_second())
|
115
|
+
step_size: Duration = Duration.seconds(1.0)
|
116
|
+
|
117
|
+
target_scan = TargetScan.from_ground_speed(
|
118
|
+
start_lla=start_lla,
|
119
|
+
end_lla=end_lla,
|
120
|
+
ground_speed=ground_speed,
|
121
|
+
start_instant=start_instant,
|
122
|
+
celestial=earth,
|
123
|
+
step_size=step_size,
|
124
|
+
)
|
125
|
+
|
126
|
+
assert target_scan.is_defined()
|
@@ -3,6 +3,7 @@
|
|
3
3
|
import pytest
|
4
4
|
|
5
5
|
from ostk.physics.environment.object.celestial import Earth
|
6
|
+
from ostk.physics.environment.object import Celestial
|
6
7
|
from ostk.physics.unit import Length, Angle
|
7
8
|
from ostk.physics.time import Scale, Instant, DateTime, Time, Duration, Interval
|
8
9
|
|
@@ -58,6 +59,12 @@ class TestOrbit:
|
|
58
59
|
assert state is not None
|
59
60
|
assert isinstance(state, State)
|
60
61
|
|
62
|
+
def test_access_celestial_object(self, orbit: Orbit):
|
63
|
+
celestial_object = orbit.access_celestial_object()
|
64
|
+
|
65
|
+
assert celestial_object is not None
|
66
|
+
assert isinstance(celestial_object, Celestial)
|
67
|
+
|
61
68
|
@pytest.mark.parametrize(
|
62
69
|
"frame_type",
|
63
70
|
[
|
@@ -10,9 +10,10 @@ import ostk.physics.environment.object
|
|
10
10
|
import ostk.physics.time
|
11
11
|
import ostk.physics.unit
|
12
12
|
import typing
|
13
|
+
from . import model
|
13
14
|
from . import orbit
|
14
15
|
from . import state
|
15
|
-
__all__ = ['LocalOrbitalFrameDirection', 'LocalOrbitalFrameFactory', 'LocalOrbitalFrameTransformProvider', 'Model', 'Orbit', 'Propagator', 'Segment', 'Sequence', 'State', 'StateBuilder', 'orbit', 'state']
|
16
|
+
__all__ = ['LocalOrbitalFrameDirection', 'LocalOrbitalFrameFactory', 'LocalOrbitalFrameTransformProvider', 'Model', 'Orbit', 'Propagator', 'Segment', 'Sequence', 'State', 'StateBuilder', 'model', 'orbit', 'state']
|
16
17
|
class LocalOrbitalFrameDirection:
|
17
18
|
"""
|
18
19
|
|
@@ -323,7 +324,7 @@ class LocalOrbitalFrameTransformProvider:
|
|
323
324
|
class Model:
|
324
325
|
"""
|
325
326
|
|
326
|
-
|
327
|
+
Trajectory model.
|
327
328
|
|
328
329
|
|
329
330
|
"""
|
@@ -600,6 +601,13 @@ class Orbit(ostk.astrodynamics.Trajectory):
|
|
600
601
|
...
|
601
602
|
def __str__(self) -> str:
|
602
603
|
...
|
604
|
+
def access_celestial_object(self) -> ostk.physics.environment.object.Celestial:
|
605
|
+
"""
|
606
|
+
Access the celestial object.
|
607
|
+
|
608
|
+
Returns:
|
609
|
+
Celestial: The celestial object.
|
610
|
+
"""
|
603
611
|
def access_kepler_model(self) -> ...:
|
604
612
|
"""
|
605
613
|
Access the Kepler orbit model.
|
@@ -1656,7 +1664,7 @@ class StateBuilder:
|
|
1656
1664
|
coordinate_subsets list[CoordinateSubset]: The coordinate subsets.
|
1657
1665
|
|
1658
1666
|
Returns:
|
1659
|
-
StateBuilder
|
1667
|
+
StateBuilder: The new `StateBuilder` object.
|
1660
1668
|
"""
|
1661
1669
|
@typing.overload
|
1662
1670
|
def __init__(self, frame: ostk.physics.coordinate.Frame, coordinate_broker: state.CoordinateBroker) -> None:
|
@@ -1718,18 +1726,18 @@ class StateBuilder:
|
|
1718
1726
|
coordinates (VectorXd): The coordinates of the state.
|
1719
1727
|
|
1720
1728
|
Returns:
|
1721
|
-
State:
|
1729
|
+
State: A `State` object built from the `StateBuilder`.
|
1722
1730
|
"""
|
1723
1731
|
def expand(self, state: State, default_state: State) -> State:
|
1724
1732
|
"""
|
1725
|
-
Expand a `State` object to the `StateBuilder`.
|
1733
|
+
Expand a `State` object to the coordinate subsets of the `StateBuilder`.
|
1726
1734
|
|
1727
1735
|
Arguments:
|
1728
1736
|
state (State): The `State` object to expand.
|
1729
|
-
default_state (State): The
|
1737
|
+
default_state (State): The `State` object used to supply any additional coordinates.
|
1730
1738
|
|
1731
1739
|
Returns:
|
1732
|
-
|
1740
|
+
State: A `State` object with the coordinate subsets of the `StateBuilder`.
|
1733
1741
|
"""
|
1734
1742
|
def get_coordinate_subsets(self) -> list[state.CoordinateSubset]:
|
1735
1743
|
"""
|
@@ -1761,11 +1769,11 @@ class StateBuilder:
|
|
1761
1769
|
"""
|
1762
1770
|
def reduce(self, state: State) -> State:
|
1763
1771
|
"""
|
1764
|
-
Reduce a `State` object to the `StateBuilder`.
|
1772
|
+
Reduce a `State` object to the coordinate subsets of the `StateBuilder`.
|
1765
1773
|
|
1766
1774
|
Arguments:
|
1767
1775
|
state (State): The `State` object to reduce.
|
1768
1776
|
|
1769
1777
|
Returns:
|
1770
|
-
|
1778
|
+
State: A `State` object with the coordinate subsets of the `StateBuilder`.
|
1771
1779
|
"""
|