import pyaurorax
import pprint
import pandas as pd
aurorax = pyaurorax.PyAuroraX()
# get data sources
sources = aurorax.search.sources.list(order="program")
# show as a pandas dataframe
sources_dict = [source.__dict__ for source in sources]
df = pd.DataFrame(sources_dict, columns=["identifier", "program", "platform", "instrument_type", "source_type", "display_name"])
df.sort_values(["program", "platform"])
identifier | program | platform | instrument_type | source_type | display_name | |
---|---|---|---|---|---|---|
0 | 492 | amisr | poker flat | ISR | ground | PFISR |
1 | 494 | amisr | resolute bay | ISR | ground | RISR-N |
2 | 38 | arase | arase | footprint | heo | Arase |
3 | 175 | auroramax | yellowknife | DSLR | ground | AuroraMAX |
6 | 409 | campaigns | forgetmenot pond | observer | ground | Observer at Forget-Me-Not Pond |
... | ... | ... | ... | ... | ... | ... |
192 | 94 | trex | rabbit lake | near-infrared ASI | ground | TREx NIR RABB |
195 | 97 | trex | rabbit lake | spectrograph | ground | TREx Spectrograph RABB |
199 | 104 | trex | rabbit lake | RGB ASI | ground | TREx RGB RABB |
203 | 342 | trex | rabbit lake | blueline ASI | ground | TREx Blue RABB |
208 | 373 | unis/kho | longyearbyen | RGB ASI | ground | UNIS/KHO Sony A7S |
209 rows × 6 columns
# get data sources
sources = aurorax.search.sources.list(program="themis-asi")
# show as a pandas dataframe
sources_dict = [source.__dict__ for source in sources]
df = pd.DataFrame(sources_dict, columns=["identifier", "program", "platform", "instrument_type", "source_type", "display_name"])
df.sort_values(["program", "platform"])
identifier | program | platform | instrument_type | source_type | display_name | |
---|---|---|---|---|---|---|
0 | 44 | themis-asi | athabasca | panchromatic ASI | ground | THEMIS-ASI ATHA |
18 | 62 | themis-asi | chibougamau | panchromatic ASI | ground | THEMIS-ASI CHBG |
12 | 56 | themis-asi | ekati | panchromatic ASI | ground | THEMIS-ASI EKAT |
1 | 45 | themis-asi | fort simpson | panchromatic ASI | ground | THEMIS-ASI FSIM |
11 | 55 | themis-asi | fort smith | panchromatic ASI | ground | THEMIS-ASI FSMI |
13 | 57 | themis-asi | fort yukon | panchromatic ASI | ground | THEMIS-ASI FYKN |
19 | 64 | themis-asi | gakona | panchromatic ASI | ground | THEMIS-ASI GAKO |
2 | 46 | themis-asi | gillam | panchromatic ASI | ground | THEMIS-ASI GILL |
21 | 66 | themis-asi | goose bay | panchromatic ASI | ground | THEMIS-ASI GBAY |
3 | 47 | themis-asi | inuvik | panchromatic ASI | ground | THEMIS-ASI INUV |
4 | 48 | themis-asi | kapuskasing | panchromatic ASI | ground | THEMIS-ASI KAPU |
20 | 65 | themis-asi | kiana | panchromatic ASI | ground | THEMIS-ASI KIAN |
5 | 49 | themis-asi | kuujjuaq | panchromatic ASI | ground | THEMIS-ASI KUUJ |
14 | 58 | themis-asi | mcgrath | panchromatic ASI | ground | THEMIS-ASI MCGR |
22 | 71 | themis-asi | narsarsuaq | panchromatic ASI | ground | THEMIS-ASI NRSQ |
6 | 50 | themis-asi | pinawa | panchromatic ASI | ground | THEMIS-ASI PINA |
15 | 59 | themis-asi | prince george | panchromatic ASI | ground | THEMIS-ASI PGEO |
7 | 51 | themis-asi | rankin inlet | panchromatic ASI | ground | THEMIS-ASI RANK |
8 | 52 | themis-asi | sanikiluaq | panchromatic ASI | ground | THEMIS-ASI SNKQ |
16 | 60 | themis-asi | snap lake | panchromatic ASI | ground | THEMIS-ASI SNAP |
9 | 53 | themis-asi | taloyoak | panchromatic ASI | ground | THEMIS-ASI TALO |
10 | 54 | themis-asi | the pas | panchromatic ASI | ground | THEMIS-ASI TPAS |
17 | 61 | themis-asi | whitehorse | panchromatic ASI | ground | THEMIS-ASI WHIT |
23 | 73 | themis-asi | yellowknife | panchromatic ASI | ground | THEMIS-ASI YKNF |
# get data sources
sources = aurorax.search.sources.list(instrument_type="RGB ASI")
# show as a pandas dataframe
sources_dict = [source.__dict__ for source in sources]
df = pd.DataFrame(sources_dict, columns=["identifier", "program", "platform", "instrument_type", "source_type", "display_name"])
df.sort_values(["program", "platform"])
identifier | program | platform | instrument_type | source_type | display_name | |
---|---|---|---|---|---|---|
0 | 86 | rainbow | fort simpson | RGB ASI | ground | Rainbow FSIM |
2 | 88 | rainbow | fort smith | RGB ASI | ground | Rainbow FSMI |
1 | 87 | rainbow | gillam | RGB ASI | ground | Rainbow GILL |
5 | 98 | rainbow | pinawa | RGB ASI | ground | Rainbow PINA |
3 | 89 | rainbow | rabbit lake | RGB ASI | ground | Rainbow RABB |
10 | 339 | trex | athabasca | RGB ASI | ground | TREx RGB ATHA |
4 | 96 | trex | fort smith | RGB ASI | ground | TREx RGB FSMI |
8 | 103 | trex | gillam | RGB ASI | ground | TREx RGB GILL |
6 | 101 | trex | lucky lake | RGB ASI | ground | TREx RGB LUCK |
7 | 102 | trex | pinawa | RGB ASI | ground | TREx RGB PINA |
9 | 104 | trex | rabbit lake | RGB ASI | ground | TREx RGB RABB |
11 | 373 | unis/kho | longyearbyen | RGB ASI | ground | UNIS/KHO Sony A7S |
# get data sources
sources = aurorax.search.sources.list(program="swarm")
# show as a pandas dataframe
sources_dict = [source.__dict__ for source in sources]
df = pd.DataFrame(sources_dict, columns=["identifier", "program", "platform", "instrument_type", "source_type", "display_name"])
df.sort_values(["program", "platform", "instrument_type"])
identifier | program | platform | instrument_type | source_type | display_name | |
---|---|---|---|---|---|---|
0 | 3 | swarm | swarma | footprint | leo | Swarm A |
1 | 29 | swarm | swarmb | footprint | leo | Swarm B |
2 | 30 | swarm | swarmc | footprint | leo | Swarm C |
# source type options are "leo", "heo", "ground", "lunar", or "event_list"
sources = aurorax.search.sources.list(source_type=pyaurorax.search.SOURCE_TYPE_LEO)
# show as a pandas dataframe
sources_dict = [source.__dict__ for source in sources]
df = pd.DataFrame(sources_dict, columns=["identifier", "program", "platform", "instrument_type", "source_type", "display_name"])
df.sort_values(["program", "platform"])
identifier | program | platform | instrument_type | source_type | display_name | |
---|---|---|---|---|---|---|
9 | 265 | dmsp | dmsp06 | footprint | leo | DMSP-06 |
12 | 286 | dmsp | dmsp07 | footprint | leo | DMSP-07 |
7 | 255 | dmsp | dmsp08 | footprint | leo | DMSP-08 |
8 | 264 | dmsp | dmsp09 | footprint | leo | DMSP-09 |
13 | 287 | dmsp | dmsp10 | footprint | leo | DMSP-10 |
14 | 288 | dmsp | dmsp11 | footprint | leo | DMSP-11 |
10 | 284 | dmsp | dmsp12 | footprint | leo | DMSP-12 |
11 | 285 | dmsp | dmsp13 | footprint | leo | DMSP-13 |
15 | 289 | dmsp | dmsp14 | footprint | leo | DMSP-14 |
16 | 290 | dmsp | dmsp15 | footprint | leo | DMSP-15 |
17 | 291 | dmsp | dmsp16 | footprint | leo | DMSP-16 |
18 | 292 | dmsp | dmsp17 | footprint | leo | DMSP-17 |
4 | 63 | dmsp | dmsp18 | footprint | leo | DMSP-18 |
19 | 293 | dmsp | dmsp19 | footprint | leo | DMSP-19 |
30 | 376 | elfin | elfina | footprint | leo | ELFIN-A |
31 | 404 | elfin | elfinb | footprint | leo | ELFIN-B |
3 | 32 | epop | epop | footprint | leo | ePOP |
5 | 70 | fast | fast | footprint | leo | FAST |
32 | 461 | iss | iss | footprint | leo | ISS |
20 | 326 | noaa | noaa10 | footprint | leo | NOAA-10 |
21 | 327 | noaa | noaa12 | footprint | leo | NOAA-12 |
22 | 328 | noaa | noaa14 | footprint | leo | NOAA-14 |
23 | 329 | noaa | noaa15 | footprint | leo | NOAA-15 |
24 | 330 | noaa | noaa16 | footprint | leo | NOAA-16 |
25 | 331 | noaa | noaa17 | footprint | leo | NOAA-17 |
26 | 332 | noaa | noaa18 | footprint | leo | NOAA-18 |
27 | 333 | noaa | noaa19 | footprint | leo | NOAA-19 |
28 | 334 | noaa | noaa20 | footprint | leo | NOAA-20 |
29 | 338 | noaa | noaa8 | footprint | leo | NOAA-08 |
6 | 106 | sampex | sampex | footprint | leo | SAMPEX |
0 | 3 | swarm | swarma | footprint | leo | Swarm A |
1 | 29 | swarm | swarmb | footprint | leo | Swarm B |
2 | 30 | swarm | swarmc | footprint | leo | Swarm C |
data_sources = aurorax.search.sources.list(program="swarm", platform="swarma", instrument_type="footprint")
identifier = data_sources[0].identifier
print("Identifier: %d" % (identifier))
Identifier: 3
# get data source
data_source = aurorax.search.sources.get_using_identifier(3)
pprint.pprint(data_source)
DataSource(identifier=3, program='swarm', platform='swarma', instrument_type='footprint', source_type='leo', display_name='Swarm A', metadata={}, owner='dchaddoc@ucalgary.ca', maintainers=[], ephemeris_metadata_schema=[{'field_name': 'nbtrace_region', 'description': "Region based on where the magnetic field line that passes through the spacecraft intersects the Earth's surface in the Earth's northern magnetic hemisphere", 'data_type': 'string', 'allowed_values': ['north polar cap', 'north cusp', 'north cleft', 'north auroral oval', 'north mid-latitude', 'low latitude'], 'searchable': True}, {'field_name': 'sbtrace_region', 'description': "Region based on where the magnetic field line that passes through the spacecraft intersects the Earth's surface in the Earth's southern magnetic hemisphere", 'data_type': 'string', 'allowed_values': ['south polar cap', 'south cusp', 'south cleft', 'south auroral oval', 'south mid-latitude', 'low latitude'], 'searchable': True}, {'field_name': 'radial_distance', 'description': 'Distance spacecraft is from Earth in kilometers', 'data_type': 'double', 'allowed_values': [], 'searchable': True}, {'field_name': 'spacecraft_region', 'description': "Region based on the spacecraft's position within the magnetosphere", 'data_type': 'string', 'allowed_values': ['interplanetary medium', 'dayside magnetosheath', 'nightside magnetosheath', 'dayside magnetosphere', 'nightside magnetosphere', 'dayside plasmasphere', 'nightside plasmasphere', 'plasma sheet', 'tail lobe', 'low latitude boundary layer', 'high latitude boundary layer'], 'additional_description': 'A spacecraft can occupy only one region of this region type at any given time. The North and South Mid-Latitude regions are defined as the two bands about the Earth that extend from +30 degrees latitude to the North Auroral Oval, and -30 degrees latitude to the South Auroral Oval. The Low-Latitude is the band that extends from +30 degrees latitude to -30 degrees latitude.', 'searchable': True}, {'field_name': 'radial_trace_region', 'description': "Region based on the location on the Earth's surface where a straight line would intersect when connecting the spacecraft and the Earth's center", 'data_type': 'string', 'allowed_values': ['north polar cap', 'south polar cap', 'north cusp', 'south cusp', 'north cleft', 'south cleft', 'north auroral oval', 'south auroral oval', 'north mid-latitude', 'south mid-latitude', 'low latitude'], 'searchable': True}, {'field_name': 'state', 'description': 'Data is based on predictive or definitive information', 'data_type': 'string', 'allowed_values': ['predictive', 'definitive'], 'searchable': True}, {'field_name': 'tii_on', 'description': 'Indicates that the TII instrument was operational at this time.', 'data_type': 'bool', 'allowed_values': ['true', 'false'], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}, {'field_name': 'tii_quality_vixh', 'description': 'Quality flag for Vixh data (along-track component from the horizontal sensor)', 'data_type': 'int', 'allowed_values': [], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}, {'field_name': 'tii_quality_vixv', 'description': 'Quality flag for Vixv data (along-track component from the vertical sensor)', 'data_type': 'int', 'allowed_values': [], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}, {'field_name': 'tii_quality_viy', 'description': 'Quality flag for Viy data (to the right, observer facing forward)', 'data_type': 'int', 'allowed_values': [], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}, {'field_name': 'tii_quality_viz', 'description': 'Quality flag for Viz data (downward)', 'data_type': 'int', 'allowed_values': [], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}], data_product_metadata_schema=[], stats=None, format='full_record')
You can retrieve different amounts of information about data sources. The default is pyaurorax.FORMAT_BASIC_INFO
which provides some basic information, there are also format types for smaller or larger amounts of information.
# as little information as possible
data_sources = aurorax.search.sources.list(program="swarm",
platform="swarma",
instrument_type="footprint",
format=pyaurorax.search.FORMAT_IDENTIFIER_ONLY)
print(data_sources[0])
DataSource(identifier=3, program=None, platform=None, instrument_type=None, source_type=None, display_name=None, metadata=None, owner=None, maintainers=None, ephemeris_metadata_schema=None, data_product_metadata_schema=None, stats=None, format='identifier_only')
# default information
data_source = aurorax.search.sources.get_using_identifier(3, format=pyaurorax.search.FORMAT_BASIC_INFO)
print(data_source)
DataSource(identifier=3, program='swarm', platform='swarma', instrument_type='footprint', source_type='leo', display_name='Swarm A', metadata=None, owner=None, maintainers=None, ephemeris_metadata_schema=None, data_product_metadata_schema=None, stats=None, format='basic_info')
# basic info, but with metadata
data_source = aurorax.search.sources.get_using_identifier(3, format=pyaurorax.search.FORMAT_BASIC_INFO_WITH_METADATA)
print(data_source)
DataSource(identifier=3, program='swarm', platform='swarma', instrument_type='footprint', source_type='leo', display_name='Swarm A', metadata={}, owner=None, maintainers=None, ephemeris_metadata_schema=None, data_product_metadata_schema=None, stats=None, format='with_metadata')
# all information
data_source = aurorax.search.sources.get_using_identifier(3, format=pyaurorax.search.FORMAT_FULL_RECORD)
print(data_source)
DataSource(identifier=3, program='swarm', platform='swarma', instrument_type='footprint', source_type='leo', display_name='Swarm A', metadata={}, owner='dchaddoc@ucalgary.ca', maintainers=[], ephemeris_metadata_schema=[{'field_name': 'nbtrace_region', 'description': "Region based on where the magnetic field line that passes through the spacecraft intersects the Earth's surface in the Earth's northern magnetic hemisphere", 'data_type': 'string', 'allowed_values': ['north polar cap', 'north cusp', 'north cleft', 'north auroral oval', 'north mid-latitude', 'low latitude'], 'searchable': True}, {'field_name': 'sbtrace_region', 'description': "Region based on where the magnetic field line that passes through the spacecraft intersects the Earth's surface in the Earth's southern magnetic hemisphere", 'data_type': 'string', 'allowed_values': ['south polar cap', 'south cusp', 'south cleft', 'south auroral oval', 'south mid-latitude', 'low latitude'], 'searchable': True}, {'field_name': 'radial_distance', 'description': 'Distance spacecraft is from Earth in kilometers', 'data_type': 'double', 'allowed_values': [], 'searchable': True}, {'field_name': 'spacecraft_region', 'description': "Region based on the spacecraft's position within the magnetosphere", 'data_type': 'string', 'allowed_values': ['interplanetary medium', 'dayside magnetosheath', 'nightside magnetosheath', 'dayside magnetosphere', 'nightside magnetosphere', 'dayside plasmasphere', 'nightside plasmasphere', 'plasma sheet', 'tail lobe', 'low latitude boundary layer', 'high latitude boundary layer'], 'additional_description': 'A spacecraft can occupy only one region of this region type at any given time. The North and South Mid-Latitude regions are defined as the two bands about the Earth that extend from +30 degrees latitude to the North Auroral Oval, and -30 degrees latitude to the South Auroral Oval. The Low-Latitude is the band that extends from +30 degrees latitude to -30 degrees latitude.', 'searchable': True}, {'field_name': 'radial_trace_region', 'description': "Region based on the location on the Earth's surface where a straight line would intersect when connecting the spacecraft and the Earth's center", 'data_type': 'string', 'allowed_values': ['north polar cap', 'south polar cap', 'north cusp', 'south cusp', 'north cleft', 'south cleft', 'north auroral oval', 'south auroral oval', 'north mid-latitude', 'south mid-latitude', 'low latitude'], 'searchable': True}, {'field_name': 'state', 'description': 'Data is based on predictive or definitive information', 'data_type': 'string', 'allowed_values': ['predictive', 'definitive'], 'searchable': True}, {'field_name': 'tii_on', 'description': 'Indicates that the TII instrument was operational at this time.', 'data_type': 'bool', 'allowed_values': ['true', 'false'], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}, {'field_name': 'tii_quality_vixh', 'description': 'Quality flag for Vixh data (along-track component from the horizontal sensor)', 'data_type': 'int', 'allowed_values': [], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}, {'field_name': 'tii_quality_vixv', 'description': 'Quality flag for Vixv data (along-track component from the vertical sensor)', 'data_type': 'int', 'allowed_values': [], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}, {'field_name': 'tii_quality_viy', 'description': 'Quality flag for Viy data (to the right, observer facing forward)', 'data_type': 'int', 'allowed_values': [], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}, {'field_name': 'tii_quality_viz', 'description': 'Quality flag for Viz data (downward)', 'data_type': 'int', 'allowed_values': [], 'additional_description': 'Retrieved from TII 2Hz v0301 files. Further information and documentation found at http://efi.phys.ucalgary.ca/tii-cross-track-ion-flow-dataset-0301-released/', 'searchable': True}], data_product_metadata_schema=[], stats=None, format='full_record')
# set parameters and get identifier
program = "themis"
platform = "themise"
instrument_type = "footprint"
data_sources = aurorax.search.sources.list(program=program, platform=platform, instrument_type=instrument_type, include_stats=True)
pprint.pprint(data_sources[0].stats.__dict__)
{'data_product_count': 0, 'earliest_data_product_loaded': None, 'earliest_ephemeris_loaded': datetime.datetime(2007, 2, 18, 0, 14), 'ephemeris_count': 11712947, 'latest_data_product_loaded': None, 'latest_ephemeris_loaded': datetime.datetime(2029, 5, 27, 0, 0)}