def testOnlyCircleEncode(self): lon = 1. lat = -2. radius = 4 precision = 3 c1 = AreaNoticeCircle(lon, lat, radius, precision) bits = c1.get_bits() c2 = AreaNoticeCircle(bits=bits) self.checkCircle(c2, 1, lon, lat, precision, radius)
def testEncodeCircleMatchingUSCG(self): """Make sure we can recreate the bits in the USCG circle test.""" msg = '!AIVDM,1,1,0,A,85M:Ih1KmPAU6jAs85`03cJm;1NHQhPFP000,0*19' # grab just the sub area portion circle_msg = msg.split(',')[5][-16:] c1_bits = binary.ais6tobitvec(circle_msg) c1 = AreaNoticeCircle(bits=c1_bits) lon = -71.935 lat = 41.236666667 scale_factor = 10 precision = 4 radius = 1800 self.checkCircle(c1, scale_factor, lon, lat, precision, radius) # Now we build the same, must force the scale factor to match USCG c2 = AreaNoticeCircle(c1.lon, c1.lat, c1.radius, c1.precision, scale_factor) self.checkCircle(c2, scale_factor, lon, lat, precision, radius) c2_bits = c2.get_bits() c3 = AreaNoticeCircle(bits=c2_bits) self.checkCircle(c3, 10, lon, lat, precision, radius)