diff --git a/adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/stac/STACEncoder.java b/adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/stac/STACEncoder.java index 09006d1c9..0661f5407 100644 --- a/adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/stac/STACEncoder.java +++ b/adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/stac/STACEncoder.java @@ -430,11 +430,18 @@ public boolean test(HMStacAsset asset) { // Assuming for now that "eo:bands" wou HMRaster.MergeMode mergeMode = chooseMergeMode(targetSemantics, scope.getMonitor()); Envelope env = new Envelope(envelope.getMinX(), envelope.getMaxX(), envelope.getMinY(), envelope.getMaxY()); Polygon poly = GeometryUtilities.createPolygonFromEnvelope(env); - collection.setGeometryFilter(poly); + //collection.setGeometryFilter(poly); // collection.setTimestampFilter(new Date(start.getMilliseconds()), new // Date(end.getMilliseconds())); --> Filter later :) GridCoverage2D coverage = null; + + collection.setBboxFilter(new double[] { + bbox.get(0), + bbox.get(2), + bbox.get(1), + bbox.get(3) + }); // Allow transform ensures the process to finish, but I would not bet on the resulting // data @@ -456,7 +463,6 @@ public boolean test(HMStacAsset asset) { // Assuming for now that "eo:bands" wou return; } - List items = collection.searchItems(); if (items.isEmpty()) { manager.close(); @@ -487,7 +493,7 @@ public boolean test(HMStacAsset asset) { // Assuming for now that "eo:bands" wou // temporal filtering :( like ECDC items = items.stream() .filter(item -> isWithinRange(item, time.getStart().getMilliseconds(), time.getEnd().getMilliseconds())) - .collect(Collectors.toList()); + .collect(Collectors.toList()); if (items.size() == 0) { manager.close(); @@ -631,7 +637,8 @@ private boolean isWithinRange(HMStacItem item, long startMillis, long endMillis) long itemEnd = LocalDateTime.parse(item.getEndTimestamp(), formatter).atZone(ZoneOffset.UTC).toInstant() .toEpochMilli(); - return startMillis >= itemStart && endMillis <= itemEnd; + return (startMillis >= itemStart || Math.abs(startMillis - itemStart) < 10000) + && (endMillis <= itemEnd || Math.abs(endMillis - itemEnd) < 10000); // Allow some small tolerance } catch (Exception e) { e.printStackTrace(); diff --git a/adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/stac/STACValidator.java b/adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/stac/STACValidator.java index 8b44dad9a..d87727ed7 100644 --- a/adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/stac/STACValidator.java +++ b/adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/stac/STACValidator.java @@ -93,6 +93,8 @@ public Builder validate(String urn, URL url, IParameters userData, IMoni userData.put("s3EndpointUrl", "https://s3.waw3-1.cloudferro.com"); } else if (href.contains("waw4")) { userData.put("s3EndpointUrl", "https://s3.waw4-1.cloudferro.com"); + } else if (collectionUrl.contains("https://stac.dataspace.copernicus.eu/")){ + userData.put("s3EndpointUrl", "https://eodata.dataspace.copernicus.eu/"); } else { userData.put("s3EndpointUrl", "unknown"); } @@ -143,6 +145,12 @@ private void generateCodeList(Builder builder, String assetId, JSONObject asset) } private Type readRasterDataType(JSONObject asset) { + + if (asset.has("type")) { + if(asset.get("type").toString().contains("image/tiff")) { // Numbers + return Type.NUMBER; + } + } if (!asset.has("raster:bands")) { return null; } diff --git a/pom.xml b/pom.xml index 8e2739378..f33933d1c 100644 --- a/pom.xml +++ b/pom.xml @@ -111,7 +111,7 @@ 17 - 34.0 + 34.4 0.11.3-SNAPSHOT 1.20.0 1.5.0