Mercurial > repos > climate > cads
diff cads_retrieve.py @ 1:67a7303bc5c9 draft default tip
planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/cads commit 7cb1c1196b3e8998743e3b4b949290e95c5d3be1
| author | climate |
|---|---|
| date | Fri, 06 Mar 2026 13:39:23 +0000 |
| parents | b768e517a7d0 |
| children |
line wrap: on
line diff
--- a/cads_retrieve.py Sat Jun 19 18:35:50 2021 +0000 +++ b/cads_retrieve.py Fri Mar 06 13:39:23 2026 +0000 @@ -1,6 +1,7 @@ import argparse import ast -from os import environ, path +import sys +from os import environ import cdsapi @@ -31,26 +32,35 @@ req = req.replace(value, key) print("req = ", req) -c3s_type = req.split('c.retrieve')[1].split('(')[1].split(',')[0].strip(' "\'\t\r\n') -c3s_req = '{' + req.split('{', 1)[1].rsplit('}', 1)[0].replace('\n', '') + '}' +c3s_type = req.split('dataset')[1].split('=')[1].split('\n')[0].strip(' "\'\t\r\n') +c3s_req = '{' + req.split('request', 1)[1].split('{', 1)[1].rsplit('}', 1)[0].replace('\n', '') + '}' c3s_req_dict = ast.literal_eval(c3s_req) -c3s_output = req.rsplit('}', 1)[1].split(',')[1].split(')')[0].strip(' "\'\t\r\n') - -with open(args.output, "w") as f: - f.write(f'dataset to retrieve: {c3s_type}\nrequest: {c3s_req}\noutput filename: {c3s_output}') - print("start retrieving data...") -cdapi_file = path.join(environ.get('HOME'), '.cdsapirc') +api_key = environ.get("CADS_API_KEY") -if path.isfile(cdapi_file): - c = cdsapi.Client() +if not api_key: + sys.stderr.write( + "CADS retrieval failed, make sure you filled in your CADS API Key\n" + ) + sys.exit(1) - c.retrieve( - c3s_type, - c3s_req_dict, - c3s_output) +try: + c = cdsapi.Client( + url="https://ads.atmosphere.copernicus.eu/api", + key=api_key + ) + + result = c.retrieve(c3s_type, c3s_req_dict) + c3s_output = result.download() print("data retrieval successful") +except Exception: + raise RuntimeError( + "CADS retrieval failed, make sure you filled in your CADS API Key" + ) + +with open(args.output, "w") as f: + f.write(f'dataset to retrieve: {c3s_type}\nrequest: {c3s_req}\noutput filename: {c3s_output}')
