Using geocoded SLC input products to mintpy #1016
Replies: 7 comments 2 replies
-
Additionally, the stacks from both dolphin and sweets are in UTM, currently MintPy only recognizes lat/lon besides raster coordinates. What would be the best approach to integrate functionality such as atmospheric corrections or GPS comparisons among others? |
Beta Was this translation helpful? Give feedback.
-
I am excited to hear you are working on integrating GSLC with mintpy!
The The ASF HyP3 products are in UTM coordinates, and have been working with mintpy for a while now, except for a few places as marked in https://github.com/insarlab/MintPy/milestone/6. You may find For other steps down the workflow, we could use
|
Beta Was this translation helpful? Give feedback.
-
A couple ongoing notes while putting together a
I saw that there's the line in # ensure negative value for the heading angle
meta['HEADING'] = float(hyp3_meta['Heading']) % 360. - 360. which would make this around -260 then there's the line
which would label it as descending
related to (2), I started on an attempt to add the few change needed to make the HDF5 files CF-compliant so you could load them into xarray/QGIS/gdal. I'm doing this in dolphin here (and probably will soon move these up to a more general module for easier outside use)
let me know if this path interests you, since we could also do it for the 3D datasets like |
Beta Was this translation helpful? Give feedback.
-
The discussion on heading angle is relevant to this issue already open in compass. We are working on providing azimuth angle of the LOS vector which is what we really need. The issue is being worked on upstream in isce3. The other option is to simply provide ENU components. |
Beta Was this translation helpful? Give feedback.
-
For geometries, mintpy uses the same convention as isce2, which defines
Right. Maybe because I have not used the unit vector much, the LOS incidence and azimuth angles seem easier, and could be directly used to calculate the unit vector for azimuth offset as well.
No need. The
That sounds really cool @scottstanie! The changes seem small. I am definitely interested. It would make products much more user-friendly. |
Beta Was this translation helpful? Give feedback.
-
Just an update on how this is going: I got some version working, but wanted to check- Do you have any opinions about where the function/functions should go which take care of this? it's around ~100 lines of code. The fucntion can be run on the existing $ gdalinfo NETCDF:timeseries_sequential.h5:timeseries
Driver: netCDF/Network Common Data Format
Files: timeseries_sequential.h5
Size is 9636, 6932
Coordinate System is:
PROJCRS["WGS 84 / UTM zone 11N",
BASEGEOGCRS["WGS 84",
....
ID["EPSG",32611]]
Data axis to CRS axis mapping: 1,2
Origin = (480540.000000000000000,3902670.000000000000000)
Pixel Size = (30.000000000000000,-30.000000000000000)
Metadata:
NC_GLOBAL#ALOOKS=1
.....
Corner Coordinates:
Upper Left ( 480540.000, 3902670.000) (117d12'50.23"W, 35d16' 1.07"N)
Lower Left ( 480540.000, 3694710.000) (117d12'33.28"W, 33d23'29.41"N)
Upper Right ( 769620.000, 3902670.000) (114d 2'14.68"W, 35d13'51.15"N)
Lower Right ( 769620.000, 3694710.000) (114d 6' 9.01"W, 33d21'28.26"N)
Center ( 625080.000, 3798690.000) (115d38'25.63"W, 34d19'18.99"N)
Band 1 Block=302x109 Type=Float32, ColorInterp=Undefined
Metadata:
DIMENSION_LABELS={time,y,x}
grid_mapping=spatial_ref
NETCDF_DIM_time=0
NETCDF_VARNAME=timeseries
Band 2 Block=302x109 Type=Float32, ColorInterp=Undefined
.... (150 more bands) ds = xr.open_dataset("timeseries_sequential.h5", engine='h5netcdf')
In [37]: ds = xr.open_dataset("timeseries_sequential.h5", engine='h5netcdf')
In [38]: ds
Out[38]:
<xarray.Dataset>
Dimensions: (time: 151, y: 6932, x: 9636)
Coordinates:
* time (time) datetime64[ns] 2017-02-27 2017-05-10 ... 2020-12-26
* x (x) float64 4.806e+05 4.806e+05 ... 7.696e+05 7.696e+05
* y (y) float64 3.903e+06 3.903e+06 ... 3.695e+06 3.695e+06
Data variables:
bperp (time) float32 ...
date (time) |S8 ...
spatial_ref int64 ...
timeseries (time, y, x) float32 ...
Attributes: (12/26)
ALOOKS: 1
AZIMUTH_PIXEL_SIZE: 14.1
CENTER_LINE_UTC: 49436.654675
EARTH_RADIUS: 6371000.0
EPSG: 32611
FILE_TYPE: timeseries
... ...
X_FIRST: 480540.0
X_STEP: 30.0
X_UNIT: meters
Y_FIRST: 3902670.0
Y_STEP: -30.0
Y_UNIT: meters the HDF5 structure additions looks like this:
|
Beta Was this translation helpful? Give feedback.
-
The functionality seems to fit in We could somehow call this function within
Maybe we could use "datetime" instead? Neither "date" nor "time" feels accurate, given that we handle both spaceborne and airborne data. |
Beta Was this translation helpful? Give feedback.
-
@taliboliver and I have been working on getting a
prep_
script for dolphin and sweets. I'm checking out what metadata attributes would be required/used by mintpy here: https://mintpy.readthedocs.io/en/latest/api/attributes/#required_attributesX/Y_STEP/START/UNIT
for geocoded inputs, but it also saysRANGE_PIXEL_SIZE
is required. Our starting point is anX/Y_PIXEL_SIZE
for GSLCsALOOKS/RLOOKS
, which are reallyXLOOKS/YLOOKS
for us(@taliboliver feel free to add any others that have come up for you)
Beta Was this translation helpful? Give feedback.
All reactions