CoDD Wiki

How to find, inspect and download coincident satellite observations with the UMD Coincident Data Discovery Engine.

1. Overview

The Coincident Data Discovery Engine (CoDD) is a portal for global-scale, cross-platform satellite data search. It indexes the footprints of acquisitions from optical, radar and altimetry missions and precomputes where two missions observed the same place at nearly the same time. You can:

The sidebar has five tabs: Wiki (this page), Search, Results, Download and About. The sidebar can be widened by dragging its right edge. On phones the map sits above the sidebar; drag the bar between them to give more room to either, pinch to zoom the map, and tap the Result filters header to open the filters.

2. Quick start

Find coincident pairs

  1. Open the Search tab and click the Matrix button next to the data-source dropdown.
  2. Click a green cell, e.g. Landsat 8 × Sentinel-2. The temporal coverage chart below the matrix shows which months have pairs; click or drag across months to fill the Start/End dates.
  3. Click Confirm. Both products are filled in and the search switches to intersection mode.
  4. Optionally draw a polygon or rectangle on the map, adjust the filters and the maximum time difference.
  5. Click Intersection Search, then open the Results tab.

Search a single product

  1. On the Search tab pick one data source (leave the second one empty).
  2. Set the time range and filters, then click Search.
Tip: large regions and long time ranges can return many thousands of pairs. Results load page by page (100 per page) with a progress bar, and Cancel stops the search at any time.

3. Data sources

MissionProduct in CoDDTypeTime span in CoDD
Landsat 7Collection 2, Level-2 (LE07_…)OpticalDec 2019 – Jan 2024
Landsat 8Collection 2, Level-2 (LC08_…)OpticalDec 2019 – present
Landsat 9Collection 2, Level-2 (LC09_…)OpticalOct 2021 – present
Sentinel-1GRD (S1A/S1C_…_GRD…)SARDec 2019 – present
Sentinel-2MSI Level-2A (S2A/B/C_MSIL2A_…)OpticalDec 2019 – present
Sentinel-3OLCI full resolution (S3A/B_OL_1_EFR_…)OpticalJan 2024 – present
ICESat-2ATL03 granule segments (see naming)Laser altimetrySep 2019 – present
SWOTL2 HR Raster (SWOT_L2_HR_Raster_…)Radar altimetryJul 2023 – May 2025
NISARL2 provisional products (NISAR_L2_PR_…)SAROct 2025 – present
PlanetScopeLegacy entryOpticalNo data loaded

"Present" means the latest ingested month. For exact month-by-month availability of any mission, open the combination matrix and click the radio button next to the mission's name.

Filters that depend on the mission:

4. Combination matrix & temporal coverage

The Matrix button next to the data-source dropdown opens a grid of every mission pair.

Currently available combinations:

MissionCan be paired with
Landsat 7Sentinel-1, Sentinel-2, ICESat-2, SWOT
Landsat 8Sentinel-1, Sentinel-2, Sentinel-3, ICESat-2, SWOT, NISAR
Landsat 9Sentinel-1, Sentinel-2, Sentinel-3, ICESat-2, SWOT, NISAR
Sentinel-1Landsat 7/8/9, Sentinel-2, ICESat-2, SWOT, NISAR
Sentinel-2Landsat 7/8/9, Sentinel-1, ICESat-2, SWOT, NISAR
Sentinel-3Landsat 8, Landsat 9, NISAR
ICESat-2Landsat 7/8/9, Sentinel-1, Sentinel-2, SWOT, NISAR
SWOTLandsat 7/8/9, Sentinel-1, Sentinel-2, ICESat-2
NISARLandsat 8, Landsat 9, Sentinel-1, Sentinel-2, Sentinel-3, ICESat-2

New combinations appear in the matrix automatically as data packages are ingested.

Filters

FilterDescription
Data sourcesOne source for a product search; click + (or use the matrix) for a second source and an intersection search. x removes the second source.
Start / EndAcquisition time range, in UTC.
Maximum cloud coverKeeps footprints at or below this cloud percentage (missions without a cloud value are kept).
Maximum land percentageKeeps footprints at or below this land fraction (see mission notes).
Maximum time differenceIntersection search only: hours, minutes and seconds between the two acquisitions (default 3 h).

Region of interest

While a search runs

The status line and progress bar below the search button show progress; Cancel stops the search and clears partial results. When the search finishes the status line says how many results were found.

6. Results table

Table ↔ map

7. Map & result filters

Footprints and bubbles

Polar view

Result filters panel

After an intersection search a Result filters panel appears above the legend (its header collapses it):

Popup and stacked footprints

8. Thumbnails

MissionThumbnail
Landsat 7 / 8 / 9Microsoft Planetary Computer preview, with USGS LandsatLook as fallback
Sentinel-2Microsoft Planetary Computer preview
Sentinel-1ASF browse image
NISARASF browse image (where published)
SWOTPO.DAAC browse image; it requires a NASA Earthdata login, so when it cannot be shown inline a See thumbnail in a new window link opens it
ICESat-2, Sentinel-3Not available

9. Download

Results

Download via automated code

After a search, one button per queried product generates code that downloads the source data. Copy code or Download file saves it. Scripts cover up to 500 footprints and follow the time-difference range set on the map.

ProductCodeHow to run
Landsat 7/8/9, Sentinel-1, Sentinel-2, Sentinel-3Google Earth Engine script (JavaScript) Paste into the Earth Engine Code Editor and press Run. The script reports scenes that are not in Earth Engine and creates one Google Drive export task per scene; start them from the Tasks tab.
ICESat-2, SWOT, NISARPython script using earthaccess (prototype) pip install earthaccess, then python codd_<product>_download.py. Requires a free NASA Earthdata Login. Set DRY_RUN = True to list granules without downloading.
PlanetScope–Link to the Planet Data API instructions.

Earth Engine collections used: LANDSAT/LE07|LC08|LC09/C02/T1_L2 (or T2_L2 for Tier 2 scenes), COPERNICUS/S2_SR_HARMONIZED, COPERNICUS/S1_GRD, COPERNICUS/S3/OLCI. The script's SCALE, BANDS, REGION and DRIVE_FOLDER settings can be edited before running.

ICESat-2 ATL03 granules are large (often 1–5 GB each). See NSIDC for subsetting services if you only need part of a granule.

10. ICESat-2 naming convention

ICESat-2 results are shown as IS2_ATL03_YYYYMMDD_RRRRCCSS_NNNN:

PartMeaning
YYYYMMDDAcquisition date (UTC)
RRRRReference ground track
CCCycle
SSGranule region
NNNNCoDD polygon counter: numbers the polygons cut from one granule. It is not part of the raw granule ID.

The raw NSIDC file is named ATL03_YYYYMMDDHHMMSS_RRRRCCSS_VVV_EE.h5. Its time of day is the granule start time, which does not always match the first second of data: when there are gaps before the first valid photons, the start time differs from any polygon's time. CoDD therefore keeps only the date. To find the raw granule, search by date and RRRRCCSS (the generated Python script does this for you).

11. API reference

The web page uses these JSON endpoints, which can also be called directly. Mission codes: l7 l8 l9 s1 s2 s3 is2 swot nisar ps.

EndpointReturns
GET /data/sources/All data sources (code, name, description, cloud field).
GET /data/sources/<code>/acquisitions/Footprints of one mission (GeoJSON FeatureCollection).
GET /data/sources/<code>/coverage/Monthly acquisition counts of one mission.
GET /data/pairs/matrix/Number of coincident pairs for every mission pair.
GET /data/pairs/<a>/<b>/Coincident pairs: features_a and features_b are aligned (item i of each is one pair) and carry time_diff in decimal hours.
GET /data/pairs/<a>/<b>/coverage/Monthly pair counts for a combination.

Query parameters

acquired-min, acquired-max
ISO 8601 UTC timestamps, e.g. 2025-07-01T00:00:00Z.
cloud-percent-max
Maximum cloud percentage (missions with a cloud value only; unknown values are kept).
land-percent-max
Maximum land percentage.
polygon
URL-encoded GeoJSON Feature with a Polygon geometry (the region of interest).
time_diff
Pairs only: maximum time difference in hours (default 24).
page
1-based page number; 100 results per page. The response's properties give total and num_pages.

Example

GET https://codd.umd.edu/data/pairs/l8/s2/?acquired-min=2025-07-01T00:00:00Z
    &acquired-max=2025-07-02T00:00:00Z&cloud-percent-max=20&time_diff=1&page=1

12. FAQ & troubleshooting

13. Citation & contact

If CoDD helps your work, please cite:

Wang, R., Xie, Y., Du, L., Yu, J., Duncan, K., Farrell, S., Li, Z., & Chai, K. (2025). Coincident Data Discovery Engine: A Portal for Global-Scale Cross-Platform Satellite Data Search. Proceedings of the 33rd ACM International Conference on Advances in Geographic Information Systems (ACM SIGSPATIAL), 860–863. doi:10.1145/3748636.3762800

Questions and suggestions are welcome through the feedback form. The BibTeX entry and acknowledgements are on the About tab.