| Trees | Indices | Help |
|---|
|
|
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
| Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0beta1 on Fri Aug 10 11:18:06 2007 | http://epydoc.sourceforge.net |