Changeset 2153


Ignore:
Timestamp:
04/25/11 18:41:34 (13 years ago)
Author:
Kana Sugimoto
Message:

New Development: No

JIRA Issue: No (a bug fix)

Ready for Test: Yes

Interface Changes: No

What Interface Changed: Please list interface changes

Test Programs:

Put in Release Notes: No

Module(s): asapfitter, sdfit

Description: proper handling of rowflag in plotting.


File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/python/asapfitter.py

    r2151 r2153  
    3030        """
    3131        Set the absissa and ordinate for the fit. Also set the mask
    32         indicationg valid points.
     32        indicating valid points.
    3333        This can be used for data vectors retrieved from a scantable.
    3434        For scantable fitting use 'fitter.set_scan(scan, mask)'.
     
    557557            tlab = self.data._getsourcename(self._fittedrow)
    558558            xlab = self.data._getabcissalabel(self._fittedrow)
    559             m =  logical_and(self.mask,
    560                              array(self.data._getmask(self._fittedrow),
    561                                    copy=False))
     559            if self.data._getflagrow(self._fittedrow):
     560                m = [False]
     561            else:
     562                m =  logical_and(self.mask,
     563                                 array(self.data._getmask(self._fittedrow),
     564                                       copy=False))
    562565
    563566            ylab = self.data._get_ordinate_label()
     
    567570        for i in range(len(m)):
    568571            nomask = nomask and m[i]
     572        if len(m) == 1:
     573            m = m[0]
     574            invm = (not m)
     575        else:
     576            invm = logical_not(m)
    569577        label0='Masked Region'
    570578        label1='Spectrum'
     
    578586        self._p.palette(0,colours)
    579587        self._p.set_line(label=label0)
    580         y = ma.masked_array(self.y,mask=logical_not(m))
     588        y = ma.masked_array(self.y,mask=invm)
    581589        self._p.plot(self.x, y)
    582590        if residual:
     
    584592            self._p.set_line(label='Residual')
    585593            y = ma.masked_array(self.get_residual(),
    586                                   mask=logical_not(m))
     594                                  mask=invm)
    587595            self._p.plot(self.x, y)
    588596        self._p.palette(2)
     
    598606                    lab = self.fitfuncs[c]+str(c)
    599607                    self._p.set_line(label=lab)
    600                     y = ma.masked_array(self.fitter.evaluate(c),
    601                                           mask=logical_not(m))
     608                    y = ma.masked_array(self.fitter.evaluate(c), mask=invm)
    602609
    603610                    self._p.plot(self.x, y)
     
    606613                    self._p.set_line(label="Total Fit")
    607614                    y = ma.masked_array(self.fitter.getfit(),
    608                                           mask=logical_not(m))
     615                                          mask=invm)
    609616                    self._p.plot(self.x, y)
    610617        else:
    611618            self._p.palette(2)
    612619            self._p.set_line(label='Fit')
    613             y = ma.masked_array(self.fitter.getfit(),
    614                                   mask=logical_not(m))
     620            y = ma.masked_array(self.fitter.getfit(),mask=invm)
    615621            self._p.plot(self.x, y)
    616622        xlim=[min(self.x),max(self.x)]
Note: See TracChangeset for help on using the changeset viewer.