It appears that asap has some way of marking scans as bad not
and including them in the summary.  However, the scans are in the
scantable.  From a 50 row SDFITS bintable::

In [1]: len(s_table.get_sourcename())
Out[1]: 50

In [2]: np.array(s_table.get_sourcename())
Out[2]:
array(['n159 D', 'n159 D', 'G309.92', 'N159 C', 'N159 C', 'N159 C',
    'N159 C', 'N159 C', 'N159 C', 'N159 A', '0637-752', '0637-752',
    '0637-752', '0637-752', 'G309.92', 'G309.92', 'G309.92', 'G309.92',
    '1226+023', 'G339.88', 'G339.88', 'G339.88', 'G339.88', 'G188.95',
    'G188.95', 'G188.95', 'G323.74', 'G323.74', 'SGR B2', 'SGR B2',
    'SGR B2', 'SGR B2', 'G1.6', 'G1.6', 'G1.6', 'G1.6', 'SGR AB',
    'SGR AB', 'SGR A 2E0N', 'Sgr A meth pk1', 'Sgr A meth pk1', '30dor',
    'lmc-co-1', 'lmc-co-1', 'lmc-co-1', 'lmc-co-1', 'lmc-co-1',
    'lmc-co-1', 'lmc-co-1', 'lmc-co-1'],
    dtype='|S14')

In [3]: s_table.data.field('OBJECT')
Out[3]:
chararray(['n159 D', 'n159 D', 'G309.92', 'N159 C', 'N159 C', 'N159 C',
    'N159 C', 'N159 C', 'N159 C', 'N159 A', '0637-752', '0637-752',
    '0637-752', '0637-752', 'G309.92', 'G309.92', 'G309.92', 'G309.92',
    '1226+023', 'G339.88', 'G339.88', 'G339.88', 'G339.88', 'G188.95',
    'G188.95', 'G188.95', 'G323.74', 'G323.74', 'SGR B2', 'SGR B2',
    'SGR B2', 'SGR B2', 'G1.6', 'G1.6', 'G1.6', 'G1.6', 'SGR AB',
    'SGR AB', 'SGR A 2E0N', 'Sgr A meth pk1', 'Sgr A meth pk1', '30dor',
    'lmc-co-1', 'lmc-co-1', 'lmc-co-1', 'lmc-co-1', 'lmc-co-1',
    'lmc-co-1', 'lmc-co-1', 'lmc-co-1'],
    dtype='|S16')

So the scantable.get_sourcename() agrees with the SDFITS extension.
Likewise, the other gets give the right number of values::

In [7]: len(s_table.get_azimuth())
Out[7]: 50

In [8]: len(s_table.get_direction())
Out[8]: 50

In [9]: len(s_table.get_inttime())
Out[9]: 50

In [10]: len(s_table.get_time())
Out[10]: 50

In [11]: len(s_table.get_tsys())
Out[11]: 50

In [12]: len(s_table.getscannos())
Out[12]: 45

In [16]: np.array(s_table.getscannos())
Out[16]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,
       10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
       20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
       30, 31, 32, 33, 34,                 39,
       43, 44, 45, 46, 47, 48, 49,
       50, 51])

In [18]: s35 = s_table.get_scan([35])
Couldn't find any match.

In [19]: s51 = s_table.get_scan([51])

In [20]:

These absent scans cannot be extracted and are missing from
s_table.summary().  Also, there are fanthom scan numbers in
the sense that 50 scans counted from 0 should end at 49.
So we can't use the above scan numbers to index into the arrays
of the scantable.

Here's the clue::

In [22]: for i in s_table.getscannos():
....:       s = s_table.get_scan([i])
....:       print i, s.get_sourcename()
....:
0 ['n159 D']
1 ['n159 D']
2 ['G309.92']
3 ['N159 C']
4 ['N159 C']
5 ['N159 C']
6 ['N159 C']
7 ['N159 C']
8 ['N159 C']
9 ['N159 A']
10 ['0637-752', '0637-752', 'G309.92']
11 ['0637-752', 'G309.92', 'G309.92']
12 ['0637-752', 'G309.92']
13 ['1226+023']
14 ['G339.88']
15 ['G339.88']
16 ['G339.88']
17 ['G339.88']
18 ['G188.95']
19 ['G188.95']
20 ['G188.95']
21 ['G323.74']
22 ['G323.74']
23 ['SGR B2']
24 ['SGR B2']
25 ['SGR B2']
26 ['SGR B2']
27 ['G1.6']
28 ['G1.6']
29 ['G1.6']
30 ['G1.6']
31 ['SGR AB']
32 ['SGR AB']
33 ['SGR A 2E0N']
34 ['Sgr A meth pk1']
39 ['Sgr A meth pk1']
43 ['30dor']
44 ['lmc-co-1']
45 ['lmc-co-1']
46 ['lmc-co-1']
47 ['lmc-co-1']
48 ['lmc-co-1']
49 ['lmc-co-1']
50 ['lmc-co-1']
51 ['lmc-co-1']

Aha!  Fetching scan by number for 10, 11 and 12 returns scantables
with more than one row.  Eight scans in three scantables reduces
the number of rows by five.  Why should some rows be combined into
mini-scantables?
 
In [23]: s10 = s_table.get_scan([10])

In [25]: s10.get_direction()
Out[25]: ['06:37:23.5 -75.13.36.8', '00:00:00.0 +00.00.00.0', '06:37:23.5 -61.20.17.2']

In [26]: s11 = s_table.get_scan([11])

In [27]: s11.get_direction()
Out[27]: ['06:37:23.5 -75.13.36.8', '13:47:13.6 -61.20.17.2', '06:37:23.5 -61.20.17.2']

In [28]: s12 = s_table.get_scan([12])

In [29]: s12.get_direction()
Out[29]: ['06:37:23.5 -75.13.36.8', '06:37:23.5 -61.20.17.2']
