diff --git a/MeteoInfoLab/milconfig.xml b/MeteoInfoLab/milconfig.xml index 7c19455b..da0ad941 100644 --- a/MeteoInfoLab/milconfig.xml +++ b/MeteoInfoLab/milconfig.xml @@ -1,7 +1,6 @@ - - + @@ -16,6 +15,7 @@ + @@ -23,14 +23,16 @@ - + + - + + diff --git a/MeteoInfoLab/pylib/mipylib/dataframe/dataframe$py.class b/MeteoInfoLab/pylib/mipylib/dataframe/dataframe$py.class index cb63a8f5..1910b28a 100644 Binary files a/MeteoInfoLab/pylib/mipylib/dataframe/dataframe$py.class and b/MeteoInfoLab/pylib/mipylib/dataframe/dataframe$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/dataframe/index$py.class b/MeteoInfoLab/pylib/mipylib/dataframe/index$py.class index 5c80b55d..5117c926 100644 Binary files a/MeteoInfoLab/pylib/mipylib/dataframe/index$py.class and b/MeteoInfoLab/pylib/mipylib/dataframe/index$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/dataframe/series$py.class b/MeteoInfoLab/pylib/mipylib/dataframe/series$py.class index 4b661b89..ee963dc5 100644 Binary files a/MeteoInfoLab/pylib/mipylib/dataframe/series$py.class and b/MeteoInfoLab/pylib/mipylib/dataframe/series$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/dataset/dimdatafile$py.class b/MeteoInfoLab/pylib/mipylib/dataset/dimdatafile$py.class index 8e16f210..f8a7c97c 100644 Binary files a/MeteoInfoLab/pylib/mipylib/dataset/dimdatafile$py.class and b/MeteoInfoLab/pylib/mipylib/dataset/dimdatafile$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/dataset/dimvariable$py.class b/MeteoInfoLab/pylib/mipylib/dataset/dimvariable$py.class index c88ea1be..7376b125 100644 Binary files a/MeteoInfoLab/pylib/mipylib/dataset/dimvariable$py.class and b/MeteoInfoLab/pylib/mipylib/dataset/dimvariable$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/dataset/midata$py.class b/MeteoInfoLab/pylib/mipylib/dataset/midata$py.class index 25e4baa2..93f6a766 100644 Binary files a/MeteoInfoLab/pylib/mipylib/dataset/midata$py.class and b/MeteoInfoLab/pylib/mipylib/dataset/midata$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/geolib/migeo$py.class b/MeteoInfoLab/pylib/mipylib/geolib/migeo$py.class index 8ed8418b..47d0345e 100644 Binary files a/MeteoInfoLab/pylib/mipylib/geolib/migeo$py.class and b/MeteoInfoLab/pylib/mipylib/geolib/migeo$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/imagelib/filters$py.class b/MeteoInfoLab/pylib/mipylib/imagelib/filters$py.class index 58b9b4f8..694ac118 100644 Binary files a/MeteoInfoLab/pylib/mipylib/imagelib/filters$py.class and b/MeteoInfoLab/pylib/mipylib/imagelib/filters$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/imagelib/io$py.class b/MeteoInfoLab/pylib/mipylib/imagelib/io$py.class index b7150384..ed12e7c7 100644 Binary files a/MeteoInfoLab/pylib/mipylib/imagelib/io$py.class and b/MeteoInfoLab/pylib/mipylib/imagelib/io$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/meteolib/meteo$py.class b/MeteoInfoLab/pylib/mipylib/meteolib/meteo$py.class index 6f5e54cb..418007a9 100644 Binary files a/MeteoInfoLab/pylib/mipylib/meteolib/meteo$py.class and b/MeteoInfoLab/pylib/mipylib/meteolib/meteo$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/meteolib/wrf$py.class b/MeteoInfoLab/pylib/mipylib/meteolib/wrf$py.class index a71051c7..049b975e 100644 Binary files a/MeteoInfoLab/pylib/mipylib/meteolib/wrf$py.class and b/MeteoInfoLab/pylib/mipylib/meteolib/wrf$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/__init__$py.class b/MeteoInfoLab/pylib/mipylib/numeric/__init__$py.class index a226bcc8..ce8f7ed4 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/__init__$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/__init__$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/dimarray$py.class b/MeteoInfoLab/pylib/mipylib/numeric/dimarray$py.class index 51256ab6..d1fe258b 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/dimarray$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/dimarray$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/fitting/fitting$py.class b/MeteoInfoLab/pylib/mipylib/numeric/fitting/fitting$py.class index f708111b..80cc4948 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/fitting/fitting$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/fitting/fitting$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/interpolate/interpolate$py.class b/MeteoInfoLab/pylib/mipylib/numeric/interpolate/interpolate$py.class index 3452f048..b02eff39 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/interpolate/interpolate$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/interpolate/interpolate$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/linalg/linalg$py.class b/MeteoInfoLab/pylib/mipylib/numeric/linalg/linalg$py.class index d925044b..9b39e5c8 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/linalg/linalg$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/linalg/linalg$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/minum$py.class b/MeteoInfoLab/pylib/mipylib/numeric/minum$py.class index b5fd7e20..bba31aad 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/minum$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/minum$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/minum.py b/MeteoInfoLab/pylib/mipylib/numeric/minum.py index db1720e0..7eca720c 100644 --- a/MeteoInfoLab/pylib/mipylib/numeric/minum.py +++ b/MeteoInfoLab/pylib/mipylib/numeric/minum.py @@ -18,6 +18,7 @@ from ucar.ma2 import Array from dimarray import PyGridData, DimArray, PyStationData from multiarray import NDArray from mitable import PyTableData +import mipylib.miutil as miutil from java.lang import Math, Double, Float from java.util import Calendar @@ -77,6 +78,9 @@ def array(object): """ if isinstance(object, NDArray): return object + if isinstance(object, (list, tuple)): + if isinstance(object[0], datetime.datetime): + object = miutil.dates2nums(object) return NDArray(ArrayUtil.array(object)) def dim_array(a, dims=None): diff --git a/MeteoInfoLab/pylib/mipylib/numeric/mitable$py.class b/MeteoInfoLab/pylib/mipylib/numeric/mitable$py.class index 5abb1ea4..fd35f4d9 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/mitable$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/mitable$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/multiarray$py.class b/MeteoInfoLab/pylib/mipylib/numeric/multiarray$py.class new file mode 100644 index 00000000..7395a408 Binary files /dev/null and b/MeteoInfoLab/pylib/mipylib/numeric/multiarray$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/random/random$py.class b/MeteoInfoLab/pylib/mipylib/numeric/random/random$py.class index 330b9c68..b461910d 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/random/random$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/random/random$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/stats/_distn_infrastructure$py.class b/MeteoInfoLab/pylib/mipylib/numeric/stats/_distn_infrastructure$py.class index 29f86d10..d77a9981 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/stats/_distn_infrastructure$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/stats/_distn_infrastructure$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/numeric/stats/stats$py.class b/MeteoInfoLab/pylib/mipylib/numeric/stats/stats$py.class index 8842f7d1..79906653 100644 Binary files a/MeteoInfoLab/pylib/mipylib/numeric/stats/stats$py.class and b/MeteoInfoLab/pylib/mipylib/numeric/stats/stats$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/plotlib/axes$py.class b/MeteoInfoLab/pylib/mipylib/plotlib/axes$py.class index 32ef3fc0..af79513b 100644 Binary files a/MeteoInfoLab/pylib/mipylib/plotlib/axes$py.class and b/MeteoInfoLab/pylib/mipylib/plotlib/axes$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/plotlib/axes.py b/MeteoInfoLab/pylib/mipylib/plotlib/axes.py index 632d25a9..7ac490d4 100644 --- a/MeteoInfoLab/pylib/mipylib/plotlib/axes.py +++ b/MeteoInfoLab/pylib/mipylib/plotlib/axes.py @@ -19,6 +19,7 @@ from org.meteoinfo.layer import MapLayer from java.awt import Font, Color, BasicStroke from java.awt.image import BufferedImage +from java.util import HashMap import numbers import datetime @@ -1458,6 +1459,8 @@ class Axes(object): autowidth = False x = minum.asarray(x) height = minum.asarray(height) + if len(x) > 1 and isinstance(width, numbers.Number) and width <= 1: + width = (x[1] - x[0]) * width width = minum.asarray(width) if align == 'center': x = x - width / 2 @@ -2423,7 +2426,7 @@ class Axes(object): return pb def pie(self, x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, - labeldistance=1.1, startangle=0, radius=None, hold=None, **kwargs): + labeldistance=1.1, startangle=0, radius=None, wedgeprops=None, **kwargs): """ Plot a pie chart. @@ -2446,7 +2449,8 @@ class Axes(object): :param shadow: (*boolean*) Draw a shadow beneath the pie. :param startangle: (*float*) If not *0*, rotates the start of the pie chart by *angle* degrees counterclockwise from the x-axis. - :radius: (*float*) The radius of the pie, if *radius* is *None* it will be set to 1. + :param radius: (*float*) The radius of the pie, if *radius* is *None* it will be set to 1. + :param wedgeprops: (*dict*) Dict of arguments passed to the wedge objects making the pie. :param fontname: (*string*) Font name. Default is ``Arial`` . :param fontsize: (*int*) Font size. Default is ``14`` . @@ -2455,7 +2459,8 @@ class Axes(object): n = len(x) x = plotutil.getplotdata(x) if colors is None: - colors = plotutil.makecolors(n) + cmap = kwargs.pop('cmap', 'matlab_jet') + colors = plotutil.makecolors(n, cmap=cmap) else: colors = plotutil.getcolors(colors) @@ -2468,10 +2473,27 @@ class Axes(object): else: font = Font(fontname, Font.PLAIN, fontsize) fontcolor = plotutil.getcolor(fontcolor) + if radius is None: + radius = 1 + if wedgeprops is None: + wedgeprops = HashMap() + else: + jmap = HashMap() + for key in wedgeprops.keys(): + value = wedgeprops[key] + if key == 'edgecolor': + if value is None: + jmap['drawedge'] = False + else: + value = plotutil.getcolor(value) + jmap[key] = value + else: + jmap[key] = value + wedgeprops = jmap #Create graphics graphics = GraphicFactory.createPieArcs(x, colors, labels, startangle, explode, font, fontcolor, \ - labeldistance, autopct, pctdistance) + labeldistance, autopct, pctdistance, radius, wedgeprops) for graphic in graphics: self.add_graphic(graphic) diff --git a/MeteoInfoLab/pylib/mipylib/plotlib/axes3d$py.class b/MeteoInfoLab/pylib/mipylib/plotlib/axes3d$py.class index 783c0939..d89934c9 100644 Binary files a/MeteoInfoLab/pylib/mipylib/plotlib/axes3d$py.class and b/MeteoInfoLab/pylib/mipylib/plotlib/axes3d$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/plotlib/mapaxes$py.class b/MeteoInfoLab/pylib/mipylib/plotlib/mapaxes$py.class index 9126c590..7ceabcc3 100644 Binary files a/MeteoInfoLab/pylib/mipylib/plotlib/mapaxes$py.class and b/MeteoInfoLab/pylib/mipylib/plotlib/mapaxes$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/plotlib/miplot$py.class b/MeteoInfoLab/pylib/mipylib/plotlib/miplot$py.class index cb0f7ec4..0e4d2062 100644 Binary files a/MeteoInfoLab/pylib/mipylib/plotlib/miplot$py.class and b/MeteoInfoLab/pylib/mipylib/plotlib/miplot$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/plotlib/miplot.py b/MeteoInfoLab/pylib/mipylib/plotlib/miplot.py index 61651f26..bad5753e 100644 --- a/MeteoInfoLab/pylib/mipylib/plotlib/miplot.py +++ b/MeteoInfoLab/pylib/mipylib/plotlib/miplot.py @@ -852,7 +852,7 @@ def fill_betweenx(y, x1, x2=0, where=None, **kwargs): return r def pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, - labeldistance=1.1, startangle=0, radius=None, hold=None, **kwargs): + labeldistance=1.1, startangle=0, radius=None, wedgeprops=None, **kwargs): """ Plot a pie chart. @@ -875,7 +875,8 @@ def pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6 :param shadow: (*boolean*) Draw a shadow beneath the pie. :param startangle: (*float*) If not *0*, rotates the start of the pie chart by *angle* degrees counterclockwise from the x-axis. - :radius: (*float*) The radius of the pie, if *radius* is *None* it will be set to 1. + :param radius: (*float*) The radius of the pie, if *radius* is *None* it will be set to 1. + :param wedgeprops: (*dict*) Dict of arguments passed to the wedge objects making the pie. :param fontname: (*string*) Font name. Default is ``Arial`` . :param fontsize: (*int*) Font size. Default is ``14`` . @@ -892,7 +893,7 @@ def pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6 gca = axes() r = gca.pie(x, explode, labels, colors, autopct, pctdistance, shadow, - labeldistance, startangle, radius, hold, **kwargs) + labeldistance, startangle, radius, wedgeprops, **kwargs) if not r is None: draw_if_interactive() return r diff --git a/MeteoInfoLab/pylib/mipylib/plotlib/plotutil$py.class b/MeteoInfoLab/pylib/mipylib/plotlib/plotutil$py.class index 83273a6f..630747d0 100644 Binary files a/MeteoInfoLab/pylib/mipylib/plotlib/plotutil$py.class and b/MeteoInfoLab/pylib/mipylib/plotlib/plotutil$py.class differ diff --git a/MeteoInfoLab/pylib/mipylib/plotlib/plotutil.py b/MeteoInfoLab/pylib/mipylib/plotlib/plotutil.py index e561de5a..a2c4f7d2 100644 --- a/MeteoInfoLab/pylib/mipylib/plotlib/plotutil.py +++ b/MeteoInfoLab/pylib/mipylib/plotlib/plotutil.py @@ -450,6 +450,7 @@ def getlegendbreak(geometry, **kwargs): edge = kwargs.pop('edge', True) lb.setDrawOutline(edge) size = kwargs.pop('size', None) + size = kwargs.pop('linewidth', size) size = kwargs.pop('edgesize', size) if not size is None: lb.setOutlineSize(size)