spedas / pyspedas

Python-based Space Physics Environment Data Analysis Software
https://pyspedas.readthedocs.io/
MIT License
147 stars 58 forks source link

Spacecraft Position Vectors #113

Closed maheshv-vm closed 1 year ago

maheshv-vm commented 2 years ago

Hi,

Is there any way to obtain the spacecraft position (specifically, for GOES and THEMIS) for a particular interval? Further, can documentation be improved to indicate what variables pertain to which fields in function calls? For instance, if I want to obtain solar wind dynamic pressure from OMNI data, what variable should I pass to the function call? It's not enough to just provide scripts that tell users nothing about what the code is doing and what modifications may be made.

ericthewizard commented 2 years ago

Hello!

Is there any way to obtain the spacecraft position (specifically, for GOES and THEMIS) for a particular interval

There's a notebook showing how to load THEMIS position data here:

https://github.com/spedas/themis-examples/blob/main/basic/State%20data.ipynb

Unfortunately, we don't have GOES position data yet, but it should be fairly easy to add, so I'll add that to our todo list.

Further, can documentation be improved to indicate what variables pertain to which fields in function calls? For instance, if I want to obtain solar wind dynamic pressure from OMNI data, what variable should I pass to the function call?

The load routines have defaults for the options, so you actually don't need to pass anything to the function to load some data; though you'll probably want to change the default time range (trange), e.g.,

pyspedas.omni.data(trange=['2015-10-16', '2015-10-17'])
tplot('Pressure')

It's not enough to just provide scripts that tell users nothing about what the code is doing and what modifications may be made.

You should be able to see a full list of the keywords by calling 'help' on the load routine you're interested in, e.g.,

help(pyspedas.omni.data)

Screen Shot 2021-11-18 at 1 18 11 PM

The load routines are also documented at:

https://pyspedas.readthedocs.io/en/latest/

e.g., the OMNI load routine documentation is available here:

https://pyspedas.readthedocs.io/en/latest/omni.html

I should also note that you have access to complete information on the variables that are loaded by setting the 'metadata' option to True in a call to get_data, e.g.,

>>> from pytplot import get_data
>>> pressure_metadata = get_data('Pressure', metadata=True)
>>> pressure_metadata
{'CDF': {'VATT': {'FIELDNAM': 'Flow pressure', 'VALIDMIN': array([0.], dtype=float32), 'VALIDMAX': array([100.], dtype=float32), 'SCALEMIN': array([0.], dtype=float32), 'SCALEMAX': array([100.], dtype=float32), 'UNITS': 'nPa', 'FORMAT': 'F5.2', 'FILLVAL': array([99.99], dtype=float32), 'VAR_TYPE': 'data', 'CATDESC': 'Flow pressure (nPa)', 'VAR_NOTES': 'Derived parameters are obtained from the following equations. Flow pressure = (2*10**-6)*Np*Vp**2 nPa (Np in cm**-3, Vp in km/s, subscript p for proton) ', 'DISPLAY_TYPE': 'time_series', 'DEPEND_0': 'Epoch', 'LABLAXIS': 'Flow pressure'}, 'GATT': {'Project': 'NSSDC', 'Discipline': 'Space Physics>Interplanetary Studies', 'Source_name': 'OMNI (1AU IP Data)>Merged 1 minute Interplantary OMNI data', 'Data_type': 'HRO2>Definitive 1minute (modified)', 'Descriptor': 'IMF and Plasma data', 'Data_version': '1', 'TITLE': 'Near-Earth Heliosphere Data (OMNI)', 'TEXT': ['1minute averaged definitive multispacecraft interplanetary parameters data', 'Additional information for all parameters are available from OMNI Data Documentation: https://omniweb.gsfc.nasa.gov/html/HROdocum.html', "Additional data access options available at  SPDF's OMNIWeb Service: https://omniweb.gsfc.nasa.gov/ow_min.html", 'Recent omni high resolution updates Release Notes: https://omniweb.gsfc.nasa.gov/html/hro_news.html'], 'MODS': ['created September 2019;', 'conversion to ISTP/IACG CDFs via SKTEditor Feb 2000', 'Time tags in CDAWeb version were modified in March 2005 to use the', "CDAWeb convention of having mid-average time tags rather than OMNI's", 'original convention of start-of-average time tags.', 'Near-Earth Heliosphere Data (OMNI) 1minute averaged definitive multispacecraft interplanetary parameters data.  Additional information for all parameters are available from OMNI Data Documentation: https://omniweb..sci.gsfc.nasa.gov/html/HROdocum.html New data may be accesible at  SPDFs OMNIWeb Service: https://omniweb.sci.gsfc.nasa.gov/ow_min.html Created September 2019; conversion to ISTP/IACG CDFs via SKTEditor Feb 2000 Time tags in CDAWeb version were modified in March 2005 to use the CDAWeb convention of having mid-average time tags rather than OMNI original convention of start-of-average time tags. The Modified (Level-3) High Resolution OMNI data files are made in the same format as the omni files based on SWE_KP data.  There are a few differences  between old and new high res. OMNI 1. In the new, modified Level-3 OMNI data files we used the Wind/SWE plasma definitive data rather than the Wind/SWE plasma KP-despiked data. Using the definitive data give us possibility to include the Alpha/Proton Density Ratio and use more accurate plasma parameters.  However, the time coverage in the new OMNI data was decreased by 2-10% - see the data description at our FTP site at https://spdf.gsfc.nasa.gov/pub/data/omni/high_res_omni/modified/. For detail comparison 1-min. SWE definitive and cross-normalized SWE_KP data sets see https://omniweb.sci.gsfc.nasa.gov/ftpbrowser/wind_pla_def_kp_norm.html.  2. To keep the number of words and the records length the same as in the old OMNI high resolution data set we replaced the PCN-index (word #45 ) in the records with the new Alpha/Proton Density Ratio parameter.  3. The latest date for these new data usually behind of the OMNI based on SWE_KP data.'], 'Logical_file_id': 'omni_hro2_1min_00000000_v01', 'PI_name': 'J.H. King, N. Papatashvilli', 'PI_affiliation': 'AdnetSystems, NASA GSFC', 'Generation_date': 'Ongoing', 'Acknowledgement': 'NSSDC', 'ADID_ref': 'NSSD0110', 'Rules_of_use': 'Public', 'Instrument_type': ['Plasma and Solar Wind', 'Magnetic Fields (space)', 'Electric Fields (space)'], 'Generated_by': 'King/Papatashvilli', 'Time_resolution': '1 minute', 'Logical_source': 'omni_hro2_1min', 'Logical_source_description': "OMNI Combined, Definitive 1-minute IMF and Definitive Plasma Data Time-Shifted to the Nose of the Earth's Bow Shock, plus Magnetic Indices", 'LINK_TEXT': ['Additional information for all parameters are available from ', 'Additional data access options available at', 'Recent omni high resolution updates '], 'LINK_TITLE': ['OMNI Data documentation', "SPDF's OMNIWeb Service", 'Release Notes'], 'HTTP_LINK': ['https://omniweb.gsfc.nasa.gov/html/HROdocum.html', 'https://omniweb.gsfc.nasa.gov/ow_min.html', 'https://omniweb.gsfc.nasa.gov/html/hro_news.html'], 'alt_logical_source': 'Combined_OMNI_1AU-MagneticField-Plasma-HRO_1min_cdf', 'Mission_group': ['OMNI (Combined 1AU IP Data; Magnetic and Solar Indices)', 'ACE', 'Wind', 'IMP (All)', '!___Interplanetary Data near 1 AU'], 'spase_DatasetResourceID': 'spase://NASA/NumericalData/OMNI/HighResolutionObservations/Version2/PT1M'}, 'FILENAME': 'omni_data/hro2_1min/2015/omni_hro2_1min_20151001_v01.cdf'}, 'plot_options': {'xaxis_opt': {'axis_label': 'Time', 'crosshair': 'X', 'x_axis_type': 'linear'}, 'yaxis_opt': {'axis_label': 'Flow pressure', 'crosshair': 'Y', 'y_axis_type': 'linear', 'y_range': [1.26, 3.27], 'axis_subtitle': '[nPa]'}, 'zaxis_opt': {'axis_label': 'Z-Axis', 'crosshair': 'Z', 'z_axis_type': 'linear'}, 'line_opt': {}, 'trange': [1443657600.0, 1446335940.0], 'time_bar': [], 'extras': {'panel_size': 1, 'char_size': 10, 'border': True}, 'create_time': datetime.datetime(2021, 11, 18, 13, 13, 4, 579399), 'links': {}, 'spec_bins_ascending': None, 'overplots': [], 'interactive_xaxis_opt': {}, 'interactive_yaxis_opt': {}, 'error': None}}
>>> 

Hope this helps!

ericthewizard commented 1 year ago

PySPEDAS v1.4.2 should now have GOES orbit data via:

pyspedas.goes.orbit()

It has all of our standard keywords (trange, suffix, etc) - as with the example above, you can call the help function on the load routine to get a full list of the available keywords.