Beispiel #1
0
    def drawBarbs(self, prof, qp, color="#FFFFFF"):
        qp.setClipping(False)

        rect_size = self.clip.size()
        rect_size.setHeight(rect_size.height() + self.bpad)
        mod_clip = QRect(self.clip.topLeft(), rect_size)
        qp.setClipRect(mod_clip)

        if self.interpWinds is False:
            i = 0
            mask1 = prof.u.mask
            mask2 = prof.pres.mask
            mask = np.maximum(mask1, mask2)
            pres = prof.pres[~mask]
            u = prof.u[~mask]
            v = prof.v[~mask]
            wdir, wspd = tab.utils.comp2vec(u, v)
            yvals = self.originy + self.pres_to_pix(pres) / self.scale
            for y in yvals:
                dd = wdir[i]
                ss = wspd[i]
                drawBarb( qp, self.barbx, y, dd, vv )
                i += 1
        else:
            pres = np.arange(prof.pres[prof.sfc], prof.pres[prof.top], -40)
            wdir, wspd = tab.interp.vec(prof, pres)
            for p, dd, ss in zip(pres, wdir, wspd):
                if not tab.utils.QC(dd) or np.isnan(ss) or p < self.pmin:
                    continue

                y = self.originy + self.pres_to_pix(p) / self.scale
                drawBarb( qp, self.barbx, y, dd, ss, color=color)
        qp.setClipRect(self.clip)
Beispiel #2
0
 def drawBarbs(self, qp):
     if self.interpWinds is False:
         i = 0
         mask1 = self.u.mask
         mask2 = self.pres.mask
         mask = np.maximum(mask1, mask2)
         pres = self.pres[~mask]
         u = self.u[~mask]
         v = self.v[~mask]
         yvals = self.pres_to_pix(pres)
         for y in yvals:
             if y >= self.tly:
                 uu = u[i]
                 vv = v[i]
                 drawBarb( qp, self.barbx, y, uu, vv )
                 i += 1
             else:
                 break
     else:
         for p in np.arange(self.prof.pres[self.prof.sfc], self.prof.pres[self.prof.top], -40):
             uu, vv = tab.interp.components(self.prof, p)
             if not tab.utils.QC(uu) or np.isnan(uu) or p < self.pmin:
                 continue
             y = self.pres_to_pix(p)
             drawBarb( qp, self.barbx, y, uu, vv )
Beispiel #3
0
 def drawBarbs(self, prof, qp, color="#FFFFFF"):
     if self.interpWinds is False:
         i = 0
         mask1 = prof.u.mask
         mask2 = prof.pres.mask
         mask = np.maximum(mask1, mask2)
         pres = prof.pres[~mask]
         u = prof.u[~mask]
         v = prof.v[~mask]
         wdir, wspd = tab.utils.comp2vec(u, v)
         yvals = self.pres_to_pix(pres)
         for y in yvals:
             if y >= self.tly:
                 dd = wdir[i]
                 ss = wspd[i]
                 drawBarb( qp, self.barbx, y, dd, vv )
                 i += 1
             else:
                 break
     else:
         pres = np.arange(prof.pres[prof.sfc], prof.pres[prof.top], -40)
         wdir, wspd = tab.interp.vec(prof, pres)
         for p, dd, ss in zip(pres, wdir, wspd):
             if not tab.utils.QC(dd) or np.isnan(ss) or p < self.pmin:
                 continue
             y = self.pres_to_pix(p)
             drawBarb( qp, self.barbx, y, dd, ss, color=color)
Beispiel #4
0
    def drawBarbs(self, qp):
        x1 = self.brx / 10
        y1 = self.bry / 19
        origin_x = x1 * 8.
        pen = QtGui.QPen(QtGui.QColor('#0A74C6'), 1, QtCore.Qt.SolidLine)
        qp.setPen(pen)
        qp.setFont(self.label_font)
        rect0 = QtCore.QRect(x1 * 7, self.ylast + self.tpad, x1 * 2,
                             self.label_height)
        qp.drawText(rect0, QtCore.Qt.TextDontClip | QtCore.Qt.AlignCenter,
                    '1km & 6km AGL\nWind Barbs')

        if self.wind_units == "m/s":
            conv = tab.utils.KTS2MS
        else:
            conv = lambda s: s
        try:
            drawBarb(qp,
                     origin_x,
                     self.barby,
                     self.prof.wind1km[0],
                     conv(self.prof.wind1km[1]),
                     color='#AA0000',
                     shemis=(self.prof.latitude < 0))
            drawBarb(qp,
                     origin_x,
                     self.barby,
                     self.prof.wind6km[0],
                     conv(self.prof.wind6km[1]),
                     color='#0A74C6',
                     shemis=(self.prof.latitude < 0))
        except:
            logging.debug(
                "Couldn't draw the 1 or 6 km wind barbs on kinematics.py")
Beispiel #5
0
 def drawBarbs(self, prof, qp, color="#FFFFFF"):
     if self.interpWinds is False:
         i = 0
         mask1 = prof.u.mask
         mask2 = prof.pres.mask
         mask = np.maximum(mask1, mask2)
         pres = prof.pres[~mask]
         u = prof.u[~mask]
         v = prof.v[~mask]
         wdir, wspd = tab.utils.comp2vec(u, v)
         yvals = self.pres_to_pix(pres)
         for y in yvals:
             if y >= self.tly:
                 dd = wdir[i]
                 ss = wspd[i]
                 drawBarb( qp, self.barbx, y, dd, vv )
                 i += 1
             else:
                 break
     else:
         pres = np.arange(prof.pres[prof.sfc], prof.pres[prof.top], -40)
         wdir, wspd = tab.interp.vec(prof, pres)
         for p, dd, ss in zip(pres, wdir, wspd):
             if not tab.utils.QC(dd) or np.isnan(ss) or p < self.pmin:
                 continue
             y = self.pres_to_pix(p)
             drawBarb( qp, self.barbx, y, dd, ss, color=color)
Beispiel #6
0
 def drawBarbs(self, qp):
     x1 = self.brx / 10
     y1 = self.bry / 19
     origin_x = x1*8.
     pen = QtGui.QPen(QtGui.QColor('#0A74C6'), 1, QtCore.Qt.SolidLine)
     qp.setPen(pen)
     qp.setFont(self.label_font)
     rect0 = QtCore.QRect(x1*7, self.ylast + self.tpad, x1*2, self.label_height)
     qp.drawText(rect0, QtCore.Qt.TextDontClip | QtCore.Qt.AlignCenter, '1km & 6km AGL\nWind Barbs' )
     drawBarb(qp, origin_x, self.barby, self.prof.wind1km[0], self.prof.wind1km[1], color='#AA0000')
     drawBarb(qp, origin_x, self.barby, self.prof.wind6km[0], self.prof.wind6km[1], color='#0A74C6')
Beispiel #7
0
 def drawBarbs(self, qp):
     x1 = self.brx / 10
     y1 = self.bry / 19
     origin_x = x1 * 8.
     pen = QtGui.QPen(QtGui.QColor('#0A74C6'), 1, QtCore.Qt.SolidLine)
     qp.setPen(pen)
     qp.setFont(self.label_font)
     rect0 = QtCore.QRect(x1 * 7, self.ylast + self.tpad, x1 * 2,
                          self.label_height)
     qp.drawText(rect0, QtCore.Qt.TextDontClip | QtCore.Qt.AlignCenter,
                 'AGL 1km & 6km\nBarbas de viento')
     drawBarb(qp, origin_x, self.barby, self.prof.wind1km[0],
              self.prof.wind1km[1], '#AA0000', self.prof.latitude)
     drawBarb(qp, origin_x, self.barby, self.prof.wind6km[0],
              self.prof.wind6km[1], '#0A74C6', self.prof.latitude)