Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accessing details fails for OPERA Coregistered Single-Look Complex results #31

Open
tylere opened this issue Jan 31, 2025 · 1 comment · May be fixed by #32
Open

Accessing details fails for OPERA Coregistered Single-Look Complex results #31

tylere opened this issue Jan 31, 2025 · 1 comment · May be fixed by #32

Comments

@tylere
Copy link

tylere commented Jan 31, 2025

To reproduce:

  1. In browser, open https://discover.maap-project.org/
  2. In the text search box, enter "OPERA Coregistered Single-Look Complex"
  3. Click the Search button
  4. In the search results (example: "OPERA Coregistered Single-Look Complex from Sentinel-1 validated product (Version 1)") click on the "Details" button.
  5. The result is a blank page.

The Chrome console reports the following error:

react-dom.production.min.js:188 TypeError: e is not iterable
at ResultsTable.tsx:54:49
at Array.map ()
at ResultsTable.tsx:54:18
at Array.map ()
at G (ResultsTable.tsx:244:47)

@hrodmn
Copy link
Contributor

hrodmn commented Jan 31, 2025

Full error:

ERROR
object null is not iterable (cannot read property Symbol(Symbol.iterator))
TypeError: object null is not iterable (cannot read property Symbol(Symbol.iterator))
    at http://localhost:3000/src_components_ResultsTable_tsx.74c26d61a5542153ce83.hot-update.js:61:22
    at Array.map (<anonymous>)
    at convertToSpatialExtent (http://localhost:3000/src_components_ResultsTable_tsx.74c26d61a5542153ce83.hot-update.js:61:18)
    at http://localhost:3000/src_components_ResultsTable_tsx.74c26d61a5542153ce83.hot-update.js:344:31
    at Array.map (<anonymous>)
    at ResultsTable (http://localhost:3000/src_components_ResultsTable_tsx.74c26d61a5542153ce83.hot-update.js:294:52)
    at renderWithHooks (http://localhost:3000/static/js/bundle.js:25344:22)
    at updateFunctionComponent (http://localhost:3000/static/js/bundle.js:28911:24)
    at beginWork (http://localhost:3000/static/js/bundle.js:30630:20)
    at HTMLUnknownElement.callCallback (http://localhost:3000/static/js/bundle.js:15600:18)

This is the frontend crashing when the spatial_extents field in the JSON is [ null ] which is happening because the CMR collection record does not have the boxes property.

Raw CMR query results

$ curl https://cmr.earthdata.nasa.gov/search/collections.json?keyword=OPERA%20Coregistered%20Single-Look%20Complex | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9985    0  9985    0     0  37451      0 --:--:-- --:--:-- --:--:-- 37537
{
  "feed": {
    "updated": "2025-01-31T02:12:18.340Z",
    "id": "https://cmr.earthdata.nasa.gov:443/search/collections.json?keyword=OPERA%20Coregistered%20Single-Look%20Complex",
    "title": "ECHO dataset metadata",
    "entry": [
      {
        "processing_level_id": "2",
        "cloud_hosted": true,
        "has_combine": false,
        "time_start": "2014-04-03T00:00:00.000Z",
        "version_id": "1",
        "dataset_id": "OPERA Coregistered Single-Look Complex from Sentinel-1 Static Layers validated product (Version 1)",
        "entry_id": "OPERA_L2_CSLC-S1-STATIC_V1_1",
        "has_spatial_subsetting": false,
        "has_transforms": false,
        "has_variables": false,
        "data_center": "ASF",
        "short_name": "OPERA_L2_CSLC-S1-STATIC_V1",
        "organizations": [
          "ASF",
          "NASA/JPL/OPERA"
        ],
        "title": "OPERA Coregistered Single-Look Complex from Sentinel-1 Static Layers validated product (Version 1)",
        "coordinate_system": "CARTESIAN",
        "summary": "The Observational Products for End-Users from Remote Sensing Analysis (OPERA) Coregistered Single-Look Complex (CSLC) from Sentinel-1 (S1) Static Layers (CSLC-S1-STATIC) validated product contains static radar geometry layers associated with the OPERA Coregistered Single-Look Complex (CSLC) from Sentinel-1 (S1) validated product. Due to the S1 mission’s narrow orbital tube, radar-geometry layers vary slightly over time for each position on the ground, and therefore are considered static. These static layers are provided separately from the OPERA CSLC-S1 product, as they are produced only once or a limited number of times, to account for changes in the DEM, in the S1 orbit, or in the static layers generation algorithm. Each OPERA CSLC-S1-STATIC product is distributed as a Hierarchical Data Format version 5 (HDF5) file following the CF-1.8 convention containing both data raster layers and product metadata and corresponds to matching CSLC-S1 products with the same burst ID. OPERA CSLC-S1 products are available over North America which includes the USA and U.S. Territories, Canada within 200 km of the U.S. border, and all mainland countries from the southern U.S. border down to and including Panama. The CSLC-S1 products are available in the associated OPERA Coregistered Single-Look Complex from Sentinel-1 validated product (Version 1) dataset.",
        "service_features": {
          "opendap": {
            "has_formats": false,
            "has_variables": false,
            "has_transforms": false,
            "has_combine": false,
            "has_spatial_subsetting": false,
            "has_temporal_subsetting": false
          },
          "esi": {
            "has_formats": false,
            "has_variables": false,
            "has_transforms": false,
            "has_combine": false,
            "has_spatial_subsetting": false,
            "has_temporal_subsetting": false
          },
          "harmony": {
            "has_formats": false,
            "has_variables": false,
            "has_transforms": false,
            "has_combine": false,
            "has_spatial_subsetting": false,
            "has_temporal_subsetting": false
          }
        },
        "orbit_parameters": {},
        "id": "C2795135668-ASF",
        "has_formats": false,
        "score": 1.1,
        "consortiums": [
          "GEOSS",
          "EOSDIS"
        ],
        "original_format": "UMM_JSON",
        "collection_data_type": "SCIENCE_QUALITY",
        "archive_center": "ASF",
        "has_temporal_subsetting": false,
        "browse_flag": true,
        "polygons": [
          [
            "62.5015467 -139.0996574 69.6867168 -139.3803251 71.2183663 -157.141417 68.3735763 -167.228812 65.4323808 -168.8440651 60.338896 -173.9306256 52.6155773 -180 50.8611463 -180 51.6129878 -170.6297483 56.0163229 -152.9114355 59.267895 -149.1913018 58.8520427 -140.3770183 56.9878841 -136.2583689 51.3393627 -131.6506428 48.4661107 -125.7549673 40.3311808 -124.4241493 34.7676709 -121.9778478 22.4311968 -110.234396 14.4339613 -97.1649601 13.1145391 -90.922636 8.0382063 -84.6585484 6.4264529 -82.198433 4.9744342 -79.0975897 6.6985362 -76.3425468 15.9928118 -83.7301124 21.8738063 -87.1827257 19.4394223 -93.6858487 26.8405583 -96.431852 28.7047067 -92.0810441 28.6812513 -88.09344 28.4115341 -85.094922 28.8151876 -83.4597433 23.5415141 -81.7506224 25.1215118 -78.2162044 29.3000106 -79.6727284 31.2954845 -79.6466319 34.8887882 -75.0796609 40.946987 -69.3403609 43.3742252 -64.4225561 48.2959502 -65.1335857 48.9438707 -71.4417716 45.7238643 -79.6545994 50.6822691 -88.2638649 50.3596533 -90.7298952 51.3673723 -95.3439882 51.22781 -104.3228708 51.0180252 -121.4385551 61.4158182 -134.3936582 62.5015467 -139.0996574"
          ]
        ],
        "platforms": [
          "Sentinel-1A",
          "Sentinel-1B"
        ],
        "online_access_flag": true,
        "links": [
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/data#",
            "hreflang": "en-US",
            "href": "https://search.asf.alaska.edu/"
          },
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/metadata#",
            "hreflang": "en-US",
            "href": "https://www.jpl.nasa.gov/go/opera/"
          },
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/metadata#",
            "hreflang": "en-US",
            "href": "https://asf.alaska.edu/datasets/daac/opera/"
          },
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/browse#",
            "hreflang": "en-US",
            "href": "https://datapool.asf.alaska.edu/BROWSE/OPERA-S1/OPERA_L2_CSLC-S1_T027-056657-IW3_20231008T132530Z_20240510T050226Z_S1A_VV_v1.1_BROWSE.png"
          }
        ]
      },
      {
        "processing_level_id": "2",
        "cloud_hosted": true,
        "has_combine": false,
        "time_start": "2014-06-15T00:00:00.000Z",
        "version_id": "1",
        "dataset_id": "OPERA Coregistered Single-Look Complex from Sentinel-1 validated product (Version 1)",
        "entry_id": "OPERA_L2_CSLC-S1_V1_1",
        "has_spatial_subsetting": false,
        "has_transforms": false,
        "has_variables": false,
        "data_center": "ASF",
        "short_name": "OPERA_L2_CSLC-S1_V1",
        "organizations": [
          "ASF",
          "NASA/JPL/OPERA"
        ],
        "title": "OPERA Coregistered Single-Look Complex from Sentinel-1 validated product (Version 1)",
        "coordinate_system": "CARTESIAN",
        "summary": "The Observational Products for End-Users from Remote Sensing Analysis (OPERA) Coregistered Single-Look Complex (CSLC) from Sentinel-1 validated product consists of Single Look Complex (SLC) images which contain both amplitude and phase information of the complex radar return. The amplitude is primarily determined by ground surface properties (e.g., terrain slope, surface roughness, and physical properties), and phase primarily represents the distance between the radar and ground targets corrected for the geometrical distance between the two based on the knowledge from Digital Elevation Model and platform’s position, i.e., the CSLC phase represents residual geometrical distance between the sensor and target, the atmospheric propagation delay and the target movements. The CSLC-S1 product is derived from Copernicus Sentinel-1A and Sentinel-1B Interferometric Wide (IW) SLC data.  \n\nThe CSLC images are precisely aligned or “coregistered” to a pre-defined UTM/Polar stereographic map projection systems and posted at 5x10 m spacing in east and north direction, respectively.  Each CSLC-S1 product corresponds to a single S1 burst and is distributed as a Hierarchical Data Format version 5 (HDF5) file following the CF-1.8 convention containing both data raster layers (e.g., geocoded complex backscatter, low-resolution correction look-up tables) and product metadata. OPERA CSLC-S1 products are available over North America which includes the USA and U.S. Territories, Canada within 200 km of the U.S. border, and all mainland countries from the southern U.S. border down to and including Panama.  The OPERA CSLC-S1 product contains modified Copernicus Sentinel data (2016-2025).\n\nDue to the S1 mission’s narrow orbital tube, radar-geometry layers vary slightly over time for each position on the ground, and therefore are considered static. These static layers are provided separately from the OPERA CLSLC-S1 product, as they are produced only once or a limited number of times. The static layers are available in the associated OPERA Coregistered Single-Look Complex from Sentinel-1 Static Layers validated product (Version 1).",
        "service_features": {
          "opendap": {
            "has_formats": false,
            "has_variables": false,
            "has_transforms": false,
            "has_combine": false,
            "has_spatial_subsetting": false,
            "has_temporal_subsetting": false
          },
          "esi": {
            "has_formats": false,
            "has_variables": false,
            "has_transforms": false,
            "has_combine": false,
            "has_spatial_subsetting": false,
            "has_temporal_subsetting": false
          },
          "harmony": {
            "has_formats": false,
            "has_variables": false,
            "has_transforms": false,
            "has_combine": false,
            "has_spatial_subsetting": false,
            "has_temporal_subsetting": false
          }
        },
        "orbit_parameters": {},
        "id": "C2777443834-ASF",
        "has_formats": false,
        "score": 1.1,
        "consortiums": [
          "GEOSS",
          "EOSDIS"
        ],
        "original_format": "UMM_JSON",
        "collection_data_type": "SCIENCE_QUALITY",
        "archive_center": "ASF",
        "has_temporal_subsetting": false,
        "browse_flag": true,
        "polygons": [
          [
            "62.5015467 -139.0996574 69.6867168 -139.3803251 71.2183663 -157.141417 68.3735763 -167.228812 65.4323808 -168.8440651 60.338896 -173.9306256 52.6155773 -180 50.8611463 -180 51.6129878 -170.6297483 56.0163229 -152.9114355 59.267895 -149.1913018 58.8520427 -140.3770183 56.9878841 -136.2583689 51.3393627 -131.6506428 48.4661107 -125.7549673 40.3311808 -124.4241493 34.7676709 -121.9778478 22.4311968 -110.234396 14.4339613 -97.1649601 13.1145391 -90.922636 8.0382063 -84.6585484 6.4264529 -82.198433 4.9744342 -79.0975897 6.6985362 -76.3425468 15.9928118 -83.7301124 21.8738063 -87.1827257 19.4394223 -93.6858487 26.8405583 -96.431852 28.7047067 -92.0810441 28.6812513 -88.09344 28.4115341 -85.094922 28.8151876 -83.4597433 23.5415141 -81.7506224 25.1215118 -78.2162044 29.3000106 -79.6727284 31.2954845 -79.6466319 34.8887882 -75.0796609 40.946987 -69.3403609 43.3742252 -64.4225561 48.2959502 -65.1335857 48.9438707 -71.4417716 45.7238643 -79.6545994 50.6822691 -88.2638649 50.3596533 -90.7298952 51.3673723 -95.3439882 51.22781 -104.3228708 51.0180252 -121.4385551 61.4158182 -134.3936582 62.5015467 -139.0996574"
          ]
        ],
        "platforms": [
          "Sentinel-1A",
          "Sentinel-1B"
        ],
        "online_access_flag": true,
        "links": [
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/data#",
            "hreflang": "en-US",
            "href": "https://search.asf.alaska.edu/"
          },
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/metadata#",
            "hreflang": "en-US",
            "href": "https://www.jpl.nasa.gov/go/opera/"
          },
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/metadata#",
            "hreflang": "en-US",
            "href": "https://asf.alaska.edu/datasets/daac/opera/"
          },
          {
            "rel": "http://esipfed.org/ns/fedsearch/1.1/browse#",
            "hreflang": "en-US",
            "href": "https://datapool.asf.alaska.edu/BROWSE/OPERA-S1/OPERA_L2_CSLC-S1_T131-279951-IW3_20231015T163036Z_20240510T141750Z_S1A_VV_v1.1_BROWSE.png"
          }
        ]
      }
    ]
  }
}

Instead of boxes it has polygons which probably contain some kind of spatial extent information.

The CMR STAC record for one of these collections has a spatial extent:

CMR STAC

$ curl https://cmr.earthdata.nasa.gov/stac/ASF/collections/OPERA_L2_CSLC-S1-STATIC_V1_1 | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5195  100  5195    0     0  12646      0 --:--:-- --:--:-- --:--:-- 12639
{
  "type": "Collection",
  "id": "OPERA_L2_CSLC-S1-STATIC_V1_1",
  "title": "OPERA Coregistered Single-Look Complex from Sentinel-1 Static Layers validated product (Version 1)",
  "description": "The Observational Products for End-Users from Remote Sensing Analysis (OPERA) Coregistered Single-Look Complex (CSLC) from Sentinel-1 (S1) Static Layers (CSLC-S1-STATIC) validated product contains static radar geometry layers associated with the OPERA Coregistered Single-Look Complex (CSLC) from Sentinel-1 (S1) validated product. Due to the S1 mission’s narrow orbital tube, radar-geometry layers vary slightly over time for each position on the ground, and therefore are considered static. These static layers are provided separately from the OPERA CSLC-S1 product, as they are produced only once or a limited number of times, to account for changes in the DEM, in the S1 orbit, or in the static layers generation algorithm. Each OPERA CSLC-S1-STATIC product is distributed as a Hierarchical Data Format version 5 (HDF5) file following the CF-1.8 convention containing both data raster layers and product metadata and corresponds to matching CSLC-S1 products with the same burst ID. OPERA CSLC-S1 products are available over North America which includes the USA and U.S. Territories, Canada within 200 km of the U.S. border, and all mainland countries from the southern U.S. border down to and including Panama. The CSLC-S1 products are available in the associated OPERA Coregistered Single-Look Complex from Sentinel-1 validated product (Version 1) dataset.",
  "stac_version": "1.0.0",
  "extent": {
    "spatial": {
      "bbox": [
        [
          -180,
          4.9744342,
          -64.4225561,
          71.2183663
        ]
      ]
    },
    "temporal": {
      "interval": [
        [
          "2014-04-03T00:00:00.000Z",
          null
        ]
      ]
    }
  },
  "assets": {
    "browse": {
      "href": "https://datapool.asf.alaska.edu/BROWSE/OPERA-S1/OPERA_L2_CSLC-S1_T027-056657-IW3_20231008T132530Z_20240510T050226Z_S1A_VV_v1.1_BROWSE.png",
      "title": "Download OPERA_L2_CSLC-S1_T027-056657-IW3_20231008T132530Z_20240510T050226Z_S1A_VV_v1.1_BROWSE.png",
      "type": "image/jpeg",
      "roles": [
        "browse"
      ]
    },
    "thumbnail": {
      "href": "https://datapool.asf.alaska.edu/BROWSE/OPERA-S1/OPERA_L2_CSLC-S1_T027-056657-IW3_20231008T132530Z_20240510T050226Z_S1A_VV_v1.1_BROWSE.png",
      "title": "Thumbnail",
      "description": "Image to represent the collection",
      "roles": [
        "thumbnail"
      ]
    },
    "alaska": {
      "href": "https://search.asf.alaska.edu/",
      "title": "Direct Download",
      "description": "ASF data search and download interface",
      "roles": [
        "data"
      ]
    },
    "provider_metadata": {
      "href": "https://asf.alaska.edu/datasets/daac/opera/",
      "title": "Provider Metadata",
      "description": "Landing page for OPERA products",
      "roles": [
        "metadata"
      ]
    },
    "s3_asf_cumulus_prod_opera_products_OPERA_L2_CSLC_S1_STATIC_": {
      "href": "s3://asf-cumulus-prod-opera-products/OPERA_L2_CSLC-S1_STATIC/",
      "roles": [
        "data"
      ],
      "title": "asf_cumulus_prod_opera_products_OPERA_L2_CSLC_S1_STATIC_"
    },
    "s3_credentials": {
      "href": "https://cumulus.asf.alaska.edu/s3credentials",
      "title": "S3 credentials API endpoint",
      "roles": [
        "metadata"
      ]
    },
    "s3_credentials_documentation": {
      "href": "https://cumulus.asf.alaska.edu/s3credentialsREADME",
      "title": "S3 credentials API endpoint documentation",
      "roles": [
        "metadata"
      ]
    },
    "metadata": {
      "href": "https://cmr.earthdata.nasa.gov/search/concepts/C2795135668-ASF.xml",
      "title": "CMR XML metadata for C2795135668-ASF",
      "type": "application/xml",
      "roles": [
        "metadata"
      ]
    }
  },
  "providers": [
    {
      "name": "ASF",
      "roles": [
        "producer"
      ]
    },
    {
      "name": "NASA EOSDIS",
      "roles": [
        "host"
      ]
    }
  ],
  "links": [
    {
      "rel": "self",
      "href": "https://cmr.earthdata.nasa.gov/stac/ASF/collections/OPERA_L2_CSLC-S1-STATIC_V1_1",
      "type": "application/json"
    },
    {
      "rel": "root",
      "href": "https://cmr.earthdata.nasa.gov/stac",
      "type": "application/json",
      "title": "Root Catalog"
    },
    {
      "rel": "parent",
      "href": "https://cmr.earthdata.nasa.gov/stac/ASF/collections",
      "type": "application/json",
      "title": "Provider Collections"
    },
    {
      "rel": "license",
      "href": "https://science.nasa.gov/earth-science/earth-science-data/data-information-policy",
      "title": "EOSDIS Data Use Policy",
      "type": "text/html"
    },
    {
      "rel": "about",
      "href": "https://cmr.earthdata.nasa.gov/search/concepts/C2795135668-ASF.html",
      "title": "HTML metadata for collection",
      "type": "text/html"
    },
    {
      "rel": "via",
      "href": "https://cmr.earthdata.nasa.gov/search/concepts/C2795135668-ASF.native",
      "title": "Native metadata for collection",
      "type": "application/xml"
    },
    {
      "rel": "via",
      "href": "https://cmr.earthdata.nasa.gov/search/concepts/C2795135668-ASF.echo10",
      "title": "ECHO10 metadata for collection",
      "type": "application/echo10+xml"
    },
    {
      "rel": "via",
      "href": "https://cmr.earthdata.nasa.gov/search/concepts/C2795135668-ASF.json",
      "title": "CMR JSON metadata for collection",
      "type": "application/json"
    },
    {
      "rel": "via",
      "href": "https://cmr.earthdata.nasa.gov/search/concepts/C2795135668-ASF.umm_json",
      "title": "CMR UMM_JSON metadata for collection",
      "type": "application/vnd.nasa.cmr.umm+json"
    },
    {
      "rel": "items",
      "href": "https://cmr.earthdata.nasa.gov/stac/ASF/collections/OPERA_L2_CSLC-S1-STATIC_V1_1/items",
      "type": "application/geo+json",
      "title": "Collection Items"
    }
  ],
  "license": "proprietary",
  "keywords": [
    "EARTH SCIENCE",
    "CRYOSPHERE",
    "GLACIERS/ICE SHEETS",
    "LAND SURFACE",
    "GEOMORPHIC LANDFORMS/PROCESSES",
    "SOLID EARTH",
    "OCEANS",
    "COASTAL PROCESSES",
    "TECTONICS"
  ],
  "summaries": {
    "platform": [
      "Sentinel-1A",
      "Sentinel-1B"
    ],
    "instruments": [
      "C-SAR",
      "C-SAR"
    ]
  }
}

In the short term there are a few options:

In the longer term this makes me want to drop support for CMR and ping the CMR STAC APIs instead 😛

@hrodmn hrodmn linked a pull request Jan 31, 2025 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants