Merge branch 'improve_rotang_calculation' into develop (PR #211)
commit8b8b37d60a2e17a127b9b782e47fb7ecf0ac8be7
authorMichael Duda <duda@ucar.edu>
Thu, 5 Jan 2023 05:14:45 +0000 (4 22:14 -0700)
committerMichael Duda <duda@ucar.edu>
Thu, 5 Jan 2023 05:14:45 +0000 (4 22:14 -0700)
treebc0924ccc634e1c42f48a5ef58c180467d08a368
parentf3a74c7dbc7209ef799fe7f7e5950440ef75f635
parent804dd5ac65547a5d56adfab99b222219f93f2772
Merge branch 'improve_rotang_calculation' into develop (PR #211)

This merge improves the calculation of rotation angle at sub-km grid scales.

Previously, the sine and cosine of the rotation angle (SINALPHA and COSALPHA)
were computed using finite differences of the latitude and longitude fields.
This calculation generally worked well at grid scales larger than ~1 km and had
the benefit of being independent of map projection. However, at smaller grid
scales, the limited precision of the latitude and longitude fields led to
numerical errors in the computed rotation angle.

This merge adds projection-specific code to compute the rotation angle. For the
Mercator and cylindrical equidistant projections, the rotation angle is simply
zero everywhere, and for the Lambert conformal conic and polar stereographic
projections, the rotation angle is derived from the difference between a grid
cell's longitude and the standard longitude. For the Cassini projection, a
formula for the rotation angle is difficult to derive, and so with the
expectation that this projection will find limited use at high resolution, the
same finite differencing scheme is still employed.

* improve_rotang_calculation:
  Improve the calculation of rotation angle at sub-km grid scales