open-space-toolkit-astrodynamics 16.3.1__py312-none-manylinux2014_aarch64.whl → 16.5.0__py312-none-manylinux2014_aarch64.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.1.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/METADATA +1 -1
- {open_space_toolkit_astrodynamics-16.3.1.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/RECORD +20 -15
- ostk/astrodynamics/OpenSpaceToolkitAstrodynamicsPy.cpython-312-aarch64-linux-gnu.so +0 -0
- ostk/astrodynamics/__init__.pyi +5 -5
- 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.1.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/WHEEL +0 -0
- {open_space_toolkit_astrodynamics-16.3.1.dist-info → open_space_toolkit_astrodynamics-16.5.0.dist-info}/top_level.txt +0 -0
- {open_space_toolkit_astrodynamics-16.3.1.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.
|
@@ -1658,7 +1666,7 @@ class StateBuilder:
|
|
1658
1666
|
coordinate_subsets list[CoordinateSubset]: The coordinate subsets.
|
1659
1667
|
|
1660
1668
|
Returns:
|
1661
|
-
StateBuilder
|
1669
|
+
StateBuilder: The new `StateBuilder` object.
|
1662
1670
|
"""
|
1663
1671
|
@typing.overload
|
1664
1672
|
def __init__(self, frame: ostk.physics.coordinate.Frame, coordinate_broker: state.CoordinateBroker) -> None:
|
@@ -1720,18 +1728,18 @@ class StateBuilder:
|
|
1720
1728
|
coordinates (VectorXd): The coordinates of the state.
|
1721
1729
|
|
1722
1730
|
Returns:
|
1723
|
-
State:
|
1731
|
+
State: A `State` object built from the `StateBuilder`.
|
1724
1732
|
"""
|
1725
1733
|
def expand(self, state: State, default_state: State) -> State:
|
1726
1734
|
"""
|
1727
|
-
Expand a `State` object to the `StateBuilder`.
|
1735
|
+
Expand a `State` object to the coordinate subsets of the `StateBuilder`.
|
1728
1736
|
|
1729
1737
|
Arguments:
|
1730
1738
|
state (State): The `State` object to expand.
|
1731
|
-
default_state (State): The
|
1739
|
+
default_state (State): The `State` object used to supply any additional coordinates.
|
1732
1740
|
|
1733
1741
|
Returns:
|
1734
|
-
|
1742
|
+
State: A `State` object with the coordinate subsets of the `StateBuilder`.
|
1735
1743
|
"""
|
1736
1744
|
def get_coordinate_subsets(self) -> list[state.CoordinateSubset]:
|
1737
1745
|
"""
|
@@ -1763,11 +1771,11 @@ class StateBuilder:
|
|
1763
1771
|
"""
|
1764
1772
|
def reduce(self, state: State) -> State:
|
1765
1773
|
"""
|
1766
|
-
Reduce a `State` object to the `StateBuilder`.
|
1774
|
+
Reduce a `State` object to the coordinate subsets of the `StateBuilder`.
|
1767
1775
|
|
1768
1776
|
Arguments:
|
1769
1777
|
state (State): The `State` object to reduce.
|
1770
1778
|
|
1771
1779
|
Returns:
|
1772
|
-
|
1780
|
+
State: A `State` object with the coordinate subsets of the `StateBuilder`.
|
1773
1781
|
"""
|