[SciPy-User] matplotlib and large array
Wed Jun 9 21:34:56 CDT 2010
David Baddeley wrote:
> I ended up coding up my own, wxpython based, viewer
Us too (and when I say "us" I mean Dan Helfman wrote all the code). Ours
is specifically designed for geo-referenced data, raster and vector
(using GDAL for the reading). It uses wxPython for the GUI, and OpenGL
for fast rendering. It's essentially a toolkit for building custom
interactive data viewer/manipulators
When it brings in a large image, it pyramids and tiles it, which takes a
bit of time, but then it's quite fast for zooming, panning, etc.
It theory, if GDAL reads it, our tool will too, but I'm not sure we've
brought in a greyscale geo-tiff yet, so there may be some tweaking
required for that.
You can get the maybe-not-quite-up-to-date source an binaries from:
Send us a note offline if you're interested in more info.
which downsamples at low magnification and only pulls out the currently
visible ROI at high mag. Only this visible region is then colourmapped
(at most the window size - so around 1k by 1k pixels if you've got the
window maximised). This makes a huge difference to memory consumption,
and performance. There's no provision for plotting axes or other stuff
over the image though. My viewer is designed for 3D images with multiple
colour channels (microscopy data sets), but will handle 2D images fine.
Unfortunately it's currently got a fair bit of application dependent
cruft/dependencies. I've been meaning to strip these out so it can be
used standalone for a while, so if you don't find an alternative viewer,
drop me a line and I'll see if I can get it into some sort of shape.
> ----- Original Message ----
> From: Massimo Di Stefano <email@example.com>
> To: firstname.lastname@example.org
> Cc: SciPy Users List <email@example.com>
> Sent: Thu, 10 June, 2010 6:31:17 AM
> Subject: [SciPy-User] matplotlib and large array
> Hi All,
> i need to work with a relative large images "60 mb" (single band geotiff file)
> i store it in python as a numpy array using python-gdal,
> the array dinension is (7173 X 7924) single band image,
> but tring to display it with matshow/imageshow
> or other matplotlib functions i have that python freeze itself and is not able to load the image.
> if i use a subset of the image, i 'm able to display it
> or at least i hade to reduce its resolution using hacks like :
> reduced_array = array[::3,::3]
> i don't need full resolution dataset when the image is displaied with a full "zoom out"
> so the reduction " reduced_array = array[::3,::3] " is good to show the complete image
> but when i zoom in the image i obviously lost data (less resolution)
> what do you use to display large dataset ?
> i'm thinking about a "piramid" with multy array based on the different zoom levels
> .. but maybe this idea is not so cool.
> someone already has developed similar code ?
> thanks to All for any suggestion!
> SciPy-User mailing list
> SciPy-User mailing list
Christopher Barker, Ph.D.
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
More information about the SciPy-User