[Git][debian-gis-team/asf-search][upstream] New upstream version 11.0.1

Antonio Valentino (@antonio.valentino) gitlab at salsa.debian.org
Sat Jan 24 10:11:55 GMT 2026



Antonio Valentino pushed to branch upstream at Debian GIS Project / asf-search


Commits:
485e47c1 by Antonio Valentino at 2026-01-24T09:37:25+00:00
New upstream version 11.0.1
- - - - -


6 changed files:

- CHANGELOG.md
- asf_search/CMR/datasets.py
- asf_search/CMR/translate.py
- asf_search/Products/NISARProduct.py
- asf_search/export/jsonlite.py
- tests/yml_tests/test_search.yml


Changes:

=====================================
CHANGELOG.md
=====================================
@@ -25,6 +25,18 @@ and uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 -
 
 -->
+------
+## [v11.0.1](https://github.com/asfadmin/Discovery-asf_search/compare/v11.0.0...v11.0.1)
+### Added
+- `crid` property added to `NISARProduct`
+
+### Changed
+- Dropped `NISAR_STUF` collection from NISAR dataset (Still available when querying `NISAR` via `platform` search keyword)
+
+### Fixed
+- `NISARProduct` class populates property `pathNumber` with `TRACK_NUMBER` field from UMM-G
+    - Searching with `relativeOrbit` with `NISAR` dataset/product types in query automatically searches on `TRACK_NUMBER` instead of `PATH_NUMBER`
+
 ------
 ## [v11.0.0](https://github.com/asfadmin/Discovery-asf_search/compare/v10.3.0...v11.0.0)
 ### Changed


=====================================
asf_search/CMR/datasets.py
=====================================
@@ -238,11 +238,6 @@ dataset_collections = {
             'C1257349067-ASF',
             'C3622253574-ASF',
         ],
-        'NISAR_STUF': [
-            'C1256535568-ASFDEV',
-            'C1257349089-ASF',
-            'C3622233495-ASF',
-        ],
         'NISAR_OROST': [
             'C1256578011-ASFDEV',
             'C1257349074-ASF',


=====================================
asf_search/CMR/translate.py
=====================================
@@ -22,9 +22,11 @@ def translate_opts(opts: ASFSearchOptions) -> List:
     # so use a dict to avoid the validate_params logic:
     dict_opts = dict(opts)
 
+    should_use_track = False
     if dict_opts.get('processingLevel') is not None: # Certain products are now using PRODUCT_TYPE instead of PROCESSING_LEVEL
         processingType = dict_opts.get('processingLevel', [])[0]
         if processingType in NISAR_PRODUCT_TYPES:
+            should_use_track = True
             # Use new PRODUCT_TYPE keyword later, remove processingLevel so we don't try the value with PROCESSING_LEVEL
             dict_opts['productType'] = dict_opts.pop('processingLevel')[0]
 
@@ -107,7 +109,10 @@ def translate_opts(opts: ASFSearchOptions) -> List:
 
     if should_use_asf_frame(cmr_opts):
         cmr_opts = use_asf_frame(cmr_opts)
-
+    
+    if should_use_track:
+        cmr_opts = use_track_number(cmr_opts)
+        
     cmr_opts.extend(custom_cmr_keywords)
 
     additional_keys = [
@@ -172,6 +177,24 @@ def use_asf_frame(cmr_opts):
 
     return cmr_opts
 
+def use_track_number(cmr_opts):
+    """
+    NISAR: always use track number instead of path number
+    """
+
+    for n, p in enumerate(cmr_opts):
+        if not isinstance(p[1], str):
+            continue
+
+        m = re.search(r'PATH_NUMBER', p[1])
+        if m is None:
+            continue
+
+        logging.debug('NISAR subquery with relativeOrbit, using TRACK_NUMBER instead of PATH_NUMBER')
+
+        cmr_opts[n] = (p[0], p[1].replace(',PATH_NUMBER,', ',TRACK_NUMBER,'))
+
+    return cmr_opts
 
 # some products don't have integer values in BYTES fields, round to nearest int
 def try_round_float(value: str) -> Optional[int]:


=====================================
asf_search/Products/NISARProduct.py
=====================================
@@ -14,7 +14,12 @@ class NISARProduct(ASFStackableProduct):
             'path': ['AdditionalAttributes', ('Name', 'FRAME_NUMBER'), 'Values', 0],
             'cast': try_parse_int,
         },  # Sentinel, ALOSm and NISAR product alt for frameNumber (ESA_FRAME)
+        'pathNumber': { # AKA trackNumber, AKA relativeOrbit
+            'path': ['AdditionalAttributes', ('Name', 'TRACK_NUMBER'), 'Values', 0],
+            'cast': try_parse_int,
+        },
         'pgeVersion': {'path': ['PGEVersionClass', 'PGEVersion']},
+        'crid': {'path': ['DataGranule', 'Identifiers', ('IdentifierType', 'CRID'), 'Identifier']},
         'mainBandPolarization': {'path': ['AdditionalAttributes', ('Name', 'FREQUENCY_A_POLARIZATION'), 'Values']},
         'sideBandPolarization': {'path': ['AdditionalAttributes', ('Name', 'FREQUENCY_B_POLARIZATION'), 'Values']},
         'frameCoverage': {'path': ['AdditionalAttributes', ('Name', 'FULL_FRAME'), 'Values', 0], 'cast': try_parse_frame_coverage},


=====================================
asf_search/export/jsonlite.py
=====================================
@@ -240,6 +240,7 @@ class JSONLiteStreamArray(list):
                 'additionalUrls': p.get('additionalUrls', []),
                 's3Urls': p.get('s3Urls', []),
                 'pgeVersion':  p.get('pgeVersion'),
+                'crid': p.get('crid'),
                 'mainBandPolarization':  p.get('mainBandPolarization'),
                 'sideBandPolarization':  p.get('sideBandPolarization'),
                 'frameCoverage':  p.get('frameCoverage'),


=====================================
tests/yml_tests/test_search.yml
=====================================
@@ -222,7 +222,6 @@ nisar_collections: &nisar_collections
     'C1256574227-ASFDEV',
     'C1256579794-ASFDEV',
     'C1256729502-ASFDEV',
-    'C1256535568-ASFDEV',
     'C1256578011-ASFDEV',
     'C1256802323-ASFDEV',
     'C1256938783-ASFDEV',
@@ -272,7 +271,6 @@ nisar_collections: &nisar_collections
     'C1257349088-ASF',
     'C1257349083-ASF',
     'C1257349067-ASF',
-    'C1257349089-ASF',
     'C1257349074-ASF',
     'C1257349063-ASF',
     'C1257349059-ASF',
@@ -322,7 +320,6 @@ nisar_collections: &nisar_collections
     'C2727908375-ASF',
     'C2727912431-ASF',
     'C3622253574-ASF',
-    'C3622233495-ASF',
     'C2727911748-ASF',
     'C3622219145-ASF',
     'C3622216140-ASF',



View it on GitLab: https://salsa.debian.org/debian-gis-team/asf-search/-/commit/485e47c1508cdebc04822552519ddd058e15e02d

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/asf-search/-/commit/485e47c1508cdebc04822552519ddd058e15e02d
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20260124/0d8bbf95/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list