umr-lops / xsar

Synthetic Aperture Radar (SAR) Level-1 GRD python mapper for efficient xarray/dask based processing
https://cyclobs.ifremer.fr/static/sarwing_datarmor/xsar/
MIT License
25 stars 8 forks source link

add s1meta.doppler_estimate (Doppler Centroid Estimate annotations) #51

Closed agrouaze closed 2 years ago

agrouaze commented 2 years ago

address issue #49 to add Doppler Centroid Estimate annotations in s1meta. This work has already been done in #38 but this PR is meant to ease the validation/integration with official develop branch.

agrouaze commented 2 years ago

image

oarcher commented 2 years ago

From support/s1-level-1-product.xsd file, the documentation for dcEstimate is:

Doppler centroid estimate record which contains the Doppler centroid calculated from geometry and estimated from the data, associated signal-to-noise ratio values and indicates which DCE method was used by the IPF during image processing. With a minimum Doppler centroid update rate of 1s (for IW and EW where the Doppler is recalculated for every burst cycle) and a maximum product length of 25 minutes, the maximum size of this list is 1500 elements.

So n_estimates is a burst index ?

agrouaze commented 2 years ago

As it is said the Doppler Centroid is estimated at each burst cycle but for instance in GRD product you have no burst (<burstList count="0"/> ) and you have 27 doppler centroid estimates ( <dcEstimateList count="27">) So n_estimates is almost a burst index but I think it has to be separated from bursts informations. Note: even for SLC products you can find 9 bursts for 11 DCE.

oarcher commented 2 years ago

geo_polynom and data_polynom seems to be polynomial coefficients. Do you think that they can be replaced by a numpy.polynomial, as done in https://github.com/agrouaze/xsar/blob/a632ea770652b1feb93d82a4ed916bb2e355f073/src/xsar/sentinel1_xml_mappings.py#L487 ?

If so, it might be possible to remove those dimensions.

So the only dimensions that require this structure to be a xarray instead of a pandas dataframe is nb_fine_dce, used for 2 variables (slant_range_time and frequency)

agrouaze commented 2 years ago

Yes numpy.polynomial is may be preferable I do the change.

agrouaze commented 2 years ago

image

agrouaze commented 2 years ago

yes ready for merge!