Opened 6 years ago
Closed 6 years ago
#2 closed enhancement (fixed)
Updated radial velocities operator.
Reported by: | arango | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | component1 | Version: | |
Keywords: | Cc: |
Description
The radial velocity operator was modified to include radar observations processed with the heading angle for math and navigations conventions. A new C-preprocessing option RADIAL_ANGLE_CCW_EAST is introduced for radial observations as an azimuth counterclockwise from EAST. The default is to have radial observations as an azimuth clockwise from NORTH.
In obs_write.F, we now have:
! Radial Velocity. The observations are in terms of radial speed and ! angle (stored in obs_meta). The observation angle converts the ! velocity components to geographical EAST and North components. # ifdef RADIAL_ANGLE_CCW_EAST ! The radial velocity observations are processed as magnitude and ! heading angle (obs_meta; radians) in the math convention: an ! azimuth that is counterclockwise from TRUE East. ! ! In curvilinear coordinates, the radial forward problem is: ! ! radial = u * COS(obs_meta - angler) + v * SIN(obs_meta - angler) # else ! By default, the radial velocity observations are processed as ! magnitude and heading angle (obs_meta; radians) in the navigation ! convention: an azimuth that is clockwise from TRUE North. ! ! In curvilinear coordinates, the radial forward problem is: ! ! radial = u * SIN(obs_meta + angler) + v * COS(obs_meta + angler) # endif ! ... DO iobs=Mstr,Mend IF (ObsType(iobs).eq.ObsState2Type(isRadial)) THEN # ifdef RADIAL_ANGLE_CCW_EAST # ifdef CURVGRID angle=ObsMeta(iobs)-ObsAngler(iobs) NLmodVal(iobs)=uradial(iobs)*COS(angle)+ & & vradial(iobs)*SIN(angle) # else NLmodVal(iobs)=uradial(iobs)*COS(ObsMeta(iobs))+ & & vradial(iobs)*SIN(ObsMeta(iobs)) # endif # else # ifdef CURVGRID angle=ObsMeta(iobs)+ObsAngler(iobs) NLmodVal(iobs)=uradial(iobs)*SIN(angle)+ & & vradial(iobs)*COS(angle) # else NLmodVal(iobs)=uradial(iobs)*SIN(ObsMeta(iobs))+ & & vradial(iobs)*COS(ObsMeta(iobs)) # endif # endif # ifdef BGQC BgErr(iobs)=MAX(uBgErr(iobs), vBgErr(iobs)) # endif END IF END DO END IF # endif
Many thanks to John Wilkin and Ann Kristin Sperrevik for testing the new default convention.
Note:
See TracTickets
for help on using tickets.