This notebook demonstrates access to CryoSat-2, GRACE 1/2, GOCEm GRACE-FO 1/2, CSES, ePOP LR and HR, and Swarm A/B/C magnetic field measurements avaiable from the DISC VirES server.
from viresclient import SwarmRequest
SERVER_URL = 'https://staging.viresdisc.vires.services/ows' # DISC server
from matplotlib.pyplot import subplot, figure
class AttrDict(dict):
def __getattr__(self, key):
return self[key]
VECTORS = AttrDict({
"B_NEC_CHAOS": ["B_N_CHAOS", "B_E_CHAOS", "B_C_CHAOS"],
"B_NEC": ["B_N", "B_E", "B_C"],
"B_NEC1": ["B_N1", "B_E1", "B_C1"],
"B_NEC2": ["B_N2", "B_E2", "B_C2"],
"B_NEC3": ["B_N3", "B_E3", "B_C3"],
})
def plot_magnetic_data(data, product_type):
def _extract_variables(variables):
return AttrDict({
variable: data[variable].values
for variable in variables if variable in data
})
def _plot(ax, x, y, title, xlabel, ylabel, **opts):
ax.plot(x, y, '.', **opts)
ax.set_title(title)
ax.set_ylabel(ylabel)
ax.set_xlabel(xlabel)
ax.set_ylim([-250, 250])
ax.set_xlim([-90, 90])
ax.set_xticks([-90, -75, -60, -45, -30, -15, 0, 15, 30, 45, 60, 75, 90])
ax.grid()
return ax
coords = _extract_variables(['Timestamp', 'Latitude', 'Longitude', 'Radius', 'QDLat', 'MLT'])
models = _extract_variables(['F_CHAOS', 'B_NEC_CHAOS'])
f_variables = _extract_variables(["F"])
b_variables = _extract_variables(["B_NEC", "B_NEC1", "B_NEC2", "B_NEC3"])
for variable, values in f_variables.items():
delta = values - models.F_CHAOS
#fig = figure()
fig = figure(figsize=(18, 2), dpi=100)
_plot(
subplot(1, 1, 1),
coords.QDLat, delta, ms=2,
title=f'{product_type} - {variable}',
ylabel=f"{variable} - F_CHAOS / nT",
xlabel="QD-latitude / deg.",
)
for vvariable, values in b_variables.items():
delta = values - models.B_NEC_CHAOS
for idx, cvariable in enumerate(VECTORS[vvariable]):
fig = figure(figsize=(18, 2), dpi=100)
ax = subplot(1, 1, 1)
_plot(
ax, coords.QDLat, delta[:, idx], ms=2,
title=f'{product_type} - {vvariable}',
ylabel=f"{cvariable} - {VECTORS.B_NEC_CHAOS[idx]} / nT",
xlabel="QD-latitude / deg.",
)
avaiable demo data: 2019-01-01/2019-01-31
SwarmRequest.COLLECTIONS["MAG_CSES"] = ["CSES_01_MAG"]
SwarmRequest.PRODUCT_VARIABLES["MAG_CSES"] = [
"F", "B_NEC1","B_NEC2", "B_FGM1", "B_FGM2",
"q_NEC_CRF", "Flag_TBB", "Flag_MT", "Flag_SHW",
]
request = SwarmRequest(SERVER_URL)
request.set_collection("CSES_01_MAG")
request.set_products(
measurements=request.PRODUCT_VARIABLES["MAG_CSES"],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT10S",
#sampling_step="PT1S", # ~1Hz sampling
)
data = request.get_between(
start_time="2019-01-01T00:00:00Z",
end_time="2019-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'CSES')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]
Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (1.539MB)
<xarray.Dataset> Dimensions: (Timestamp: 6924, NEC: 3, B_FGM1_dim1: 3, quaternion: 4, B_FGM2_dim1: 3) Coordinates: * Timestamp (Timestamp) datetime64[ns] 2019-01-01T00:10:15.410992128 ...... * NEC (NEC) <U1 'N' 'E' 'C' * quaternion (quaternion) <U1 '1' 'i' 'j' 'k' Dimensions without coordinates: B_FGM1_dim1, B_FGM2_dim1 Data variables: (12/17) Spacecraft (Timestamp) object '-' '-' '-' '-' '-' ... '-' '-' '-' '-' '-' B_NEC_CHAOS (Timestamp, NEC) float64 8.643e+03 -1.087e+04 ... -2.159e+04 F (Timestamp) float64 3.387e+04 3.352e+04 ... 2.473e+04 2.467e+04 Flag_TBB (Timestamp) uint8 0 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0 Flag_SHW (Timestamp) uint8 0 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 1 1 1 1 1 1 Radius (Timestamp) float64 6.894e+06 6.894e+06 ... 6.898e+06 6.898e+06 ... ... QDLat (Timestamp) float64 -64.74 -64.21 -63.72 ... -40.83 -40.31 q_NEC_CRF (Timestamp, quaternion) float64 1.634e-05 0.0006313 ... 0.9971 B_FGM2 (Timestamp, B_FGM2_dim1) float64 1.179e+04 ... -2.155e+04 MLT (Timestamp) float64 0.5488 0.5813 0.61 ... 1.514 1.527 1.54 Latitude (Timestamp) float64 -64.31 -63.65 -63.04 ... -32.82 -32.2 Longitude (Timestamp) float64 42.81 42.31 41.86 ... 34.76 34.6 34.45 Attributes: Sources: ['CHAOS-7_static.shc', 'CSES_01_MAG_20190101T000000_2019... MagneticModels: ["CHAOS = 'CHAOS-Core'(max_degree=20,min_degree=1) + 'CH... AppliedFilters: []
avaiable data: 2010-04-08/2021-04-28
request = SwarmRequest(SERVER_URL)
request.set_collection("CS_OPER_MAG")
request.set_products(
measurements=request.PRODUCT_VARIABLES['MAG_CS'],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT10S",
#sampling_step="PT4S", # ~0.25Hz sampling
)
data = request.get_between(
start_time="2016-01-01T00:00:00Z",
end_time="2016-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'CryoSat-2')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]
Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (2.785MB)
<xarray.Dataset> Dimensions: (Timestamp: 8640, B_mod_NEC_dim1: 3, NEC: 3, B_FGM3_dim1: 3, B_FGM1_dim1: 3, quaternion: 4, B_FGM2_dim1: 3) Coordinates: * Timestamp (Timestamp) datetime64[ns] 2016-01-01T00:00:05.272000 ... 20... * NEC (NEC) <U1 'N' 'E' 'C' * quaternion (quaternion) <U1 '1' 'i' 'j' 'k' Dimensions without coordinates: B_mod_NEC_dim1, B_FGM3_dim1, B_FGM1_dim1, B_FGM2_dim1 Data variables: (12/19) Spacecraft (Timestamp) object '-' '-' '-' '-' '-' ... '-' '-' '-' '-' '-' B_mod_NEC (Timestamp, B_mod_NEC_dim1) float64 4.117e+03 ... 3.767e+04 B_NEC_CHAOS (Timestamp, NEC) float64 4.12e+03 2.974e+03 ... 3.767e+04 F (Timestamp) float64 nan 4.641e+04 4.643e+04 ... 3.879e+04 nan B_NEC3 (Timestamp, NEC) float64 3.93e+03 2.851e+03 ... 3.768e+04 Radius (Timestamp) float64 7.108e+06 7.108e+06 ... 7.087e+06 7.087e+06 ... ... QDLat (Timestamp) float64 -70.0 -70.76 -71.27 ... 63.22 63.76 64.57 q_NEC_CRF (Timestamp, quaternion) float64 0.05727 -0.9984 ... 0.001254 B_FGM2 (Timestamp, B_FGM2_dim1) float64 -2.119e+03 ... -3.393e+04 MLT (Timestamp) float64 10.84 10.88 10.91 ... 22.53 22.54 22.56 Latitude (Timestamp) float64 -58.84 -59.56 -60.04 ... 61.57 62.06 62.78 Longitude (Timestamp) float64 150.0 149.8 149.7 ... -31.06 -31.17 -31.34 Attributes: Sources: ['CHAOS-7_static.shc', 'CS_OPER_MAG_20160101T000000_2016... MagneticModels: ["CHAOS = 'CHAOS-Core'(max_degree=20,min_degree=1) + 'CH... AppliedFilters: []
avaiable data: 2009-11-01/2013-09-30
request = SwarmRequest(SERVER_URL)
request.set_collection("GO_MAG_ACAL_CORR")
request.set_products(
measurements=request.PRODUCT_VARIABLES["MAG_GOCE"],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT16S",
)
data = request.get_between(
start_time="2010-01-01T00:00:00Z",
end_time="2010-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'GOCE')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]
Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (2.425MB)
<xarray.Dataset> Dimensions: (Timestamp: 5397, NEC: 3, dB_BAT_SC_dim1: 3, dB_MTQ_SC_dim1: 3, dB_NY_SC_dim1: 3, dB_XI_SC_dim1: 3, B_MAG_dim1: 3, dB_HK_SC_dim1: 3, dB_ST_SC_dim1: 3, dB_BT_SC_dim1: 3, q_MAG_SC_dim1: 4, dB_BLOCK_CORR_dim1: 6, q_SC_NEC_dim1: 4, dB_SA_SC_dim1: 3) Coordinates: * Timestamp (Timestamp) datetime64[ns] 2010-01-01T00:00:08.392000 ... ... * NEC (NEC) <U1 'N' 'E' 'C' Dimensions without coordinates: dB_BAT_SC_dim1, dB_MTQ_SC_dim1, dB_NY_SC_dim1, dB_XI_SC_dim1, B_MAG_dim1, dB_HK_SC_dim1, dB_ST_SC_dim1, dB_BT_SC_dim1, q_MAG_SC_dim1, dB_BLOCK_CORR_dim1, q_SC_NEC_dim1, dB_SA_SC_dim1 Data variables: (12/23) Spacecraft (Timestamp) object '-' '-' '-' '-' '-' ... '-' '-' '-' '-' B_NEC_CHAOS (Timestamp, NEC) float64 2.93e+04 -491.7 ... -566.9 1.165e+04 F (Timestamp) float64 4.45e+04 4.396e+04 ... 3.744e+04 dB_BAT_SC (Timestamp, dB_BAT_SC_dim1) float64 1.505 0.9993 ... 4.338 dB_MTQ_SC (Timestamp, dB_MTQ_SC_dim1) float64 70.31 -41.09 ... -12.28 Radius (Timestamp) float64 6.633e+06 6.633e+06 ... 6.634e+06 ... ... QDLat (Timestamp) float64 26.07 24.92 23.77 ... 10.72 9.548 8.379 dB_BLOCK_CORR (Timestamp, dB_BLOCK_CORR_dim1) float64 1.561e+03 ... 859.6 MLT (Timestamp) float64 6.25 6.237 6.223 ... 6.089 6.079 6.069 q_SC_NEC (Timestamp, q_SC_NEC_dim1) float64 -0.0008952 ... 0.09113 Latitude (Timestamp) float64 31.75 30.68 29.62 ... 17.63 16.57 15.51 dB_SA_SC (Timestamp, dB_SA_SC_dim1) float64 -0.1043 -10.12 ... 11.08 Attributes: Sources: ['CHAOS-7_static.shc', 'GO_MAG_ACAL_CORR_20100101T000008... MagneticModels: ["CHAOS = 'CHAOS-Core'(max_degree=20,min_degree=1) + 'CH... AppliedFilters: []
try:
# temporary workaround
request.PRODUCT_VARIABLES["MAG_GRACE"].remove('B_mod_NEC')
except ValueError:
pass
request = SwarmRequest(SERVER_URL)
request.set_collection("GRACE_A_MAG", "GRACE_B_MAG") # request data from both GRACE 1 and 2 spacecrafts
#request.set_collection("GRACE_A_MAG") # request data from GRACE 1 spacecraft only
#request.set_collection("GRACE_B_MAG") # request data from GRACE 2 spacecraft only
request.set_products(
measurements=request.PRODUCT_VARIABLES["MAG_GRACE"],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT10S",
#sampling_step="PT1S", # ~1Hz sampling
)
data = request.get_between(
start_time="2016-01-01T00:00:00Z",
end_time="2016-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'GRACE-1 and GRACE-2')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]
Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (3.351MB)
<xarray.Dataset> Dimensions: (Timestamp: 16624, NEC: 3, B_FGM_dim1: 3, quaternion: 4) Coordinates: * Timestamp (Timestamp) datetime64[ns] 2016-01-01T00:00:01.899195136 ...... * NEC (NEC) <U1 'N' 'E' 'C' * quaternion (quaternion) <U1 '1' 'i' 'j' 'k' Dimensions without coordinates: B_FGM_dim1 Data variables: (12/14) Spacecraft (Timestamp) object '1' '1' '1' '1' '1' ... '2' '2' '2' '2' '2' B_NEC_CHAOS (Timestamp, NEC) float64 1.376e+04 6.55e+03 ... 2.423e+04 F (Timestamp) float64 4.014e+04 3.968e+04 ... 3.872e+04 3.843e+04 Radius (Timestamp) float64 6.764e+06 6.764e+06 ... 6.75e+06 6.75e+06 B_NEC_raw (Timestamp, NEC) float64 1.396e+04 6.635e+03 ... 2.424e+04 B_FGM (Timestamp, B_FGM_dim1) float64 1.39e+04 ... 2.365e+04 ... ... QDLat (Timestamp) float64 -63.78 -62.98 -62.19 ... 21.24 20.55 19.87 q_NEC_CRF (Timestamp, quaternion) float64 0.0009831 -0.008326 ... 0.9997 q_error (Timestamp) float64 3.562e-05 7.145e-05 ... 5.866e-05 5.851e-05 MLT (Timestamp) float64 19.59 19.58 19.57 ... 7.452 7.451 7.45 Latitude (Timestamp) float64 -78.41 -77.57 -76.73 ... 27.21 26.55 25.9 Longitude (Timestamp) float64 -66.98 -66.69 -66.45 ... 116.5 116.4 116.4 Attributes: Sources: ['CHAOS-7_static.shc', 'GRACE_A_MAG_20160101T000000_2016... MagneticModels: ["CHAOS = 'CHAOS-Core'(max_degree=20,min_degree=1) + 'CH... AppliedFilters: []
request = SwarmRequest(SERVER_URL)
request.set_collection("GF1_OPER_FGM_ACAL_CORR", "GF2_OPER_FGM_ACAL_CORR") # request data from both GRACE-FO 1 and 2 spacecrafts
#request.set_collection("GF1_OPER_FGM_ACAL_CORR") # request data from GRACE-FO 1 spacecraft only
#request.set_collection("GF2_OPER_FGM_ACAL_CORR") # request data from GRACE-FO 2 spacecraft only
request.set_products(
measurements=request.PRODUCT_VARIABLES["MAG_GFO"],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT10S",
#sampling_step="PT1S", # ~1Hz sampling
)
data = request.get_between(
start_time="2019-01-01T00:00:00Z",
end_time="2019-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'GRACE-FO-1 and GRACE-FO-2')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]
Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (5.859MB)
<xarray.Dataset> Dimensions: (Timestamp: 17280, NEC: 3, dB_XI_FGM_dim1: 3, dB_BAT_FGM_dim1: 3, dB_SA_FGM_dim1: 3, dB_MTQ_FGM_dim1: 3, q_NEC_FGM_dim1: 4, dB_BT_FGM_dim1: 3, dB_ST_FGM_dim1: 3, B_FGM_dim1: 3, dB_NY_FGM_dim1: 3) Coordinates: * Timestamp (Timestamp) datetime64[ns] 2019-01-01 ... 2019-01-01T23:59:50 * NEC (NEC) <U1 'N' 'E' 'C' Dimensions without coordinates: dB_XI_FGM_dim1, dB_BAT_FGM_dim1, dB_SA_FGM_dim1, dB_MTQ_FGM_dim1, q_NEC_FGM_dim1, dB_BT_FGM_dim1, dB_ST_FGM_dim1, B_FGM_dim1, dB_NY_FGM_dim1 Data variables: (12/20) Spacecraft (Timestamp) object '1' '1' '1' '1' '1' ... '2' '2' '2' '2' '2' B_NEC_CHAOS (Timestamp, NEC) float64 1.703e+04 -561.6 ... -4.616e+04 F (Timestamp) float64 1.916e+04 1.921e+04 ... 4.684e+04 4.698e+04 dB_XI_FGM (Timestamp, dB_XI_FGM_dim1) float64 3.273 3.17 ... -5.822 7.67 Radius (Timestamp) float64 6.873e+06 6.874e+06 ... 6.892e+06 6.892e+06 F_CHAOS (Timestamp) float64 1.916e+04 1.921e+04 ... 4.684e+04 4.698e+04 ... ... QDLat (Timestamp) float64 -15.34 -15.93 -16.53 ... -84.75 -84.64 B_FGM (Timestamp, B_FGM_dim1) float64 1.69e+04 -255.2 ... -4.608e+04 MLT (Timestamp) float64 18.88 18.88 18.88 ... 0.8968 1.359 1.809 Latitude (Timestamp) float64 -26.69 -27.33 -27.96 ... -74.58 -73.95 dB_NY_FGM (Timestamp, dB_NY_FGM_dim1) float64 -0.666 -0.692 ... -0.1745 Longitude (Timestamp) float64 -70.67 -70.69 -70.72 ... 104.0 104.2 104.3 Attributes: Sources: ['CHAOS-7_static.shc', 'GF1_OPER_FGM_ACAL_CORR_20190101T... MagneticModels: ["CHAOS = 'CHAOS-Core'(max_degree=20,min_degree=1) + 'CH... AppliedFilters: []
avaiable data: 2016-01-01/2016-01-31, 2018-07-01/2018-07-31 and 2019-01-01/2019-01-31
SwarmRequest.COLLECTIONS["MAGE_LR_1B"] = ["SW_TEST_MAGE_LR_1B"]
SwarmRequest.PRODUCT_VARIABLES["MAGE_LR_1B"] = [
"F", "dF_other", "F_error",
"B_inboard_VFM", "B_outboard_VFM", "B_VFM", "B_NEC", "B_model_NEC",
"dB_other", "B_error", "q_NEC_CRF", "Att_error",
"Flags_F", "Flags_B", "Flags_q", "Flags_Platform", "SyncStatus",
"CalInboard", "CalOutboard",
]
request = SwarmRequest(SERVER_URL)
request.set_collection("SW_TEST_MAGE_LR_1B")
request.set_products(
measurements=request.PRODUCT_VARIABLES["MAGE_LR_1B"],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT10S",
#sampling_step="PT1S", # ~1Hz sampling
)
data = request.get_between(
start_time="2019-01-01T00:00:00Z",
end_time="2019-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'e-POP LR')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]
Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (1.775MB)
<xarray.Dataset> Dimensions: (Timestamp: 3383, VFM: 3, NEC: 3, CalOutboard_dim1: 4, CalOutboard_dim2: 3, CalInboard_dim1: 4, CalInboard_dim2: 3, B_outboard_VFM_dim1: 3, B_model_NEC_dim1: 3, B_inboard_VFM_dim1: 3, quaternion: 4) Coordinates: * Timestamp (Timestamp) datetime64[ns] 2019-01-01T00:00:01 ... 2019-0... * NEC (NEC) <U1 'N' 'E' 'C' * VFM (VFM) <U1 'i' 'j' 'k' * quaternion (quaternion) <U1 '1' 'i' 'j' 'k' Dimensions without coordinates: CalOutboard_dim1, CalOutboard_dim2, CalInboard_dim1, CalInboard_dim2, B_outboard_VFM_dim1, B_model_NEC_dim1, B_inboard_VFM_dim1 Data variables: (12/27) Spacecraft (Timestamp) object nan nan nan nan nan ... nan nan nan nan dB_other (Timestamp, VFM) float64 nan nan nan nan ... nan nan nan nan Flags_q (Timestamp) uint8 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 B_NEC_CHAOS (Timestamp, NEC) float64 6.384e+03 1.283e+03 ... -7.413e+03 F (Timestamp) float64 4.717e+04 4.704e+04 ... 1.916e+04 B_error (Timestamp, VFM) float64 nan nan nan nan ... nan nan nan nan ... ... Flags_Platform (Timestamp) uint16 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 QDLat (Timestamp) float64 72.12 71.71 71.28 ... -11.19 -11.71 q_NEC_CRF (Timestamp, quaternion) float64 0.2948 0.0001523 ... 0.9965 MLT (Timestamp) float64 11.39 11.49 11.6 ... 15.21 15.23 15.24 Latitude (Timestamp) float64 73.72 73.17 72.61 ... -15.54 -16.07 Longitude (Timestamp) float64 -162.5 -161.3 -160.1 ... -128.9 -128.9 Attributes: Sources: ['CHAOS-7_static.shc', 'SW_OPER_MCO_SHA_2X_19970101T0000... MagneticModels: ["CHAOS = 'CHAOS-Core'(max_degree=20,min_degree=1) + 'CH... AppliedFilters: []
avaiable data: 2016-01-01/2016-01-31, 2018-07-01/2018-07-31 and 2019-01-01/2019-01-31
SwarmRequest.COLLECTIONS["MAGE_HR_1B"] = ["SW_TEST_MAGE_HR_1B"]
SwarmRequest.PRODUCT_VARIABLES["MAGE_HR_1B"] = [
#NOTE: F is calculated on the fly from B_NEC (F = |B_NEC|)
"F", "B_inboard_VFM", "B_outboard_VFM", "B_VFM", "B_NEC", "B_model_NEC",
"dB_other", "B_error", "q_NEC_CRF", "Att_error", "Flags_B", "Flags_q",
"Flags_Platform", "SyncStatus",
"CalInboard", "CalOutboard",
]
request = SwarmRequest(SERVER_URL)
request.set_collection("SW_TEST_MAGE_HR_1B")
request.set_products(
measurements=request.PRODUCT_VARIABLES["MAGE_HR_1B"],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT10S",
#sampling_step="PT0.006S", # ~166Hz sampling
)
data = request.get_between(
start_time="2019-01-01T00:00:00Z",
end_time="2019-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'e-POP HR')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]
Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (1.711MB)
<xarray.Dataset> Dimensions: (Timestamp: 3383, VFM: 3, NEC: 3, CalOutboard_dim1: 4, CalOutboard_dim2: 3, CalInboard_dim1: 4, CalInboard_dim2: 3, B_outboard_VFM_dim1: 3, B_model_NEC_dim1: 3, B_inboard_VFM_dim1: 3, quaternion: 4) Coordinates: * Timestamp (Timestamp) datetime64[ns] 2019-01-01T00:00:00.002414080 ... * NEC (NEC) <U1 'N' 'E' 'C' * VFM (VFM) <U1 'i' 'j' 'k' * quaternion (quaternion) <U1 '1' 'i' 'j' 'k' Dimensions without coordinates: CalOutboard_dim1, CalOutboard_dim2, CalInboard_dim1, CalInboard_dim2, B_outboard_VFM_dim1, B_model_NEC_dim1, B_inboard_VFM_dim1 Data variables: (12/24) Spacecraft (Timestamp) object nan nan nan nan nan ... nan nan nan nan dB_other (Timestamp, VFM) float64 nan nan nan nan ... nan nan nan nan Flags_q (Timestamp) uint8 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 B_NEC_CHAOS (Timestamp, NEC) float64 6.363e+03 1.273e+03 ... -7.382e+03 F (Timestamp) float64 4.718e+04 4.705e+04 ... 1.916e+04 B_error (Timestamp, VFM) float64 nan nan nan nan ... nan nan nan nan ... ... Flags_Platform (Timestamp) uint16 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 QDLat (Timestamp) float64 72.16 71.75 71.33 ... -11.14 -11.66 q_NEC_CRF (Timestamp, quaternion) float64 0.2959 0.0002198 ... -0.9965 MLT (Timestamp) float64 11.38 11.48 11.59 ... 15.21 15.22 15.24 Latitude (Timestamp) float64 73.77 73.23 72.67 ... -15.48 -16.01 Longitude (Timestamp) float64 -162.6 -161.4 -160.2 ... -128.9 -128.9 Attributes: Sources: ['CHAOS-7_static.shc', 'SW_OPER_MCO_SHA_2X_19970101T0000... MagneticModels: ["CHAOS = 'CHAOS-Core'(max_degree=20,min_degree=1) + 'CH... AppliedFilters: []
request = SwarmRequest(SERVER_URL)
request.set_collection(*SwarmRequest.COLLECTIONS["MAG"])
request.set_products(
measurements=request.PRODUCT_VARIABLES["MAG"],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT10S",
#sampling_step="PT1S", # ~1Hz sampling
)
data = request.get_between(
start_time="2019-01-01T00:00:00Z",
end_time="2019-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'Swarm-A, Swarm-B and Swarm-C LR')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]
Downloading: 0%| | [ Elapsed: 00:00, Remaining: ? ] (8.049MB)
<xarray.Dataset> Dimensions: (Timestamp: 25920, VFM: 3, NEC: 3, quaternion: 4) Coordinates: * Timestamp (Timestamp) datetime64[ns] 2019-01-01 ... 2019-01-01T23:5... * NEC (NEC) <U1 'N' 'E' 'C' * VFM (VFM) <U1 'i' 'j' 'k' * quaternion (quaternion) <U1 '1' 'i' 'j' 'k' Data variables: (12/25) Spacecraft (Timestamp) object 'A' 'A' 'A' 'A' 'A' ... 'C' 'C' 'C' 'C' dB_other (Timestamp, VFM) float64 0.0378 -0.0188 ... 0.0493 0.0319 Flags_q (Timestamp) uint8 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 B_NEC_CHAOS (Timestamp, NEC) float64 2.367e+04 5.318e+03 ... 3.623e+04 ASM_Freq_Dev (Timestamp) float64 -1.0 -1.0 0.3 0.3 ... 0.0 0.0 0.0 0.0 F (Timestamp) float64 2.718e+04 2.701e+04 ... 0.0 0.0 ... ... QDLat (Timestamp) float64 -13.95 -13.31 -12.67 ... 40.62 39.94 q_NEC_CRF (Timestamp, quaternion) float64 0.0003319 ... -0.02037 dB_AOCS (Timestamp, VFM) float64 -0.6409 0.3359 ... -0.0907 2.501 MLT (Timestamp) float64 14.8 14.79 14.78 ... 2.511 2.512 2.514 Latitude (Timestamp) float64 -17.03 -16.39 -15.75 ... 44.71 44.07 Longitude (Timestamp) float64 -136.0 -136.0 -136.0 ... 42.33 42.34 Attributes: Sources: ['CHAOS-7_static.shc', 'SW_OPER_MAGA_LR_1B_20190101T0000... MagneticModels: ["CHAOS = 'CHAOS-Core'(max_degree=20,min_degree=1) + 'CH... AppliedFilters: []
request = SwarmRequest(SERVER_URL)
request.set_collection(*SwarmRequest.COLLECTIONS["MAG_HR"])
request.set_products(
measurements=request.PRODUCT_VARIABLES["MAG_HR"],
auxiliaries=["QDLat", "MLT"],
models=['CHAOS'],
sampling_step="PT10S",
#sampling_step="PT0.02S", # ~50Hz sampling
)
data = request.get_between(
start_time="2019-01-01T00:00:00Z",
end_time="2019-01-02T00:00:00Z",
).as_xarray()
print(data)
plot_magnetic_data(data, 'Swarm-A, Swarm-B and Swarm-C HR')
Processing: 0%| | [ Elapsed: 00:00, Remaining: ? ] [1/1]