You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sdap.apache.org by sk...@apache.org on 2022/07/14 15:59:53 UTC
[incubator-sdap-nexus] branch sat-to-sat-bugfix created (now 9f890bc)
This is an automated email from the ASF dual-hosted git repository.
skperez pushed a change to branch sat-to-sat-bugfix
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-nexus.git
at 9f890bc Updated matchup to ensure both time and space are account for when 'matchOnce' is true
This branch includes the following new commits:
new 9f890bc Updated matchup to ensure both time and space are account for when 'matchOnce' is true
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[incubator-sdap-nexus] 01/01: Updated matchup to ensure both time and space are account for when 'matchOnce' is true
Posted by sk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
skperez pushed a commit to branch sat-to-sat-bugfix
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-nexus.git
commit 9f890bcbc5f9e384c18cd8d86bd7194dca21473c
Author: skorper <st...@gmail.com>
AuthorDate: Thu Jul 14 08:59:22 2022 -0700
Updated matchup to ensure both time and space are account for when 'matchOnce' is true
---
CHANGELOG.md | 3 +++
analysis/webservice/algorithms_spark/Matchup.py | 25 ++++++++++++++++---------
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9d0bb20..94ade82 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,4 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fix failing test_matchup unit test
- Fixed null value for count in matchup response
- SDAP-371: Fixed DOMS subset endpoint
+- Fixed issue where satellite satellite matchups failed
+- Fixed issue where null results were returned if more than "resultSizeLimit" matches are found
+- Fixed issue where satellite to satellite matchups with the same dataset don't return the expected result
### Security
\ No newline at end of file
diff --git a/analysis/webservice/algorithms_spark/Matchup.py b/analysis/webservice/algorithms_spark/Matchup.py
index 671a935..c154f1f 100644
--- a/analysis/webservice/algorithms_spark/Matchup.py
+++ b/analysis/webservice/algorithms_spark/Matchup.py
@@ -277,12 +277,13 @@ class Matchup(NexusCalcSparkHandler):
threading.Thread(target=do_result_insert).start()
- if 0 < result_size_limit < len(matches):
- result = DomsQueryResults(results=None, args=args, details=details, bounds=None, count=None,
- computeOptions=None, executionId=execution_id, status_code=202)
- else:
- result = DomsQueryResults(results=matches, args=args, details=details, bounds=None, count=len(matches),
- computeOptions=None, executionId=execution_id)
+ # Get only the first "result_size_limit" results
+ matches = matches[0:result_size_limit]
+
+ result = DomsQueryResults(results=matches, args=args,
+ details=details, bounds=None,
+ count=len(matches), computeOptions=None,
+ executionId=execution_id)
return result
@@ -582,7 +583,12 @@ def spark_matchup_driver(tile_ids, bounding_wkt, primary_ds_name, secondary_ds_n
lat1, lon1 = (primary.latitude, primary.longitude)
lat2, lon2 = (matchup.latitude, matchup.longitude)
az12, az21, distance = wgs84_geod.inv(lon1, lat1, lon2, lat2)
- return distance
+ return distance, time_dist(primary, matchup)
+
+ def time_dist(primary, matchup):
+ primary_time = iso_time_to_epoch(primary.time)
+ matchup_time = iso_time_to_epoch(matchup.time)
+ return abs(primary_time - matchup_time)
rdd_filtered = rdd_filtered \
.map(lambda primary_matchup: tuple([primary_matchup[0], tuple([primary_matchup[1], dist(primary_matchup[0], primary_matchup[1])])])) \
@@ -635,10 +641,11 @@ def tile_to_edge_points(tile):
data = [tile.data[tuple(idx)]]
edge_point = {
- 'point': f'Point({tile.longitudes[idx[2]]} {tile.latitudes[idx[1]]})',
+ 'latitude': tile.latitudes[idx[1]],
+ 'longitude': tile.longitudes[idx[2]],
'time': datetime.utcfromtimestamp(tile.times[idx[0]]).strftime('%Y-%m-%dT%H:%M:%SZ'),
'source': tile.dataset,
- 'platform': None,
+ 'platform': 'orbiting satellite',
'device': None,
'fileurl': tile.granule,
'variables': tile.variables,