Skip to content

Instantly share code, notes, and snippets.

@asjohnston-asf
Last active August 31, 2020 20:34
Show Gist options
  • Save asjohnston-asf/c252f6e393299bc4e0079f133de1ebbc to your computer and use it in GitHub Desktop.
Save asjohnston-asf/c252f6e393299bc4e0079f133de1ebbc to your computer and use it in GitHub Desktop.
cmr query for average s1 ingest lag time
from statistics import mean
from datetime import timedelta, datetime
import requests
from dateutil.parser import parse
SESSION = requests.Session()
def get_granules(day):
start = day.strftime('%Y-%m-%d')
end = (day + timedelta(days=1)).strftime('%Y-%m-%d')
search_url = 'https://cmr.earthdata.nasa.gov/search/granules.json'
params = {
'provider': 'ASF',
'short_name': ['SENTINEL-1A_DP_GRD_HIGH', 'SENTINEL-1B_DP_GRD_HIGH'],
'page_size': 2000,
'temporal': f'{start}T00:00:00Z,{end}T00:00:00Z',
}
response = SESSION.get(search_url, params=params)
response.raise_for_status()
return response.json()['feed']['entry']
def daterange(start_date, end_date):
for n in range(int((end_date - start_date).days)):
yield start_date + timedelta(n)
def get_lag(granule):
delta = parse(granule['updated']) - parse(granule['time_start'])
lag = delta.total_seconds() / 60 / 60
return lag
start_date = datetime(2020, 6, 1)
end_date = datetime(2020, 8, 29)
for day in daterange(start_date, end_date):
granules = get_granules(day)
lags = [get_lag(g) for g in granules]
print(f'{day.strftime("%Y-%m-%d")},{round(mean(lags), 2)}')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment