Users can calculate spatial-temporal coverage of sensors used as input datasets for OPERA products. Outputs are formatted as a GeoPandas dataframes and can be plotted as a heatmap on a crs='EPSG:4326' world map.
git clone https://github.com/angelviolinist/opera_coverage.git
conda env update -f environment.yml
conda activate opera_coverage
python -m ipykernel install --user --name opera_coverage
pip install .
Please refer to notebooks/Demo.ipynb for example.
This function queries the DAACs (ASF search and HLS search) for the user-specified sensors, processes duplicate search results appropriately, then sorts and returns the results as a GeoPandas dataframe. An example function call is:
df = get_coverage(sensor_list, aoi, daterange)
where sensor_list is a list with any number of sensors from ['sentinel1','sentinel2','landsat8_9'], aoi is formatted as a shapely Polygon, and daterange is a list of length 2 containing the start and end datetime. An example output dataframe is shown below:
To display the heatmap, one can specify column='av_cad_days',legend=True,legend_kwds={'label': "Sensor cadence (# of days)"}
for the plot to include cadence as a colorbar. An example plot is shown below:
The plotting procedure can be seen in 2_Filter_Plot.ipynb
- Northern Russia coverage: since single look complex (SLC) is specified for ASF search in opera_coverage/search.py asf_search(), there is no coverage over northern Russia. Other result formats exist for that region.