Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
  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)