MAAP-Project / Community

Issue for MAAP (Zenhub)
2 stars 1 forks source link

[Data]: ASF S1SAR integration #703

Open nmt28 opened 1 year ago

nmt28 commented 1 year ago

Dataset Name Sentinel-1 SAR RTC (radiometrically Terrain Corrected)

Dataset Description As radars are side-looking instruments and their images are a function of time between transmit/receive, topography has a significant impact on radar image formation. RTC data is the best available corrected data that account for the amplitude of the returned energy and the geometry of the topography. RTC data is not available once gridded and needs to be processed in radar coordinates. This is typically not a something than can be easily implemented. ASF are able to do this on demand but only for a limited number of scenes at a time. I would like to investigate the potential to reach out to ASF and use their tools to get RTC S1 into the MAAP to allow us to make time-series seasonal composites for multiple years over the Boreal domain

Requestor name/affiliation Nathan Thomas, UMD, NASA UWG

Platform/Instrument/Method Sentinel-1 SAR

URL or DOI to dataset description

URL to download or access data https://hyp3-docs.asf.alaska.edu

Data License N/A. Data is open

Intended science use case time-series seasonal composites for multiple years over the Boreal domain

Optional

Approximate size of data May go into the PBs. Definitely TBs

Additional information ASF state that they welcome dialogue if users have unusual or extraordinary requests. I think this fits into that category

cc'ing in @wildintellect who I have spoken to about this already

wildintellect commented 1 year ago

@nmt28 do you have an example request you've made to hyp3 that you can share (with an estimate of how many similar requests you'd want to make)?

nmt28 commented 1 year ago

I do not, but let me look at building one. Will update

######## EDIT: Added code.

@wildintellect here is a quick script I worked out for doing RTC of individual scenes. According to the hyp3 docs to do this at scale you would just loop over a list of granule IDs. The GPKG is one of the boreal tiles. This timeframe of 1.5 months returns 42 granules that interest the tile geom. To avoid duplication of data we should probably use the frame param in order to process by path/row but I haven't worked out the ASF framing convention yet. will update.

# initial setup
import asf_search as asf
from hyp3_sdk import HyP3
import geopandas as gpd

# start ASF session
hyp3 = HyP3(username='username', password='word')

# Get aoi geom
aoi_file = './Boreal_testtile.gpkg'
gdf = gpd.read_file(aoi_file)
aoi = str(gdf.iloc[0]['geometry'])
print(aoi)

# define some search options
opts = {
    'platform': asf.PLATFORM.SENTINEL1,
    'start': '2020-05-15T00:00:00Z',
    'end': '2020-06-30T23:59:59Z',
    'beamMode': 'IW',
    'processingLevel':[asf.PRODUCT_TYPE.SLC],
    'flightDirection': asf.FLIGHT_DIRECTION.ASCENDING
}

# condusct search
results = asf.geo_search(intersectsWith=aoi, **opts)
print(len(results))

# convert search object to geojson and get ganule name
test_geojson = results[0].geojson()
granule_id = str(test_geojson['properties']['sceneName'])

# Submit RTC job
rtc_job = hyp3.submit_rtc_job(granule= granule_id, name='test_rtc_slc', radiometry='gamma0', resolution=30, scale='power')
job = hyp3.watch(rtc_job)

# Download file
#rtc_job.download_files('./')
wildintellect commented 1 year ago

@freitagb it's been suggested we talk to Joseph Kennedy on the HYP3 chat

freitagb commented 1 year ago

@freitagb - follow up on this.