def _to_llw_array(dcm):
lat = np.arcsin(dcm[:, 2, 2])
lon = np.empty(dcm.shape[0])
wan = np.empty(dcm.shape[0])
mask = np.abs(lat) < 0.5 * np.pi - 1e-3
lon[mask] = np.arctan2(dcm[mask, 1, 2], dcm[mask, 0, 2])
wan[mask] = np.arctan2(dcm[mask, 2, 0], dcm[mask, 2, 1])
mask = ~mask
lon[mask] = 0
l_mask = mask & (lat > 0)
wan[l_mask] = np.arctan2(-dcm[l_mask, 0, 0] - dcm[l_mask, 1, 1],
dcm[l_mask, 1, 0] - dcm[l_mask, 0, 1])
l_mask = mask & (lat < 0)
wan[l_mask] = np.arctan2(dcm[l_mask, 0, 0] - dcm[l_mask, 1, 1],
dcm[l_mask, 0, 1] + dcm[l_mask, 1, 0])
return lat, lon, wan
评论列表
文章目录