::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
This notebook demonstates using the sscws IDL library to access data from sscweb in the IDL programming language.
Note: This notebook is for the IDL version of cdasws. A notebook for the Python version is available at python cdasws notebook. ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
The following contains the procedure to install the sscws IDL library into your IDL environment. There are different procedures for different versions of IDL. ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
If you have an old version of the SPDF_SSC package already installed, remove the old version. ::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [0]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} ipm, /remove, ‘SPDF_SSC’ ::: ::: ::: ::: :::
::: jp-Cell-outputWrapper ::: {.jp-OutputArea .jp-Cell-outputArea} ::: jp-OutputArea-child ::: {.jp-OutputPrompt .jp-OutputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedHTML .jp-OutputArea-output mime-type=“text/html”} Package “SPDF_SSC” was removed ::: ::: ::: ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”} If the lastest version of the SPDF_SSC package is not already installed, install it as shown below. ::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [1]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} ipm, /install, ‘https://sscweb.gsfc.nasa.gov/WebServices/REST/SPDF_SSC.zip’ ::: ::: ::: ::: :::
::: jp-Cell-outputWrapper ::: {.jp-OutputArea .jp-Cell-outputArea} ::: jp-OutputArea-child ::: {.jp-OutputPrompt .jp-OutputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedHTML .jp-OutputArea-output mime-type=“text/html”} Package: SPDF_SSC, Version: 2.3.6 installed ::: ::: ::: ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”} You only need to install a particular version of the package once. You will need to restore the package everytime you restart your IDL session. Restore the package as shown below. ::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell .jp-mod-noOutputs} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [0]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} restore, !package_path + ‘/SPDF_SSC/spdfssc.sav’ ::: ::: ::: ::: ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
Download and restore spdfssc.sav. You will need to restore the package everytime you restart your IDL session. ::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell .jp-mod-noOutputs} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [0]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} savFilename = filepath(‘spdfssc.sav’, /tmp) oUrl = obj_new(‘IDLnetUrl’) ; For IDL installations with old root certificates oUrl->setProperty, SSL_VERIFY_PEER=0 savFilename = oUrl->get(filename=savFilename, url=‘https://sscweb.gsfc.nasa.gov/WebServices/REST/spdfssc.sav’) restore, savFilename ::: ::: ::: ::: ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
Create an SpdfSsc object. ::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell .jp-mod-noOutputs} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [1]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} ssc = obj_new(‘SpdfSsc’) ::: ::: ::: ::: ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
Get a description of all the observatories that are available. ::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [2]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} foreach obs, (ssc->getObservatories())[0:4] do begin caldat, obs->getStartTime(), m, d, y, h, m, s print, obs->getId(), obs->getName(), y, m, d, h, m, s, $ format=‘%15s %25s %4d-%02d-%02dT%02d:%02d:%02dZ’ endforeach end ::: ::: ::: ::: :::
::: jp-Cell-outputWrapper ::: {.jp-OutputArea .jp-Cell-outputArea} ::: jp-OutputArea-child ::: {.jp-OutputPrompt .jp-OutputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedHTML .jp-OutputArea-output mime-type=“text/html”} ace ACE 1997-48-25T17:48:00Z active Active 1989-00-29T00:00:00Z aerocube6a AEROCUBE-6A 2014-00-29T00:00:00Z aerocube6b AEROCUBE-6B 2014-00-29T00:00:00Z aim AIM 2007-00-25T00:00:00Z ::: ::: ::: ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
The following code demonstrates how to get the list of available ground stations. ::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [3]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} foreach station, (ssc->getGroundStations())[0:4] do begin location = station->getLocation() lat = location->getLatitude() lon = location->getLongitude() print, station->getId(), station->getName(), lat, lon, $ format=‘%5s %25s %7.2f %7.2f’ endforeach end ::: ::: ::: ::: :::
::: jp-Cell-outputWrapper ::: {.jp-OutputArea .jp-Cell-outputArea} ::: jp-OutputArea-child ::: {.jp-OutputPrompt .jp-OutputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedHTML .jp-OutputArea-output mime-type=“text/html”} SPA South Pole -89.99 -13.32 MCM McMurdo -77.85 166.70 SBF Scott Base -77.85 166.75 SPL Siple -76.00 -84.00 HBA Halley Bay -75.52 -26.60 ::: ::: ::: ::: :::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [4]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} l = spdfGetLocations(‘iss’, [‘2013-01-01T00:00:00.000Z’, ‘2013-01-01T01:00:00.000Z’]) p = plot3d(l->getX(), l->getY(), l->getZ(), window_title=‘Orbit’) ::: ::: ::: ::: :::
::: jp-Cell-outputWrapper ::: {.jp-OutputArea .jp-Cell-outputArea} ::: jp-OutputArea-child ::: {.jp-OutputPrompt .jp-OutputArea-prompt} :::
::: {.jp-RenderedImage .jp-OutputArea-output}
{width=“640”
height=“512”}
:::
:::
:::
:::
:::
::: jp-Cell-inputWrapper ::: {.jp-InputPrompt .jp-InputArea-prompt} :::
::: {.jp-RenderedHTMLCommon .jp-RenderedMarkdown .jp-MarkdownOutput mime-type=“text/markdown”}
View the sscsws API for additional functions. ::: :::
::: {.jp-Cell .jp-CodeCell .jp-Notebook-cell .jp-mod-noOutputs} ::: jp-Cell-inputWrapper ::: {.jp-InputArea .jp-Cell-inputArea} ::: {.jp-InputPrompt .jp-InputArea-prompt} In [ ]: :::
::: {.jp-CodeMirrorEditor .jp-Editor .jp-InputArea-editor data-type=“inline”} ::: {.CodeMirror .cm-s-jupyter} ::: {.highlight .hl-idl} ::: ::: ::: ::: ::: :::