-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test pyroSAR tool #39
Comments
Releasing assignment because I'm unblocked on #38 and have some outstanding tasks to finish for it. |
Below is a rough draft of my notes for what I've discovered so far. Key takeaways from the notes:
PyroSAR R/DInstallationAttempted manual installation in Docker. PyroSAR doc instructions are incomplete and I still had issues with incompatible numpy versions after installation. Old numpy version 1.13 was installed Attempted conda installation in Docker. This worked — image is HUGE though, 3.3GB FROM continuumio/miniconda3
RUN conda create -n env python=3.7
RUN conda install --yes --channel conda-forge pyroSAR ipython
RUN echo "source activate env" > ~/.bashrc
ENV PATH /opt/conda/envs/env/bin:$PATH
WORKDIR /app
ENTRYPOINT [ "ipython" ] version: '3'
services:
pyrosar:
build: .
image: pyrosar
volumes:
- .:/app Sentinel 1 SchemaMission Identifier: S1A or S1B, the instrument that captured the scene TONS of general info about Synthetic Aperture Radar (SAR) and how it works in this NASA PDF Mode: Processing Level: Product Type: Resolution Class, used by GRD product type only: On SentinelHub, scenes are available as download in SAFE format: User Guides - Sentinel-1 SAR - SAFE Specification - Sentinel Online Getting DataAWSAttempted download to local dir and read with PyroSAR:
import os
from pyroSAR import identify
name = 'S1A_IW_GRDH_1SDV_20180215T000433_20180215T000502_020610_02348A_6782'
scene = identify(os.path.join('S1', name))
# FAILS: RuntimeError: data format not supported
# Change name dir to have a `.SAFE` suffix
from pyroSAR.drivers import SAFE
name = 'S1A_IW_GRDH_1SDV_20180215T000433_20180215T000502_020610_02348A_6782.SAFE'
scene = SAFE(os.path.join('S1', name))
""" FAILS:
/opt/conda/lib/python3.7/site-packages/pyroSAR/drivers.py in scanMetadata(self)
1403
1404 annotations = self.findfiles(self.pattern_ds)
-> 1405 with self.getFileObj(annotations[0]) as ann_xml:
1406 ann_tree = ET.fromstring(ann_xml.read())
1407
IndexError: list index out of range
""" Need this to convert data in AWS bucket to pyrosar compatible format? YES Python
ProcessingGEE Tutorial: Sentinel-1 Algorithms | Google Earth Engine | Google Developers PyroSARPyroSAR is a few things, but the interesting methods are a wrapper around the ESA Sentinel Application Platform (SNAP) toolbox: SNAP | STEP I think this is the method we’d want to use to perform sentinel 1 preprocessing if we were using PyroSAR: pyroSAR.snap.util.geocode |
Here's the notes from my brief email conversation with Ganesh. TL;DR:
|
@jcahail @echeipesh In light of the above, I’m going to call the pyroSAR r/d task done in the absence of specific threads to pull on. A decision on whether to just pay sentinel hub extra for sentinel 1 GRD sigma0 or try to preprocess it ourselves is outside scope of my knowledge but I want to flag it here. Whoever tackles that preprocessing task should be aware of it as an option to investigate based on time & effort concerns. |
We'd like to consume Sentinel-1 GRD from AWS public dataset: https://registry.opendata.aws/sentinel-1/
However, the scenes stored there are geo-located but not rectification.
It's been suggested that
pyrosar
tool may be useful to finish the processing stages: https://pyrosar.readthedocs.io/en/latest/general/processing.htmlThis issue is to explore and test that tool. We are still pretty new to SAR processing so I'm not totally clear on what steps are required. Since GEE was used for this processing by Sen1Floods11 paper it makes sense to compare the capability of this tool in regards to SAR processing on GEE and try to line up relevant functionality from the paper.
The text was updated successfully, but these errors were encountered: