From 5be24519029b4dbf9e314678025a7a203d6768e1 Mon Sep 17 00:00:00 2001 From: Enrico Girotto Date: Mon, 3 Feb 2025 10:23:48 +0100 Subject: [PATCH] Try to implement the new CDS api --- .../copernicus/datacubes/CopernicusCDSDatacube.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/adapters/klab.adapter.copernicus/src/main/java/org/integratedmodelling/adapter/copernicus/datacubes/CopernicusCDSDatacube.java b/adapters/klab.adapter.copernicus/src/main/java/org/integratedmodelling/adapter/copernicus/datacubes/CopernicusCDSDatacube.java index daa041885..be86699ed 100644 --- a/adapters/klab.adapter.copernicus/src/main/java/org/integratedmodelling/adapter/copernicus/datacubes/CopernicusCDSDatacube.java +++ b/adapters/klab.adapter.copernicus/src/main/java/org/integratedmodelling/adapter/copernicus/datacubes/CopernicusCDSDatacube.java @@ -64,7 +64,7 @@ public CopernicusCDSDatacube(String dataset, ITimeInstant dataStart, double noDa this.dataset = dataset; this.user = Configuration.INSTANCE.getProperties().getProperty(CDS_USER_NUMBER_PROPERTY); this.apiKey = Configuration.INSTANCE.getProperties().getProperty(CDS_API_KEY_PROPERTY); - if (this.apiKey == null || this.user == null) { + if (this.apiKey == null) { setOnline(false, "Copernicus CDS datacube: no CDS credentials provided in configuration"); } else { setOnline(true, null); @@ -128,7 +128,7 @@ protected boolean downloadChunk(int chunk, String variable, File destinationDire body.put("month", this.monts[(date.getMonth() - 1) / 3]); body.put("day", this.days); body.put("version", CDS_API_VERSION); - body.put("format", CDS_API_FORMAT); + body.put("download_format", CDS_API_FORMAT); configureRequest(variable, body); @@ -136,8 +136,8 @@ protected boolean downloadChunk(int chunk, String variable, File destinationDire Logging.INSTANCE.info("requesting chunk " + chunk + " of " + variable + " to CDS API: " + jsonBody); - HttpResponse response = Unirest.post(getEndpointUrl("resources/datasets/" + this.dataset)) - .basicAuth(user, apiKey).header("Accept", "application/json").body(jsonBody).asJson(); + HttpResponse response = Unirest.post(getEndpointUrl("/datasets/" + this.dataset)) + .header("PRIVATE-TOKEN", apiKey).header("Accept", "application/json").body(jsonBody).asJson(); if (response.isSuccess()) { @@ -221,7 +221,7 @@ protected boolean downloadChunk(int chunk, String variable, File destinationDire } public String getEndpointUrl(String request) { - return "https://cds.climate.copernicus.eu/api/v2/" + request; + return "https://cds.climate.copernicus.eu/api/" + request; } @Override