From e0ef54726ab916edf5401e538526dd9401222074 Mon Sep 17 00:00:00 2001 From: wyq Date: Mon, 4 Mar 2024 15:32:03 +0800 Subject: [PATCH] plot WebMapImage --- .../org/meteoinfo/chart/geo/MapGridLine.java | 10 +- .../java/org/meteoinfo/chart/geo/MapPlot.java | 112 +++++++++++++++- .../meteoinfo/chart/graphic/WebMapImage.java | 18 +++ .../java/org/meteoinfo/chart/plot/Plot2D.java | 27 +++- .../meteoinfo/geo/util/GeoProjectionUtil.java | 1 + .../geometry/legend/LegendScheme.java | 2 + meteoinfo-lab/milconfig.xml | 42 +++--- .../pylib/mipylib/geolib/_graphic.py | 11 ++ .../mipylib/numeric/core/numeric$py.class | Bin 146314 -> 146314 bytes .../pylib/mipylib/plotlib/_axes$py.class | Bin 230018 -> 232035 bytes meteoinfo-lab/pylib/mipylib/plotlib/_axes.py | 96 ++++++++++--- .../pylib/mipylib/plotlib/_mapaxes$py.class | Bin 88881 -> 88779 bytes .../pylib/mipylib/plotlib/_mapaxes.py | 126 ++++++++++-------- .../pylib/mipylib/plotlib/graphic/lines.py | 11 +- .../org/meteoinfo/ndarray/math/ArrayUtil.java | 6 +- .../meteoinfo/projection/ProjectionUtil.java | 12 +- 16 files changed, 357 insertions(+), 117 deletions(-) diff --git a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/geo/MapGridLine.java b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/geo/MapGridLine.java index f01bafb1..e86cb0d0 100644 --- a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/geo/MapGridLine.java +++ b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/geo/MapGridLine.java @@ -277,10 +277,13 @@ public class MapGridLine extends GridLine { double latMin = this.lonLatExtent.minY; double latMax = this.lonLatExtent.maxY; double delta = this.lonLatExtent.getHeight() / (this.nPoints - 1); + if (delta <= 0) { + return; + } for (double lon : this.longitudeLocations) { List points = new ArrayList<>(); double lat = latMin; - while (lat <= latMax) { + while (lat < latMax) { points.add(new PointD(lon, lat)); lat += delta; } @@ -307,10 +310,13 @@ public class MapGridLine extends GridLine { lonMax = 180; } double delta = (lonMax - lonMin) / (this.nPoints - 1); + if (delta <= 0) { + return; + } for (double lat : this.latitudeLocations) { List points = new ArrayList<>(); double lon = lonMin; - while (lon <= lonMax) { + while (lon < lonMax) { points.add(new PointD(lon, lat)); lon += delta; } diff --git a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/geo/MapPlot.java b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/geo/MapPlot.java index 642da64e..c24965d9 100644 --- a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/geo/MapPlot.java +++ b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/geo/MapPlot.java @@ -15,10 +15,13 @@ import org.meteoinfo.chart.plot.Plot2D; import org.meteoinfo.chart.plot.PlotType; import org.meteoinfo.common.*; import org.meteoinfo.data.Dataset; +import org.meteoinfo.data.mapdata.webmap.GeoPosition; +import org.meteoinfo.data.mapdata.webmap.GeoUtil; import org.meteoinfo.data.mapdata.webmap.IWebMapPanel; import org.meteoinfo.data.mapdata.webmap.TileLoadListener; import org.meteoinfo.geo.drawing.Draw; import org.meteoinfo.geo.graphic.GeoGraphicCollection; +import org.meteoinfo.geo.layer.WebMapLayer; import org.meteoinfo.geo.util.GeoProjectionUtil; import org.meteoinfo.geometry.graphic.Graphic; import org.meteoinfo.geometry.graphic.GraphicCollection; @@ -38,6 +41,7 @@ import javax.xml.parsers.ParserConfigurationException; import java.awt.*; import java.awt.geom.AffineTransform; import java.awt.geom.Line2D; +import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.io.File; import java.io.IOException; @@ -388,6 +392,39 @@ public class MapPlot extends Plot2D implements IWebMapPanel { return webMapImage == null ? 0 : webMapImage.getZoom(); } + /** + * Get geographic center with longitude/latitude + * + * @return Geographic center + */ + public PointD getGeoCenter() { + PointD viewCenter = this.getViewCenter(); + return Reproject.reprojectPoint(viewCenter, this.projInfo, + KnownCoordinateSystems.geographic.world.WGS1984); + } + + /** + * Get view center point + * + * @return The view center point + */ + public PointD getViewCenter() { + return this.drawExtent.getCenterPoint(); + } + + /** + * Set view center point + * + * @param center The view center point + */ + public void setViewCenter(PointD center) { + PointD oldCenter = this.getViewCenter(); + double dx = center.X - oldCenter.X; + double dy = center.Y - oldCenter.Y; + Extent extent = this.drawExtent.shift(dx, dy); + this.drawExtent = extent; + } + @Override public void reDraw() { if (this.parent != null) { @@ -474,16 +511,21 @@ public class MapPlot extends Plot2D implements IWebMapPanel { int barIdx = 0; for (int m = 0; m < this.graphics.getNumGraphics(); m++) { Graphic graphic = this.graphics.get(m); + if (graphic instanceof WebMapImage) { + this.drawWebMapImage(g, (WebMapImage) graphic, area); + continue; + } + ColorBreak cb = graphic.getLegend(); ShapeTypes shapeType = graphic.getGraphicN(0).getShape().getShapeType(); switch(shapeType){ case BAR: this.drawBars(g, (GraphicCollection) graphic, barIdx, area); barIdx += 1; - break; + continue; case STATION_MODEL: this.drawStationModel(g, (GraphicCollection) graphic, area); - break; + continue; } if (graphic.getExtent().intersects(this.drawExtent)) { @@ -554,6 +596,72 @@ public class MapPlot extends Plot2D implements IWebMapPanel { } } + private double getWebMapScale(WebMapImage graphic, int zoom, double width, double height) { + Point2D center = graphic.getCenter(); + double minx = center.getX() - width / 2.; + double miny = center.getY() - height / 2.; + double maxx = center.getX() + width / 2.; + double maxy = center.getY() + height / 2.; + GeoPosition pos1 = GeoUtil.getPosition(new Point2D.Double(minx, miny), zoom, graphic.getTileFactory().getInfo()); + GeoPosition pos2 = GeoUtil.getPosition(new Point2D.Double(maxx, maxy), zoom, graphic.getTileFactory().getInfo()); + PointD p1 = Reproject.reprojectPoint(new PointD(pos1.getLongitude(), pos1.getLatitude()), + KnownCoordinateSystems.geographic.world.WGS1984, this.projInfo); + PointD p2 = Reproject.reprojectPoint(new PointD(pos2.getLongitude(), pos2.getLatitude()), + KnownCoordinateSystems.geographic.world.WGS1984, this.projInfo); + if (pos2.getLongitude() - pos1.getLongitude() < 360.0 && pos2.getLongitude() <= 180) { + double xlen = Math.abs(p2.X - p1.X); + return (double) width / xlen; + } else { + double ylen = Math.abs(p2.Y - p1.Y); + return (double) height / ylen; + } + } + + private void setScale(double scale, double width, double height) { + this.xScale = scale; + this.yScale = scale; + PointD center = (PointD)this.drawExtent.getCenterPoint().clone(); + double xlen = width / scale * 0.5; + double ylen = height / scale * 0.5; + this.drawExtent.minX = center.X - xlen; + this.drawExtent.maxX = center.X + xlen; + this.drawExtent.minY = center.Y - ylen; + this.drawExtent.maxY = center.Y + ylen; + } + + void drawWebMapImage(Graphics2D g, WebMapImage graphic, Rectangle2D area) { + PointD geoCenter = this.getGeoCenter(); + graphic.setAddressLocation(new GeoPosition(geoCenter.Y, geoCenter.X)); + double webMapScale = graphic.getWebMapScale(); + if (!MIMath.doubleEquals(this.xScale, webMapScale)) { + int minZoom = graphic.getTileFactory().getInfo().getMinimumZoomLevel(); + int maxZoom = graphic.getTileFactory().getInfo().getMaximumZoomLevel(); + int newZoom = minZoom; + double scale = webMapScale; + double width = area.getWidth(); + double height = area.getHeight(); + for (int i = maxZoom; i >= minZoom; i--) { + graphic.setZoom(i); + scale = getWebMapScale(graphic, i, width, height); + if (xScale < scale) { + newZoom = i; + if (xScale < webMapScale) { + if (i < maxZoom) { + newZoom = i + 1; + scale = getWebMapScale(graphic, newZoom, width, height); + } + } + break; + } + } + this.setScale(scale, width, height); + graphic.setWebMapScale(scale); + graphic.setZoom(newZoom); + } + + graphic.draw(g, area, this.tileLoadListener); + } + /** * Add a graphic * diff --git a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/graphic/WebMapImage.java b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/graphic/WebMapImage.java index 80edfa9d..d8570f60 100644 --- a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/graphic/WebMapImage.java +++ b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/graphic/WebMapImage.java @@ -1,5 +1,6 @@ package org.meteoinfo.chart.graphic; +import org.meteoinfo.common.Extent; import org.meteoinfo.data.mapdata.webmap.*; import org.meteoinfo.data.mapdata.webmap.empty.EmptyTileFactory; import org.meteoinfo.geometry.graphic.Graphic; @@ -51,6 +52,7 @@ public class WebMapImage extends Graphic { private double webMapScale = 0.; private double width; private double height; + private Extent extent = new Extent(-180, 180, -90, 90); /** * Constructor @@ -74,6 +76,22 @@ public class WebMapImage extends Graphic { //this.setCenterPosition(new GeoPosition(0, 0)); } + /** + * Get extent + * @return Extent + */ + public Extent getExtent() { + return extent; + } + + /** + * Set extent + * @param extent The extent + */ + public void setExtent(Extent extent) { + this.extent = extent; + } + /** * Get web map scale * @return Web map scale diff --git a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/plot/Plot2D.java b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/plot/Plot2D.java index c4186475..880b4dc8 100644 --- a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/plot/Plot2D.java +++ b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/plot/Plot2D.java @@ -17,6 +17,7 @@ import org.meteoinfo.chart.ChartLegend; import org.meteoinfo.chart.ChartText; import org.meteoinfo.chart.axis.LogAxis; import org.meteoinfo.chart.axis.TimeAxis; +import org.meteoinfo.chart.graphic.WebMapImage; import org.meteoinfo.common.Extent; import org.meteoinfo.common.MIMath; import org.meteoinfo.common.PointD; @@ -281,7 +282,7 @@ public class Plot2D extends AbstractPlot2D { case BAR: this.drawBars(g, (GraphicCollection) graphic, barIdx, area); barIdx += 1; - break; + continue; } if (graphic.getExtent().intersects(this.drawExtent)) { @@ -1312,6 +1313,9 @@ public class Plot2D extends AbstractPlot2D { private int getBarIndex() { int idx = -1; for (int i = 0; i < this.graphics.size(); i++) { + if (this.graphics.get(i) instanceof WebMapImage) { + continue; + } if (this.graphics.get(i).getGraphicN(0).getShape().getShapeType() == ShapeTypes.BAR) { idx = i; break; @@ -1323,6 +1327,9 @@ public class Plot2D extends AbstractPlot2D { private int getImageIndex() { int idx = -1; for (int i = 0; i < this.graphics.size(); i++) { + if (this.graphics.get(i) instanceof WebMapImage) { + continue; + } if (this.graphics.get(i).getGraphicN(0).getShape().getShapeType() == ShapeTypes.IMAGE) { idx = i; break; @@ -1354,12 +1361,22 @@ public class Plot2D extends AbstractPlot2D { this.graphics.updateExtent(); Extent extent = (Extent)this.graphics.getExtent().clone(); if (extent.minX == extent.maxX) { - extent.minX = extent.minX - Math.abs(extent.minX); - extent.maxX = extent.maxX + Math.abs(extent.minX); + if (extent.minX == 0) { + extent.minX = -1; + extent.maxX = 1; + } else { + extent.minX = extent.minX - Math.abs(extent.minX); + extent.maxX = extent.maxX + Math.abs(extent.minX); + } } if (extent.minY == extent.maxY) { - extent.minY = extent.minY - Math.abs(extent.minY); - extent.maxY = extent.maxY + Math.abs(extent.maxY); + if (extent.minY == 0) { + extent.minY = -1; + extent.maxY = 1; + } else { + extent.minY = extent.minY - Math.abs(extent.minY); + extent.maxY = extent.maxY + Math.abs(extent.maxY); + } } int imageIdx = this.getImageIndex(); diff --git a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/util/GeoProjectionUtil.java b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/util/GeoProjectionUtil.java index 7ab856b1..da95bb03 100644 --- a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/util/GeoProjectionUtil.java +++ b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/util/GeoProjectionUtil.java @@ -681,6 +681,7 @@ public class GeoProjectionUtil { } newGCollection.setLegendScheme(geoGraphic.getLegendScheme()); newGCollection.setSingleLegend(geoGraphic.isSingleLegend()); + newGCollection.setAntiAlias(geoGraphic.isAntiAlias()); newGCollection.getAttributeTable().setTable(dataTable); newGCollection.setProjInfo(toProj); diff --git a/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/LegendScheme.java b/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/LegendScheme.java index 65957764..0ffff3ef 100644 --- a/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/LegendScheme.java +++ b/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/LegendScheme.java @@ -1658,6 +1658,8 @@ package org.meteoinfo.geometry.legend; bLS.setMinValue(minValue); bLS.setMaxValue(maxValue); bLS.setUndefValue(undef); + bLS.setExtendType(extendType); + bLS.setExtendFraction(extendFraction); for (ColorBreak aCB : legendBreaks) { bLS.getLegendBreaks().add((ColorBreak) aCB.clone()); } diff --git a/meteoinfo-lab/milconfig.xml b/meteoinfo-lab/milconfig.xml index fefb366f..2d0d9505 100644 --- a/meteoinfo-lab/milconfig.xml +++ b/meteoinfo-lab/milconfig.xml @@ -1,34 +1,32 @@ - - + - + - - - - - - - - - + + - + + + + + + + + + - - - - + + + - - - - + + + @@ -36,5 +34,5 @@
- + diff --git a/meteoinfo-lab/pylib/mipylib/geolib/_graphic.py b/meteoinfo-lab/pylib/mipylib/geolib/_graphic.py index d6c79538..f81e0413 100644 --- a/meteoinfo-lab/pylib/mipylib/geolib/_graphic.py +++ b/meteoinfo-lab/pylib/mipylib/geolib/_graphic.py @@ -13,6 +13,17 @@ class GeoGraphicCollection(object): """ self._geographic = geographic + def get_graphics(self): + """ + Get graphics. + :return: Graphics. + """ + return self._geographic + + @property + def shapes(self): + return self._geographic.getShapes() + def addlabels(self, fieldname, **kwargs): """ Add labels diff --git a/meteoinfo-lab/pylib/mipylib/numeric/core/numeric$py.class b/meteoinfo-lab/pylib/mipylib/numeric/core/numeric$py.class index 05b13c0556f358723a10e1a890598f9a6c69f214..7725279e5a0f5290bda36bdbb33b8724f957e684 100644 GIT binary patch delta 27 jcmeDB&e8RqqhSl9wj668%cD#G+709ww;RYYMacpHp^FMG delta 27 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 delta 70718 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%0DUN~cj{Qz;pP&eVSr@qi?IX&rg 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 diff --git a/meteoinfo-lab/pylib/mipylib/plotlib/_axes.py b/meteoinfo-lab/pylib/mipylib/plotlib/_axes.py index e86678b1..ecad6795 100644 --- a/meteoinfo-lab/pylib/mipylib/plotlib/_axes.py +++ b/meteoinfo-lab/pylib/mipylib/plotlib/_axes.py @@ -1488,6 +1488,10 @@ class Axes(object): # Create graphics graphics = GraphicFactory.createStepLineString(xdata, ydata, fmt, where) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + zorder = kwargs.pop('zorder', None) self.add_graphic(graphics, zorder=zorder) return graphics @@ -1603,6 +1607,10 @@ class Axes(object): # Create graphics graphics = GraphicFactory.createPoints(xdata, ydata, pbs) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + zorder = kwargs.pop('zorder', None) self.add_graphic(graphics, zorder=zorder) self._axes.setAutoExtent() @@ -2273,6 +2281,10 @@ class Axes(object): graphics = GraphicFactory.createStems(xdata, ydata, linefmt, markerfmt, \ basefmt, bottom) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + zorder = kwargs.pop('zorder', None) self.add_graphic(graphics, zorder=zorder) self._axes.setAutoExtent() @@ -2341,19 +2353,22 @@ class Axes(object): if x.ndim == 2 and y.ndim == 2: griddata_props = kwargs.pop('griddata_props', dict(method='idw', pointnum=5, convexhull=True)) a, x, y = np.griddata((x, y), a, **griddata_props) - igraphic = GraphicFactory.createContourLines(x.asarray(), y.asarray(), a.asarray(), ls, smooth) + graphics = GraphicFactory.createContourLines(x.asarray(), y.asarray(), a.asarray(), ls, smooth) if not xaxistype is None: self.set_xaxis_type(xaxistype) self._axes.updateDrawExtent() - zorder = kwargs.pop('zorder', None) - self.add_graphic(igraphic, zorder=zorder) - # self._axes.setAutoExtent() - self._axes.setExtent(igraphic.getExtent()) - self._axes.setDrawExtent(igraphic.getExtent()) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) - return igraphic + zorder = kwargs.pop('zorder', None) + self.add_graphic(graphics, zorder=zorder) + self._axes.setExtent(graphics.getExtent()) + self._axes.setDrawExtent(graphics.getExtent()) + + return graphics def clabel(self, layer, **kwargs): """ @@ -2496,7 +2511,11 @@ class Axes(object): griddata_props = kwargs.pop('griddata_props', dict(method='idw', pointnum=5, convexhull=True)) a, x, y = np.griddata((x, y), a, **griddata_props) - igraphic = GraphicFactory.createContourPolygons(x.asarray(), y.asarray(), a.asarray(), ls, smooth) + graphics = GraphicFactory.createContourPolygons(x.asarray(), y.asarray(), a.asarray(), ls, smooth) + + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) visible = kwargs.pop('visible', True) if visible: @@ -2505,12 +2524,11 @@ class Axes(object): self._axes.updateDrawExtent() zorder = kwargs.pop('zorder', None) - self.add_graphic(igraphic, zorder=zorder) - # self.setAutoExtent() - self._axes.setExtent(igraphic.getExtent()) - self._axes.setDrawExtent(igraphic.getExtent()) + self.add_graphic(graphics, zorder=zorder) + self._axes.setExtent(graphics.getExtent()) + self._axes.setDrawExtent(graphics.getExtent()) - return igraphic + return graphics def imshow(self, *args, **kwargs): """ @@ -2603,6 +2621,10 @@ class Axes(object): self.set_xaxis_type(xaxistype) self._axes.updateDrawExtent() + antialias = kwargs.pop('antialias', None) + if antialias is not None: + igraphic.setAntiAlias(antialias) + zorder = kwargs.pop('zorder', None) self.add_graphic(igraphic, zorder=zorder) gridline = self._axes.getGridLine() @@ -2655,6 +2677,10 @@ class Axes(object): plotutil.setlegendscheme(ls, **kwargs) graphics = GraphicFactory.createPColorPolygons(x.asarray(), y.asarray(), a.asarray(), ls) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + visible = kwargs.pop('visible', True) if visible: zorder = kwargs.pop('zorder', None) @@ -2699,6 +2725,10 @@ class Axes(object): ls = ls.convertTo(ShapeTypes.POLYGON) plotutil.setlegendscheme(ls, **kwargs) graphics = GraphicFactory.createGridPolygons(x.asarray(), y.asarray(), a.asarray(), ls) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + visible = kwargs.pop('visible', True) if visible: zorder = kwargs.pop('zorder', None) @@ -3077,6 +3107,10 @@ class Axes(object): graphics = GraphicFactory.createPieArcs(x, colors, labels, startangle, explode, font, fontcolor, \ labeldistance, autopct, pctdistance, radius, wedgeprops) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + for graphic in graphics: self.add_graphic(graphic) @@ -3093,7 +3127,7 @@ class Axes(object): def boxplot(self, x, sym=None, vert=True, positions=None, widths=None, color=None, showcaps=True, showfliers=True, showmeans=False, \ showmedians=True, meanline=False, medianline=True, boxprops=None, medianprops=None, meanprops=None, - whiskerprops=None, capprops=None, flierprops=None): + whiskerprops=None, capprops=None, flierprops=None, **kwargs): """ Make a box and whisker plot. @@ -3221,6 +3255,10 @@ class Axes(object): showmedians, boxprops, medianprops, whiskerprops, capprops, meanprops, flierprops) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + self.add_graphic(graphics) self._axes.setAutoExtent() @@ -3437,7 +3475,7 @@ class Axes(object): :param cmap: (*string*) Color map string. :param fill_value: (*float*) Fill_value. Default is ``-9999.0``. :param isuv: (*boolean*) Is U/V or direction/speed data array pairs. Default is True. - :param size: (*float*) Base size of the arrows. + :param size: (*float*) Base size of the arrows. Default is 10. :param order: (*int*) Z-order of created layer for display. :returns: Barbs graphics. @@ -3506,17 +3544,21 @@ class Axes(object): if not cdata is None: cdata = plotutil.getplotdata(cdata) - igraphic = GraphicFactory.createBarbs(x, y, u, v, cdata, ls, isuv) + graphics = GraphicFactory.createBarbs(x, y, u, v, cdata, ls, isuv) + + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) if not xaxistype is None: self.set_xaxis_type(xaxistype) self._axes.updateDrawExtent() zorder = kwargs.pop('zorder', None) - self.add_graphic(igraphic, zorder=zorder) + self.add_graphic(graphics, zorder=zorder) self._axes.setAutoExtent() - return igraphic + return graphics def quiver(self, *args, **kwargs): """ @@ -3614,6 +3656,10 @@ class Axes(object): self.set_xaxis_type(xaxistype) self._axes.updateDrawExtent() + antialias = kwargs.pop('antialias', None) + if antialias is not None: + igraphic.setAntiAlias(antialias) + zorder = kwargs.pop('zorder', None) self.add_graphic(igraphic, zorder=zorder) self._axes.setAutoExtent() @@ -3765,6 +3811,10 @@ class Axes(object): igraphic = GraphicFactory.createStreamlines(x._array, y._array, u._array, v._array, cdata._array, density, ls, isuv) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + igraphic.setAntiAlias(antialias) + zorder = kwargs.pop('zorder', None) self.add_graphic(igraphic, zorder=zorder) self._axes.setAutoExtent() @@ -3967,6 +4017,10 @@ class Axes(object): if newlegend: self._axes.addLegend(clegend) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + clegend.setAntiAlias(antialias) + return clegend def colorbar(self, mappable=None, **kwargs): @@ -4038,7 +4092,7 @@ class Axes(object): ls = self.get_legend() else: if isinstance(mappable, MILayer): - ls = mappable.legend() + ls = mappable.legend elif isinstance(mappable, LegendScheme): ls = mappable elif isinstance(mappable, ImageGraphic): @@ -4150,6 +4204,10 @@ class Axes(object): if not minortick is None: legend.setDrawMinorTick(minortick) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + legend.setAntiAlias(antialias) + return legend diff --git a/meteoinfo-lab/pylib/mipylib/plotlib/_mapaxes$py.class b/meteoinfo-lab/pylib/mipylib/plotlib/_mapaxes$py.class index 707aadb968b43831e25f0a8128907201f0de8aae..c078d83c7ff458d573ce6fa441db812bfa84b54f 100644 GIT binary patch literal 88779 zcmeF437lL-@%Z00*+*DlcZVyS0|atx4iXL_oFNy1Bm_1bL1Z)8olS=9#U42jL_lsq z1w{}M0U?5@2pT{X6-5LQ6h*v6#QVOL4dnl=>VC((ncYM@{=fh44<9N!^SZjay1Kin zy1HJ^6R&*oVaIW%=k9kMzhmtFu5;4(1wDN$ruMEISlQD(wXLVGG0Q@4!1?X+~H(P@&7ufVi5L)1&bWE`?bar)}?ex(idcJaI zUtiCf(AnK}MjKho?d$1soil1M`}%)MKCd5sK8+RubB^3l~$B`LT4PZT3GB|tOO>w&aSn{ujniGt}M5O zPP6N5JI{QXTWlNX>01{%lU--)Q%lPsGQX?1q7*t)tEkYDX}!HTPz;@E$ar>Nam_** zlG*y`0M{8)*|OFt_O33MkoG}_%Tx5r>s)91YTPoNITThbdnXT+J41)1uzM9MGof$Y zl+MzMQg?gk9Kk>y!?IenWL!J)Yw_ zyA9J!|H`7&nddsW7V~jFy}j z%`SBm2RjFrlsilD^jpE|Og%7tDWgbaZBHq#f#+3dy16~VJqtBAtEaOEdOdt>Ev}Uz zKb!KI`l%mcUFBZJX89B}NU2XI{UE)F)!xkhdS{K%R%_9h-Eeyjg3DBzB6>V@&SgXv z%|>GsStoCTr`hE$`|ZuHvtv{V2}*-qWh=%DWwy_^B6|x0&mgwOLw*TO&nxxVQKx5} z(Fk9bVk)N3htRo#j(3&y<6B`#RL7t$ma7@&HW3aYc{?*QY87Ob(lrRle0nFNla!gd z*HO2tY(8I4*BIoCNn23vAE=e=f`o3VIbO;lrN>YVq(U^IR_C_S&MnRdVEyoNcX{AQ*4X$Fw6Iv1JDl~Sog1AG!f0!2 zv9q(aHFWOc%Zk!KHzs?_xv*BN-nrZPu-L4RU|Uh4()F?E$I-2=T|MoCoh51DV+>Pk ztI(Hk_i5YhJ#F&k6SO$Gz<*M)u%ad=XMe+R&vUB+VQF7$czVN^jL5{(&R0h}H#uKZCQLs==j-U1)>e8_92n?p zZLN2nmHyr2d{d+$oR-!O^r1oDG}0v9GM~fFzE{cpx14VaU*Exn?d?GUeh&uI*5wDN zibXx$D8T1sNzEUj8FkuTkOBEI)LP3-kb|qoBKB-Y6zWf$p9)()Q!#e;be~h|>yg3r z$4@xD-uZ>|ODX*oA{So86AYc-z^Qx-o!_ylI(xcTbQUoae?TSl^p#hXF@Arl=}j*g z?CmVoIe($&-K906gjSULw6nEXwB?7@JAZTjKAJW2kI~LwMTwa4E)SHtWV|<;4!q2S zhmF?#LuZqG?CIvC>#{lr`UXq=;+G1St`C=jH_#utIcRA~hq`5R_zRo_4oG%5H-UX6fvDw@JI?=53dzh3*da+T+O8E)eEk;La7=^iEG zJDSGX2hFk+j*-DF4J@Xw>fX4sd4Qfs9?W%}Lq{IZk(za$c8`^2@l2VJv}6^Kd%WzY zZgLmUgSG2)dWG&H!`saMUR;gPUCbCR?-}fFFZQitFnUAxB-{g0$Ld2b7tcC$mq4M{ zIJlvE3QiV{9Aj(I3u>Jv;%n`ciNNsAuXj&(Uymtp&!~5v7o+e=_e|`Obvvet(}K%1 zwG|6j6qDJzuFhSC!%#!j%<5?`vGN{umv7}3-8R=bt6EaAf*HZ!4M)1hbGsbWVQ@>M zozJ=*B3e4#Dx8l!z;%vOtBv6rH(Z47`A8g%z?5P?GM1J4NX-At z_Vz+iS=Yk&dHli3T}y>U95eOC;c&t;;kUFTo|+)tWsp8p@4nx#`(XwpVK;O?YI7lN3ecZlsZ|A}C zbp`SMWj>U<+e>ScnG~bj3AlWnNEBO#?KJ4gG~6tScu~qE*BO{J6uS4)|41C6`|*1B zW2R3VjF_TX_yF-XQFQnr<<%wIvuT*qGh$vvXE90WjeFW3Ave@6cs)UaG z0=>n|mvo~Xx?dE%E(+K9aIW*Z5sb@-mcsp#`?wg}CorFb-Mz)ORV}5n2TQDS*EwVa zqVp$=V6*DoC*7~$aJo;Kg*!_-AG%+4om;ADZkhi#d@o*2$!7eLXGA1luXjIZhW1(3 zPcn$1`y5M7{gT$@#lErArn~;{dU zSz)axBr$X~sMyN7;%Zi2xB1GjCAK+Pv@p;j9=a8 zpx7x<5LoVBA(9yPhNQ2S%QfZpftA^A>cc7~O&FoKytdR?7-SD#MQdfLyke!=t#r4| z(|?|tt|Z}%@KsNr9RPh;MXQPvkx5n07VwZh(BEo&iHuh@sPS?FB{V;!U}KDhfu2IU z2{(#wv%Hf9Sw*gcprUBiis3WVq)3%^LJ=~{md)%d7dw|NE7YXbUp_}^Ma~1v7L}|p3ZjRroyR`hlY-I$l^{aOLJulR*RT4ZN0;CNqx2Ua+@rXnFaa4`oQTo zvjyF_1}CRb>{~(Dw0oc*1>aWc9VoRIFkZ5N=0Z$deOyh5#Vb$@vIIbo3Vp6BF@;E^&we4SZVY5{QsbOGB3sM4eq*p-U8^ zUKiCdMU6~{?h6#JE_M!|Tgw_Xtnq7B84Ne^Kad&5&rniPL+;CxYe6d)9{Dc6{n6cXozeqeaj!1QbL{$FM4` zlsp0pL8+YsD37>;Y%t}BX;G=DXPu!(XkjZUHe&V&D~OX2mCusJA9}fLXvJ@WREK^1i^S~v9e#dd4tqO~Zegkz^2;QHIeQ@!PXmqC&xk+w(r z{WWu>iXd%hMN$0s%+ddReeDsAleL>VP4_0&d*jTCA||(WY6*oNVY#~E+A^mi#4rAs zUQGQa0#WWR6uaAT^t{GS^0nXh_b*MbDWSN>t?t*IA&>uXdPi zkR+ktR~EVk`v(fkOT0!Ekz76??RrJsR3Ye{vl&^wB;>t!oC(AmvFe6{h3!)`>% zyqVrH>{Ps2_1^wwD$GHl%gBcwr{~+q0r7NoO2B!J;&inFM-6?__)IIET3PL}k zmQ_VCJ{^BDq1ELx3iCS(%f-c?C`VQkRdr0{kYxO-H8`{V6OK4y|A~c3%%v48*p-PV zD@5^59uVqmw zJyBs3mroSDft7>(1y-lb--!~8n^?VDSVKAv+qsGQcVeNf*ewfmTvzd|p1yH~@pk7j zVG@tZsMB$iL;~ZM_YABYCuH03Ci{9iD_CB$vPAD#?Lwn4P;OhLoS{9HM8y*jgqC)* z*wH~0v(%nUUAv-W?ZTq`NjNktq#0amnOm3Ute_oJDfDzyuqo0KR|9z><93u{cU8;k zIxD#fth29%QQ<|@#cb?t73L|qB`+Rs!^*i(~Ks|F3&&f@_cac%UZ!zp6 zhy_vqL+_G$&zw4WoHdAt(z;f7z*EEdm=uq83z`g%3@u<(NG!ob`k{9v+C8BVdYn#3 z$bTNvl(idr988QV_KW`!dhc+Z9YDr=G0szpr)%rID~!E(m*r`l<%y$#N}kqjj;HG_ zPliJ1aSXA&G;2MzRIBf;_ug$<_$gt1vb1kTSsh3Ou{Z}Xm{xJG+}=6NF|Z7ih>D0Rn_h&x2vyXf=oCT@FCn} zP8LG%7Sc(jFAL`{Hb;7MVJq}*tM|-lhIcy?%XT*O*3)xRkNQ`#@14HC>$!2mv&;Rx zoF=F{uBQs3Z&*)e@K8n8^VJl}V>8e5HhMP&5PYWzY6lyRSM6DXhwb|fwM7lmFjoCm~WlOzKG@E85Cj}N_z#c zHRUwrbjs66jEu`98Kx?B;sFz%B^gJ!M5Bj%G`@XA z^%DFS(U|w}CDxW4HH})^zp~uHV*faw&9Q3eanv+grQ9l!@zCR}Y3un5XU?0`x?twg zIVXkQCt37Jpwvg#REvk+r%-rkk|<}A-NeIC>0j4Hs7!JgLhrM(bCNk@h;rPsRk`1$ z{C=t^l%@O{T zc;rl;%rs93gX+<@oh_k9G*k>iw9z9TDkpg@nvd)e3l#zBwCFt5HytOYotXSw80dMv1l=~%_knZZB)rj z^w1|VD#&yL^)+n3S4~;~VI-{9G97Nd%pPfMy@O(8D>bM^*X?Qz^mVn-)9xzEH1b&Wv2InRKM8ZT5$Vi7;~1+eBQBOY zFi|7=G@+ezJU*EoKk*b*h6^OgA*z;olvECVV#K2*blj?u{?OlH)Mr0`>6>}`hKUiv z?p$owfTU#2uC?FQ(!=WgG5#)uC4Az=vh=0%BIVF0R2;UKyDV*D#5v*+M4$b=$X{9; z`htZy%K#^cr^r!8=pO=)pv>uRw-08Rr7cYB_=W!AvL;KbY3)eW zYpYA0d_J0|ZQUp|{}`jtjKb?TFF^RS;hH^Q=+Bi8MLKt^afQ-o%taKJe;iH1!`yPI zvwacvH}n_4_`Fh&zID-hdgw2bZt9}<7aP5#!wwrKAyVn0#^U`YuCwG-2Q_MqXp*Gp zpF#w~KegU(GHX^s6C$M0Cp0mdfc^j`WbE|mZtj414lXRNk_ebB)SN8Yj%glIGV5aW z|H@j`_)?9feNOGA&A>C&)VOS{; zHKha#I+&FwdZ;nknG^Zw=6_Mb-+T24dO`I2c>rNXp+e@Qt`%=WkQMjhX_bz?KjNWrqmct;uMwGNgv0hm2I1GszoTN zU_@YuOVAj>CcUf@m_*k^T=+&3Jg`z*s76N*R;y|lgH$mr7TqR981J&Go+wQzR=`t9|Mp zpCYD-%@NLC1u==13LU$}BJd#lIJjHLB$YzUog|`IsjG!gOHZbKmGrV{h^J3B69gj0 zA;NDL1FH7i`fmx5M2A(G-F1=ORVS@r46k{Z)DQhL(Wht%?8!1zdRM7`rG`cPre`Gu~5Xr1A^keV#3Vnh&+jLv6=yZGWeC=?_L$?T z_nc%aoA!XCR3$~n2n>&|7BV(QOXyxQw=G2ptyLxdNI30ZO!-j~G94?_(6VLI4y-t$ zv|RjKlYLZoi6+tyD4-?8@@$;g4x*N1I8zl_i@8L={YMZU=4@-+x#P^K43g0ctM!ZM3UJ+OpjUODYfCz*%-CFnL;ouPl3 zsJ!-enaiPnMZJHqS>kU+#mP}n&mi9Jfo|}_n485oFZ4l+^Z-p7!*5DfLX2uBqprze z{L1ukDzairpU_FK(P65m&sc}4UhN4_=S1}!vd574Fm+@fBol9#R{s@exYD2dU*-)j zTh_;d$CKkjiFoF#^L~xbr5kGAdGO5tFV)>*(X`pQiXPb#P z{7-qz@yrzkBJ+B4-t&LNM=STUAZ7X`p0e0Y_7f zo?FRIi$06A0GkFmbhVttGK}iie3ixMDC0%io)M%ruf4D{s_1J>G5(Oeo-ux+4YbXQ zV{#a%Sw=l^JgT=-u*0$ecN5tcHIvx~hd#$h1YmIT-eH`)YluLg=2nxHx}+!c-)YXd z(#}%oUx(*qr<$N*p-wX9}J8{4FiL=IWdQW@kzaJM^ z9WD*9+-g+r>eAYkB=3a&2PlmQhW;JAnr(VvJGVfD9{L}w_pdf8`z|!O)ytuOHvu2} zrDN>$gWTY!vG7!Z%VrEYTa^FBdi=Gp#;XZyyr#(i9h>df6!|}+$kQQ%lnzfn-V#0j zQ4}oBth{&Ue+-q_T_VGi41WJUw!0M?)E?xaL_bmQf5a%!`%$`)-VFT*u>s{Sb8vmI zn{#3v8Xa7dTve8D2ntuab^pu!;Qvfi`2QilSlkP9xF(Kc6kw6Cs(G3T z6-+*q|EBC;!-Z8s>hudC{eW&zLi(kGkO}mYW-(v`t`n+U;{S-l{%`TKE0PnWvvJg8 zemZTT(4&FF!t1rO=N6Wi#rx)sK>64<2&CTdi}h97VLpkQ6iR(jxHk1|OSJ2!%wea> zo=tz~Ka9F19bC^hKTB*;(WQSFH~L>0?LX;1 zg+squ4?MrBpX9{z8FB4NuJgY^R#d9bCU_e9WM>2<+7j}X^bFo@Fkz?Ax9J(FC*MPW ztp@i8=EQcEoOlxO5B=xa9we(F^k2YImHQW&Tk`xD#p<0s$oqPs|5KXjE7=o*(EmAz zvhR@xq5n&hM_4hZLjTuPCltJd`!@XF*82|`WB7ZX8uJ(We}rhS4*S^YuXA(T$5U&T zjxwj6z5S&@?w%5c?HOnXPbJu*VHAl~kB+LC}=1_LC zN2mXyk$m;Bqs&-sLGVadvxXu6MI-qiF>3$AHZT9-C{lWtfrDYU1{KGcTVfvnLiUR> z0gF|0CtHla)%$-oTJ;}jRijBme@M(JK_j!pIK<6u6YIlRuS)rA3iaQUijrBRujQiX z#2PUdu zAlD0VY_wSJeW^bT!`gt3H8^l=&px z9{gW8i;bs+9Q4^~@E?vr{oA~~a{r)?S8_TyzrS$u)Kg@f;~}1^LlGq*$$3|AvE0{R z5iY5jUKiy9MlqXXcu7O^04pY1>Rk>yh5jQx=)WbfQu{8wf8POQTBS+c+8#A>?Z@)| z3VoL>yD;Dq)|?(LhXFU81Tv;!u(cdPt|-+9+vpKwux+gTOf13Xa0Lx`kON!{&I=Sl z6Deh6YN@w5i%Vg6w7qD=C|Nq#k(M+SCk%Gx8d~F>wvcn%S!&T&T`FnsQX?r$bxRoR zMvk7TK2wxUe;DjhAB-|uxByFL9fiT(w6DD%d%*r~a9h0AYN=o&B@GR{rhzMT{QplH z*vx|06tGeLN?vBx_aMVyIu23~Thx^tn}xxFqmFuBUOkkT54V>2H{FmA1K!%R2TIB0L^bj5 z-nJap7{ARV=Ld(^2a}DuI+AlDLqK#?7#uB$Yg|b~5QEL2Wr*KdSC#b(Anw~TDzdqG*d z*+Q;-v}dvXxBatkcvnpNY16B?`;W|e_4%d4W-0y~UcZTQ9IHeg6(k)CgIUZUeo`Gc|?6U?GO^1n#z$d085e^U2@@=D7Klrm+Vc z;5rY-GfZ+O=?lh$Qav@oe|Yi0L} zdcbWGcoW>DsrUt^h_EshmxsYgW|gIWKq?G)@wAbZM-{rfIQjvq;FS8{L?fxw*ap!{ zwlZOGI#TN@_ODXHV-Gmcb&|JZ7V_NWMx}PrapSf}Qdwl61Y~#LYi?zT(pr&<(&^FP z_Decxt4HInB+Sc@OIXp-ETnn_1(!hoB%M8VAJEcec{zwZ{b)(2;pJ{B2hsiSO# zK^t8*cd3Oz30>2LW{a*=7<<4$uDg5OuZ0vb6)Xqx!e!MZY)LQTT9w_A-dLvS|ICP3 zQqQ7Sya;q!L9dL^m)hWu8C8X!xw>t$_^FpzD&}eOic0)8m|W8=cg^XoN1`#)_ZWo% z@0rQX@60Iu5xao5&9)XH#-i`64^|k_^S)SpTE1b>D+fs2;L|F1=XCbh2Yqs}d=T(k zWcQdlydB1Htt!pp7c{sos958-utvB7u14yG{%XcZZ&3$pg0;Mt7VxUs4mDbvaEj~f zIsDH;Eh%y-Rb6l{v5@ilGa12~MhE8w+(pC%zMUQ17Pw%9-}*SLKDZ#bke~AiF2cwj zZhk52$S}BAGXd8K@2+$6`1$F?50n@);;>XI$gof5pMH7`iA29>rK}%Ti*}9X=GXi& zD)W;h!KJ}vBEie+9oLNFm0@rJ5|9@k!r*F_oVi*q4Bk%1#8ROs!{8dWDt1}EQMo_%^GHh}@gD9DSiUX{-pk*${Cyu~eZ}_jAZ70tyyfh2R)xW>NRi+a?-Fv2 zKtM|RD03Bl7?6fTNsdl?zeRp!+_-TQJs2KWEgxzKI;{iVQ>$qawB9I z+^e6+o(VqAC%JDk3^wQ|dG-KxG=&qQpM>{w!r)UBO7uDm9+q}N`mFqg^GD!Nj!4CG z3Io!N+_o?vp-6Ap62?ft4}&jJpCv-?oDIew1qcC_1G4hip`U4rkS0UX2 zN6#o}^9n&2e1oT?*96~`zjXXtvMCbt(R`i64@R6~z)w<-Xrs~MWaj^1Rh-*<8 z{GN|mDGdGynQ|EXnO2xDVenV_-Y>5h1b+uf*SZ)*@joujub0LJ~mH99?8kBNBZ{UQvdV0?XLt$Ixp)bre$oTOz z%r!xjKif;MTKjl0zOTO&=5~Z|ITBiKXA1Sj9d3D95$1Lg9=pTbZgwv5`fzR!9WdRg zg}DL+a%(0*)ZE_C9}IJ2`NOyUsJeD-m>bXEb?d_1L@4)J&DtO4CQ;FNv0-isEJWT# znA@KU107**I*g083v&lDr&3x!%pD91^j?35G&)tsl(pd z6QjG%^t6Fe6ItWulPfu?&z+b%X>@LJt_3F;qubdU-P$EToi@LgeUMw!4y!6i-@;lw z7IF3?Ho);@5}b-nH=maBqgCe9>-l{r^XU!zbd&kS&&#YepNjlEkNMQb@8XzGC4O?o zd|JT|wU|%*O4KLKr&au*hWXURRp#bX4_7doPiJ!juldx^?W^X~Ab0(lPiweg&wN_P zt#{_r8|yvW+IifAWS;RNd6W5c0k4#sPZ!nu7n@HP^FovPbSYW+=F{b*B$`iGl15`b zUBwBo`SdnUACv!&-Kcyxdn~0xS^M zZ1E%9>M*g2*m$hyO1OrIS-iA^*zx=$L{FUE9)4x6TFTV|@-}wP6{mbu0>0hoe)W7_Qk^bek zgY+*yG^2mH;9vfFTuZKhxszJ|avQP!we84llluML_OGQYw}HuXxnW5Ea;bv;<;`pT z%j1xd)w5{KmVJo7UX0)dnYQ8r|$Y;5001ZW=v#gR{N6sJUUZJl-*SykqpZULNn9 z`?RymqRD>KZY`68raf9F3)GEHn6q#%T(Mi zLEKgl$47`0Gl&xt#O(xeQpC>`;b;F0_LKG!$O_vVJ}rJZA=c8-&F7Dzjbq@Bf?c8-hc*>)Dh-%UG<;_s%N#nJcXh8?7x zlcJ6<$q-(WAnquLr$mUSWe`tG5O)&9(<8()GKgm+h&v17nb90rCS6>f!Cn?&+m0=d zzBf0Fk=pH}>_Bu#?Uf>+voa()qAHfe%J{pH%~{d+=7wE`WM{-sw~*}3Q0tDcEw$e0 zdvn9?QoAqe_W%`x)an{Y5cd$o)w1^1v2x!SEzv#Y@p)0}=S%AsWLiHzB4S&=Ao||i zP>|XeMXg_)sd#aMxR)Sa8X;buLA*Rc+*=T@jM%&?VsjsP{I*EJye)b>Rvy12di;*) z@xJo-+K9-zqR0Em<9A1oZ-^d`=kY_%jZ5L~rlo$<%?~)Yx7_dCiIhGRp)`Xc#XK9> z;Cys)tKZtvbo1nUgVhfN=ZG4+IqJb=_W}RuX73a38}4;m??IKix%>EcwX-|_ZUu}6 z>Va*5ZGr882A~mW0`kE2zz)EUz)rxCC%lK|m4nZg+&)Uya#ssO8;3IGHqggWI@h@}lOv zyC$l$rn=6X^6oha^*2YD=Yz=L`d~Hc!+G~p3F>EK)Mr4|$rwK1yrfex z)xmG(-OneLz7<#ceieOhY~KBDjOy(dp}MlxDo5U%ocAUqs8eIq(?P8geBQlA2cbgp z-rT%5Jt1*yOhQK4F0FX%lKyz5ymx$3ZADz|@{y}up7)Yz=yk@`HdOcRy1e(+q=lDu4uJl|LeSf>W_o0}+-x#5Kr&Xh#p7*y; zP|t`_U#dpEFz>e}sBei-{gbLuugd$ECa9OksMQPI|4`n4dxHAm81=Slst@G-dlJ-7 z#;7k=qy8c9e>y?^Q-m7yRHMF>_y3xpZj4dUYMJR9_<4U*j2h%()Sp+Q?v)Q%R#txn z`$VX@dDW;B^TB=zDjH0E;l|tts!@;12U8Q&nKA00s!r6V&z?^v^MUJu_XBqW4+75s-^X@h)ZEhn@Z8IR4ZtJ7 zQ^0eMZ3q=BCFsI8RK%sPm`U-{7#kpK1EW2Io1^iax#{7N1?qQ_VU4nLH*qllA#s zcM(SOK&dWIo6xtsqqBIUl%n*)v>jv4%wmd;Fuf6qTSZbhCW|*( zDY9#}6l2U;Se_-V-fk6m+eUZ`vv|mp$+At{a!e6nRQ9Hz znA^sfG0hXQn0r^Wy5VN}yZJ1a}*GmUky-3r#gs zD0ZWwrpnpYoR%$A(b~cTvV}UaZQ()LLYtW=MHeoALHh#RDH{tUrvAh?p%nl8%|#kqHL!y5!e zbVuH0fk~T!PMfD{TW3nKDD4II1bM1fir+N0A~WNKoM9Dv;plv3Fsgo%mIaQ2yjJw z*(p0c%?(|M!fa`oAKfAsvHUg6_SohIaZ;O`CdvX&CQYB2H0zz+nj6ke>YG_;CsdU% z>l|;RvoN=_O0P+I>4Kkb;R!e!ZaK!W+)mu^x6jZjn$(vx>)NYfPBD(Q)DIJi#GbkF^S z(NlT%ox{zmMrYKJbHYYvR&K~SZr>s2G*4&Pbd5+|!Z2P6Tn1bLTnStSTn)S(xCXcu zcqecj!_85lokt7pJemgAH^GjHoJhytm+1qgBh93nApJf_a~fz#|J9s5IQK&Ab|o#F zX(4?_hV%zw(ssUpvmP7??cum?gPXud;(zC=G;$@I6byKI-UObJUxHg9vKc4BfDP0l^wJ}py+ zL$F+P-5BKkqB|ouCg2b(*BnOQ@iiKqZ%Y#?iF_>{V{5r}8e0cmC$4onzk#O`?ZFzI z?+BUNYNFBkt`w?IS~Yn|^%-(bPR-e8k@7bI_TSF8fNule0ltgm$ptWy4_BICbKM#A z;I~jWu|^r;-$`3dyQu+)yQPyY+Q2nBn4M62k$1lzcUOnL(fLDC_CqbRlT~Q{QOZQt zX8)acf5dpD{HbU|*XaC7FvTIRt&xS;p9Mu3&AUIQrM&wSZBJ_D-Ji*4%)D}*(EUro z-7jKn;oK~tzh)WyRV9O|0sEVv+A)!^b{r(I6LcR~{Cm>cZ?v^&Utyd3N4B}&WtvMw z&c>YP>V}nwG&htq$0&$M8@PA_Y7!w-No_e#cAxXQZ{ zfHd3VXcOP)VsR=^Jr|?~A^{AB#1*2Abfe20uf$~S-`d~?yGD)N7E_uCGS!29PLOqz0pvy+v4@k!PKJnwQE7URxPSP+b&#hTO*up zj0jm!F3nVSqCq;LbKCSG+G;ntv_KyqQG0!QKY$#REskC7UQ>o%v?XtpSO~b=4M)#m zy1A4_yl-!K7yNj-xeeL&)MTXjk2b%Jm=S4@8nyX%R?;5Z!0ddJ3TD0~q}X*;vSpOG z@C6Y#jY@YkOj{auHtwK|h#(^&X$&SM^k{$G=t2OdVSN~;MMyg(?d@XP6Z}L-J6E+Q z5t_7+qTO+$J4SI4!!YfMkZ2?;B&lG8l#tprVQUY=mcmPLKY3m2vi;at^>+{}%Wi@O$77z#jo3qjP1~hyUk_*M*1cZUu1U?QRWl?Co;w z?QRQf2Q&a2d%I0Q9@rk(0oW1P3D_AJ1MC8D^zH5j><;V!>H#vG-POwEoBZ&7l}48cxb>_usVxk6X+fgk4%-<;U1WjWxWpfASp|G9hun^TRrz+ z!5rS`?G2-^OBymJy~5_Xhh*EzTJ+fCa}O2N5oW3^=NU zD{*)hDy}#@wV9TgwjoTh?w_EYVplNnvffwL}?72`Ov0k~w~|pbo!Uj;6U&lID!nidF$-rzT}JSTT$D zG{K2=Yu;<#jM3WD8NJc@W^A;uSP!SH)fL8CY3SG`bnH$Cuw3qez(K&l!0Q0Q$Sz@I zcLqQh**zRM0yq*NjO-o_%mfG{yR(4Vz#L#MFb^P<>=H_L2_?IPl3hZ{E}>+15kM%} zT@0KEoCLH0OMsJsQ-D)})389~yBiDS{g#LW_Rl*9p)EroChJ8;vnb-hl@rRfxAL*1;>UUI1o4SGZJ|zUKthJs00t|G`wbt%Tci$Npe<9 zahNJTD=OwV))qIUsjrgqrZbdJvAU}JbZ#4Kx551e6dTelc1jiYN>6EUbvZ0{$&-|D zu{^Ssi_8%i-5HE6l<#_H9+i7DmCazL$)BCUFyzx1eS%RnOana4dq?9`Kj6)#r9r_` zcfKlgv#k?sbUu>X=q_N9&Dud@IEx(dw3Y!yU^&nRv;!T$3ScEr2F?Oj0i6Jc4{kTm z3!Dw~0RsTX3G#-Ao%^G0wCyq2dXutwJZ#EbJztniNqb>DA+f#8{|mr*vv%YvhBfb@ zjh~yODJVM2^!Q50Z*nWyE{4+Y!I|7jA`0hRWMmLa%X=rb5MBR2 zxNH|k=utS&pflI)`W5tqp-Uo$^4^)C?cXA?wf$~fj0ve0v7>q0WJnE0WM`;#K&p=gGML%2QkX;qj8g)C-dTF z>42ovGUlw&=S(i4OcXQZB3m7DlXc^oIS^;u#3#v+xuas3YtT#Dl&|nR}ZuXJcX_7URYwBK=Up)LLaK)?z#?zyeCx?{UrL{3Xk=X`0yVS zG&A_d@B!d<;0}OeCYNI-_fFt0;6uRO zz=wg40QUeN1MUUx13u0&=4Cyj-ra-AT@M^W1c>25ST}jIB9u=`M`YFJMT;9%CBrqI zvWKM1F7d0imx5><3=T)vJ2!*$>4<67D>4r{`|JRv%)=>qv+ z@}<xGAqLyhm+ys5rGk8_=MoR zDj9xRYK|zwCk4aE@TONO!$*MP9}XFn=kS6-=j$ z$**cQ;8X24Qj+e^ebOHr3{W-`JMvq>RRe?i$jKh+ck)E7i8xAhFYn!Fvl|*+T);}w zpMbRCKb`2==>8##cz>l#Q`-NJ+MsC(El2uE6J8bm35pDVGs&Mk6Yl<$r7OwnX}gwK zgFmO}qL4(}%RpJ3pFZwc@9zg`J^o9J?QFB|64IuH>|$m~|`!DLxN3wtk~fin31y zOPmE66q{VLRNLH-G$SKqlp748y_BIv;<~29?0y~QUQY3E&{0QYd>32 zd%bfdC0;dw=Q0FXcpiERVM=x$GdpRX1y(r_H4+o#*pHR}BVElp5Qea)205t?bZzTcj>S6DQtEaBsa+pdKz2 z^~{`&CPK8Xz0oP6skI^#DHUP#s9m}I<#nd?>Wh!IJf;E7HJU*cxiOrvFE$o_7;g}^ z*4grX;kz<*w9#u21hFl7?}t)ucBfjy>{YZEO{gTMifmHVYt#)YyBf1WZTevgQp|hz zC)?C?e_*e|d>v@`FigR;o$-g;PwJmEdQF*HHjuEHT6w9}bUBisr-G}(je?(zF;Z^4`zDtq4x()Y?T`l$BZ0;(CV-jkjwJGMK;`WOfrWx;`^xFlyfJ zLMF4e6b=61h}T1P$C@)+k}-rI%u6CO0*O>;_75QlvVTVLGV~Z$D(OF?#^gx<;Xy<6 zK*MF;9?G(j)2~E2`u?hQNM8V7T!ZCj|aW<1t>_ zl6AmHXlLbp_NQ1BBC+(`pCFjE$0qkvx;;_KBU34oXV_*iJ2D~H+$X_p7TnC}?35av zNl|$cb8Xl;RgT%KRF=PCf#f|I5X*UbZB8+qU2HnZ8fHZ4Dr*jh3~Tm`8gWtNQ^Bk; zE7rTD@_N$@8I-HYO2}vrg~jT1JAD{RlJ@HzP{9zYt>HaV8;gVHs0QaXd zij>*$M&Nm5M`#zBP0XBs zB$Cg2xRRt0iEN_Jx`w>b6>Dg{WG{I~rHJ4PiUQQuw7OM>RTW>NBHml77m|S$_hKm% z_&v_9c%fKAOo~|vaj{Ns@o$bv+VL@JRW>K` znv-e{#SwLNxaLUO%E(LB$~Vr!A@I-a;W3z-qs$sF1fXDlU)%ofy@x4oi6_MP-%&9K>n{(D4-vq>whtfXUAHP7xB?ud1kemosjo^IeW+ zmJPWF4>_Ok{^l$oLwv}&Z^(IzH{{&l?M8gBbIAG4M(10g&3(zabEESCJ{|p%^NEel z^L&~=!Adj3NkDMTnoFI>!Aa4&~PoMzo1?&y%1B?as1@;5R0po!Qz(k-Km;_7) zrT|lcX~1;g0N_A?lV*>TW{*>5k5gukQ)Z77W{(qQ?ztaOg z{wYC@IK<lVxurM!>N94o?P$GP6Q0_@w~&v<8RlRkd(6K30+7M|Te!KSqB%1b8` z*Z`}|g>0YHHTzHd+KI{F)l&zh%jTdVV;Oo=cLjw?Big2?4Ya@%q<=i zT)W{0v@)eXvdQg_%v5z3W=@+QT{5XNGc9$48KyGGF3d$XXW`j$*F3K4`UwACsm z^@ZBNaHD>amewA1_XTKQ3_{)?i(-Ik94YfIiJH`D>E1z*ESi>=DoO0#Q!{d==9rvG z20ANYuav(e1} z65hN)Fl~e}ijJ>$7O!_?TlZcmOpBwUPdC9W^VjWMchJo3iXdXHMsQCC;SNE_r<9Yvq7WGfclVTmSfAm`KLEb+{z1ZBe5*h` zO{v~+$1$*Emq1G9^*Ye8^_6u~>S zm$H4!`>!*mXnVfc8Gcu)^iWeOT-wqPrAiO0D!p4vWm6EFG2JB^%_71}7Ql1s-RN!8p04bxSxK}X!bhqAP0)~01z{*+)3L(ZKExld=w&B~D5DQ4|qr6nPR z8mz5>)@KC4PRlt6M9&-&y=BiGL`Hdko(PN+J$v|I9?p*+k|#G@4plNCNbU4KH(Z;f z*>N$AiP^~gi2sq+Kfk%wcciobf!68x7g9|hkKClcvRY_xq~o&mdVd^ zyng}{z^c2)q%^hE{1atz#8Eh!+c};cUjjE7Yl_CiMUQJEGQ`yrCm{RW`?4ZzCkSE= zQfHT*Y%!md;tHQ#y@h0pLTkyk<}20M;*C{cC;KimWy%SOv`&T#_hGnrS}+q~G`%CU zP7RA4N%1VAyadsCR|7648ZhWy5<2fxAwqi>ssJ2wv zPE`BlwD>K-Z<->iG73v>4Zg`HFv{KpNeM;L!#zw7*E_SQ`<>0#wX&&6g3Btr?`@t$ zjk;9)zEt$3o8}Z1)`aak>8m<%mQzrFAgFTTZXy!F6_KoW-weX@f{-@#mCn=gDf|8- zK~1Jw{#83qF9@OPl@t32a3=%5b!y;$TwO($PqxbFRFxOC%4SB_dL^-(rQJPJM1CSf zh81-d`=^3kTiRCC@dSM3&h@(DeqP-%8OI8}kZ6%#RAY~zMSfY0E$R;OGMo2|*Xyqo zEhVVXC~a8_);^8ak9r`_Q7KQcgppPsB_DUzr**9@lQ;OMC2NIV|5~UIE5QoX-w5ik z;`^PHrly~lO;jkvJ^H;8A^??Ab#bD?Nig+?xTQFVq<5x^9{Qt}$tuaqN)sI@l<! zn(-iR`m*t7{w!5uA6ZtL$T(8h(Ooz@LmZFHb}@=%^YCx+!&se~90G?Jr`!ug9^~sb zx;N)GaWzw}&MnqCL0#^{<}MU@t90MSOlvu?g_ZP#`aaBlMGja?U(Rx8_*7vfDT{)#A;9TH5`}a-!eKT+Ya3OFJa4{f! zTnbzUTn=0TTnW4txC*!$cpLC`;2Pjs;GKZfyAHS>xB+-Ca3gRt@P2@dY429xHsAxm z?Z6$tdfHp|1@KGYSHQ1<-vGY@eh>Ts_@n*%Xa4>L_#4L< z{5Xp_#@Kot#~7oy;+!C-kGdw-*osd_6wt@BNz_bWwM=q&;p1hS#LrmuM8T*bY79P7U2}poY|!Z5YN82W$UalYUxm-O;OZV=fK|IR1!Ll|eqN^~lNe}QQ zYanZ1xk*I~XCe`NODpc|t)Me#76XE&m#(Ewi+rr7;Z~|-x%H^FS4{@&JATSQGHQDZ zt{JtgxR+{R`LHNI)YtOJATcXUIVbnxKIE&4wYH4bJ}Gwo9iufi>i?*!{?poio9obS z!*(do3xj3^o5E5K_oSB-g<{_Cm5@^2 zm$#l6*9ZL7pP_7$l%<`VY#1pSeO4wDOoqRD|LT7aT6lC7(?h1b-Ne$1WFAjdLc*_2 zQ}%e9#NR*S#AXLq?JVOHM}L|U*s7Wnv$K?ZUVpma#4#v;E|r2|Y$*C5`co9GIoE)L9e3mTanbG!@p57K^#@0*dZ?bkbL?cj=j39j@@ zVoZd2s#2>`F~tKXxc^cI zg}~-Ic-ZhAG=q4!@~tyg&d)dm^N)~6O>=cGe@sfRM(dp}>K>(a z-==lvfMT+e#Y&j%k5RGnglZfcG|%S8&qfLjCTsTSR7-E7t__a~v5~`LF~6iH`2?fW zN@Ca~h2%Obf3{RHJgX^4=>pYDY>IrkjtF%h7^Rts`LbzKs?Ti3nIZIM>Ac!ePDv^+ zzFGjed0R?Osii2JXiI#u>LcWIcX@Y3CUpAUm-uxA|2V-l$BHsDeg+@MXRBvlTZvEh z`~`yQYoC88oih`mVVh`pOt`@Yhqu$GjQhx$=}A8pM%3+#RjgFmTnhEP_apgYZo(5+ zZ&3ypwN)F}EQrN|u9Tu}rGsB7TSs<`V>Y_`089iX0h56#z*Jy=U>YzTH~=^hkoFG-UI!ck z914(CzuL90SY-<^c16`M`0&@xTILA+QKoj2q4`BN{iHyPWh63Vytx z(O-^u&5wG>*x(1TPK>&^oN>vj3o+kjj>z)SSV?qhAX7c{mPpE(Y!{+ZY*S0!H)kh# z;-r=YSEi{=ySq{+hb&OzoS@=_&kjM8r>Qw%-qzFGMg8UUxeaIsN&we4`}`iH>HnyY zI-zVsazBRBc~COHR3dayTqABn&X;oOdgTB6*V^}WFQqnGW7uuT1yZK!Ad@|mI4c)s zP-<;ME{d9v!iJo=Rn~&DLd5tN#a$)kQk*=;yZ+iKqyNbJPjlO?}@};KQzf;E8hHQ<9%ko5L zksP%PYk5C;CQ>o8EqSKlTzNRTRl~VbXL4&2&P{ycYb%Fgc;6%OGOw$wlCKKf#xG&| zOhM*uJ*_7mcO1AK%PhEF5yVT5gR_Fov^G~>`R~a#R^==t2Kh!MCiYi-AaNGno2{O8 z77|y3iC4>65Z=rzu&=dg)O=fgx>;u-aYf!2QMb;5bpTAyGtR=z8C>gFRO6b-bBmzc zD-|l^%>0VLsEy873F!81;wq>l7Ap58$W??lZQ`E6ipRw6hTJicV{nfAs-Axy@Fw7V z;LX4Vz=gm?z{S8Nz@-53NB?r*3gAlMt-w{l)xg_;cL3J{*8%Sat_R)&5Oeh33)}>} z54ah)1>?m}7#rhNceycMqwZozAE3MDx3ffTJt&=zLiOU}t42(;|0ktn_eYUd7NT&3gf;y5Z zB@$xIz%Zut+u6oOFs0v7Vv#9zd8g6;ZnpaHru2JSTWn-v_M^KOoL!;yeGo+5;iy{! zY)sh?q@wJED&Hsnmuzt2>ktD-@3Z6$NZEu}+f_JxK7+d%8~lQx*S5h2Ia^s9%-c#E zo$q6M|K{8_g6(x~9daJfefc$x?57_9I4biwD)Tui^FIZA8h9A^Ebuwt5#aN{qrew| z#{iDY{KtVO0FKQ3CxNd39GUq~178C;F7uxSI41KsCiA}ya75;R7x*6Vec%Vc4}s@_ z7ck2YMP_;XYs}GB;|~znKaha=ok}swFNr*?Y4{9c9_c=+#8?kWt@Iuw^IlJ4oHu4L zv+0@1Ugc%Mta1=iCiWFY&`aZ)j!6@n3-|LfC9yo^X#j;&VyAY|}L{+#r zxq?X&{R7vKu#xS!<-n8Y6<$da-49qDsldB9_SSD`)@z>F@u>5ACiEde4^k-hG%#^f z;+;`|)NA4@aZNC>>u9~aMHpbl}J}iKzEvjz2W~xUFxKF~s zRze{qqm1>8ax^XmmGvzWs}l3p84`?sJZ%DYAyytE2o3#MiBv5ucTYGVv{=C`EydfZ zpg{^N0`iq3xflX+ZfxJVF_Dy7L)er>s^-S&huHRlXE(vAu|pi}D@PbKJyag4Uairh zy&a`J87g5q6TWemfv}S@u1>n#tSYB)Ho_#y!@=|GU8S%>?pwBW9d2w4b~BZ$=G5-;TsMlzY+CQErN$m{$uLt@$nH4|*+N`7O_sM# zg1x0ggj?_Nzo4-r0#a*ugldqE5VMD32qG zV7xqv$3QgI7LLKyRGvWPioDc#w;fE>ri7l!2jfR<8|>R#L9>>zB$E_MmS8HRBEbj9 z3ymZ*>~lPs6xU3T0%42*cQaN5Wl@JjYZ4p~rV2uIJ6infjg5hx%4#$znZKyENT*t3!9)IIOV2!QOmM%?ok;}c%ya2Xri@^b%;?DyN^~Fa*)++I09)m62JA3xWs3$( zm_9s4Pcxki*b%juuEAN%HN5}xOdm-r|EaM*N_rq`w|ev7i9J7B%2OK6mzy{u>p0J@ zKI1ZMKiQrF1T(XhzMiTyzoOC(aiwFVQr35rDa=fYeiG3o4K$b~h$(M`F^*rh31%BA z7ptde?#9Xc?EIdHe6=M|m?KE`6`F?lZJ1!LJhsQ+Z17|qsGUw-6=JRiOx>`&-rqEg9F}|4i;$5x6#qOoJCh1ku>0l5L(rE zD!v6DM+gQbp4mbnn;!me%Sbl8L)&4KDl!tv_6`*BhvnYG_#Kj9kr0sim6v^}pyOfi z<%fK+y8na(@au_-5JdH=EUP8%{A;4*%l zB{)e?HF-L-43cD(pe1HgUT#sVW3ziq|KbY-RULAPf;#f?dmq6PZ38cf-v7iB(A~p< z@OpBpkk81;^jI!V6rtgHiAbzej9^aHIHk77tCQ44bKB`5+R-Md3vqL*5tG)Fjri0)@Bd0qgDUPluQ;Dc-b9G5@7pTLO4I|I zhWNz;xziz73bX$aZD*u*y2=6{f`#&EMiwSp!yZ70M4|_}Y(y^613B|CQ&5k5np957 zkx%@-VsM5I5_^}dg0(Yi3O#;<;^dY5kA)>1n!NuT9a7Cpu)_{&tDvUVW7Tm`{3cPb zOsV2{r&>-Q2L;7cvvzF?cG6gzBCt7oN@o%&jX`_1{cK!nw^*N-v^Ktbs{M3aD(C<~ z^gAoj)-ofsLMqC9vvDc)2cj1yEP_>n)UdmB#s8fWvxzsca_dqIX(5$oU~*4ha`t)I z{jIrd`#h3K?jCZk;)k?$=i`f9t+Ttg$qiG-NyNDLUtT?!nt7W0m^^JxJ=GH_o)s#e zfoCrB+2p*Vvg9tI@bSuLiv95+_m&}N-oY^SO&Hpt5`}6!JgD*^hhCfb9qEdLFr`Jd zOy`iZddT^e#N)U=d?hike*iB5L%>GhW#AQHlcP6*2QGg-zy|^#2h;%}uoW;G*czw@ zwgI*S8h}QC{F{K>n}FP#fZUsa+?#;hn_vvE3$QD&8?ZaD2e2nl0QLrm6$bkPkB5ogArUR<#n=ZGSNckGTOULN-G@1#G$!d%0zQ#ll7Az zWpG6XM-94K^CWC|Wz>cgX5uW)8ko2$LJ$>ab|OjbtE0kX>y&gJC(f`R2T~IDQ8U9u zAZU|~W7Ij6d&MgRSXEN`Bn4c=W}_m~x_H;on+{wE5nL-YDqk^>8YVa^epBWhgX~WS zC;1olhfRWaDaGMkQ!^U#tO7Mohcy zjLv0ioLmOiEAQBe;Z81t8&bVX+*4&@Gyds~Qd4~0N}p3k>OD^WR4q#G#WLf^0KJ!L z4W}EsX}8bo9oZMXj{<8?lWp}a%ARp|{x0H-CIH4x9gXNbH2!WxAAi-Jn5@!d-+QZ2 zO;&XEQCbply-iSUkWO!NVZv3oAs1bF_ zG{_s z&R*#Bw*VIdmjIUnmjRapR{&Q6q?iPxm;`SF-VR&?kY*CR3n0}bAk`$e9=HLx5qK}~ zKHwJMR^T?^1Hc`?dfcsoG5r_+*X9m?s%~*3`$^%y1NcH34$HpdgX&w}j|O$}Q2Z-_~w! zMU#mRuTXB^Q3O?~(fiPXohY~ORW>%PZWyt#S)u}ILYT4c0NVQC7ekv8!3|47Z_B%G+V555txdubdvqR34s!sbH**bgy zcog^|@EGtV;BnvyfE0m%6oG&gf#7N2Yrr$W*MVn&Zvo#1z5{#@_&)Fh;D-R|0l|-e z7l0oFF9JVx++b9sI_vMTZ^CY3$T!l1d_Z2Ws?L|CKmTmHK=6vxO0A0QHK56I-c*S> z?39iNH0M;-$OrNRAL$#NIZtq_Y((M$=9r-%MA-=Ovd&={ zkPtITUV@7)c#hr+J-lpr9xt*SDkqvC_DD6@E_zG!5P1RbVrrPY1yRdv22uxa=J%rH zhojC1%f8#D&K~dM<| zoF#IYqi$jtEB9oSZYQPL*&tk{&KI0Ahz%*OhLK`2Cpa8S&52|R5fL=J)H476dbgd1 z2%N{=AEu%B^1<8=HIXZZ%N`g)S+fA_CN80D_mkO)uv1OScBW=0!p>2@WTscic#M>8 ziHvut*{1b`Oq+>}iAvU#F=4KVoJ$^a(~C8Jq#_Tid~V?Saufl{GayD zJ=(9Ly5r~kerL|j&CR{{oI82HLqZag8v;^bRUrfriYV!7Q$--Xmz zPbmtN0HHh#tx`}b3516{D!QmpB@${ys8yjNAjK|f0=fO{J?Am!+((j@uGK$a`E_o7 zXJ*gdd-lxiJu_zx87Jh#Gp6YA#g3_&C=cCEksKE(eDmTCw9HqR*YC0@3xmk^Zq(h# zw^Bo#S+k3f^T*cuWpc&VnwebBs&~cd9*o=6D6>wHtoo#n*_)RP&8|Bwg*aF4ZN;4b z;Ccv66GHhg=k|l@+h1mS!Htbr?^Laz(~Mo6Y0Yjs&5)~1*{Y~DSO;4(g`7OI5xvLN zC>_RM@|Z!s?lK>J!8?4OWV@64!637{a`zc5$3_^syv<(hUYgk+>)31I@ak)`Zg(tU zR@+k19(C`j<#cf*!d&xrh-5{00NpQINSn=`swqq1ZroA>_imhbx5!ENwnH93Yn5j7DzT)6A(?*2~K; zHd)O9N{pdd$2q=sm72Nr;&m^-*!(mHN>*HYf?e0A)8M||~S*V7!7 z6R-N}jQ>>EpRaBXu9eDs^?^z`gE>SBW;^?}*K^hcT|InHw6gEu-piTT!yQp^c|(zW z$UrtJ8uiRUPk4Oww|ivEWZl-_Q8q!i1c_~sd1LqO;j*GyHNi@jTY7>ctG{dMEnCCA zHDcHn$YTGy;61Pn^st;BfDkl56GVU?jV!gdfI*-Y3h{cQp~T5xp$SqL)pW@-eijji$Qj z#Vn8(-r4BI{JE6!x^BPGi#fKIvsZvohAqcQ*1EUD3dF4J9E>?$Gvx6_8JL_PzvuBq zN$*5QFN-fqUlP|Cqn3$m-uoS2oK)d3tI~C)leN~ud6M{Iq5Ra#t?b8ZJEhOe6^FG9 zp%zJI!mj+}T(9_|j9X6aJF9Y`@kJT6EcRGHiQ=ZowBY7~KH`gxJe1-|qR=WYG~c?AORLP8 z+pnk$+m`j2xzb!^;I_Qa%$4|}bl=bFGjk=rC=KDWlG!bEyNi{wRDab(?#tr>?yN;QL<*=JF2+DvH>b#&qX^eg~k_pNlVVZ zhCLSxp(5-NUaFrT>PUw-NPVa|4PlI_!MeFwfxBzI@ zaS~rhf0=ch7haU{`gOvL*ByF=7iF}0y~;&U+h2HbgJxiXsSGb9cNt#XSgowzMcVv) zDu%G8TBMJwgv$8mCaqs18tHa28{J$lUXMu1c;*(#+EnIWl2*wg5)mg0_grwI4IyFA z4s0KkdS07TuZAQ}S^b72x7JE!A<00coQ>Tk1+!(CT1aw*ge0G;#soVXlDrfAN57#3 zN5*y}HrX2dertHD#vog`xHd4yfCYd$!=W7@DOZP=7HY)YFO!5VNAxEb66)`DBXZNwk5^7v!$Ys4QdLC|^! zhI>B^Xe0S7jI7nIm*y;cX}=w(i~=@POW0l!Md{T&P|qq~m=TvlC%Muqd{FY$9S%S8 z*eDq)Aw%(M3!e}(56NTC>tscxWa8ocVdnhtu&ntJB`k|1_3iQe%^1i(TF<1E)HyF! zomP zqbHxYC8`>z65_5RD1KH+xH zSduAMN>!%Z{4Mw>MQuM4b_yr1jlACG+yE~X2Ym9uJg2gpC;o%nPA&naP;fz9Ww&mV zYH4p;a!k>@AQ|dM zLdqBYvguZYD!u${Eztd#yZQsZP?Eodw=P&ooj>WXPPsr!KJX&^dY@Q%e{28g_G%Yb z@Bg571b@-1`r~Eq*%`0*XF?+TlA`138#VoWNU9hfkmhBf?C3=Mmvr133q~!orLbGR*LfPh{9O6*yMOjF z%KOm$D?Yf40&YCeb$zE~alG>Zp?qDVTm|`+aOZW?UOspk`n;mzON3K)t;!PrtD3<@ z612SNS#r}#*%JS+>y`Cd;xC=n*OZueo4N=hOZ>m77q2_iWxVjZWbN%x3vaH6OSqVI zYl#zfz@IL4_C`*;>Q6ht`}L>atd+|A>48c)fBG#cs4GCdj^msjbiNxNEr%Vq28VC~ z$kuSx)?ne*ur2?rLH2!vp5Qdk>BfELf3o2JrP{CV&53)wUwL!lo3iA;Bww_DJlF&0 z@qVx#Yyb~{2f;@05O^3o0v-jAfycoU;7RaZ@D%tS;8>7(8gMMga4g6?1D*vO2{IfB zGMfO$g3R+^Gk5{~1pE}d2z~}$0xxHO|D5z!;1%#H_%(P9{06)Z-T-fcw{Uz9${pY4 zGS2X`z0hpIz_y`j8-0|?MY?j2=)LS3+jo59pjyJ+7M*Zl$GNkG#~FvUjM1Sop=IyN z$g6sV{~0%GS;Ke8YNNyWe>aa7es_$$=ObVK8l9NAo1DvRxWQyQRM!B;Xg94aVMq}j zG2G5=$uz2<-0oWLa4jbewOe=7fyWgnS!Xcv71;aGbm88{cs|&;_&78Dw}X zwhtwDF}B3GKh?^5jV*k0h%BJ^rCnWU~?{Jb1ohN+Cc~C1Z>R3DX{dvKgs)FcnZCbl5z=DJPvMbG~e~V zc)ak|wFma*E<7kLc!E61U05~3uEk`dKWKa6GR70N@FFR!ai4aA(v~O5V`(QVZ=y0& ziO=ke>7$gMtfd!b-k zj?I*gx~r=7f`hIvp%A%zp=-7LQQkKc5d6h^N=a!9D<4tJj=SXF){xKV#(PN)k=$LI zF?D8~`E2nY$P?Eb$JbRUrAm+LnVGVr#H|AN!oGWNFqN0(7QYvCxp{3%;I5q>Emj)O z225D-o`7B2m|a@Zkk`Ai+aH6kus-mB z{VY1Y;9P}NdDO1v*=Qjo^HVtCrXzhJ+$GB$fpnue-~cc;2!pRh=eheSJFX4d4h zuAJW;+34!|-Nr`O%9XM;lUN(hpU)BbP01cn1ph`k z42A#jBqPV7kLb=BY%UHk}b8Mq<2K#L_l2iMh!U!DdxxNJTTYoi+Zzfz^IQSwv;>-VO? zt*)TY*WVeIf_=Vj)`AqL$OCEc4OgVq6J>o(eK4okzMUHf%-G!Jd5(X6QaVWs(~ z(!^wh=3|cL6H4=xG<01d>GWux94Bp6J`YnqWr(oRKM2jnQlZ&crZgL8JDSoC7|Qoa z(9*diXla#Jv?L8zJB1`(MXT$^{j}CY4Yc4@DPL!ju`NlxBG(O6WK9}A?uvAIMb^f( zF7yMf!>T{|AT2Qn~7sE~(v>_U3(1@Y|X+<Q!Z;~i3`3S5yKM9liM5T_Nru`;ddx8Gi^*{A zQR81DZ1is=BW?6cl2NvSd9qNFrr~BCQrK zNE@Ga3K-@o;OIC>`c;64+hUE8CY8|&4M;x{4M=-sqhG7CGMK22-`Z^R9Fie2U5fl7 z2P2bM03*|SZHkN1#umrPaF3H!gK9&r-({QA)wqy(kToq3V-UJfiLFkXf9kr>2#?s6 z|0}VYGAOj#<{AXff&%l3frAP$b~@2Wm=V$yVK?(C)Y@im9NK1=l@*8JH-mE z{9xL=-SIHW<6%RbjPI8R(0KW!))_8lHt~jAsJ!KIFgaJDTBZ$+mv2B z+8Ov5r}wc=;p23)McB8~<}aMEqdj5Yifgl(@5*78STA;sSlG2#w8(?}B3-6{R%<5k zue|A9<)y67ir-D6GhF3kyvn!4NqfJV-hO`)Q)7q}BO9#RWU3bpQ@Pd}nKZh`)jGDU zHEPDmn0{;Z+E+=^yyB{&260spSq3#koPOfpDT$AEt z)Q-sIL@Di7L}ADhQ4mZ-8SF$sFcAg8L=*%QQ97I`olX=CSL`r#eWA-XMHB=RQJ8R~ zg&3cug@&s-kxK+ZF4sccsre%($#_qa8F4baKS_j)YYiGhcrFDI^<$~RGaXPgO$&+M z8D}LY6OHs12HHDGm}rDO1d(}z7CM-u5JaaWW=>&!sAC#I9McD;<_^d71dr(h;$%pL zX~WEw2Sv)XjQKEqC?pw?-ytdI2H%!lbr`d&ZeD8Mc7ygruewjfRX@-mVG(S+BswyC zsj(cB#>1RwheH1h;}az+K=QKq&k@V68e}eLDCKcoMJ%9kBKs{1afUIbeM` zU~M^g8T@m!fFtV3z~+H+nC!vW^Olk$RCHBJIy-zW4XEOzX9bs#Ag5i literal 88881 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 S@5>*5W;U~%#UJOGE&mHC=eHmL diff --git a/meteoinfo-lab/pylib/mipylib/plotlib/_mapaxes.py b/meteoinfo-lab/pylib/mipylib/plotlib/_mapaxes.py index b53b018d..a9e36d80 100644 --- a/meteoinfo-lab/pylib/mipylib/plotlib/_mapaxes.py +++ b/meteoinfo-lab/pylib/mipylib/plotlib/_mapaxes.py @@ -12,7 +12,7 @@ import numbers from org.meteoinfo.chart import ChartScaleBar, ChartNorthArrow from org.meteoinfo.chart.plot import GridLabelPosition from org.meteoinfo.chart.geo import MapPlot -from org.meteoinfo.chart.graphic import GraphicFactory +from org.meteoinfo.chart.graphic import GraphicFactory, WebMapImage from org.meteoinfo.geo.meteodata import DrawMeteoData from org.meteoinfo.geo.mapview import MapView from org.meteoinfo.geo.io import GraphicUtil @@ -498,7 +498,6 @@ class MapAxes(Axes): if layer.layer_type == LayerTypes.IMAGE_LAYER: interpolation = kwargs.pop('interpolation', None) graphics = layer.get_graphics(xshift, interpolation) - graphics = self.add_graphic(graphics, projection=layer.proj, zorder=zorder) else: #LegendScheme ls = kwargs.pop('symbolspec', None) @@ -521,37 +520,12 @@ class MapAxes(Axes): else: layer.legend = ls graphics = layer.get_graphics(xshift) - graphics = self.add_graphic(graphics, projection=layer.proj, zorder=zorder) - #Labels - labelfield = kwargs.pop('labelfield', None) - if not labelfield is None: - labelset = layer._layer.getLabelSet() - labelset.setFieldName(labelfield) - fontname = kwargs.pop('fontname', 'Arial') - fontsize = kwargs.pop('fontsize', 14) - bold = kwargs.pop('bold', False) - if bold: - font = Font(fontname, Font.BOLD, fontsize) - else: - font = Font(fontname, Font.PLAIN, fontsize) - labelset.setLabelFont(font) - lcolor = kwargs.pop('labelcolor', None) - if not lcolor is None: - lcolor = miutil.getcolor(lcolor) - labelset.setLabelColor(lcolor) - xoffset = kwargs.pop('xoffset', 0) - labelset.setXOffset(xoffset) - yoffset = kwargs.pop('yoffset', 0) - labelset.setYOffset(yoffset) - avoidcoll = kwargs.pop('avoidcoll', True) - decimals = kwargs.pop('decimals', None) - if not decimals is None: - labelset.setAutoDecimal(False) - labelset.setDecimalDigits(decimals) - labelset.setAvoidCollision(avoidcoll) - layer._layer.addLabels() + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + graphics = self.add_graphic(graphics, projection=layer.proj, zorder=zorder) self._axes.setDrawExtent(graphics.getExtent().clone()) self._axes.setExtent(graphics.getExtent().clone()) return GeoGraphicCollection(graphics) @@ -756,7 +730,7 @@ class MapAxes(Axes): graphic = GraphicFactory.createLineString(xdata, ydata, lines[0], iscurve) else: #>1 graphic = GraphicFactory.createLineString(xdata, ydata, lines, iscurve) - self.add_graphic(graphic) + graphic = self.add_graphic(graphic, proj) graphics.append(graphic) else: for i in range(0, snum): @@ -774,6 +748,11 @@ class MapAxes(Axes): graphic = self.add_graphic(graphic, proj) graphics.append(graphic) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + for graphic in graphics: + graphic.setAntiAlias(antialias) + if len(graphics) > 1: return graphics else: @@ -787,7 +766,7 @@ class MapAxes(Axes): :param x: (*array_like*) Input x data. :param y: (*array_like*) Input y data. :param z: (*array_like*) Input z data. - :param levs: (*array_like*) Optional. A list of floating point numbers indicating the level curves + :param levels: (*array_like*) Optional. A list of floating point numbers indicating the level curves to draw, in increasing order. :param cmap: (*string*) Color map string. :param colors: (*list*) If None (default), the colormap specified by cmap will be used. If a @@ -832,19 +811,20 @@ class MapAxes(Axes): ls = kwargs.pop('symbolspec', None) if ls is None: - isunique = False - colors = kwargs.get('colors', None) - if not colors is None: - if isinstance(colors, (list, tuple)) and len(colors) == x.size: - isunique = True - size = kwargs.get('size', None) - if not size is None: - if isinstance(size, (list, tuple, NDArray)) and len(size) == x.size: - isunique = True - marker = kwargs.get('marker', None) - if not marker is None: - if isinstance(marker, (list, tuple, NDArray)) and len(marker) == x.size: - isunique = True + isunique = (a.ndim == 0) + if not isunique: + colors = kwargs.get('colors', None) + if not colors is None: + if isinstance(colors, (list, tuple)) and len(colors) == x.size: + isunique = True + size = kwargs.get('size', None) + if not size is None: + if isinstance(size, (list, tuple, NDArray)) and len(size) == x.size: + isunique = True + marker = kwargs.get('marker', None) + if not marker is None: + if isinstance(marker, (list, tuple, NDArray)) and len(marker) == x.size: + isunique = True if isunique: ls = LegendManage.createUniqValueLegendScheme(x.size, ShapeTypes.POINT) else: @@ -930,19 +910,23 @@ class MapAxes(Axes): griddata_props = kwargs.pop('griddata_props', dict(method='idw', pointnum=5, convexhull=True)) a, x, y = np.griddata((x,y), a, **griddata_props) - contours = GraphicFactory.createContourLines(x.asarray(), y.asarray(), a.asarray(), ls, smooth) + graphics = GraphicFactory.createContourLines(x.asarray(), y.asarray(), a.asarray(), ls, smooth) proj = kwargs.pop('proj', migeo.projinfo()) - # Add layer + # Add graphics + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + visible = kwargs.pop('visible', True) if visible: zorder = kwargs.pop('zorder', None) - contours = self.add_graphic(contours, projection=proj, zorder=zorder) - self._axes.setDrawExtent(contours.getExtent()) - self._axes.setExtent(contours.getExtent()) + contours = self.add_graphic(graphics, projection=proj, zorder=zorder) + self._axes.setDrawExtent(graphics.getExtent()) + self._axes.setExtent(graphics.getExtent()) - return contours + return graphics def contourf(self, *args, **kwargs): """ @@ -994,6 +978,10 @@ class MapAxes(Axes): proj = kwargs.pop('proj', migeo.projinfo()) # Add graphics + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + visible = kwargs.pop('visible', True) if visible: zorder = kwargs.pop('zorder', None) @@ -1128,6 +1116,10 @@ class MapAxes(Axes): if not interpolation is None: igraphic.getShape().setInterpolation(interpolation) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + igraphic.setAntiAlias(antialias) + if visible: zorder = kwargs.pop('zorder', None) if zorder is None: @@ -1191,6 +1183,10 @@ class MapAxes(Axes): #x, y = np.project(x, y, toproj=proj) graphics = GraphicFactory.createPColorPolygons(x.asarray(), y.asarray(), a.asarray(), ls) + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + visible = kwargs.pop('visible', True) if visible: zorder = kwargs.pop('zorder', None) @@ -1241,6 +1237,10 @@ class MapAxes(Axes): graphics = GraphicFactory.createGridPolygons(x.asarray(), y.asarray(), a.asarray(), ls) # Add graphics + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + proj = kwargs.pop('proj', migeo.projinfo()) visible = kwargs.pop('visible', True) if visible: @@ -1362,7 +1362,7 @@ class MapAxes(Axes): :param cmap: (*string*) Color map string. :param fill_value: (*float*) Fill_value. Default is ``-9999.0``. :param isuv: (*boolean*) Is U/V or direction/speed data array pairs. Default is True. - :param size: (*float*) Base size of the arrows. + :param size: (*float*) Base size of the arrows. Default is 10. :param proj: (*ProjectionInfo*) Map projection of the data. Default is None. :param zorder: (*int*) Z-order of created layer for display. :param select: (*boolean*) Set the return layer as selected layer or not. @@ -1507,6 +1507,10 @@ class MapAxes(Axes): cdata._array, density, ls, isuv) # Add graphics + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + visible = kwargs.pop('visible', True) if visible: zorder = kwargs.pop('zorder', None) @@ -1537,6 +1541,10 @@ class MapAxes(Axes): graphics = GraphicFactory.createStationModel(smdata, ls, surface) # Add graphics + antialias = kwargs.pop('antialias', None) + if antialias is not None: + graphics.setAntiAlias(antialias) + visible = kwargs.pop('visible', True) if visible: zorder = kwargs.pop('zorder', None) @@ -1555,16 +1563,16 @@ class MapAxes(Axes): :returns: Web map layer """ - layer = WebMapLayer() + graphic = WebMapImage() if isinstance(provider, TileFactoryInfo): tf = DefaultTileFactory(provider) - layer.setTileFactory(tf) + graphic.setTileFactory(tf) else: provider = WebMapProvider.valueOf(provider) - layer.setWebMapProvider(provider) + graphic.setWebMapProvider(provider) - self.add_layer(layer, zorder) - return MILayer(layer) + self.add_graphic(graphic, zorder=zorder) + return graphic def masklayer(self, mask, graphics): """ @@ -1573,7 +1581,7 @@ class MapAxes(Axes): :param mask: (*layer or polygon graphic*) Mask object. :param graphics: (*list*) The graphics will be masked. """ - if isinstance(mask, MILayer): + if isinstance(mask, (MILayer, GeoGraphicCollection)): mask = mask.get_graphics() for graphic in graphics: diff --git a/meteoinfo-lab/pylib/mipylib/plotlib/graphic/lines.py b/meteoinfo-lab/pylib/mipylib/plotlib/graphic/lines.py index 2f2acbee..f84f65c3 100644 --- a/meteoinfo-lab/pylib/mipylib/plotlib/graphic/lines.py +++ b/meteoinfo-lab/pylib/mipylib/plotlib/graphic/lines.py @@ -3,6 +3,7 @@ from org.meteoinfo.geometry.legend import PolylineBreak from .. import plotutil from artist import Artist +import mipylib.numeric as np __all__ = ['Line2D'] @@ -27,14 +28,14 @@ class Line2D(Line2DGraphic, Artist): if legend is None: legend = plotutil.getlegendbreak('line', **kwargs)[0] - self._x = xdata - self._y = ydata - self._cdata = cdata + self._x = np.asarray(xdata) + self._y = np.asarray(ydata) + self._cdata = np.asarray(cdata) if cdata is None: - Line2DGraphic.__init__(self, xdata._array, ydata._array, legend) + Line2DGraphic.__init__(self, self._x._array, self._y._array, legend) else: - Line2DGraphic.__init__(self, xdata._array, ydata._array, cdata._array, legend) + Line2DGraphic.__init__(self, self._x._array, self._y._array, self._cdata._array, legend) if curve: self.setCurve(curve) diff --git a/meteoinfo-ndarray/src/main/java/org/meteoinfo/ndarray/math/ArrayUtil.java b/meteoinfo-ndarray/src/main/java/org/meteoinfo/ndarray/math/ArrayUtil.java index d32d4450..69ec7076 100644 --- a/meteoinfo-ndarray/src/main/java/org/meteoinfo/ndarray/math/ArrayUtil.java +++ b/meteoinfo-ndarray/src/main/java/org/meteoinfo/ndarray/math/ArrayUtil.java @@ -643,7 +643,11 @@ public class ArrayUtil { * @return Array */ public static Array array(Object data, DataType dt) { - if (data instanceof Array) { + if (data == null) { + Array a = Array.factory(DataType.OBJECT, new int[0]); + a.setObject(0, null); + return a; + } else if (data instanceof Array) { return (Array) data; } else if (data instanceof List) { return array_list((List) data, dt); diff --git a/meteoinfo-projection/src/main/java/org/meteoinfo/projection/ProjectionUtil.java b/meteoinfo-projection/src/main/java/org/meteoinfo/projection/ProjectionUtil.java index 70e682ed..2442d97e 100644 --- a/meteoinfo-projection/src/main/java/org/meteoinfo/projection/ProjectionUtil.java +++ b/meteoinfo-projection/src/main/java/org/meteoinfo/projection/ProjectionUtil.java @@ -924,11 +924,16 @@ public class ProjectionUtil { newGCollection.add(aGraphic); } } + newGCollection.setLegendScheme(((GraphicCollection) graphic).getLegendScheme()); + newGCollection.setSingleLegend(((GraphicCollection) graphic).isSingleLegend()); + newGCollection.setAntiAlias(graphic.isAntiAlias()); return newGCollection; } else { Shape shape = projectShape(graphic.getShape(), fromProj, toProj); - return new Graphic(shape, graphic.getLegend()); + Graphic rGraphic = new Graphic(shape, graphic.getLegend()); + rGraphic.setAntiAlias(graphic.isAntiAlias()); + return rGraphic; } } @@ -953,6 +958,7 @@ public class ProjectionUtil { } newGCollection.setLegendScheme(((GraphicCollection) graphic).getLegendScheme()); newGCollection.setSingleLegend(((GraphicCollection) graphic).isSingleLegend()); + newGCollection.setAntiAlias(graphic.isAntiAlias()); return newGCollection; } catch (Exception ex) { @@ -962,7 +968,9 @@ public class ProjectionUtil { } else { List shapes = projectClipShape(graphic.getShape(), fromProj, toProj); if (shapes != null && shapes.size() > 0) { - return new Graphic(shapes.get(0), graphic.getLegend()); + Graphic rGraphic = new Graphic(shapes.get(0), graphic.getLegend()); + rGraphic.setAntiAlias(graphic.isAntiAlias()); + return rGraphic; } else { return null; }