To learn more about MARS and how to use it, please visit the MARS user documentation.
One of the big features of the European Weather Cloud is the fast access to data resources. If you want to access MARS from the European Weather Cloud, here is what you need to do.
Setting up your instance
For fast MARS access, you will need to provision your instance on the ECMWF cloud.
Ubuntu, CentOS and Rocky have support for native MARS client.
When provisioning a new instance:
- Select the "*-data" layout.
- If the instance is running at ECMWF, add the "external-internet" network. MARS needs to have a public IP (external-internet network) to be able to use the direct connection to the MARS servers.
- If using Floating IP instead, you will then need to let MARS know at runtime what is your IP address is. You will need to have the following variable defined on every session that you need to run MARS from. You may add that definition into your .bashrc or .profile scripts.
export MARS_DHS_LOCALHOST=<your_public_ip>
If you wish to convert an existing instance, you can select it, and "Action -> run workflow -> click the list icon and select something like "Install ECMWF software nexus".
Configuring MARS
The command-line client will be pre-installed if you chose the "*-data" layout, but you will need an extra step so MARS knows who you are when you issue your requests.
- In your web browser...
- Go to https://apps.ecmwf.int/v1/key
- Log in with your ECMWF user and password if you are not logged int already
- Copy your API key
In a terminal (ssh or console) session on your new VM, run the following command to install your credentials on your account in this VM:
mars --token <yourkey> --email <youremail>
Example: if your API key is da7y37f1d5c7494662e36df034bn6323 and your email is john.smith@email.me :
mars --token da7y37f1d5c7494662e36df034bn6323 --email john.smith@email.me
Test your setup
You may only access data you have been granted access to. In some cases you may not be able to retrieve valid forecast data.
You may test your connection by any valid MARS request. You have a number of examples in MARS example requests.
If you have access to real time data, a quick one-liner to test everything works is:
echo "retrieve, target=test.grib" | mars
The command should end with 0 exit code, a message stating "No errors reported" and a new file called test.grib containing 6 GRIB fields. You may decode them using ecCodes.