Added "metadata" group, with both dolphin/disp-s1 software versions included
Started to pull relevant metadata from the CSLC products, included zero_doppler_<start/stop>_time in the identification group to show the frame start/stop
Added identification/bounding_polygon based what's inside the CSLC products
This does not close #3 because we don't fully trust this metadata to be accurate in all cases, and we want to make the polygon based on the real data.
Added radar_wavelength
added a /time dimension. Currently using the zero_doppler_start_time for this value.
While this appears to make it shaped (1, rows, cols), GDAL actually squeezes out the singleton dimension:
The benefit is that, by storing time as a dimension instead of just in the filename, the products are more analysis ready and can easily be loaded into a stack with, e.g. xarray:
We need new tests for this, but they probably will need a full dummy data setup. I'm going to merge this for now so we can start testing testing (as running through the delivery test data works for me)
Changes to output netcdf:
"metadata"
group, with both dolphin/disp-s1
software versions includedzero_doppler_<start/stop>_time
in theidentification
group to show the frame start/stopidentification/bounding_polygon
based what's inside the CSLC productsradar_wavelength
added a
/time
dimension. Currently using thezero_doppler_start_time
for this value.While this appears to make it shaped (1, rows, cols), GDAL actually squeezes out the singleton dimension:
The benefit is that, by storing
time
as a dimension instead of just in the filename, the products are more analysis ready and can easily be loaded into a stack with, e.g.xarray
:y (y) float64 4.404e+06 4.404e+06 ... 4.218e+06
x (x) float64 1.936e+04 1.94e+04 ... 3.198e+05
time (time) datetime64[ns] 2022-12-01T14:07:51.24... Data variables: spatial_ref (time) int64 0 0 unwrapped_phase (time, y, x) float32 dask.array<chunksize=(1, 6194, 10017), meta=np.ndarray> connected_component_labels (time, y, x) float32 dask.array<chunksize=(1, 6194, 10017), meta=np.ndarray> temporal_coherence (time, y, x) float32 dask.array<chunksize=(1, 6194, 10017), meta=np.ndarray> interferometric_correlation (time, y, x) float32 dask.array<chunksize=(1, 6194, 10017), meta=np.ndarray> ...
See this talk about Tidy Datacubes for more on the rationale
disp_s1.plottting
, copied from https://github.com/scottstanie/apertools/blob/master/apertools/h5explorer.py.Closes #4 Closes #5