IRAP has modified a Java StreamClient application delivered by ESA, to be able to download SolarOrbiter TM/TC in near real-time, from EDDS server.
Introduction
The new software is consists in:
-
EDDS.py
python script, using EDDS SOAP Web Services
-
read config.properties file, to extract user authentication parameters and EDDS server address
-
connect to EDDS server with user account
-
launch a data streaming requests (TM or TC data)
-
recover the corresponding requestId
-
run Java StreamClient that gets streaming data for the corresponding request
-
-
StreamClientLauncher.sh
Shell script that run the Java Stream Client to recover streaming data from EDDS server
Software requirements
-
Access to EDDS server
Ask ESOC for an account on the EDDS server, with a valid Usename and password
Check your network configuration rules for your computer to access EDDS server
-
python
You need python 3.x installed on your computer, with some extra libraries :
-
zeep : to access SOAP Web services
-
isodate : ISO 8601 library (ISO time)
-
configobj : to parse config.properties
You can use pip to install those libraries
$ pip install zeep isodate configobj
-
-
java
Java probably 8.x is necessary (to be confirmed)
Installation manual
Download and extract the /documents/EDDS/software/STREAM_CLIENT.irap.tar.gz
$ cd <install-directory>
$ tar xvzf STREAM_CLIENT.irap.tar.gz
$ cd STREAM_CLIENT.irap
You will find here:
-
config.properties :
config file used by application to find username, password, EDDS server address
-
EDDS.py
python EDDS library
-
StreamCLientLauncher.sh
Shell script that run the Java StreamClient application
-
streamclient.xml
Java beans XML config file, modified by IRAP to change ESA software behaviour
-
lib
Original ESA Java library (.jar files)
-
src
IRAP’s added Java source files
-
irap-streamedds.jar
IRAP modified library (build from src/*java)
-
build
Shell script to build the IRAP Java modified software
Configuration
You have first to update the config.properties file with your usual text editor, to fill your EDDS username and passord
# The username that the request submitter should log on as
username = <EDDS-username>
# The password that the request submitter should log on as
password = <your-EDDS-password>
# The EDDS web server that the request submitter should submit requests to
eddsServerAddress = https://mmaasweb01.esoc.ops.esa.int:8443/edds/EddsService?wsdl
Check also the content of streamclient.xml file, to verify pathname of config.properties file
<bean class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
<property name="location" value="file:///home/solar/EDDS/STREAM_CLIENT.irap/config.properties"/>
</bean>
You can use the build script to reconstruct the IRAP Java library, but it’s not necessary if you dont’t modify the corresponding java sources.
./build
Will create/update the irap-streamedds.jar library
User Manual
From the extraction directory, just enter :
# To download TM data
$ python -m EDDS TM
# To download TC data
$ python -m EDDS TC
Actually, as SWA data is not yet available, we are using PID = 76,77 filtering for TM data test purpose |
You can have a look on EDDS.py, in create_TM_stream_request() function
StreamDataRequest = PktTmStream (
DataSource = "PARC",
Filter = "pids=76,77;sendRawData=true"
)
We will update later the EDDS.py software, to modify PID filters, for example to filter SWA data :
Filter = "pids=95-99;sendRawData=true"
You can modify also the test_TM() or test_TC() functions:
def test_TM ():
"""
Create a PktTmStream request, with a given duration
"""
duration = isodate.Duration (hours = 1)
req = create_TM_stream_request (duration)
job_id = send_stream_request (req)
update_properties (job_id)
run_stream_client()
Acknowledgements
Please acknoledge Tom.barthe@gmail.com
-
He has made available the EDDS Web services from remote python script, using SOAP protocol.
-
He has also overloaded the ESA stream client software to modify the application behaviour, in order to create a single result file per request, increasing regularly in near real-time.