Forums » GAMMA Processing » Offset Tracking »
directional_angle
Added by Niklas Neckel almost 9 years ago
Dear all,
I am using Sentinel-1A data to generate glacier velocity fields by means of offset tracking. So far I get several reliable motion fields but I am a bit confused about the directional definition of the output. In the end it would be great to get a directional angle which is defined towards the north-direction and lies between 0 and 360 degrees. So far I am taking the heading information from my master.slc.par which I guess is defined towards the north-direction. To get the heading information between 0 and 360 degrees I calculate 360+heading if the heading < 0 degrees. In order to get the directional angle from my range and azimuth velocity components I calculate arctan2(vel_y,vel_x). Where vel_y is the geocoded azimuth displacement and vel_x is the geocoded ground range displacement. To define the directional angle towards the north-direction between 0 and 360 degrees arctan2(vel_x*-1,vel_y*-1)/pi*180+180 should be the correct solution. In my opinion I now have to add/subtract the above heading information and scale the result back to the 0,360 degrees range in order to achieve the actual flow direction defined towards the north-direction, however this seems only be valid for some cases. What am I missing? I want to achieve a solution which takes into account all possibilities i.e. descending, ascending passes and all directions of horizontal surface motion. I would be very grateful for any suggestions.
All the best,
Niklas
Replies (10)
RE: directional_angle - Added by alain an over 4 years ago
Dear everyone,
Hello, I also meet same questions of direction fields using POT. How can I transform velocity field of range-azimuth into north-south and east-west velocity in GAMMA.
Best
Alain Ween
RE: directional_angle - Added by Charles Werner over 4 years ago
Hello,
First you should terrain geocode the scene and generate a look up table.
Then terrain geocode your offset deformation map into map coordinates.
The program lk_vec_lt can be used to calculate the look vector for each point in
the geocoded image. The look vector is in terms of East north up. (ENU basis).
Then use the program to dispmap_ENU to take multiple observations and solve for
the 3D deformation field.
You have to have 3 observations or other observations to fully constrain the
deformation field.
SVD is used to solve the 3D deformation field. If the system of equations is
under determined, then the deformation in the unknown direction is forced to
0.0. You only have deformation (velocity) information along the look vector for
interferometric measurements, There is no sensitivity to deformation in the
plane orthogonal to the look vector. if the radar is looking orthogonal to the
velocity vector, there will be no sensitivity to motion in the plane containing
the orbit. The Look vector is usually mostly in the East-West direction at
lower latitudes.
Best regards,
Charles Werner
RE: directional_angle - Added by alain an over 4 years ago
yeah, thanks for your reply.
Here, I didn't need get 3D velocity and get 2D (E-N) without U based on offset tracking results from range-azimuth direction. We get an heading angle in slc.par file.
ew=range*cos(head)+azi*sin(head);
ns=-range*sin(head)+azi*cos(head);
just an rotation of coordinates.
It's OKay?
best
Alain Ween
RE: directional_angle - Added by Charles Werner over 4 years ago
Hello,
That should be ok if you assume no vertical motion, and constrain deformation to
be only to the X-Y plane. I would however scale the range deformation to be
horizontal to the ground, since the slant range is tilted by the incidence
angle, delta_ground_range = delta_range/sin(inc).
Best regards,
Charles
RE: directional_angle - Added by Thorsten Seehaus over 4 years ago
Hi,
be careful, when using the heading angle from the SLC-par file for converting range/azimuth displacement fields to EW/NS coordinates. It can cause significant offsets in the displacement direction.
Thorsten
RE: directional_angle - Added by alain an over 4 years ago
Hi,
which factor could cause the significant offsets in the direction? Is there have other method just for 2D field.
Best
Alain
RE: directional_angle - Added by Thorsten Seehaus over 4 years ago
At least for Sentinel-1 data, the azimuth direction of the tracking results do not fit to the heading angle in the slc.par file for higher lat.
I tried to generate the offset of the azimuth direction from the "SLC_corners" information. The results were better but there was still an offset.
RE: directional_angle - Added by alain an over 4 years ago
Hi,
My study area just in Antarctic using S1 data. Can you describle your details of process except using command "SLC_corners".
How to transform field.
RE: directional_angle - Added by Thorsten Seehaus over 4 years ago
Hi,
take the coordinates returned from
SLC_corners and parse it to a text file.
and compute the heading based on the coordinates.
I use R to do the processing
t<-read.table("slc-corners.txt",skip=2,nrows=4 ) # read corner coords
t3<-t[3,]
t[3,]<-t[4,]
t[4,]<-t3
t<-cbind(t[,6],t[,3])
heading<-(bearing(t[2,],t[3,])+bearing(t[1,],t[4,]))/2 # calc. heading based on MLI corners
cat ("heading:", heading, "\n")
I use the average value from the "western" and "eastern" corners, since both differ slightly.
The flowlines are still not perfect and need some corrections but still better than using the heading from the slc.par
Thorsten