geospacelab 0.10.2__py3-none-any.whl → 0.10.3__py3-none-any.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.
Files changed (23) hide show
  1. geospacelab/__init__.py +1 -1
  2. geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/__init__.py +2 -2
  3. geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/loader.py +203 -8
  4. geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/variable_config.py +1 -1
  5. geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/__init__.py +5 -7
  6. geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/loader.py +6 -6
  7. geospacelab/datahub/sources/madrigal/isr/pfisr/vi/__init__.py +4 -6
  8. geospacelab/datahub/sources/madrigal/isr/risr_n/__init__.py +0 -0
  9. geospacelab/datahub/sources/madrigal/isr/risr_n/downloader.py +155 -0
  10. geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/__init__.py +422 -0
  11. geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/downloader.py +73 -0
  12. geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/loader.py +225 -0
  13. geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/variable_config.py +278 -0
  14. geospacelab/datahub/sources/madrigal/isr/risr_n/vi/__init__.py +343 -0
  15. geospacelab/datahub/sources/madrigal/isr/risr_n/vi/downloader.py +62 -0
  16. geospacelab/datahub/sources/madrigal/isr/risr_n/vi/loader.py +108 -0
  17. geospacelab/datahub/sources/madrigal/isr/risr_n/vi/variable_config.py +671 -0
  18. geospacelab/visualization/mpl/panels.py +6 -3
  19. {geospacelab-0.10.2.dist-info → geospacelab-0.10.3.dist-info}/METADATA +1 -2
  20. {geospacelab-0.10.2.dist-info → geospacelab-0.10.3.dist-info}/RECORD +23 -13
  21. {geospacelab-0.10.2.dist-info → geospacelab-0.10.3.dist-info}/WHEEL +0 -0
  22. {geospacelab-0.10.2.dist-info → geospacelab-0.10.3.dist-info}/licenses/LICENSE +0 -0
  23. {geospacelab-0.10.2.dist-info → geospacelab-0.10.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,671 @@
1
+ # Licensed under the BSD 3-Clause License
2
+ # Copyright (C) 2021 GeospaceLab (geospacelab)
3
+ # Author: Lei Cai, Space Physics and Astronomy, University of Oulu
4
+
5
+ __author__ = "Lei Cai"
6
+ __copyright__ = "Copyright 2021, GeospaceLab"
7
+ __license__ = "BSD-3-Clause License"
8
+ __email__ = "lei.cai@oulu.fi"
9
+ __docformat__ = "reStructureText"
10
+
11
+
12
+ import copy
13
+ from geospacelab.datahub import VariableModel as Var
14
+ import geospacelab.visualization.mpl.colormaps as cm
15
+ from local.EISCAT_FPI.fpi.variable_config import default_colormap
16
+
17
+ database = 'Madrigal'
18
+
19
+ timestamps = {
20
+ 'DATETIME': 'DATETIME',
21
+ }
22
+
23
+ coords = {
24
+ 'GEO': ['GEO_LAT', 'GEO_LON', 'GEO_ALT', 'GEO_ST'],
25
+ 'AACGM': ['AACGM_LAT', 'AACGM_LON', 'AACGM_R', 'AACGM_MLT'],
26
+ 'APEX': ['APEX_LAT', 'APEX_LON', 'APEX_ALT', 'APEX_MLT']
27
+ }
28
+
29
+ depend_0 = {'UT': 'DATETIME'}
30
+ depend_1 = {'CGM_LAT': 'CGM_LAT'}
31
+
32
+ # default_colormap = cm.cmap_jet_modified()
33
+ default_colormap = 'turbo'
34
+
35
+ default_axis_dict_2d = {
36
+ 1: {
37
+ 'data': '@d.CGM_LAT.value',
38
+ 'lim': [90, 200],
39
+ 'label': 'MLAT',
40
+ 'unit': '@d.CGM_LAT.unit_label',
41
+ },
42
+ 2: {
43
+ 'data': '@v.value',
44
+ 'label': '@v.label',
45
+ 'unit': '@v.unit_label',
46
+ }
47
+ }
48
+
49
+ default_plot_config = {
50
+ 'line': {
51
+ 'linestyle': '',
52
+ 'linewidth': 1.5,
53
+ 'marker': '.',
54
+ 'markersize': 3,
55
+ },
56
+ 'pcolormesh': {
57
+ 'cmap': default_colormap,
58
+ }
59
+ }
60
+
61
+ configured_variables = {}
62
+ visual = 'on'
63
+
64
+ ####################################################################################################################
65
+ var_name = 'v_i_N'
66
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
67
+ # set variable attrs
68
+ var.fullname = 'Ion velocity perpendicular to B (Northward)'
69
+ var.label = r'$v_{iN}$'
70
+ var.unit = 'm/s'
71
+ var.error = var_name + '_err'
72
+ var.depends = {0: depend_0, 1: depend_1}
73
+ # set plot attrs
74
+ var.visual.plot_config.config(**default_plot_config)
75
+ var.visual.plot_config.style = '2P'
76
+ # set axis attrs
77
+ axis = var.visual.axis
78
+ axis[1].data = "@d.CGM_LAT.value"
79
+ axis[2].data = "@v.value"
80
+ # axis[1].lim = [90, 500]
81
+ axis[1].label = 'MLAT'
82
+ axis[1].unit = r'$^\circ$'
83
+
84
+ axis[2].lim = [-1500, 1500]
85
+ axis[2].scale = 'linear'
86
+ axis[2].label = '@v.label'
87
+ axis[2].unit = '@v.unit_label'
88
+
89
+ configured_variables[var_name] = var
90
+
91
+ ####################################################################################################################
92
+ var_name = 'v_i_N_err'
93
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
94
+ # set variable attrs
95
+ var.fullname = 'Error of Ion velocity perpendicular to B (Northward)'
96
+ var.label = r'$v_{iN}$ error'
97
+ var.unit = 'm/s'
98
+ var.error = None
99
+ var.depends = {0: depend_0, 1: depend_1}
100
+ # set plot attrs
101
+ var.visual.plot_config.config(**default_plot_config)
102
+ var.visual.plot_config.style = '2P'
103
+ # set axis attrs
104
+ axis = var.visual.axis
105
+ axis[1].data = "@d.CGM_LAT.value"
106
+ axis[2].data = "@v.value"
107
+ # axis[1].lim = [90, 500]
108
+ axis[1].label = 'MLAT'
109
+ axis[1].unit = r'$^\circ$'
110
+
111
+ axis[2].lim = [0, 750]
112
+ axis[2].scale = 'linear'
113
+ axis[2].label = '@v.label'
114
+ axis[2].unit = '@v.unit_label'
115
+
116
+ configured_variables[var_name] = var
117
+
118
+ ####################################################################################################################
119
+ var_name = 'v_i_E'
120
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
121
+ # set variable attrs
122
+ var.fullname = 'Ion velocity perpendicular to B (Eastward)'
123
+ var.label = r'$v_{iE}$'
124
+ var.unit = 'm/s'
125
+ var.error = var_name + '_err'
126
+ var.depends = {0: depend_0, 1: depend_1}
127
+ # set plot attrs
128
+ var.visual.plot_config.config(**default_plot_config)
129
+ var.visual.plot_config.style = '2P'
130
+ # set axis attrs
131
+ axis = var.visual.axis
132
+ axis[1].data = "@d.CGM_LAT.value"
133
+ axis[2].data = "@v.value"
134
+ # axis[1].lim = [90, 500]
135
+ axis[1].label = 'MLAT'
136
+ axis[1].unit = r'$^\circ$'
137
+
138
+ axis[2].lim = [-1500, 1500]
139
+ axis[2].scale = 'linear'
140
+ axis[2].label = '@v.label'
141
+ axis[2].unit = '@v.unit_label'
142
+
143
+ configured_variables[var_name] = var
144
+
145
+ ####################################################################################################################
146
+ var_name = 'v_i_E_err'
147
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
148
+ # set variable attrs
149
+ var.fullname = 'Error of ion velocity perpendicular to B (Eastward)'
150
+ var.label = r'$v_{iE}$ error'
151
+ var.unit = 'm/s'
152
+ var.error = None
153
+ var.depends = {0: depend_0, 1: depend_1}
154
+ # set plot attrs
155
+ var.visual.plot_config.config(**default_plot_config)
156
+ var.visual.plot_config.style = '2P'
157
+ # set axis attrs
158
+ axis = var.visual.axis
159
+ axis[1].data = "@d.CGM_LAT.value"
160
+ axis[2].data = "@v.value"
161
+ # axis[1].lim = [90, 500]
162
+ axis[1].label = 'MLAT'
163
+ axis[1].unit = r'$^\circ$'
164
+
165
+ axis[2].lim = [0, 750]
166
+ axis[2].scale = 'linear'
167
+ axis[2].label = '@v.label'
168
+ axis[2].unit = '@v.unit_label'
169
+
170
+ configured_variables[var_name] = var
171
+
172
+ ####################################################################################################################
173
+ var_name = 'v_i_Z'
174
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
175
+ # set variable attrs
176
+ var.fullname = 'Ion velocity anti-parallel to B'
177
+ var.label = r'$v_{iZ}$'
178
+ var.unit = 'm/s'
179
+ var.error = var_name + '_err'
180
+ var.depends = {0: depend_0, 1: depend_1}
181
+ # set plot attrs
182
+ var.visual.plot_config.config(**default_plot_config)
183
+ var.visual.plot_config.style = '2P'
184
+ # set axis attrs
185
+ axis = var.visual.axis
186
+ axis[1].data = "@d.CGM_LAT.value"
187
+ axis[2].data = "@v.value"
188
+ # axis[1].lim = [90, 500]
189
+ axis[1].label = 'MLAT'
190
+ axis[1].unit = r'$^\circ$'
191
+
192
+ axis[2].lim = [-1500, 1500]
193
+ axis[2].scale = 'linear'
194
+ axis[2].label = '@v.label'
195
+ axis[2].unit = '@v.unit_label'
196
+
197
+ configured_variables[var_name] = var
198
+
199
+ ####################################################################################################################
200
+ var_name = 'v_i_Z_err'
201
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
202
+ # set variable attrs
203
+ var.fullname = 'Error of ion velocity anti-parallel to B'
204
+ var.label = r'$v_{iZ}$ error'
205
+ var.unit = 'm/s'
206
+ var.error = None
207
+ var.depends = {0: depend_0, 1: depend_1}
208
+ # set plot attrs
209
+ var.visual.plot_config.config(**default_plot_config)
210
+ var.visual.plot_config.style = '2P'
211
+ # set axis attrs
212
+ axis = var.visual.axis
213
+ axis[1].data = "@d.CGM_LAT.value"
214
+ axis[2].data = "@v.value"
215
+ # axis[1].lim = [90, 500]
216
+ axis[1].label = 'MLAT'
217
+ axis[1].unit = r'$^\circ$'
218
+
219
+ axis[2].lim = [0, 750]
220
+ axis[2].scale = 'linear'
221
+ axis[2].label = '@v.label'
222
+ axis[2].unit = '@v.unit_label'
223
+
224
+ configured_variables[var_name] = var
225
+
226
+ ####################################################################################################################
227
+ var_name = 'v_i_MAG'
228
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
229
+ # set variable attrs
230
+ var.fullname = 'SON ion velocity magnitude (XY plane)'
231
+ var.label = r'$v_{i}$ in X-Y'
232
+ var.unit = 'm/s'
233
+ var.error = var_name + '_err'
234
+ var.depends = {0: depend_0, 1: depend_1}
235
+ # set plot attrs
236
+ var.visual.plot_config.config(**default_plot_config)
237
+ var.visual.plot_config.style = '2P'
238
+ # set axis attrs
239
+ axis = var.visual.axis
240
+ axis[1].data = "@d.CGM_LAT.value"
241
+ axis[2].data = "@v.value"
242
+ # axis[1].lim = [90, 500]
243
+ axis[1].label = 'MLAT'
244
+ axis[1].unit = r'$^\circ$'
245
+
246
+ axis[2].lim = [0, 1500]
247
+ axis[2].scale = 'linear'
248
+ axis[2].label = '@v.label'
249
+ axis[2].unit = '@v.unit_label'
250
+
251
+ configured_variables[var_name] = var
252
+
253
+ ####################################################################################################################
254
+ var_name = 'v_i_MAG_err'
255
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
256
+ # set variable attrs
257
+ var.fullname = 'Error of SON ion velocity magnitude (XY plane)'
258
+ var.label = r'$v_{i}$ error in X-Y'
259
+ var.unit = 'm/s'
260
+ var.error = None
261
+ var.depends = {0: depend_0, 1: depend_1}
262
+ # set plot attrs
263
+ var.visual.plot_config.config(**default_plot_config)
264
+ var.visual.plot_config.style = '2P'
265
+ # set axis attrs
266
+ axis = var.visual.axis
267
+ axis[1].data = "@d.CGM_LAT.value"
268
+ axis[2].data = "@v.value"
269
+ # axis[1].lim = [90, 500]
270
+ axis[1].label = 'MLAT'
271
+ axis[1].unit = r'$^\circ$'
272
+
273
+ axis[2].lim = [0, 750]
274
+ axis[2].scale = 'linear'
275
+ axis[2].label = '@v.label'
276
+ axis[2].unit = '@v.unit_label'
277
+
278
+ configured_variables[var_name] = var
279
+
280
+ ####################################################################################################################
281
+ var_name = 'v_i_ANGLE'
282
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
283
+ # set variable attrs
284
+ var.fullname = 'Ion velocity angle in X-Y'
285
+ var.label = r'$v_i$ angle in X-Y'
286
+ var.unit = 'degree'
287
+ var.unit_label = r'$^\circ$'
288
+ var.error = var_name + '_err'
289
+ var.depends = {0: depend_0, 1: depend_1}
290
+ # set plot attrs
291
+ var.visual.plot_config.config(**default_plot_config)
292
+ var.visual.plot_config.style = '2P'
293
+ # set axis attrs
294
+ axis = var.visual.axis
295
+ axis[1].data = "@d.CGM_LAT.value"
296
+ axis[2].data = "@v.value"
297
+ axis[2].data_scale = 1000
298
+ # axis[1].lim = [90, 500]
299
+ axis[1].label = 'MLAT'
300
+ axis[1].unit = r'$^\circ$'
301
+
302
+ axis[2].lim = [-180, 180]
303
+ axis[2].scale = 'linear'
304
+ axis[2].label = '@v.label'
305
+ axis[2].unit = '@v.unit_label'
306
+
307
+ configured_variables[var_name] = var
308
+
309
+ ####################################################################################################################
310
+ var_name = 'v_i_ANGLE_err'
311
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
312
+ # set variable attrs
313
+ var.fullname = 'Error of ion velocity angle in X-Y'
314
+ var.label = r'$v_i$ angle in X-Y'
315
+ var.unit = 'degree'
316
+ var.unit_label = r'$^\circ$'
317
+ var.error = var_name + '_err'
318
+ var.depends = {0: depend_0, 1: depend_1}
319
+ # set plot attrs
320
+ var.visual.plot_config.config(**default_plot_config)
321
+ var.visual.plot_config.style = '2P'
322
+ # set axis attrs
323
+ axis = var.visual.axis
324
+ axis[1].data = "@d.CGM_LAT.value"
325
+ axis[2].data = "@v.value"
326
+ axis[2].data_scale = 1000
327
+ # axis[1].lim = [90, 500]
328
+ axis[1].label = 'MLAT'
329
+ axis[1].unit = r'$^\circ$'
330
+
331
+ axis[2].lim = [0, 180]
332
+ axis[2].scale = 'linear'
333
+ axis[2].label = '@v.label'
334
+ axis[2].unit = '@v.unit_label'
335
+
336
+ configured_variables[var_name] = var
337
+
338
+ ####################################################################################################################
339
+ var_name = 'E_N'
340
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
341
+ # set variable attrs
342
+ var.fullname = 'Electric field perpendicular to B (Northward)'
343
+ var.label = r'$E_{N}$'
344
+ var.unit = 'mV/m'
345
+ var.error = var_name + '_err'
346
+ var.depends = {0: depend_0, 1: depend_1}
347
+ # set plot attrs
348
+ var.visual.plot_config.config(**default_plot_config)
349
+ var.visual.plot_config.style = '2P'
350
+ # set axis attrs
351
+ axis = var.visual.axis
352
+ axis[1].data = "@d.CGM_LAT.value"
353
+ axis[2].data = "@v.value"
354
+ axis[2].data_scale = 1000
355
+ # axis[1].lim = [90, 500]
356
+ axis[1].label = 'MLAT'
357
+ axis[1].unit = r'$^\circ$'
358
+
359
+ axis[2].lim = [-80, 80]
360
+ axis[2].scale = 'linear'
361
+ axis[2].label = '@v.label'
362
+ axis[2].unit = '@v.unit_label'
363
+
364
+ configured_variables[var_name] = var
365
+
366
+ ####################################################################################################################
367
+ var_name = 'E_N_err'
368
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
369
+ # set variable attrs
370
+ var.fullname = 'Error of electric field perpendicular to B (Northward)'
371
+ var.label = r'$E_{N}$ error'
372
+ var.unit = 'mV/m'
373
+ var.error = None
374
+ var.depends = {0: depend_0, 1: depend_1}
375
+ # set plot attrs
376
+ var.visual.plot_config.config(**default_plot_config)
377
+ var.visual.plot_config.style = '2P'
378
+ # set axis attrs
379
+ axis = var.visual.axis
380
+ axis[1].data = "@d.CGM_LAT.value"
381
+ axis[2].data = "@v.value"
382
+ axis[2].data_scale = 1000
383
+ # axis[1].lim = [90, 500]
384
+ axis[1].label = 'MLAT'
385
+ axis[1].unit = r'$^\circ$'
386
+
387
+ axis[2].lim = [0, 40]
388
+ axis[2].scale = 'linear'
389
+ axis[2].label = '@v.label'
390
+ axis[2].unit = '@v.unit_label'
391
+
392
+ configured_variables[var_name] = var
393
+
394
+ ####################################################################################################################
395
+ var_name = 'E_E'
396
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
397
+ # set variable attrs
398
+ var.fullname = 'Electric field perpendicular to B (Eastward)'
399
+ var.label = r'$E_{E}$'
400
+ var.unit = 'mV/m'
401
+ var.error = var_name + '_err'
402
+ var.depends = {0: depend_0, 1: depend_1}
403
+ # set plot attrs
404
+ var.visual.plot_config.config(**default_plot_config)
405
+ var.visual.plot_config.style = '2P'
406
+ # set axis attrs
407
+ axis = var.visual.axis
408
+ axis[1].data = "@d.CGM_LAT.value"
409
+ axis[2].data = "@v.value"
410
+ axis[2].data_scale = 1000
411
+ # axis[1].lim = [90, 500]
412
+ axis[1].label = 'MLAT'
413
+ axis[1].unit = r'$^\circ$'
414
+
415
+ axis[2].lim = [-80, 80]
416
+ axis[2].scale = 'linear'
417
+ axis[2].label = '@v.label'
418
+ axis[2].unit = '@v.unit_label'
419
+
420
+ configured_variables[var_name] = var
421
+
422
+ ####################################################################################################################
423
+ var_name = 'E_E_err'
424
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
425
+ # set variable attrs
426
+ var.fullname = 'Error of electric field perpendicular to B (Eastward)'
427
+ var.label = r'$E_{E}$ error'
428
+ var.unit = 'mV/m'
429
+ var.error = None
430
+ var.depends = {0: depend_0, 1: depend_1}
431
+ # set plot attrs
432
+ var.visual.plot_config.config(**default_plot_config)
433
+ var.visual.plot_config.style = '2P'
434
+ # set axis attrs
435
+ axis = var.visual.axis
436
+ axis[1].data = "@d.CGM_LAT.value"
437
+ axis[2].data = "@v.value"
438
+ axis[2].data_scale = 1000
439
+ # axis[1].lim = [90, 500]
440
+ axis[1].label = 'MLAT'
441
+ axis[1].unit = r'$^\circ$'
442
+
443
+ axis[2].lim = [0, 40]
444
+ axis[2].scale = 'linear'
445
+ axis[2].label = '@v.label'
446
+ axis[2].unit = '@v.unit_label'
447
+
448
+ configured_variables[var_name] = var
449
+
450
+ ####################################################################################################################
451
+ var_name = 'EF_MAG'
452
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
453
+ # set variable attrs
454
+ var.fullname = 'Electric field magnitude in X-Y'
455
+ var.label = r'EF in X-Y'
456
+ var.unit = 'mV/m'
457
+ var.error = var_name + '_err'
458
+ var.depends = {0: depend_0, 1: depend_1}
459
+ # set plot attrs
460
+ var.visual.plot_config.config(**default_plot_config)
461
+ var.visual.plot_config.style = '2P'
462
+ # set axis attrs
463
+ axis = var.visual.axis
464
+ axis[1].data = "@d.CGM_LAT.value"
465
+ axis[2].data = "@v.value"
466
+ axis[2].data_scale = 1000
467
+ # axis[1].lim = [90, 500]
468
+ axis[1].label = 'MLAT'
469
+ axis[1].unit = r'$^\circ$'
470
+
471
+ axis[2].lim = [0, 80]
472
+ axis[2].scale = 'linear'
473
+ axis[2].label = '@v.label'
474
+ axis[2].unit = '@v.unit_label'
475
+
476
+ configured_variables[var_name] = var
477
+
478
+
479
+ ####################################################################################################################
480
+ var_name = 'EF_MAG_err'
481
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
482
+ # set variable attrs
483
+ var.fullname = 'Error of electric field magnitude'
484
+ var.label = r'EF error in X-Y'
485
+ var.unit = 'mV/m'
486
+ var.error = None
487
+ var.depends = {0: depend_0, 1: depend_1}
488
+ # set plot attrs
489
+ var.visual.plot_config.config(**default_plot_config)
490
+ var.visual.plot_config.style = '2P'
491
+ # set axis attrs
492
+ axis = var.visual.axis
493
+ axis[1].data = "@d.CGM_LAT.value"
494
+ axis[2].data = "@v.value"
495
+ axis[2].data_scale = 1000
496
+ # axis[1].lim = [90, 500]
497
+ axis[1].label = 'MLAT'
498
+ axis[1].unit = r'$^\circ$'
499
+
500
+ axis[2].lim = [0, 40]
501
+ axis[2].scale = 'linear'
502
+ axis[2].label = '@v.label'
503
+ axis[2].unit = '@v.unit_label'
504
+
505
+ configured_variables[var_name] = var
506
+
507
+ ####################################################################################################################
508
+ var_name = 'EF_ANGLE'
509
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
510
+ # set variable attrs
511
+ var.fullname = 'Electric field angle in X-Y'
512
+ var.label = r'EF angle in X-Y'
513
+ var.unit = 'degree'
514
+ var.unit_label = r'$^\circ$'
515
+ var.error = var_name + '_err'
516
+ var.depends = {0: depend_0, 1: depend_1}
517
+ # set plot attrs
518
+ var.visual.plot_config.config(**default_plot_config)
519
+ var.visual.plot_config.style = '2P'
520
+ # set axis attrs
521
+ axis = var.visual.axis
522
+ axis[1].data = "@d.CGM_LAT.value"
523
+ axis[2].data = "@v.value"
524
+ axis[2].data_scale = 1000
525
+ # axis[1].lim = [90, 500]
526
+ axis[1].label = 'MLAT'
527
+ axis[1].unit = r'$^\circ$'
528
+
529
+ axis[2].lim = [-180, 180]
530
+ axis[2].scale = 'linear'
531
+ axis[2].label = '@v.label'
532
+ axis[2].unit = '@v.unit_label'
533
+
534
+ configured_variables[var_name] = var
535
+
536
+ ####################################################################################################################
537
+ var_name = 'EF_ANGLE_err'
538
+ var = Var(name=var_name, ndim=2, variable_type='scalar', visual=visual)
539
+ # set variable attrs
540
+ var.fullname = 'Error of electric field angle in X-Y'
541
+ var.label = r'EF angle errror in X-Y'
542
+ var.unit = 'degree'
543
+ var.unit_label = r'$^\circ$'
544
+ var.error = None
545
+ var.depends = {0: depend_0, 1: depend_1}
546
+ # set plot attrs
547
+ var.visual.plot_config.config(**default_plot_config)
548
+ var.visual.plot_config.style = '2P'
549
+ # set axis attrs
550
+ axis = var.visual.axis
551
+ axis[1].data = "@d.CGM_LAT.value"
552
+ axis[2].data = "@v.value"
553
+ axis[2].data_scale = 1000
554
+ # axis[1].lim = [90, 500]
555
+ axis[1].label = 'MLAT'
556
+ axis[1].unit = r'$^\circ$'
557
+
558
+ axis[2].lim = [0, 180]
559
+ axis[2].scale = 'linear'
560
+ axis[2].label = '@v.label'
561
+ axis[2].unit = '@v.unit_label'
562
+
563
+ configured_variables[var_name] = var
564
+
565
+ ####################################################################################################################
566
+ var_name = 'AZ'
567
+ var = Var(name=var_name, ndim=1, variable_type='scalar', visual=visual)
568
+ # set variable attrs
569
+ var.fullname = 'azimuthal angle'
570
+ var.label = 'AZ'
571
+ var.group = 'radar param'
572
+ var.depends = {0: depend_0}
573
+ # set plot attrs
574
+ plot_config = var.visual.plot_config
575
+ plot_config.config(**default_plot_config)
576
+ plot_config.style = '1noE'
577
+ # set axis attrs
578
+ axis = var.visual.axis
579
+ axis[1].data = "@v.value"
580
+ axis[1].lim = [-5, 365]
581
+ axis[1].ticks = [0, 90, 180, 270, 360]
582
+ axis[1].label = '@v.group'
583
+ axis[1].unit = ''
584
+ axis[2].label = '@v.label'
585
+ axis[2].unit = '@v.unit_label'
586
+
587
+ configured_variables[var_name] = var
588
+
589
+ ####################################################################################################################
590
+ var_name = 'EL'
591
+ var = Var(name=var_name, ndim=1, variable_type='scalar', visual=visual)
592
+ # set variable attrs
593
+ var.fullname = 'elevation angle'
594
+ var.label = 'EL'
595
+ var.group = 'radar param'
596
+ var.depends = {0: depend_0}
597
+ # set plot attrs
598
+ plot_config = var.visual.plot_config
599
+ plot_config.config(**default_plot_config)
600
+ plot_config.style = '1noE'
601
+ # set axis attrs
602
+ axis = var.visual.axis
603
+ axis[1].data = "@v.value"
604
+ axis[1].lim = [-5, 185]
605
+ axis[1].ticks = [0, 45, 90, 135, 180]
606
+ axis[1].label = '@v.group'
607
+ axis[1].unit = ''
608
+ axis[2].label = '@v.label'
609
+ axis[2].unit = '@v.unit_label'
610
+
611
+ configured_variables[var_name] = var
612
+
613
+ ####################################################################################################################
614
+ var_name = 'P_Tx'
615
+ var = Var(name=var_name, ndim=1, variable_type='scalar', visual=visual)
616
+ # set variable attrs
617
+ var.fullname = 'Transmitter Power'
618
+ var.label = 'Power'
619
+ var.unit = 'kW'
620
+ var.group = 'radar param'
621
+ var.depends = {0: depend_0}
622
+ # set plot attrs
623
+ plot_config = var.visual.plot_config
624
+ plot_config.config(**default_plot_config)
625
+ plot_config.style = '1noE'
626
+ plot_config.line['linewidth'] = 2.5
627
+ plot_config.line['linestyle'] = '-'
628
+ plot_config.line['marker'] = ''
629
+ plot_config.line['alpha'] = 0.3
630
+ # set axis attrs
631
+ axis = var.visual.axis
632
+ axis[1].data = "@v.value"
633
+ axis[1].lim = [0, 3000]
634
+ axis[1].label = '@v.group'
635
+ axis[1].unit = '@v.unit'
636
+ axis[2].label = '@v.label'
637
+ axis[2].unit = '@v.unit_label'
638
+
639
+ configured_variables[var_name] = var
640
+
641
+ ####################################################################################################################
642
+
643
+ var_name = 'T_SYS'
644
+ var = Var(name=var_name, ndim=1, variable_type='scalar', visual=visual)
645
+ # set variable attrs
646
+ var.fullname = 'System temperature 1'
647
+ var.label = r'$T_{1}^{sys}$'
648
+ var.unit = 'K'
649
+ var.group = 'radar param'
650
+ var.depends = {0: depend_0}
651
+ # set plot attrs
652
+ plot_config = var.visual.plot_config
653
+ plot_config.config(**default_plot_config)
654
+ plot_config.line['linewidth'] = 2.5
655
+ plot_config.line['linestyle'] = '-'
656
+ plot_config.line['marker'] = ''
657
+ plot_config.line['alpha'] = 0.3
658
+
659
+ plot_config.style = '1noE'
660
+ # set axis attrs
661
+ axis = var.visual.axis
662
+ axis[1].data = "@v.value"
663
+ axis[1].lim = [0, 500]
664
+ axis[1].label = '@v.group'
665
+ axis[1].unit = '@v.unit'
666
+ axis[2].label = '@v.label'
667
+ axis[2].unit = '@v.unit_label'
668
+
669
+ configured_variables[var_name] = var
670
+
671
+ ####################################################################################################################
@@ -759,9 +759,12 @@ class TSPanel(Panel):
759
759
  if not list(iii):
760
760
  continue
761
761
  iii = np.where(np.isfinite(yy))[0]
762
- xx = np.arange(0, n)
763
- f = interp1d(xx[iii], yy[iii], kind='linear', bounds_error=False, fill_value='extrapolate')
764
- yy_new = f(xx)
762
+ if len(iii)<2:
763
+ yy_new = np.nanmedian(ydata, axis=0)
764
+ else:
765
+ xx = np.arange(0, n)
766
+ f = interp1d(xx[iii], yy[iii], kind='linear', bounds_error=False, fill_value='extrapolate')
767
+ yy_new = f(xx)
765
768
  ydata[i, :] = yy_new
766
769
  return ydata
767
770
  @staticmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geospacelab
3
- Version: 0.10.2
3
+ Version: 0.10.3
4
4
  Summary: Collect, manage, and visualize geospace data.
5
5
  Home-page: https://github.com/JouleCai/geospacelab
6
6
  Author: Lei Cai
@@ -64,7 +64,6 @@ Dynamic: summary
64
64
  [![DOI](https://zenodo.org/badge/347315860.svg)](https://zenodo.org/badge/latestdoi/347315860)
65
65
  [![Downloads](https://pepy.tech/badge/geospacelab)](https://pepy.tech/project/geospacelab)
66
66
  ![](https://tokei.rs/b1/github/JouleCai/geospacelab)
67
- [![PyPI version fury.io](https://badge.fury.io/py/ansicolortags.svg)](https://pypi.python.org/pypi/geospacelab/)
68
67
 
69
68
 
70
69
  GeospaceLAB provides a framework of data access, analysis, and visualization for the researchers in space physics and space weather. The documentation can be found