Missing tiles for historical MODIS data
-
martinkeller
- Posts: 11
- Joined: Tue Jul 30, 2024 5:33 am America/New_York
Missing tiles for historical MODIS data
Hi All,
I am trying to download historical MODIS NDVI data for India and I noticed that a lot of historical data doesn't seem to be available. In particular, before June 2022 only a few number of tiles for the MOD13Q1 and MYD13Q1 data products are available.
The particular tiles that I'm trying to access are 'h24v05', 'h24v06', 'h25v06', 'h26v06', 'h24v07', 'h25v07', 'h26v07', and 'h25v08'; only information for tile 'h25v08' is available.
Could you please let me know if this data is no longer available for download or if this a temporary outage?
Best regards,
Martin Keller
I am trying to download historical MODIS NDVI data for India and I noticed that a lot of historical data doesn't seem to be available. In particular, before June 2022 only a few number of tiles for the MOD13Q1 and MYD13Q1 data products are available.
The particular tiles that I'm trying to access are 'h24v05', 'h24v06', 'h25v06', 'h26v06', 'h24v07', 'h25v07', 'h26v07', and 'h25v08'; only information for tile 'h25v08' is available.
Could you please let me know if this data is no longer available for download or if this a temporary outage?
Best regards,
Martin Keller
Hi @martinkeller, I took at look at your issue and was able to replicate the missing tiles with the script you provided. Upon closer inspection, the issue has to do with the way the links are being extracted from the search results. For MOD13Q1, the granules have multiple 'data links'. This is always possible with data, one example being Harmonized Landsat-Sentinel, but in this case they are actually browse and .xml files that are incorrectly labelled in the metadata. When earthaccess retrieves the data links its also grabbing these. The subsetting with link = result.data_links()[0] grabs the first in the list, which can sometimes be a browse image. Since the browse images have a different naming convention the script is only returning a few tiles rather than all of them, even though you're showing the correct amount of results (882). I created an example notebook for retrieving the links that also has some more explanation.
I think initially if you were using earthaccess.download() to retrieve data, the likely culprit of missing tiles was the temporary CMR search outage in early December. That download function should download all of the data including the incorrectly tagged browse images.
As for MYD13Q1, the metadata is correct and it only has 1 link returned by data_links(), so this issue should not show up there.
Go to full postI think initially if you were using earthaccess.download() to retrieve data, the likely culprit of missing tiles was the temporary CMR search outage in early December. That download function should download all of the data including the incorrectly tagged browse images.
As for MYD13Q1, the metadata is correct and it only has 1 link returned by data_links(), so this issue should not show up there.
Filters:
-
LP DAAC - dgolon
- User Services

- Posts: 201
- Joined: Tue Dec 03, 2024 2:37 pm America/New_York
- Endorsed: 2 times
Re: Missing tiles for historical MODIS data
Hi @martinkeller We are looking into this but so far everything looks normal from before June 2022. Could you please a) try again and b) if you are still seeing missing data for these granules let us know a few specific dates? Thanks -- Danielle
Subscribe to the LP DAAC listserv by sending a blank email to lpdaac-join@lists.nasa.gov.
Sign up for the Landsat listserv to receive the most up to date information about Landsat data: https://public.govdelivery.com/accounts/USDOIGS/subscriber/new#tab1.
Sign up for the Landsat listserv to receive the most up to date information about Landsat data: https://public.govdelivery.com/accounts/USDOIGS/subscriber/new#tab1.
-
martinkeller
- Posts: 11
- Joined: Tue Jul 30, 2024 5:33 am America/New_York
Re: Missing tiles for historical MODIS data
I just tried to download the data for DOY A2022129. I again requested the tiles 'h24v05', 'h24v06', 'h25v06', 'h26v06', 'h24v07', 'h25v07', 'h26v07', 'h25v08', but only got 'h24v05'.
-
LP DAAC - dgolon
- User Services

- Posts: 201
- Joined: Tue Dec 03, 2024 2:37 pm America/New_York
- Endorsed: 2 times
Re: Missing tiles for historical MODIS data
Hi @martinkeller For MOD13Q1 DOY A2022129 we are seeing granules for
'h24v05': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*24v05*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h24v06': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*24v06*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h25v06': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*25v06*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h26v06': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*h26v06*&pg[0][gsk]=-start_date&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z
'h24v07':https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*24v07*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h25v07': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*25v07*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h26v07': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*26v07*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h25v08': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*25v08*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
Just to rule this out, just in case, if you were expecting MYD13Q1 data that day, there would be no data over your area on 2022129 due to the temporal resolution of the data (16 day). The area would have MYD13Q1 data for 2022121 and 2022137.
'h24v05': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*24v05*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h24v06': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*24v06*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h25v06': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*25v06*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h26v06': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*h26v06*&pg[0][gsk]=-start_date&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z
'h24v07':https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*24v07*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h25v07': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*25v07*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h26v07': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*26v07*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
'h25v08': https://search.earthdata.nasa.gov/search/granules?p=C1748066515-LPCLOUD&pg[0][v]=f&pg[0][id]=*25v08*&pg[0][gsk]=-start_date&g=G2278498627-LPCLOUD&q=MOD13Q1&qt=2022-05-09T00%3A00%3A00.000Z%2C2022-05-09T23%3A59%3A59.999Z&lat=35.0308593596&long=80.6972778301918&zoom=5.201467784613904
Just to rule this out, just in case, if you were expecting MYD13Q1 data that day, there would be no data over your area on 2022129 due to the temporal resolution of the data (16 day). The area would have MYD13Q1 data for 2022121 and 2022137.
Subscribe to the LP DAAC listserv by sending a blank email to lpdaac-join@lists.nasa.gov.
Sign up for the Landsat listserv to receive the most up to date information about Landsat data: https://public.govdelivery.com/accounts/USDOIGS/subscriber/new#tab1.
Sign up for the Landsat listserv to receive the most up to date information about Landsat data: https://public.govdelivery.com/accounts/USDOIGS/subscriber/new#tab1.
-
martinkeller
- Posts: 11
- Joined: Tue Jul 30, 2024 5:33 am America/New_York
Re: Missing tiles for historical MODIS data
Thank you for your reply. I have looked over the links you provided and all the relevant data does indeed seem to be available.
In order to get to the bottom of why I can't seem to find the data I put together a small Python script to check what data is available when I query the Nasa Earthdata catalogue using Python:
import earthaccess
from datetime import datetime
from collections import defaultdict
import os
# credentials redacted!
EARTHDATA_USERNAME = ""
EARTHDATA_PASSWORD = ""
PRODUCT = "MOD13Q1"
VERSION = "061"
START_DATE = "2022-05-01"
END_DATE = "2022-05-31"
FILTER_TILES = [
"h24v05",
"h24v06",
"h25v06",
"h26v06",
"h24v07",
"h25v07",
"h26v07",
"h25v08",
]
def check_tiles():
"""Check all available tiles for the configured date range"""
def get_tile(link: str) -> str:
filename = link.split("/")[-1]
return filename.split(".")[2]
def get_date(link: str) -> str:
filename = link.split("/")[-1]
return filename.split(".")[1]
def julian_to_date(julian_str: str) -> str:
"""Convert A2022129 to 2022-05-09"""
try:
return datetime.strptime(julian_str, "A%Y%j").strftime("%Y-%m-%d")
except:
return julian_str
print(f"\n{'='*80}")
print(f"MODIS Tile Availability Check")
print(f"{'='*80}")
print(f"Product: {PRODUCT}.{VERSION}")
print(f"Date Range: {START_DATE} to {END_DATE}")
if FILTER_TILES:
print(f"Filtering for tiles: {', '.join(FILTER_TILES)}")
print(f"{'='*80}\n")
# Login with credentials
print("Logging in to NASA Earthdata...")
os.environ["EARTHDATA_USERNAME"] = EARTHDATA_USERNAME
os.environ["EARTHDATA_PASSWORD"] = EARTHDATA_PASSWORD
earthaccess.login(strategy="environment", persist=False)
print("Login successful!\n")
# Search for data
print(f"Searching for {PRODUCT}.{VERSION} data...")
results = earthaccess.search_data(
short_name=PRODUCT, version=VERSION, temporal=(START_DATE, END_DATE)
)
print(f"Found {len(results)} total results\n")
# Group results by date and tile
tiles_by_date = defaultdict(list)
all_tiles = set()
for result in results:
try:
link = result.data_links()[0]
tile = get_tile(link)
date = get_date(link)
filename = link.split("/")[-1]
# Apply tile filter if specified
if FILTER_TILES and tile not in FILTER_TILES:
continue
tiles_by_date[date].append(
{"tile": tile, "filename": filename, "url": link}
)
all_tiles.add(tile)
except (IndexError, AttributeError):
continue
# Display results
print(f"\n{'='*80}")
print(f"RESULTS BY DATE")
print(f"{'='*80}\n")
sorted_dates = sorted(tiles_by_date.keys())
for date in sorted_dates:
readable_date = julian_to_date(date)
tiles = tiles_by_date[date]
tile_ids = sorted([t["tile"] for t in tiles])
print(f"Date: {date} ({readable_date})")
print(f" Tiles found: {len(tiles)}")
print(f" Tile IDs: {', '.join(tile_ids)}")
for t in sorted(tiles, key=lambda x: x["tile"]):
print(f" {t['tile']}: {t['filename']}")
print()
# Summary
print(f"{'='*80}")
print(f"SUMMARY")
print(f"{'='*80}")
print(f"Total dates with data: {len(sorted_dates)}")
print(f"Unique tiles found: {len(all_tiles)}")
print(f"All tiles: {', '.join(sorted(all_tiles))}")
if FILTER_TILES:
print(f"\nRequested tiles: {', '.join(FILTER_TILES)}")
found_tiles = all_tiles.intersection(set(FILTER_TILES))
missing_tiles = set(FILTER_TILES) - all_tiles
print(f"Found: {', '.join(sorted(found_tiles)) if found_tiles else 'None'}")
if missing_tiles:
print(f"Missing: {', '.join(sorted(missing_tiles))}")
print(f"{'='*80}\n")
if __name__ == "__main__":
check_tiles()
The output on my system looks as follows:
================================================================================
MODIS Tile Availability Check
================================================================================
Product: MOD13Q1.061
Date Range: 2022-05-01 to 2022-05-31
Filtering for tiles: h24v05, h24v06, h25v06, h26v06, h24v07, h25v07, h26v07, h25v08
================================================================================
Logging in to NASA Earthdata...
Login successful!
Searching for MOD13Q1.061 data...
Found 882 total results
================================================================================
RESULTS BY DATE
================================================================================
Date: A2022113 (2022-04-23)
Tiles found: 1
Tile IDs: h25v07
h25v07: MOD13Q1.A2022113.h25v07.061.2022136104657.cmr.xml
Date: A2022129 (2022-05-09)
Tiles found: 1
Tile IDs: h24v05
h24v05: MOD13Q1.A2022129.h24v05.061.2022146013223.cmr.xml
Date: A2022145 (2022-05-25)
Tiles found: 1
Tile IDs: h25v08
h25v08: MOD13Q1.A2022145.h25v08.061.2022168103048.hdf
================================================================================
SUMMARY
================================================================================
Total dates with data: 3
Unique tiles found: 3
All tiles: h24v05, h25v07, h25v08
Requested tiles: h24v05, h24v06, h25v06, h26v06, h24v07, h25v07, h26v07, h25v08
Found: h24v05, h25v07, h25v08
Missing: h24v06, h24v07, h25v06, h26v06, h26v07
================================================================================
It seems like quite a few tiles are not found, despite the fact that they do exist. Could this perhaps be related to the metadata catalogue issues from a few weeks ago?
Best regards,
Martin Keller
In order to get to the bottom of why I can't seem to find the data I put together a small Python script to check what data is available when I query the Nasa Earthdata catalogue using Python:
import earthaccess
from datetime import datetime
from collections import defaultdict
import os
# credentials redacted!
EARTHDATA_USERNAME = ""
EARTHDATA_PASSWORD = ""
PRODUCT = "MOD13Q1"
VERSION = "061"
START_DATE = "2022-05-01"
END_DATE = "2022-05-31"
FILTER_TILES = [
"h24v05",
"h24v06",
"h25v06",
"h26v06",
"h24v07",
"h25v07",
"h26v07",
"h25v08",
]
def check_tiles():
"""Check all available tiles for the configured date range"""
def get_tile(link: str) -> str:
filename = link.split("/")[-1]
return filename.split(".")[2]
def get_date(link: str) -> str:
filename = link.split("/")[-1]
return filename.split(".")[1]
def julian_to_date(julian_str: str) -> str:
"""Convert A2022129 to 2022-05-09"""
try:
return datetime.strptime(julian_str, "A%Y%j").strftime("%Y-%m-%d")
except:
return julian_str
print(f"\n{'='*80}")
print(f"MODIS Tile Availability Check")
print(f"{'='*80}")
print(f"Product: {PRODUCT}.{VERSION}")
print(f"Date Range: {START_DATE} to {END_DATE}")
if FILTER_TILES:
print(f"Filtering for tiles: {', '.join(FILTER_TILES)}")
print(f"{'='*80}\n")
# Login with credentials
print("Logging in to NASA Earthdata...")
os.environ["EARTHDATA_USERNAME"] = EARTHDATA_USERNAME
os.environ["EARTHDATA_PASSWORD"] = EARTHDATA_PASSWORD
earthaccess.login(strategy="environment", persist=False)
print("Login successful!\n")
# Search for data
print(f"Searching for {PRODUCT}.{VERSION} data...")
results = earthaccess.search_data(
short_name=PRODUCT, version=VERSION, temporal=(START_DATE, END_DATE)
)
print(f"Found {len(results)} total results\n")
# Group results by date and tile
tiles_by_date = defaultdict(list)
all_tiles = set()
for result in results:
try:
link = result.data_links()[0]
tile = get_tile(link)
date = get_date(link)
filename = link.split("/")[-1]
# Apply tile filter if specified
if FILTER_TILES and tile not in FILTER_TILES:
continue
tiles_by_date[date].append(
{"tile": tile, "filename": filename, "url": link}
)
all_tiles.add(tile)
except (IndexError, AttributeError):
continue
# Display results
print(f"\n{'='*80}")
print(f"RESULTS BY DATE")
print(f"{'='*80}\n")
sorted_dates = sorted(tiles_by_date.keys())
for date in sorted_dates:
readable_date = julian_to_date(date)
tiles = tiles_by_date[date]
tile_ids = sorted([t["tile"] for t in tiles])
print(f"Date: {date} ({readable_date})")
print(f" Tiles found: {len(tiles)}")
print(f" Tile IDs: {', '.join(tile_ids)}")
for t in sorted(tiles, key=lambda x: x["tile"]):
print(f" {t['tile']}: {t['filename']}")
print()
# Summary
print(f"{'='*80}")
print(f"SUMMARY")
print(f"{'='*80}")
print(f"Total dates with data: {len(sorted_dates)}")
print(f"Unique tiles found: {len(all_tiles)}")
print(f"All tiles: {', '.join(sorted(all_tiles))}")
if FILTER_TILES:
print(f"\nRequested tiles: {', '.join(FILTER_TILES)}")
found_tiles = all_tiles.intersection(set(FILTER_TILES))
missing_tiles = set(FILTER_TILES) - all_tiles
print(f"Found: {', '.join(sorted(found_tiles)) if found_tiles else 'None'}")
if missing_tiles:
print(f"Missing: {', '.join(sorted(missing_tiles))}")
print(f"{'='*80}\n")
if __name__ == "__main__":
check_tiles()
The output on my system looks as follows:
================================================================================
MODIS Tile Availability Check
================================================================================
Product: MOD13Q1.061
Date Range: 2022-05-01 to 2022-05-31
Filtering for tiles: h24v05, h24v06, h25v06, h26v06, h24v07, h25v07, h26v07, h25v08
================================================================================
Logging in to NASA Earthdata...
Login successful!
Searching for MOD13Q1.061 data...
Found 882 total results
================================================================================
RESULTS BY DATE
================================================================================
Date: A2022113 (2022-04-23)
Tiles found: 1
Tile IDs: h25v07
h25v07: MOD13Q1.A2022113.h25v07.061.2022136104657.cmr.xml
Date: A2022129 (2022-05-09)
Tiles found: 1
Tile IDs: h24v05
h24v05: MOD13Q1.A2022129.h24v05.061.2022146013223.cmr.xml
Date: A2022145 (2022-05-25)
Tiles found: 1
Tile IDs: h25v08
h25v08: MOD13Q1.A2022145.h25v08.061.2022168103048.hdf
================================================================================
SUMMARY
================================================================================
Total dates with data: 3
Unique tiles found: 3
All tiles: h24v05, h25v07, h25v08
Requested tiles: h24v05, h24v06, h25v06, h26v06, h24v07, h25v07, h26v07, h25v08
Found: h24v05, h25v07, h25v08
Missing: h24v06, h24v07, h25v06, h26v06, h26v07
================================================================================
It seems like quite a few tiles are not found, despite the fact that they do exist. Could this perhaps be related to the metadata catalogue issues from a few weeks ago?
Best regards,
Martin Keller
-
LP DAAC - kyrad
- User Services

- Posts: 1
- Joined: Wed Mar 05, 2025 2:40 pm America/New_York
Re: Missing tiles for historical MODIS data
Hi @martinkeller,
I suggest running our Introduction to NASA earthaccesshttps://github.com/nasa/LPDAAC-Data-Resources/blob/main/python/tutorials/earthaccess_introduction.ipynb tutorial in our Github. This tutorial allows you to search temporally and spatially and has the option for bulk downloading or direct access from CMR. This tutorial searches our data collections using keywords and lets you put specific parameters in place for the best result. If you continue to have issues, please let us know.
Thank you!
I suggest running our Introduction to NASA earthaccesshttps://github.com/nasa/LPDAAC-Data-Resources/blob/main/python/tutorials/earthaccess_introduction.ipynb tutorial in our Github. This tutorial allows you to search temporally and spatially and has the option for bulk downloading or direct access from CMR. This tutorial searches our data collections using keywords and lets you put specific parameters in place for the best result. If you continue to have issues, please let us know.
Thank you!
-
martinkeller
- Posts: 11
- Joined: Tue Jul 30, 2024 5:33 am America/New_York
Re: Missing tiles for historical MODIS data
This notebook is in fact the basis for the code I posted earlier. The tiles listed for the date range discussed earlier are still incomplete while later date ranges show up as complete, which leads me to suspect that the issue I'm encountering might be related to a backend service used by the EarthAccess Python library.
-
LP DAAC - dgolon
- User Services

- Posts: 201
- Joined: Tue Dec 03, 2024 2:37 pm America/New_York
- Endorsed: 2 times
Re: Missing tiles for historical MODIS data
Hi @martinkeller we're looking deeper into what you are seeing. Thanks for reporting it.
Subscribe to the LP DAAC listserv by sending a blank email to lpdaac-join@lists.nasa.gov.
Sign up for the Landsat listserv to receive the most up to date information about Landsat data: https://public.govdelivery.com/accounts/USDOIGS/subscriber/new#tab1.
Sign up for the Landsat listserv to receive the most up to date information about Landsat data: https://public.govdelivery.com/accounts/USDOIGS/subscriber/new#tab1.
-
LP - erik.bolch
- Subject Matter Expert

- Posts: 5
- Joined: Mon Jun 13, 2022 10:26 am America/New_York
- Endorsed: 3 times
Re: Missing tiles for historical MODIS data
Hi @martinkeller, I took at look at your issue and was able to replicate the missing tiles with the script you provided. Upon closer inspection, the issue has to do with the way the links are being extracted from the search results. For MOD13Q1, the granules have multiple 'data links'. This is always possible with data, one example being Harmonized Landsat-Sentinel, but in this case they are actually browse and .xml files that are incorrectly labelled in the metadata. When earthaccess retrieves the data links its also grabbing these. The subsetting with link = result.data_links()[0] grabs the first in the list, which can sometimes be a browse image. Since the browse images have a different naming convention the script is only returning a few tiles rather than all of them, even though you're showing the correct amount of results (882). I created an example notebook for retrieving the links that also has some more explanation.
I think initially if you were using earthaccess.download() to retrieve data, the likely culprit of missing tiles was the temporary CMR search outage in early December. That download function should download all of the data including the incorrectly tagged browse images.
As for MYD13Q1, the metadata is correct and it only has 1 link returned by data_links(), so this issue should not show up there.
I think initially if you were using earthaccess.download() to retrieve data, the likely culprit of missing tiles was the temporary CMR search outage in early December. That download function should download all of the data including the incorrectly tagged browse images.
As for MYD13Q1, the metadata is correct and it only has 1 link returned by data_links(), so this issue should not show up there.
-
martinkeller
- Posts: 11
- Joined: Tue Jul 30, 2024 5:33 am America/New_York
Re: Missing tiles for historical MODIS data
Hi Erik,
Many thanks for your detailed answer! I adjusted my code based on the notebook you shared and tried downloading MODIS data for the previously problematic date range. I'm happy to confirm that with the changes to the code everything worked just fine!
Best regards,
Martin Keller
Many thanks for your detailed answer! I adjusted my code based on the notebook you shared and tried downloading MODIS data for the previously problematic date range. I'm happy to confirm that with the changes to the code everything worked just fine!
Best regards,
Martin Keller