sscws 2.4.2__tar.gz → 2.4.4__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.
- {sscws-2.4.2/sscws.egg-info → sscws-2.4.4}/PKG-INFO +38 -11
- {sscws-2.4.2 → sscws-2.4.4}/README.md +16 -5
- {sscws-2.4.2 → sscws-2.4.4}/setup.py +3 -2
- {sscws-2.4.2 → sscws-2.4.4}/sscws/__init__.py +3 -3
- {sscws-2.4.2 → sscws-2.4.4}/sscws/__main__.py +11 -5
- {sscws-2.4.2 → sscws-2.4.4}/sscws/cdf.py +50 -26
- {sscws-2.4.2 → sscws-2.4.4}/sscws/sscws.py +23 -3
- {sscws-2.4.2 → sscws-2.4.4/sscws.egg-info}/PKG-INFO +38 -11
- {sscws-2.4.2 → sscws-2.4.4}/sscws.egg-info/SOURCES.txt +11 -1
- {sscws-2.4.2 → sscws-2.4.4}/sscws.egg-info/requires.txt +3 -0
- sscws-2.4.4/tests/test_bfieldmodels.py +125 -0
- sscws-2.4.4/tests/test_cdf.py +89 -0
- sscws-2.4.4/tests/test_conjunctions.py +426 -0
- sscws-2.4.4/tests/test_coordinates.py +117 -0
- sscws-2.4.4/tests/test_formatoptions.py +77 -0
- sscws-2.4.4/tests/test_outputoptions.py +95 -0
- sscws-2.4.4/tests/test_regions.py +75 -0
- sscws-2.4.4/tests/test_request.py +202 -0
- sscws-2.4.4/tests/test_sscws.py +215 -0
- sscws-2.4.4/tests/test_timeinterval.py +160 -0
- {sscws-2.4.2 → sscws-2.4.4}/LICENSE +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/setup.cfg +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/bfieldmodels.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/conjunctions.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/coordinates.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/filteroptions.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/formatoptions.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/mapping.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/outputoptions.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/regions.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/request.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/result.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/timeinterval.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws/tracing.py +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws.egg-info/dependency_links.txt +0 -0
- {sscws-2.4.2 → sscws-2.4.4}/sscws.egg-info/top_level.txt +0 -0
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: sscws
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.4
|
|
4
4
|
Summary: NASA's Satellite Situation Center Web Service Client Library
|
|
5
5
|
Home-page: https://sscweb.gsfc.nasa.gov/WebServices/REST
|
|
6
6
|
Author: Bernie Harris
|
|
7
7
|
Author-email: NASA-SPDF-Support@nasa.onmicrosoft.com
|
|
8
8
|
License: NOSA
|
|
9
9
|
Keywords: heliophysics,satellites,trajectories,orbits,location,conjunctions,earth magnetic field,ephemeris,space physics,spdf,ssc
|
|
10
|
-
Platform: UNKNOWN
|
|
11
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
11
|
Classifier: Environment :: Console
|
|
13
12
|
Classifier: Environment :: Web Environment
|
|
@@ -20,9 +19,28 @@ Classifier: Programming Language :: Python
|
|
|
20
19
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
21
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: python-dateutil>=2.8.0
|
|
24
|
+
Requires-Dist: requests>=2.20
|
|
25
|
+
Requires-Dist: numpy>=1.19.4
|
|
23
26
|
Provides-Extra: plot
|
|
27
|
+
Requires-Dist: matplotlib>=3.3.2; extra == "plot"
|
|
24
28
|
Provides-Extra: cdf
|
|
25
|
-
|
|
29
|
+
Requires-Dist: cdflib>=0.4.9; extra == "cdf"
|
|
30
|
+
Provides-Extra: cache
|
|
31
|
+
Requires-Dist: requests-cache>=1.2.1; extra == "cache"
|
|
32
|
+
Dynamic: author
|
|
33
|
+
Dynamic: author-email
|
|
34
|
+
Dynamic: classifier
|
|
35
|
+
Dynamic: description
|
|
36
|
+
Dynamic: description-content-type
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: keywords
|
|
39
|
+
Dynamic: license
|
|
40
|
+
Dynamic: license-file
|
|
41
|
+
Dynamic: provides-extra
|
|
42
|
+
Dynamic: requires-dist
|
|
43
|
+
Dynamic: summary
|
|
26
44
|
|
|
27
45
|
|
|
28
46
|
## Synopsis
|
|
@@ -32,7 +50,9 @@ NASA's [Satellite Situation Center](https://sscweb.gsfc.nasa.gov/)
|
|
|
32
50
|
into a framework of (empirical) geophysical regions and mappings of
|
|
33
51
|
spacecraft locations along lines of the Earth's magnetic field.
|
|
34
52
|
This library implements the client side of the
|
|
35
|
-
[SSC RESTful web services](https://sscweb.gsfc.nasa.gov/WebServices/REST/)
|
|
53
|
+
[SSC RESTful web services](https://sscweb.gsfc.nasa.gov/WebServices/REST/)
|
|
54
|
+
and can return data for any of
|
|
55
|
+
[these spacecraft](https://sscweb.gsfc.nasa.gov/scansat.shtml).
|
|
36
56
|
For more general details about the SSC web services, see
|
|
37
57
|
https://sscweb.gsfc.nasa.gov/WebServices/REST/.
|
|
38
58
|
|
|
@@ -71,10 +91,19 @@ methods.
|
|
|
71
91
|
|
|
72
92
|
## Dependencies
|
|
73
93
|
|
|
74
|
-
|
|
94
|
+
The only required dependencies are the following:
|
|
95
|
+
|
|
75
96
|
1. [requests](https://pypi.org/project/requests/)
|
|
76
97
|
2. [numpy](https://pypi.ort/project/numpy/)
|
|
77
|
-
|
|
98
|
+
|
|
99
|
+
If you want to take advantage of HTTP caching, then install the following:
|
|
100
|
+
|
|
101
|
+
1. [requests-cache](https://pypi.org/project/requests-cache/).
|
|
102
|
+
|
|
103
|
+
If you want the example to display a plot of some data, then install the
|
|
104
|
+
following:
|
|
105
|
+
|
|
106
|
+
1. [matplotlib](https://pypi.org/project/matplotlib/).
|
|
78
107
|
|
|
79
108
|
The critical dependencies above will automatically be installed when this
|
|
80
109
|
library is.
|
|
@@ -85,9 +114,9 @@ To install this package
|
|
|
85
114
|
|
|
86
115
|
$ pip install -U sscws
|
|
87
116
|
|
|
88
|
-
or to include
|
|
117
|
+
or to include the optional packages
|
|
89
118
|
|
|
90
|
-
$ pip install -U sscws[plot]
|
|
119
|
+
$ pip install -U sscws[plot,cache]
|
|
91
120
|
|
|
92
121
|
|
|
93
122
|
## API Reference
|
|
@@ -115,5 +144,3 @@ Bernie Harris.
|
|
|
115
144
|
|
|
116
145
|
This code is licensed under the
|
|
117
146
|
[NASA Open Source Agreement](https://sscweb.gsfc.nasa.gov/WebServices/NASA_Open_Source_Agreement_1.3.txt) (NOSA).
|
|
118
|
-
|
|
119
|
-
|
|
@@ -6,7 +6,9 @@ NASA's [Satellite Situation Center](https://sscweb.gsfc.nasa.gov/)
|
|
|
6
6
|
into a framework of (empirical) geophysical regions and mappings of
|
|
7
7
|
spacecraft locations along lines of the Earth's magnetic field.
|
|
8
8
|
This library implements the client side of the
|
|
9
|
-
[SSC RESTful web services](https://sscweb.gsfc.nasa.gov/WebServices/REST/)
|
|
9
|
+
[SSC RESTful web services](https://sscweb.gsfc.nasa.gov/WebServices/REST/)
|
|
10
|
+
and can return data for any of
|
|
11
|
+
[these spacecraft](https://sscweb.gsfc.nasa.gov/scansat.shtml).
|
|
10
12
|
For more general details about the SSC web services, see
|
|
11
13
|
https://sscweb.gsfc.nasa.gov/WebServices/REST/.
|
|
12
14
|
|
|
@@ -45,10 +47,19 @@ methods.
|
|
|
45
47
|
|
|
46
48
|
## Dependencies
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
The only required dependencies are the following:
|
|
51
|
+
|
|
49
52
|
1. [requests](https://pypi.org/project/requests/)
|
|
50
53
|
2. [numpy](https://pypi.ort/project/numpy/)
|
|
51
|
-
|
|
54
|
+
|
|
55
|
+
If you want to take advantage of HTTP caching, then install the following:
|
|
56
|
+
|
|
57
|
+
1. [requests-cache](https://pypi.org/project/requests-cache/).
|
|
58
|
+
|
|
59
|
+
If you want the example to display a plot of some data, then install the
|
|
60
|
+
following:
|
|
61
|
+
|
|
62
|
+
1. [matplotlib](https://pypi.org/project/matplotlib/).
|
|
52
63
|
|
|
53
64
|
The critical dependencies above will automatically be installed when this
|
|
54
65
|
library is.
|
|
@@ -59,9 +70,9 @@ To install this package
|
|
|
59
70
|
|
|
60
71
|
$ pip install -U sscws
|
|
61
72
|
|
|
62
|
-
or to include
|
|
73
|
+
or to include the optional packages
|
|
63
74
|
|
|
64
|
-
$ pip install -U sscws[plot]
|
|
75
|
+
$ pip install -U sscws[plot,cache]
|
|
65
76
|
|
|
66
77
|
|
|
67
78
|
## API Reference
|
|
@@ -10,7 +10,7 @@ README = (HERE / "README.md").read_text()
|
|
|
10
10
|
# This call to setup() does all the work
|
|
11
11
|
setup(
|
|
12
12
|
name="sscws",
|
|
13
|
-
version="2.4.
|
|
13
|
+
version="2.4.4",
|
|
14
14
|
description="NASA's Satellite Situation Center Web Service Client Library",
|
|
15
15
|
long_description=README,
|
|
16
16
|
long_description_content_type="text/markdown",
|
|
@@ -25,7 +25,8 @@ setup(
|
|
|
25
25
|
install_requires=["python-dateutil>=2.8.0", "requests>=2.20", "numpy>=1.19.4"],
|
|
26
26
|
extras_require={
|
|
27
27
|
'plot': ["matplotlib>=3.3.2"],
|
|
28
|
-
'cdf': ["cdflib>=0.4.9"]
|
|
28
|
+
'cdf': ["cdflib>=0.4.9"],
|
|
29
|
+
'cache': ["requests-cache>=1.2.1"],
|
|
29
30
|
},
|
|
30
31
|
keywords=["heliophysics", "satellites", "trajectories", "orbits", "location", "conjunctions", "earth magnetic field", "ephemeris", "space physics", "spdf", "ssc"],
|
|
31
32
|
classifiers=[
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
#
|
|
25
25
|
# NOSA HEADER END
|
|
26
26
|
#
|
|
27
|
-
# Copyright (c) 2020-
|
|
27
|
+
# Copyright (c) 2020-2025 United States Government as represented by
|
|
28
28
|
# the National Aeronautics and Space Administration. No copyright is
|
|
29
29
|
# claimed in the United States under Title 17, U.S.Code. All Other
|
|
30
30
|
# Rights Reserved.
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
Package for accessing the NASA's Satellite Situation Center (SSC) web
|
|
35
35
|
services https://sscweb.gsfc.nasa.gov/WebServices/REST/.
|
|
36
36
|
|
|
37
|
-
Copyright © 2020-
|
|
37
|
+
Copyright © 2020-2025 United States Government as represented by the
|
|
38
38
|
National Aeronautics and Space Administration. No copyright is claimed in
|
|
39
39
|
the United States under Title 17, U.S.Code. All Other Rights Reserved.
|
|
40
40
|
|
|
@@ -55,7 +55,7 @@ Notes
|
|
|
55
55
|
"""
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
__version__ = "2.4.
|
|
58
|
+
__version__ = "2.4.4"
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
#
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
#
|
|
25
25
|
# NOSA HEADER END
|
|
26
26
|
#
|
|
27
|
-
# Copyright (c) 2013-
|
|
27
|
+
# Copyright (c) 2013-2025 United States Government as represented by
|
|
28
28
|
# the National Aeronautics and Space Administration. No copyright is
|
|
29
29
|
# claimed in the United States under Title 17, U.S.Code. All Other
|
|
30
30
|
# Rights Reserved.
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
Example Satellite Situation Center (SSC) web services client.
|
|
35
35
|
https://sscweb.gsfc.nasa.gov/WebServices/REST/.
|
|
36
36
|
|
|
37
|
-
Copyright © 2013-
|
|
37
|
+
Copyright © 2013-2025 United States Government as represented by the
|
|
38
38
|
National Aeronautics and Space Administration. No copyright is claimed in
|
|
39
39
|
the United States under Title 17, U.S.Code. All Other Rights Reserved.
|
|
40
40
|
"""
|
|
@@ -123,6 +123,7 @@ def print_usage(
|
|
|
123
123
|
print(f'USAGE: {name} [-e url][-d][-c cacerts][-h]')
|
|
124
124
|
print('WHERE: url = SSC web service endpoint URL')
|
|
125
125
|
print(' -d disables TLS server certificate validation')
|
|
126
|
+
print(' -n disables the use of http caching')
|
|
126
127
|
print(' cacerts = CA certificate filename')
|
|
127
128
|
|
|
128
129
|
|
|
@@ -144,13 +145,14 @@ def example(
|
|
|
144
145
|
containing the CA certificates to use.<br>
|
|
145
146
|
-d or --disable-cert-check to disable verification of the server's
|
|
146
147
|
certificate
|
|
148
|
+
-n or --nocache disables the use of http caching
|
|
147
149
|
-h or --help prints help information.
|
|
148
150
|
"""
|
|
149
151
|
|
|
150
152
|
try:
|
|
151
|
-
opts = getopt.getopt(argv[1:], 'he:c:
|
|
153
|
+
opts = getopt.getopt(argv[1:], 'he:c:dn',
|
|
152
154
|
['help', 'endpoint=', 'cacerts=',
|
|
153
|
-
'disable-cert-check'])[0]
|
|
155
|
+
'disable-cert-check', 'nocache'])[0]
|
|
154
156
|
except getopt.GetoptError:
|
|
155
157
|
print('ERROR: invalid option')
|
|
156
158
|
print_usage(argv[0])
|
|
@@ -159,6 +161,7 @@ def example(
|
|
|
159
161
|
endpoint = ENDPOINT
|
|
160
162
|
ca_certs = None
|
|
161
163
|
disable_ssl_certificate_validation = False
|
|
164
|
+
disable_cache = False
|
|
162
165
|
|
|
163
166
|
for opt, arg in opts:
|
|
164
167
|
if opt in ('-e', '--endpoint'):
|
|
@@ -168,13 +171,16 @@ def example(
|
|
|
168
171
|
elif opt in ('-d', '--disable-cert-check'):
|
|
169
172
|
disable_ssl_certificate_validation = True
|
|
170
173
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
|
174
|
+
elif opt in ('-n', '--nocache'):
|
|
175
|
+
disable_cache = True
|
|
171
176
|
elif opt in ('-h', '--help'):
|
|
172
177
|
print_usage(argv[0])
|
|
173
178
|
sys.exit()
|
|
174
179
|
|
|
175
180
|
ssc = SscWs(endpoint=endpoint, ca_certs=ca_certs,
|
|
176
181
|
disable_ssl_certificate_validation=
|
|
177
|
-
disable_ssl_certificate_validation,
|
|
182
|
+
disable_ssl_certificate_validation,
|
|
183
|
+
disable_cache = disable_cache, user_agent='Example')
|
|
178
184
|
|
|
179
185
|
result = ssc.get_observatories()
|
|
180
186
|
if result['HttpStatus'] == 200:
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
#
|
|
25
25
|
# NOSA HEADER END
|
|
26
26
|
#
|
|
27
|
-
# Copyright (c) 2023-
|
|
27
|
+
# Copyright (c) 2023-2025 United States Government as represented by
|
|
28
28
|
# the National Aeronautics and Space Administration. No copyright is
|
|
29
29
|
# claimed in the United States under Title 17, U.S.Code. All Other
|
|
30
30
|
# Rights Reserved.
|
|
@@ -38,7 +38,7 @@ Center (SSC) <https://sscweb.gsfc.nasa.gov>. This module is specialized
|
|
|
38
38
|
for SSC CDF files. It should not be used for more general CDF files.
|
|
39
39
|
<br>
|
|
40
40
|
|
|
41
|
-
Copyright © 2023-
|
|
41
|
+
Copyright © 2023-2025 United States Government as represented by the
|
|
42
42
|
National Aeronautics and Space Administration. No copyright is claimed in
|
|
43
43
|
the United States under Title 17, U.S.Code. All Other Rights Reserved.
|
|
44
44
|
"""
|
|
@@ -473,10 +473,13 @@ class Cdf:
|
|
|
473
473
|
Spacecraft region information.
|
|
474
474
|
"""
|
|
475
475
|
|
|
476
|
-
region_codes = self.get_value('SPACECRAFT_REGIONS')
|
|
477
|
-
|
|
478
476
|
regions = []
|
|
479
477
|
|
|
478
|
+
try:
|
|
479
|
+
region_codes = self.get_value('SPACECRAFT_REGIONS')
|
|
480
|
+
except ValueError:
|
|
481
|
+
return regions
|
|
482
|
+
|
|
480
483
|
for region_code in region_codes:
|
|
481
484
|
regions.append(SpaceRegion.from_code(region_code))
|
|
482
485
|
|
|
@@ -496,10 +499,13 @@ class Cdf:
|
|
|
496
499
|
Trace footpoint region information.
|
|
497
500
|
"""
|
|
498
501
|
|
|
499
|
-
region_codes = self.get_value(name + 'TRACED_REGIONS')
|
|
500
|
-
|
|
501
502
|
regions = []
|
|
502
503
|
|
|
504
|
+
try:
|
|
505
|
+
region_codes = self.get_value(name + 'TRACED_REGIONS')
|
|
506
|
+
except ValueError:
|
|
507
|
+
return regions
|
|
508
|
+
|
|
503
509
|
for region_code in region_codes:
|
|
504
510
|
regions.append(FootpointRegion.from_code(region_code))
|
|
505
511
|
|
|
@@ -537,29 +543,47 @@ class Cdf:
|
|
|
537
543
|
Dict
|
|
538
544
|
The SatelliteData from this CDF.
|
|
539
545
|
"""
|
|
546
|
+
var_names = self.get_variable_names()
|
|
540
547
|
data = {}
|
|
541
548
|
data['Id'] = self.get_satellite_name().lower()
|
|
542
549
|
data['Coordinates'] = self.get_coordinate_data()
|
|
543
550
|
data['Time'] = self.get_time()
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
self.
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
551
|
+
b_trace_data = self.get_b_trace_data()
|
|
552
|
+
if len(b_trace_data) > 0:
|
|
553
|
+
data['BTraceData'] = b_trace_data
|
|
554
|
+
|
|
555
|
+
if 'RADIUS' in var_names:
|
|
556
|
+
data['RadialLength'] = self.get_value('RADIUS')
|
|
557
|
+
if 'MAG_STRTH' in var_names:
|
|
558
|
+
data['MagneticStrength'] = self.get_value('MAG_STRTH')
|
|
559
|
+
if 'DNEUTS' in var_names:
|
|
560
|
+
data['NeutralSheetDistance'] = self.get_value('DNEUTS')
|
|
561
|
+
|
|
562
|
+
if 'BOW_SHOCK' in var_names:
|
|
563
|
+
data['BowShockDistance'] = self.get_value('BOW_SHOCK')
|
|
564
|
+
if 'MAG_PAUSE' in var_names:
|
|
565
|
+
data['MagnetoPauseDistance'] = self.get_value('MAG_PAUSE')
|
|
566
|
+
if 'L_VALUE' in var_names:
|
|
567
|
+
data['DipoleLValue'] = self.get_value('L_VALUE')
|
|
568
|
+
if 'INVAR_LAT' in var_names:
|
|
569
|
+
data['DipoleInvariantLatitude'] = self.get_value('INVAR_LAT')
|
|
570
|
+
sc_region = self.get_spacecraft_region()
|
|
571
|
+
if len(sc_region) > 0:
|
|
572
|
+
data['SpacecraftRegion'] = sc_region
|
|
573
|
+
if 'RADIAL_TRACED_REGIONS' in var_names:
|
|
574
|
+
data['RadialTracedFootpointRegions'] = \
|
|
575
|
+
self.get_footpoint_regions('RADIAL_')
|
|
576
|
+
if 'MAG_X' in var_names:
|
|
577
|
+
data['BGseX'] = self.get_b_gse_component('X')
|
|
578
|
+
if 'MAG_Y' in var_names:
|
|
579
|
+
data['BGseY'] = self.get_b_gse_component('Y')
|
|
580
|
+
if 'MAG_Z' in var_names:
|
|
581
|
+
data['BGseZ'] = self.get_b_gse_component('Z')
|
|
582
|
+
if 'NORTH_B_TRACED_REGIONS' in var_names:
|
|
583
|
+
data['NorthBTracedFootpointRegions'] = \
|
|
584
|
+
self.get_footpoint_regions('NORTH_B')
|
|
585
|
+
if 'SOUTH_B_TRACED_REGIONS' in var_names:
|
|
586
|
+
data['SouthBTracedFootpointRegions'] = \
|
|
587
|
+
self.get_footpoint_regions('SOUTH_B')
|
|
564
588
|
|
|
565
589
|
return data
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
#
|
|
25
25
|
# NOSA HEADER END
|
|
26
26
|
#
|
|
27
|
-
# Copyright (c) 2013-
|
|
27
|
+
# Copyright (c) 2013-2025 United States Government as represented by
|
|
28
28
|
# the National Aeronautics and Space Administration. No copyright is
|
|
29
29
|
# claimed in the United States under Title 17, U.S.Code. All Other
|
|
30
30
|
# Rights Reserved.
|
|
@@ -33,6 +33,11 @@
|
|
|
33
33
|
"""
|
|
34
34
|
Module for accessing the Satellite Situation Center (SSC) web services
|
|
35
35
|
https://sscweb.gsfc.nasa.gov/WebServices/REST/.
|
|
36
|
+
<br>
|
|
37
|
+
|
|
38
|
+
Copyright © 2013-2025 United States Government as represented by the
|
|
39
|
+
National Aeronautics and Space Administration. No copyright is claimed in
|
|
40
|
+
the United States under Title 17, U.S.Code. All Other Rights Reserved.
|
|
36
41
|
"""
|
|
37
42
|
|
|
38
43
|
import sys
|
|
@@ -52,6 +57,12 @@ import dateutil.parser
|
|
|
52
57
|
|
|
53
58
|
import numpy as np
|
|
54
59
|
|
|
60
|
+
try:
|
|
61
|
+
import requests_cache
|
|
62
|
+
CACHE_AVAILABLE = True
|
|
63
|
+
except ImportError:
|
|
64
|
+
CACHE_AVAILABLE = False
|
|
65
|
+
|
|
55
66
|
from sscws import __version__, RETRY_LIMIT, NAMESPACES as NS
|
|
56
67
|
try:
|
|
57
68
|
from sscws.cdf import Cdf
|
|
@@ -96,6 +107,8 @@ class SscWs:
|
|
|
96
107
|
Flag indicating whether to validate the SSL certificate.
|
|
97
108
|
user_agent
|
|
98
109
|
A value that is appended to the HTTP User-Agent values.
|
|
110
|
+
disable_cache
|
|
111
|
+
Flag indicating whether to disable HTTP caching.
|
|
99
112
|
|
|
100
113
|
Notes
|
|
101
114
|
-----
|
|
@@ -120,7 +133,8 @@ class SscWs:
|
|
|
120
133
|
proxy=None,
|
|
121
134
|
ca_certs=None,
|
|
122
135
|
disable_ssl_certificate_validation=False,
|
|
123
|
-
user_agent=None
|
|
136
|
+
user_agent=None,
|
|
137
|
+
disable_cache=False):
|
|
124
138
|
|
|
125
139
|
self.logger = logging.getLogger(type(self).__name__)
|
|
126
140
|
self.logger.addHandler(logging.NullHandler())
|
|
@@ -131,6 +145,7 @@ class SscWs:
|
|
|
131
145
|
self.logger.debug('ca_certs = %s', ca_certs)
|
|
132
146
|
self.logger.debug('disable_ssl_certificate_validation = %s',
|
|
133
147
|
disable_ssl_certificate_validation)
|
|
148
|
+
self.logger.debug('disable_cache = %s', disable_cache)
|
|
134
149
|
|
|
135
150
|
if endpoint is None:
|
|
136
151
|
self._endpoint = 'https://sscweb.gsfc.nasa.gov/WS/sscr/2/'
|
|
@@ -149,7 +164,12 @@ class SscWs:
|
|
|
149
164
|
'Accept' : 'application/xml',
|
|
150
165
|
'User-Agent' : self._user_agent
|
|
151
166
|
}
|
|
152
|
-
|
|
167
|
+
if CACHE_AVAILABLE and disable_cache is not True:
|
|
168
|
+
self._session = requests_cache.CachedSession('sscws_cache',
|
|
169
|
+
cache_control=True)
|
|
170
|
+
else:
|
|
171
|
+
self._session = requests.Session()
|
|
172
|
+
|
|
153
173
|
#self._session.max_redirects = 0
|
|
154
174
|
self._session.headers.update(self._request_headers)
|
|
155
175
|
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: sscws
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.4
|
|
4
4
|
Summary: NASA's Satellite Situation Center Web Service Client Library
|
|
5
5
|
Home-page: https://sscweb.gsfc.nasa.gov/WebServices/REST
|
|
6
6
|
Author: Bernie Harris
|
|
7
7
|
Author-email: NASA-SPDF-Support@nasa.onmicrosoft.com
|
|
8
8
|
License: NOSA
|
|
9
9
|
Keywords: heliophysics,satellites,trajectories,orbits,location,conjunctions,earth magnetic field,ephemeris,space physics,spdf,ssc
|
|
10
|
-
Platform: UNKNOWN
|
|
11
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
11
|
Classifier: Environment :: Console
|
|
13
12
|
Classifier: Environment :: Web Environment
|
|
@@ -20,9 +19,28 @@ Classifier: Programming Language :: Python
|
|
|
20
19
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
21
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: python-dateutil>=2.8.0
|
|
24
|
+
Requires-Dist: requests>=2.20
|
|
25
|
+
Requires-Dist: numpy>=1.19.4
|
|
23
26
|
Provides-Extra: plot
|
|
27
|
+
Requires-Dist: matplotlib>=3.3.2; extra == "plot"
|
|
24
28
|
Provides-Extra: cdf
|
|
25
|
-
|
|
29
|
+
Requires-Dist: cdflib>=0.4.9; extra == "cdf"
|
|
30
|
+
Provides-Extra: cache
|
|
31
|
+
Requires-Dist: requests-cache>=1.2.1; extra == "cache"
|
|
32
|
+
Dynamic: author
|
|
33
|
+
Dynamic: author-email
|
|
34
|
+
Dynamic: classifier
|
|
35
|
+
Dynamic: description
|
|
36
|
+
Dynamic: description-content-type
|
|
37
|
+
Dynamic: home-page
|
|
38
|
+
Dynamic: keywords
|
|
39
|
+
Dynamic: license
|
|
40
|
+
Dynamic: license-file
|
|
41
|
+
Dynamic: provides-extra
|
|
42
|
+
Dynamic: requires-dist
|
|
43
|
+
Dynamic: summary
|
|
26
44
|
|
|
27
45
|
|
|
28
46
|
## Synopsis
|
|
@@ -32,7 +50,9 @@ NASA's [Satellite Situation Center](https://sscweb.gsfc.nasa.gov/)
|
|
|
32
50
|
into a framework of (empirical) geophysical regions and mappings of
|
|
33
51
|
spacecraft locations along lines of the Earth's magnetic field.
|
|
34
52
|
This library implements the client side of the
|
|
35
|
-
[SSC RESTful web services](https://sscweb.gsfc.nasa.gov/WebServices/REST/)
|
|
53
|
+
[SSC RESTful web services](https://sscweb.gsfc.nasa.gov/WebServices/REST/)
|
|
54
|
+
and can return data for any of
|
|
55
|
+
[these spacecraft](https://sscweb.gsfc.nasa.gov/scansat.shtml).
|
|
36
56
|
For more general details about the SSC web services, see
|
|
37
57
|
https://sscweb.gsfc.nasa.gov/WebServices/REST/.
|
|
38
58
|
|
|
@@ -71,10 +91,19 @@ methods.
|
|
|
71
91
|
|
|
72
92
|
## Dependencies
|
|
73
93
|
|
|
74
|
-
|
|
94
|
+
The only required dependencies are the following:
|
|
95
|
+
|
|
75
96
|
1. [requests](https://pypi.org/project/requests/)
|
|
76
97
|
2. [numpy](https://pypi.ort/project/numpy/)
|
|
77
|
-
|
|
98
|
+
|
|
99
|
+
If you want to take advantage of HTTP caching, then install the following:
|
|
100
|
+
|
|
101
|
+
1. [requests-cache](https://pypi.org/project/requests-cache/).
|
|
102
|
+
|
|
103
|
+
If you want the example to display a plot of some data, then install the
|
|
104
|
+
following:
|
|
105
|
+
|
|
106
|
+
1. [matplotlib](https://pypi.org/project/matplotlib/).
|
|
78
107
|
|
|
79
108
|
The critical dependencies above will automatically be installed when this
|
|
80
109
|
library is.
|
|
@@ -85,9 +114,9 @@ To install this package
|
|
|
85
114
|
|
|
86
115
|
$ pip install -U sscws
|
|
87
116
|
|
|
88
|
-
or to include
|
|
117
|
+
or to include the optional packages
|
|
89
118
|
|
|
90
|
-
$ pip install -U sscws[plot]
|
|
119
|
+
$ pip install -U sscws[plot,cache]
|
|
91
120
|
|
|
92
121
|
|
|
93
122
|
## API Reference
|
|
@@ -115,5 +144,3 @@ Bernie Harris.
|
|
|
115
144
|
|
|
116
145
|
This code is licensed under the
|
|
117
146
|
[NASA Open Source Agreement](https://sscweb.gsfc.nasa.gov/WebServices/NASA_Open_Source_Agreement_1.3.txt) (NOSA).
|
|
118
|
-
|
|
119
|
-
|
|
@@ -21,4 +21,14 @@ sscws.egg-info/PKG-INFO
|
|
|
21
21
|
sscws.egg-info/SOURCES.txt
|
|
22
22
|
sscws.egg-info/dependency_links.txt
|
|
23
23
|
sscws.egg-info/requires.txt
|
|
24
|
-
sscws.egg-info/top_level.txt
|
|
24
|
+
sscws.egg-info/top_level.txt
|
|
25
|
+
tests/test_bfieldmodels.py
|
|
26
|
+
tests/test_cdf.py
|
|
27
|
+
tests/test_conjunctions.py
|
|
28
|
+
tests/test_coordinates.py
|
|
29
|
+
tests/test_formatoptions.py
|
|
30
|
+
tests/test_outputoptions.py
|
|
31
|
+
tests/test_regions.py
|
|
32
|
+
tests/test_request.py
|
|
33
|
+
tests/test_sscws.py
|
|
34
|
+
tests/test_timeinterval.py
|