update NL() function in CPR decoding

This commit is contained in:
Junzi Sun 2020-03-03 12:39:39 +01:00
parent a75d6fd050
commit ed18352c0c
2 changed files with 7 additions and 11 deletions

View File

@ -5,7 +5,7 @@ from cpython cimport array
from cpython.bytes cimport PyBytes_GET_SIZE from cpython.bytes cimport PyBytes_GET_SIZE
from cpython.bytearray cimport PyByteArray_GET_SIZE from cpython.bytearray cimport PyByteArray_GET_SIZE
from libc.math cimport cos, acos, fabs, M_PI as pi, floor as c_floor from libc.math cimport abs, cos, acos, fabs, M_PI as pi, floor as c_floor
cdef int char_to_int(unsigned char binstr): cdef int char_to_int(unsigned char binstr):
@ -231,13 +231,11 @@ cpdef int typecode(str msg):
cpdef int cprNL(double lat): cpdef int cprNL(double lat):
"""NL() function in CPR decoding.""" """NL() function in CPR decoding."""
if lat == 0: if abs(lat) <= 1e-08:
return 59 return 59
elif abs(abs(lat) - 87) <= 1e-08 + 1e-05 * 87:
if lat == 87 or lat == -87:
return 2 return 2
elif lat > 87 or lat < -87:
if lat > 87 or lat < -87:
return 1 return 1
cdef int nz = 15 cdef int nz = 15

View File

@ -185,13 +185,11 @@ def typecode(msg):
def cprNL(lat): def cprNL(lat):
"""NL() function in CPR decoding.""" """NL() function in CPR decoding."""
if lat == 0: if np.isclose(lat, 0):
return 59 return 59
elif np.isclose(abs(lat), 87):
if lat == 87 or lat == -87:
return 2 return 2
elif lat > 87 or lat < -87:
if lat > 87 or lat < -87:
return 1 return 1
nz = 15 nz = 15