|
From: Michael D. <md...@st...> - 2010-06-22 20:12:05
|
SVN r8456 has a patch for the slowness Eric described when doing extreme magnification on an image. Unfortunately, this fix paves over the exception fixed earlier. Rather than getting an exception when the magnification is too high, it now silently just doesn't draw the image. I'm trying to figure out what the threshold is beyond which it fails in order to manually raise an exception, but not having much luck. I suspect it's somehow related to floating-point or even Agg's fixed-point rounding error. Mike On 06/22/2010 12:31 PM, Michael Droettboom wrote: > Ok. Attached is a corrected patch. > > Mike > > On 06/22/2010 12:26 PM, Michael Droettboom wrote: >> Hold off, actually. This patch seems to have broken some thing >> inadvertently. Stay tuned... >> >> Mike >> >> On 06/22/2010 12:05 PM, Michael Droettboom wrote: >>> In r8454, I have a applied a fix that allows this C++ exception to >>> correctly percolate to the Python side -- the user will still get an >>> exception, but it will be a Python exception and the interpreter >>> itself does not crash. (It used to work, but recent changes to CXX >>> caused it to break.) I have attached this patch to the e-mail. >>> >>> As Eric suggests, fixing the underlying limitation (I even hesitate >>> to call it a bug because it is definitely a corner case) requires >>> understanding some pretty dark depths of the Agg renderer. >>> >>> Mike >>> >>> On 06/21/2010 10:57 PM, Eric Firing wrote: >>>> On 06/21/2010 12:24 PM, Sandro Tosi wrote: >>>>> forwarded 585442 mat...@li... >>>>> thanks >>>>> >>>>> Hello Matplotlib developers, >>>>> here below is a report a user of maplotlib sent to the Debian bug >>>>> tracker. I've verified and it happend also with 0.99.3: >>>>> >>>>> $ python -c "import matplotlib as p ; print p.__version__" >>>>> 0.99.3 >>>>> $ python mpl_crash.py >>>>> terminate called after throwing an instance of 'char const*' >>>>> Aborted >>>>> >>>>> Thanks for looking into it, >>>>> Sandro >>>> Sandro, >>>> >>>> Thanks for reporting it. >>>> >>>> With the default interpolation, rendering gets extremely slow as the >>>> view limits decline to and below a single image pixel. I suspect the >>>> crash is related to this. Neither the slowdown nor the crash occurs >>>> with interpolation='nearest', although there is still an anomaly in >>>> which the image is blank when the viewlim region is too small. >>>> >>>> Like Ryan, I am not familiar with the _image.cpp and the underlying >>>> agg >>>> routines, but I suspect this is going to be a difficult problem to >>>> solve. It may be necessary to put in some workaround, trying to trap >>>> and prevent the extreme slowdown and crash. The slowdown topic >>>> came up >>>> on the list years ago. >>>> >>>> http://www.mail-archive.com/mat...@li.../msg00513.html >>>> >>>> >>>> Eric >>>> >>>>> On Thu, Jun 10, 2010 at 16:52, Teemu Ikonen<tpi...@gm...> >>>>> wrote: >>>>>> Package: python-matplotlib >>>>>> Version: 0.99.1.2-3 >>>>>> Severity: important >>>>>> >>>>>> Running a program which displays an image with plt.imshow() and >>>>>> changes the >>>>>> axes with plt.axis() before calling plt.show() crashes the python >>>>>> interpreter: >>>>>> >>>>>> $ python mpl_crash.py >>>>>> terminate called after throwing an instance of 'char const*' >>>>>> Aborted >>>>>> >>>>>> This happens at least with Qt4Agg, GTKAgg and TKAgg backends. >>>>>> >>>>>> The example program is attached. >>>>>> >>>>>> Best, >>>>>> >>>>>> Teemu >>>>>> >>>>>> -- System Information: >>>>>> Debian Release: squeeze/sid >>>>>> APT prefers testing >>>>>> APT policy: (500, 'testing') >>>>>> Architecture: amd64 (x86_64) >>>>>> >>>>>> Kernel: Linux 2.6.32-trunk-amd64 (SMP w/4 CPU cores) >>>>>> Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) >>>>>> Shell: /bin/sh linked to /bin/dash >>>>>> >>>>>> Versions of packages python-matplotlib depends on: >>>>>> ii libatk1.0-0 1.30.0-1 The ATK >>>>>> accessibility toolkit >>>>>> ii libc6 2.10.2-9 Embedded GNU C >>>>>> Library: Shared lib >>>>>> ii libcairo2 1.8.10-4 The Cairo 2D vector >>>>>> graphics libra >>>>>> ii libfontconfig1 2.8.0-2.1 generic font >>>>>> configuration library >>>>>> ii libfreetype6 2.3.11-1 FreeType 2 font >>>>>> engine, shared lib >>>>>> ii libgcc1 1:4.4.4-1 GCC support library >>>>>> ii libglib2.0-0 2.24.1-1 The GLib library of >>>>>> C routines >>>>>> ii libgtk2.0-0 2.20.1-1 The GTK+ graphical >>>>>> user interface >>>>>> ii libpango1.0-0 1.28.0-1 Layout and rendering >>>>>> of internatio >>>>>> ii libpng12-0 1.2.43-1 PNG library - runtime >>>>>> ii libstdc++6 4.4.4-1 The GNU Standard C++ >>>>>> Library v3 >>>>>> ii python 2.5.4-9 An interactive >>>>>> high-level object-o >>>>>> ii python-cairo 1.8.8-1+b1 Python bindings for >>>>>> the Cairo vect >>>>>> ii python-dateutil 1.4.1-3 powerful extensions >>>>>> to the standar >>>>>> ii python-gobject 2.21.1-1 Python bindings for >>>>>> the GObject li >>>>>> ii python-matplotlib-data 0.99.1.2-3 Python based >>>>>> plotting system (data >>>>>> ii python-numpy 1:1.3.0-3+b1 Numerical Python >>>>>> adds a fast array >>>>>> ii python-pyparsing 1.5.2-2 Python parsing module >>>>>> ii python-support 1.0.8 automated rebuilding >>>>>> support for P >>>>>> ii python-tz 2010b-1 Python version of >>>>>> the Olson timezo >>>>>> ii tcl8.5 8.5.8-2 Tcl (the Tool >>>>>> Command Language) v8 >>>>>> ii tk8.5 8.5.8-1 Tk toolkit for Tcl >>>>>> and X11, v8.5 - >>>>>> ii zlib1g 1:1.2.3.4.dfsg-3 compression library >>>>>> - runtime >>>>>> >>>>>> Versions of packages python-matplotlib recommends: >>>>>> ii python-glade2 2.17.0-2 GTK+ bindings: Glade >>>>>> support >>>>>> ii python-tk 2.6.5-1 Tkinter - Writing Tk >>>>>> applications >>>>>> >>>>>> Versions of packages python-matplotlib suggests: >>>>>> ii dvipng 1.13-1 convert DVI files to >>>>>> PNG graphics >>>>>> ii ipython 0.10-2 enhanced interactive >>>>>> Python shell >>>>>> ii librsvg2-common 2.26.3-1 SAX-based renderer >>>>>> library for SVG >>>>>> ii python-configobj 4.7.2+ds-1 simple but powerful >>>>>> config file re >>>>>> pn python-excelerator<none> (no description available) >>>>>> ii python-gtk2 2.17.0-2 Python bindings for >>>>>> the GTK+ widge >>>>>> pn python-matplotlib-doc<none> (no description available) >>>>>> pn python-qt3<none> (no description available) >>>>>> ii python-qt4 4.7.3-1 Python bindings for Qt4 >>>>>> ii python-scipy 0.7.2-1 scientific tools for >>>>>> Python >>>>>> ii python-traits 3.3.0-1 Manifest typing and >>>>>> reactive progr >>>>>> ii python-wxgtk2.8 2.8.10.1-3 wxWidgets >>>>>> Cross-platform C++ GUI t >>>>>> ii texlive-extra-utils 2009-7 TeX Live: TeX >>>>>> auxiliary programs >>>>>> ii texlive-latex-extra 2009-7 TeX Live: LaTeX >>>>>> supplementary pack >>>>>> >>>>>> -- no debconf information >>>>>> >>>>>> _______________________________________________ >>>>>> Python-modules-team mailing list >>>>>> Pyt...@li... >>>>>> http://lists.alioth.debian.org/mailman/listinfo/python-modules-team >>>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> >>>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate >>>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the >>>>> lucky parental unit. See the prize list and enter to win: >>>>> http://p.sf.net/sfu/thinkgeek-promo >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Matplotlib-devel mailing list >>>>> Mat...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> ThinkGeek and WIRED's GeekDad team up for the Ultimate >>>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the >>>> lucky parental unit. See the prize list and enter to win: >>>> http://p.sf.net/sfu/thinkgeek-promo >>>> _______________________________________________ >>>> Matplotlib-devel mailing list >>>> Mat...@li... >>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> ThinkGeek and WIRED's GeekDad team up for the Ultimate >>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the >>> lucky parental unit. See the prize list and enter to win: >>> http://p.sf.net/sfu/thinkgeek-promo >>> >>> >>> _______________________________________________ >>> Matplotlib-devel mailing list >>> Mat...@li... >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >>> >> >> >> -- >> Michael Droettboom >> Science Software Branch >> Space Telescope Science Institute >> Baltimore, Maryland, USA >> >> >> ------------------------------------------------------------------------------ >> ThinkGeek and WIRED's GeekDad team up for the Ultimate >> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the >> lucky parental unit. See the prize list and enter to win: >> http://p.sf.net/sfu/thinkgeek-promo >> >> >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> > > > -- > Michael Droettboom > Science Software Branch > Space Telescope Science Institute > Baltimore, Maryland, USA > > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > > > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > -- Michael Droettboom Science Software Branch Space Telescope Science Institute Baltimore, Maryland, USA |