open-space-toolkit-physics 11.2.1__py311-none-manylinux2014_x86_64.whl → 12.0.0__py311-none-manylinux2014_x86_64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. {open_space_toolkit_physics-11.2.1.dist-info → open_space_toolkit_physics-12.0.0.dist-info}/METADATA +3 -3
  2. {open_space_toolkit_physics-11.2.1.dist-info → open_space_toolkit_physics-12.0.0.dist-info}/RECORD +35 -13
  3. {open_space_toolkit_physics-11.2.1.dist-info → open_space_toolkit_physics-12.0.0.dist-info}/WHEEL +1 -1
  4. ostk/physics/OpenSpaceToolkitPhysicsPy.cpython-311-x86_64-linux-gnu.so +0 -0
  5. ostk/physics/__init__.pyi +488 -0
  6. ostk/physics/coordinate/__init__.pyi +1002 -0
  7. ostk/physics/coordinate/frame/__init__.pyi +30 -0
  8. ostk/physics/coordinate/frame/provider/__init__.pyi +77 -0
  9. ostk/physics/coordinate/frame/provider/iau.pyi +64 -0
  10. ostk/physics/coordinate/frame/provider/iers.pyi +584 -0
  11. ostk/physics/coordinate/spherical.pyi +421 -0
  12. ostk/physics/data/__init__.pyi +459 -0
  13. ostk/physics/data/provider.pyi +21 -0
  14. ostk/physics/environment/__init__.pyi +108 -0
  15. ostk/physics/environment/atmospheric/__init__.pyi +181 -0
  16. ostk/physics/environment/atmospheric/earth.pyi +552 -0
  17. ostk/physics/environment/gravitational/__init__.pyi +559 -0
  18. ostk/physics/environment/gravitational/earth.pyi +56 -0
  19. ostk/physics/environment/magnetic/__init__.pyi +171 -0
  20. ostk/physics/environment/magnetic/earth.pyi +56 -0
  21. ostk/physics/environment/object/__init__.pyi +430 -0
  22. ostk/physics/environment/object/celestial/__init__.pyi +248 -0
  23. ostk/physics/environment/object/celestial/moon.pyi +2 -0
  24. ostk/physics/environment/object/celestial/sun.pyi +2 -0
  25. ostk/physics/{libopen-space-toolkit-physics.so.11 → libopen-space-toolkit-physics.so.12} +0 -0
  26. ostk/physics/test/coordinate/frame/provider/iers/conftest.py +2 -5
  27. ostk/physics/test/coordinate/frame/provider/iers/test_bulletin_a.py +1 -4
  28. ostk/physics/test/coordinate/frame/provider/iers/test_finals_2000a.py +1 -4
  29. ostk/physics/test/coordinate/spherical/test_lla.py +24 -0
  30. ostk/physics/test/coordinate/test_position.py +129 -134
  31. ostk/physics/test/environment/atmospheric/earth/test_cssi_space_weather.py +11 -8
  32. ostk/physics/time.pyi +1744 -0
  33. ostk/physics/unit.pyi +1590 -0
  34. {open_space_toolkit_physics-11.2.1.dist-info → open_space_toolkit_physics-12.0.0.dist-info}/top_level.txt +0 -0
  35. {open_space_toolkit_physics-11.2.1.dist-info → open_space_toolkit_physics-12.0.0.dist-info}/zip-safe +0 -0
@@ -0,0 +1,552 @@
1
+ from __future__ import annotations
2
+ import ostk.core.filesystem
3
+ import ostk.core.type
4
+ import ostk.physics
5
+ import ostk.physics.coordinate
6
+ import ostk.physics.coordinate.spherical
7
+ import ostk.physics.environment.object
8
+ import ostk.physics.time
9
+ import ostk.physics.unit
10
+ import typing
11
+ __all__ = ['CSSISpaceWeather', 'Exponential', 'Manager', 'NRLMSISE00']
12
+ class CSSISpaceWeather:
13
+ """
14
+
15
+ Center for Space Weather and Innovation (CSSI) Space Weather data file.
16
+
17
+ Consolidated data set which contains solar radiation and geomagnetic indices.
18
+ Particularly contains the F10.7 solar flux index and Ap/Kp geomagnetic indices,
19
+ which are commonly used to model atmospheric density.
20
+
21
+ :reference: http://celestrak.org/SpaceData/SpaceWx-format.php
22
+
23
+
24
+ """
25
+ class Reading:
26
+ """
27
+
28
+ CSSI Space Weather reading.
29
+
30
+
31
+ """
32
+ @staticmethod
33
+ def _pybind11_conduit_v1_(*args, **kwargs):
34
+ ...
35
+ @property
36
+ def ap_1(self) -> ostk.core.type.Integer:
37
+ """
38
+ Planetary Equivalent Amplitude (Ap) for 0000-0300 UT.
39
+ """
40
+ @property
41
+ def ap_2(self) -> ostk.core.type.Integer:
42
+ """
43
+ Planetary Equivalent Amplitude (Ap) for 0300-0600 UT.
44
+ """
45
+ @property
46
+ def ap_3(self) -> ostk.core.type.Integer:
47
+ """
48
+ Planetary Equivalent Amplitude (Ap) for 0600-0900 UT.
49
+ """
50
+ @property
51
+ def ap_4(self) -> ostk.core.type.Integer:
52
+ """
53
+ Planetary Equivalent Amplitude (Ap) for 0900-1200 UT.
54
+ """
55
+ @property
56
+ def ap_5(self) -> ostk.core.type.Integer:
57
+ """
58
+ Planetary Equivalent Amplitude (Ap) for 1200-1500 UT.
59
+ """
60
+ @property
61
+ def ap_6(self) -> ostk.core.type.Integer:
62
+ """
63
+ Planetary Equivalent Amplitude (Ap) for 1500-1800 UT.
64
+ """
65
+ @property
66
+ def ap_7(self) -> ostk.core.type.Integer:
67
+ """
68
+ Planetary Equivalent Amplitude (Ap) for 1800-2100 UT.
69
+ """
70
+ @property
71
+ def ap_8(self) -> ostk.core.type.Integer:
72
+ """
73
+ Planetary Equivalent Amplitude (Ap) for 2100-0000 UT.
74
+ """
75
+ @property
76
+ def ap_avg(self) -> ostk.core.type.Integer:
77
+ """
78
+ Arithmetic average of the 8 Ap indices for the day.
79
+ """
80
+ @property
81
+ def bsrn(self) -> ostk.core.type.Integer:
82
+ """
83
+ Bartels Solar Rotation Number. A sequence of 27-day intervals counted continuously from 1832 Feb 8.
84
+ """
85
+ @property
86
+ def c9(self) -> ostk.core.type.Integer:
87
+ """
88
+ C9. A conversion of the 0-to-2.5 range of the Cp index to one digit between 0 and 9.
89
+ """
90
+ @property
91
+ def cp(self) -> ostk.core.type.Real:
92
+ """
93
+ Cp or Planetary Daily Character Figure. A qualitative estimate of overall level of magnetic activity for the day determined from the sum of the 8 Ap indices. Cp ranges, in steps of one-tenth, from 0 (quiet) to 2.5 (highly disturbed).
94
+ """
95
+ @property
96
+ def date(self) -> ostk.physics.time.Date:
97
+ """
98
+ UTC day of reading.
99
+ """
100
+ @property
101
+ def f107_adj(self) -> ostk.core.type.Real:
102
+ """
103
+ 10.7-cm Solar Radio Flux (F10.7) adjusted to 1 AU.
104
+ """
105
+ @property
106
+ def f107_adj_center_81(self) -> ostk.core.type.Real:
107
+ """
108
+ Centered 81-day arithmetic average of F10.7 (adjusted).
109
+ """
110
+ @property
111
+ def f107_adj_last_81(self) -> ostk.core.type.Real:
112
+ """
113
+ Last 81-day arithmetic average of F10.7 (adjusted).
114
+ """
115
+ @property
116
+ def f107_data_type(self) -> ostk.core.type.String:
117
+ """
118
+ Flux Qualifier.
119
+ - OBS: Observed flux measurement.
120
+ - INT: CelesTrak linear interpolation of missing data.
121
+ - PRD: 45-Day predicted flux.
122
+ - PRM: Monthly predicted flux.
123
+ """
124
+ @property
125
+ def f107_obs(self) -> ostk.core.type.Real:
126
+ """
127
+ Observed 10.7-cm Solar Radio Flux (F10.7). Measured at Ottawa at 1700 UT daily from 1947 Feb 14 until 1991 May 31 and measured at Penticton at 2000 UT from 1991 Jun 01 on. Expressed in units of 10-22 W/m2/Hz.
128
+ """
129
+ @property
130
+ def f107_obs_center_81(self) -> ostk.core.type.Real:
131
+ """
132
+ Centered 81-day arithmetic average of F107 (observed).
133
+ """
134
+ @property
135
+ def f107_obs_last_81(self) -> ostk.core.type.Real:
136
+ """
137
+ Last 81-day arithmetic average of F107 (observed).
138
+ """
139
+ @property
140
+ def isn(self) -> ostk.core.type.Integer:
141
+ """
142
+ International Sunspot Number. Records contain the Zurich number through 1980 Dec 31 and the International Brussels number thereafter.
143
+ """
144
+ @property
145
+ def kp_1(self) -> ostk.core.type.Integer:
146
+ """
147
+ Planetary 3-hour Range Index (Kp) for 0000-0300 UT.
148
+ """
149
+ @property
150
+ def kp_2(self) -> ostk.core.type.Integer:
151
+ """
152
+ Planetary 3-hour Range Index (Kp) for 0300-0600 UT.
153
+ """
154
+ @property
155
+ def kp_3(self) -> ostk.core.type.Integer:
156
+ """
157
+ Planetary 3-hour Range Index (Kp) for 0600-0900 UT.
158
+ """
159
+ @property
160
+ def kp_4(self) -> ostk.core.type.Integer:
161
+ """
162
+ Planetary 3-hour Range Index (Kp) for 0900-1200 UT.
163
+ """
164
+ @property
165
+ def kp_5(self) -> ostk.core.type.Integer:
166
+ """
167
+ Planetary 3-hour Range Index (Kp) for 1200-1500 UT.
168
+ """
169
+ @property
170
+ def kp_6(self) -> ostk.core.type.Integer:
171
+ """
172
+ Planetary 3-hour Range Index (Kp) for 1500-1800 UT.
173
+ """
174
+ @property
175
+ def kp_7(self) -> ostk.core.type.Integer:
176
+ """
177
+ Planetary 3-hour Range Index (Kp) for 1800-2100 UT.
178
+ """
179
+ @property
180
+ def kp_8(self) -> ostk.core.type.Integer:
181
+ """
182
+ Planetary 3-hour Range Index (Kp) for 2100-0000 UT.
183
+ """
184
+ @property
185
+ def kp_sum(self) -> ostk.core.type.Integer:
186
+ """
187
+ Sum of the 8 Kp indices for the day.
188
+ """
189
+ @property
190
+ def nd(self) -> ostk.core.type.Integer:
191
+ """
192
+ Number of Day within the Bartels 27-day cycle (01-27).
193
+ """
194
+ @staticmethod
195
+ def _pybind11_conduit_v1_(*args, **kwargs):
196
+ ...
197
+ @staticmethod
198
+ def load(file: ostk.core.filesystem.File) -> CSSISpaceWeather:
199
+ """
200
+ Load CSSI Space Weather file in csv format.
201
+
202
+ Args:
203
+ file (File): A csv file.
204
+
205
+ Returns:
206
+ CSSISpaceWeather: CSSI Space Weather object.
207
+ """
208
+ @staticmethod
209
+ def load_legacy(file: ostk.core.filesystem.File) -> CSSISpaceWeather:
210
+ """
211
+ Load CSSI Space Weather file in legacy .txt format.
212
+
213
+ Args:
214
+ file (File): A txt file.
215
+
216
+ Returns:
217
+ CSSISpaceWeather: CSSI Space Weather object.
218
+ """
219
+ @staticmethod
220
+ def undefined() -> CSSISpaceWeather:
221
+ """
222
+ Create an undefined CSSI Space Weather object.
223
+
224
+ Returns:
225
+ CSSISpaceWeather: Undefined CSSI Space Weather object.
226
+ """
227
+ def __repr__(self) -> str:
228
+ ...
229
+ def __str__(self) -> str:
230
+ ...
231
+ def access_daily_prediction_at(self, instant: ostk.physics.time.Instant) -> ...:
232
+ """
233
+ Access daily prediction at instant.
234
+
235
+ Args:
236
+ instant (Instant): An instant.
237
+
238
+ Returns:
239
+ Reading: Daily prediction at instant.
240
+ """
241
+ def access_daily_prediction_interval(self) -> ostk.physics.time.Interval:
242
+ """
243
+ Access daily prediction interval.
244
+
245
+ Returns:
246
+ Interval: Daily prediction interval.
247
+ """
248
+ def access_last_observation_date(self) -> ostk.physics.time.Date:
249
+ """
250
+ Access last observation Date. File publication date is the day following the last observation.
251
+
252
+ Returns:
253
+ Date: Last observation Date.
254
+ """
255
+ def access_last_reading_where(self, predicate: typing.Callable[[...], bool], instant: ostk.physics.time.Instant) -> ...:
256
+ """
257
+ Access last reading before an Instant where a Predicate is true.
258
+
259
+ Args:
260
+ predicate (Predicate): A predicate.
261
+ instant (Instant): An instant.
262
+
263
+ Returns:
264
+ Reading: Last Reading satisfying predicate.
265
+ """
266
+ def access_monthly_prediction_at(self, instant: ostk.physics.time.Instant) -> ...:
267
+ """
268
+ Access monthly prediction at instant.
269
+
270
+ Args:
271
+ instant (Instant): An instant.
272
+
273
+ Returns:
274
+ Reading: Monthly prediction at instant.
275
+ """
276
+ def access_monthly_prediction_interval(self) -> ostk.physics.time.Interval:
277
+ """
278
+ Access monthly prediction interval.
279
+
280
+ Returns:
281
+ Interval: Monthly prediction interval.
282
+ """
283
+ def access_observation_at(self, instant: ostk.physics.time.Instant) -> ...:
284
+ """
285
+ Access observation at instant.
286
+
287
+ Args:
288
+ instant (Instant): An instant.
289
+
290
+ Returns:
291
+ Reading: Observation at instant.
292
+ """
293
+ def access_observation_interval(self) -> ostk.physics.time.Interval:
294
+ """
295
+ Access observation interval.
296
+
297
+ Returns:
298
+ Interval: Observation interval.
299
+ """
300
+ def access_reading_at(self, instant: ostk.physics.time.Instant) -> ...:
301
+ """
302
+ Access reading at Instant. Look first in observations, then in daily predictions, then monthly predictions.
303
+
304
+ Args:
305
+ instant (Instant): An instant.
306
+
307
+ Returns:
308
+ Reading: Reading at instant.
309
+ """
310
+ def is_defined(self) -> bool:
311
+ """
312
+ Check if the CSSI Space Weather data is defined.
313
+
314
+ Returns:
315
+ bool: True if defined.
316
+ """
317
+ class Exponential:
318
+ """
319
+
320
+ Exponential atmospheric model.
321
+
322
+
323
+ """
324
+ @staticmethod
325
+ def _pybind11_conduit_v1_(*args, **kwargs):
326
+ ...
327
+ def __init__(self) -> None:
328
+ ...
329
+ def get_density_at(self, lla: ostk.physics.coordinate.spherical.LLA, instant: ostk.physics.time.Instant) -> ostk.core.type.Real:
330
+ """
331
+ Get the atmospheric density value at a given position and instant.
332
+
333
+ Args:
334
+ lla (LLA): A position, expressed as latitude, longitude, altitude [deg, deg, m].
335
+ instant (Instant): An Instant.
336
+
337
+ Returns:
338
+ float: Atmospheric density value.
339
+ """
340
+ def is_defined(self) -> bool:
341
+ """
342
+ Check if the exponential atmospheric model is defined.
343
+
344
+ Returns:
345
+ bool: True if the exponential atmospheric model is defined.
346
+ """
347
+ class Manager(ostk.physics.Manager):
348
+ """
349
+
350
+ CSSI space weather manager.
351
+
352
+ The following environment variables can be defined:
353
+
354
+ - "OSTK_PHYSICS_ENVIRONMENT_ATMOSPHERIC_EARTH_MANAGER_MODE" will override "DefaultMode"
355
+ - "OSTK_PHYSICS_ENVIRONMENT_ATMOSPHERIC_EARTH_MANAGER_LOCAL_REPOSITORY" will override "DefaultLocalRepository"
356
+ - "OSTK_PHYSICS_ENVIRONMENT_ATMOSPHERIC_EARTH_MANAGER_LOCAL_REPOSITORY_LOCK_TIMEOUT" will override "DefaultLocalRepositoryLockTimeout"
357
+
358
+ :reference: https://ai-solutions.com/_help_Files/cssi_space_weather_file.htm
359
+
360
+ """
361
+ @staticmethod
362
+ def _pybind11_conduit_v1_(*args, **kwargs):
363
+ ...
364
+ @staticmethod
365
+ def get() -> Manager:
366
+ """
367
+ Get manager singleton.
368
+
369
+ Returns:
370
+ Manager: Reference to manager.
371
+ """
372
+ def fetch_latest_cssi_space_weather(self) -> ostk.core.filesystem.File:
373
+ """
374
+ Fetch latest CSSI Space Weather file.
375
+
376
+ Returns:
377
+ File: Latest CSSI Space Weather file.
378
+ """
379
+ def get_ap_3_hour_solar_indices_at(self, instant: ostk.physics.time.Instant) -> list[ostk.core.type.Integer]:
380
+ """
381
+ Get a list of 8 3-hourly Ap solar indices for the day containing instant.
382
+
383
+ Args:
384
+ instant (Instant): An instant.
385
+
386
+ Returns:
387
+ list[int]: list of 8 3-hourly Ap solar indices.
388
+ """
389
+ def get_ap_daily_index_at(self, instant: ostk.physics.time.Instant) -> ostk.core.type.Integer:
390
+ """
391
+ Get daily Ap index for the day containing instant.
392
+
393
+ Args:
394
+ instant (Instant): An instant.
395
+
396
+ Returns:
397
+ Integer: Daily Ap index.
398
+ """
399
+ def get_cssi_space_weather_at(self, instant: ostk.physics.time.Instant) -> CSSISpaceWeather:
400
+ """
401
+ Get CSSI Space Weather at instant.
402
+
403
+ Args:
404
+ instant (Instant): An instant.
405
+
406
+ Returns:
407
+ CSSISpaceWeather: CSSI Space Weather.
408
+ """
409
+ def get_cssi_space_weather_directory(self) -> ostk.core.filesystem.Directory:
410
+ """
411
+ Get CSSI space weather directory.
412
+
413
+ Returns:
414
+ Directory: CSSI space weather directory.
415
+ """
416
+ def get_f107_solar_flux_81_day_avg_at(self, instant: ostk.physics.time.Instant) -> ostk.core.type.Real:
417
+ """
418
+ Get the 81-day average value for F10.7 solar flux centered on instant.
419
+
420
+ Args:
421
+ instant (Instant): An instant.
422
+
423
+ Returns:
424
+ float: Centered 81-day average value for F10.7 solar flux.
425
+ """
426
+ def get_f107_solar_flux_at(self, instant: ostk.physics.time.Instant) -> ostk.core.type.Real:
427
+ """
428
+ Get the daily value for F10.7 solar flux at instant.
429
+
430
+ Args:
431
+ instant (Instant): An instant.
432
+
433
+ Returns:
434
+ float: Daily value for F10.7 solar flux.
435
+ """
436
+ def get_kp_3_hour_solar_indices_at(self, instant: ostk.physics.time.Instant) -> list[ostk.core.type.Integer]:
437
+ """
438
+ Get a list of 8 3-hourly Kp solar indices for the day containing instant.
439
+
440
+ Args:
441
+ instant (Instant): An instant.
442
+
443
+ Returns:
444
+ list[int]: list of 8 3-hourly Kp solar indices.
445
+ """
446
+ def get_loaded_cssi_space_weather(self) -> CSSISpaceWeather:
447
+ """
448
+ Get currently loaded CSSI Space Weather file.
449
+
450
+ Returns:
451
+ CSSISpaceWeather: Currently loaded CSSI Space Weather file.
452
+ """
453
+ def load_cssi_space_weather(self, cssi_space_weather: CSSISpaceWeather) -> None:
454
+ """
455
+ Load CSSI Space Weather.
456
+
457
+ Args:
458
+ cssi_space_weather (CSSISpaceWeather): A CSSI Space Weather.
459
+ """
460
+ class NRLMSISE00:
461
+ """
462
+
463
+ NRLMSISE00 atmospheric model.
464
+
465
+
466
+ """
467
+ class InputDataType:
468
+ """
469
+ Members:
470
+
471
+ ConstantFluxAndGeoMag :
472
+ Use constant values for F10.7, F10.7a and Kp NRLMSISE00 input parameters.
473
+
474
+
475
+ CSSISpaceWeatherFile :
476
+ Use historical and predicted values for F10.7, F10.7a and Kp NRLMSISE00 input parameters.
477
+
478
+ """
479
+ CSSISpaceWeatherFile: typing.ClassVar[NRLMSISE00.InputDataType] # value = <InputDataType.CSSISpaceWeatherFile: 1>
480
+ ConstantFluxAndGeoMag: typing.ClassVar[NRLMSISE00.InputDataType] # value = <InputDataType.ConstantFluxAndGeoMag: 0>
481
+ __members__: typing.ClassVar[dict[str, NRLMSISE00.InputDataType]] # value = {'ConstantFluxAndGeoMag': <InputDataType.ConstantFluxAndGeoMag: 0>, 'CSSISpaceWeatherFile': <InputDataType.CSSISpaceWeatherFile: 1>}
482
+ @staticmethod
483
+ def _pybind11_conduit_v1_(*args, **kwargs):
484
+ ...
485
+ def __eq__(self, other: typing.Any) -> bool:
486
+ ...
487
+ def __getstate__(self) -> int:
488
+ ...
489
+ def __hash__(self) -> int:
490
+ ...
491
+ def __index__(self) -> int:
492
+ ...
493
+ def __init__(self, value: int) -> None:
494
+ ...
495
+ def __int__(self) -> int:
496
+ ...
497
+ def __ne__(self, other: typing.Any) -> bool:
498
+ ...
499
+ def __repr__(self) -> str:
500
+ ...
501
+ def __setstate__(self, state: int) -> None:
502
+ ...
503
+ def __str__(self) -> str:
504
+ ...
505
+ @property
506
+ def name(self) -> str:
507
+ ...
508
+ @property
509
+ def value(self) -> int:
510
+ ...
511
+ @staticmethod
512
+ def _pybind11_conduit_v1_(*args, **kwargs):
513
+ ...
514
+ def __init__(self, input_data_type: NRLMSISE00.InputDataType = ..., f107_constant_value: ostk.core.type.Real = 150.0, f107_average_constant_value: ostk.core.type.Real = 150.0, kp_constant_value: ostk.core.type.Real = 3.0, earth_frame: ostk.physics.coordinate.Frame = ..., earth_radius: ostk.physics.unit.Length = ..., earth_flattening: ostk.core.type.Real = ..., sun_celestial: ostk.physics.environment.object.Celestial = None) -> None:
515
+ """
516
+ Constructor.
517
+
518
+ Args:
519
+ input_data_type (NRLMSISE00.InputDataType): Input data source type.
520
+ f107_constant_value (float): F10.7 constant value.
521
+ f107_average_constant_value (float): F10.7a constant value.
522
+ kp_constant_value (float): Kp constant value.
523
+ earth_frame (Frame): Earth frame.
524
+ earth_radius (Length): Earth radius [m].
525
+ earth_flattening (float): Earth flattening.
526
+ sun_celestial (Celestial): Sun celestial object. Defaults to None.
527
+ """
528
+ def get_density_at(self, lla: ostk.physics.coordinate.spherical.LLA, instant: ostk.physics.time.Instant) -> ostk.core.type.Real:
529
+ """
530
+ Get the atmospheric density value at a given position and instant.
531
+
532
+ Args:
533
+ lla (LLA): A position, expressed as latitude, longitude, altitude [deg, deg, m].
534
+ instant (Instant): An instant.
535
+
536
+ Returns:
537
+ float: Atmospheric density value [kg.m^-3].
538
+ """
539
+ def get_input_data_type(self) -> NRLMSISE00.InputDataType:
540
+ """
541
+ Get the input data source type used to construct the NRLMSISE00 atmospheric model.
542
+
543
+ Returns:
544
+ NRLMSISE00 input data source type.
545
+ """
546
+ def is_defined(self) -> bool:
547
+ """
548
+ Check if the NRLMSISE00 atmospheric model is defined.
549
+
550
+ Returns:
551
+ bool: True if defined.
552
+ """