Script names_bak_py
[hide private]
[frames] | no frames]

Source Code for Script script-names_bak_py

 1  #!/usr/bin/env python 
 2   
 3  import sys, binary, ais_msg_5, aisstring 
 4  from BitVector import BitVector 
 5   
 6  first=None 
 7  lineNum = 0 
 8  for line in file('5.ais'): 
 9      lineNum += 1 
10      if lineNum % 50000==0: sys.stderr.write('lineNum:'+str(lineNum)+'\n') 
11      if lineNum > 1100: sys.exit('early') 
12      if None==first:  
13          first = line 
14          try: 
15              if '1'!=first.split(',')[2]: # Must be the start of a sequence 
16                  #print 'skip 1', lineNum, first 
17                  first = None 
18          except: 
19              print 'skip 1b', first 
20              first = None 
21   
22          continue 
23   
24      fields1 = first.split(',') 
25      fields2 = line.split(',') 
26      #foo,tot,part,slot,AB,m 
27      try: 
28          if fields2[2]=='1':  
29              first=line 
30              continue 
31               
32          if (fields1[2]!='1'):  
33              #print 'skip2..',lineNum , fields1,fields1[2] 
34              continue 
35          if (fields2[2]!='2'):  
36              #print 'skip3',lineNum, fields2 
37              continue 
38          if (fields1[3] != fields2[3]): 
39              #print 'skip4',lineNum, fields1,fields2 
40              continue 
41          if (fields1[4] != fields2[4]): 
42              #print 'skip5',lineNum,fields1,fields2 
43              continue 
44      except: 
45          print 'skip6',fields1,fields2 
46          first=None 
47          continue 
48   
49      try: 
50          msgPayload = first.split(',')[5] + line.split(',')[5] 
51           
52          bv = binary.ais6tobitvec(msgPayload[:40]) # Hacked for speed 
53          #msgDict = ais_msg_5.shipdataDecode(bv) 
54          #ais_msg_5.shipdataPrint(msgDict) 
55   
56          #mmsi = ais_msg_5.decodeUserID(bv) 
57          #name = aisstring.unpad(ais_msg_5.decodename(bv)) 
58          mmsi = int(bv[8:38]) 
59          name = aisstring.decode(bv[112:232]) #aisstring.unpad() 
60          #sys.stdout.write('.') 
61          print mmsi,name 
62      except: 
63          sys.stderr.write('\n# ERROR: '+first.strip()+' '+line) 
64   
65      first = None 
66