comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Extracting pixel values from large image using RasterIterator
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Extracting pixel values from large image using RasterIterator [message #85277] Mon, 22 July 2013 07:49 Go to next message
lefsky@gmail.com is currently offline  lefsky@gmail.com
Messages: 13
Registered: June 2010
Junior Member
I often have the problem of extracting a large number of pixel values from an image, given each point's real world coordinate (in geographic, utm, albers, etc). Normally I accomplish this by reading in the image (usually a tif) and the associated geotiff, calculating the row and column indices and then using a simple lookup to extract each pixel value at once (e.g image(column_index,row_index)). I've written a program to automate this simple task.

My problem now is that I have very large files (>5gb) and I don't want to keep them around in uncompressed form nor do I want to load them into memory. Fortunately, these files are mostly background values and compress well. So, storage is no longer the problem- accessing them is.

It would seem that raster iterator would do the trick- read in one tile at a time, check for an intersection of points with the tile and extract the relevant data.

I haven't found a packaged version of this type of routine, but perhaps someone has solved this problem? Or is there a problem here that I am not seeing?

M
Re: Extracting pixel values from large image using RasterIterator [message #85278 is a reply to message #85277] Mon, 22 July 2013 07:58 Go to previous message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
lefsky@gmail.com writes:

>
> I often have the problem of extracting a large number of pixel values from an image, given each point's real world coordinate (in geographic, utm, albers, etc). Normally I accomplish this by reading in the image (usually a tif) and the associated geotiff, calculating the row and column indices and then using a simple lookup to extract each pixel value at once (e.g image(column_index,row_index)). I've written a program to automate this simple task.
>
> My problem now is that I have very large files (>5gb) and I don't want to keep them around in uncompressed form nor do I want to load them into memory. Fortunately, these files are mostly background values and compress well. So, storage is no longer the problem- accessing them is.
>
> It would seem that raster iterator would do the trick- read in one tile at a time, check for an intersection of points with the tile and extract the relevant data.
>
> I haven't found a packaged version of this type of routine, but perhaps someone has solved this problem? Or is there a problem here that I am not seeing?

I've never tried this, and don't have any idea if it would be faster or
not, but what about using the SUB_RECT keyword to READ_TIFF to read
individual pixel values out of the file? I suppose it depends on how
this functionality is implemented internally as to whether you will gain
speed or not.

Cheers,

David


--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
Sepore ma de ni thue. ("Perhaps thou speakest truth.")
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Mode function for floating point arrays
Next Topic: Inconsistent problem of HDF I/O

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 15:06:25 PDT 2025

Total time taken to generate the page: 0.00432 seconds