def getplotstyle(style, caption, **kwargs): linewidth = kwargs.pop('linewidth', 1.0) if style is None: color = kwargs.pop('color', 'red') c = getcolor(color) else: c, style = getcolor_style(style) lineStyle, style = getlinestyle_1(style) pointStyle = getpointstyle(style) if not pointStyle is None: fill = kwargs.pop('fill', True) if lineStyle is None: pb = PointBreak() pb.setCaption(caption) if '.' in style: pb.setSize(4) pb.setDrawOutline(False) else: pb.setSize(8) pb.setStyle(pointStyle) pb.setDrawFill(fill) if not c is None: pb.setColor(c) edgecolor = kwargs.pop('edgecolor', pb.getColor()) edgecolor = getcolor(edgecolor) pb.setOutlineColor(edgecolor) return pb else: plb = PolylineBreak() plb.setCaption(caption) plb.setWidth(linewidth) plb.setStyle(lineStyle) plb.setDrawSymbol(True) plb.setSymbolStyle(pointStyle) plb.setFillSymbol(fill) interval = kwargs.pop('markerinterval', 1) plb.setSymbolInterval(interval) if not c is None: plb.setColor(c) markersize = kwargs.pop('markersize', None) if not markersize is None: plb.setSymbolSize(markersize) markercolor = kwargs.pop('markercolor', plb.getColor()) markercolor = getcolor(markercolor) plb.setSymbolColor(markercolor) markerfillcolor = kwargs.pop('markerfillcolor', markercolor) markerfillcolor = getcolor(markerfillcolor) plb.setSymbolFillColor(markerfillcolor) return plb else: plb = PolylineBreak() plb.setCaption(caption) plb.setWidth(linewidth) if not c is None: plb.setColor(c) if not lineStyle is None: plb.setStyle(lineStyle) return plb
def getlegendbreak(geometry, **kwargs): cobj = kwargs.pop('color', None) if cobj is None: cobj = kwargs.pop('facecolor', None) color = None if not cobj is None: color = getcolor(cobj) if geometry == 'point': lb = PointBreak() marker = kwargs.pop('marker', 'o') if marker == 'image': imagepath = kwargs.pop('imagepath', None) if not imagepath is None: lb.setMarkerType(MarkerType.Image) lb.setImagePath(imagepath) elif marker == 'font': fontname = kwargs.pop('fontname', 'Weather') lb.setMarkerType(MarkerType.Character) lb.setFontName(fontname) charindex = kwargs.pop('charindex', 0) lb.setCharIndex(charindex) else: pstyle = getpointstyle(marker) lb.setStyle(pstyle) size = kwargs.pop('size', 6) lb.setSize(size) ecobj = kwargs.pop('edgecolor', 'k') edgecolor = getcolor(ecobj) lb.setOutlineColor(edgecolor) edgesize = kwargs.pop('edgesize', 1) lb.setOutlineSize(edgesize) fill = kwargs.pop('fill', True) lb.setDrawFill(fill) edge = kwargs.pop('edge', True) lb.setDrawOutline(edge) elif geometry == 'line': lb = PolylineBreak() size = kwargs.pop('size', 1.0) size = kwargs.pop('linewidth', size) lb.setWidth(size) lsobj = kwargs.pop('linestyle', '-') linestyle = getlinestyle(lsobj) lb.setStyle(linestyle) marker = kwargs.pop('marker', None) if not marker is None: pstyle = getpointstyle(marker) lb.setDrawSymbol(True) lb.setSymbolStyle(pstyle) markersize = kwargs.pop('markersize', None) if not markersize is None: lb.setSymbolSize(markersize) markercolor = kwargs.pop('markercolor', None) if not markercolor is None: markercolor = getcolor(markercolor) lb.setSymbolColor(markercolor) fillcolor = kwargs.pop('makerfillcolor', None) if not fillcolor is None: lb.setFillSymbol(True) lb.setSymbolFillColor(getcolor(fillcolor)) else: lb.setSymbolFillColor(markercolor) interval = kwargs.pop('markerinterval', 1) lb.setSymbolInterval(interval) elif geometry == 'polygon': lb = PolygonBreak() ecobj = kwargs.pop('edgecolor', 'k') edgecolor = getcolor(ecobj) lb.setOutlineColor(edgecolor) fill = kwargs.pop('fill', None) if fill is None: if color is None: lb.setDrawFill(False) else: lb.setDrawFill(True) else: lb.setDrawFill(fill) edge = kwargs.pop('edge', True) lb.setDrawOutline(edge) size = kwargs.pop('size', None) size = kwargs.pop('edgesize', size) if not size is None: lb.setOutlineSize(size) hatch = kwargs.pop('hatch', None) hatch = gethatch(hatch) hatchsize = kwargs.pop('hatchsize', None) bgcolor = kwargs.pop('bgcolor', None) bgcolor = getcolor(bgcolor) if not hatch is None: lb.setStyle(hatch) if not bgcolor is None: lb.setBackColor(bgcolor) if not hatchsize is None: lb.setStyleSize(hatchsize) else: lb = ColorBreak() caption = kwargs.pop('caption', None) if not caption is None: lb.setCaption(caption) if not color is None: lb.setColor(color) alpha = kwargs.pop('alpha', None) if not alpha is None: lb.setColor(getcolor(lb.getColor(), alpha)) value = kwargs.pop('value', None) isunique = True if not value is None: if isinstance(value, (tuple, list)): lb.setStartValue(value[0]) lb.setEndValue(value[1]) isunique = False else: lb.setStartValue(value) lb.setEndValue(value) return lb, isunique
mdi = MeteoDataInfo() #---- Open a MICAPS data file fn = os.path.join(dataDir, 'MICAPS/10101414.000') mdi.openMICAPSData(fn) #---- Get station info data sidata = mdi.getStationInfoData() #---- Create station info layer from the station info data ls = LegendScheme(ShapeTypes.Point) ls.setLegendType(LegendType.SingleSymbol) lbs = ls.getLegendBreaks() lb = PointBreak() lb.setSize(16) lb.setColor(Color.blue) lb.setOutlineColor(Color.red) lb.setStyle(PointStyle.Star) lbs.add(lb) layer = DrawMeteoData.createSTInfoLayer(sidata, ls, 'StationInfo') layer.setAvoidCollision(True) #---- Add layer mapFrame.addLayer(layer) mapFrame.moveLayer(layer, 0) #---- Add title title = mapLayout.addText('MeteoInfo script demo', 350, 30, 'Arial', 16) #---- Set layout map