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

Home » Public Forums » archive » VARRAY, memory & extracting subarrays
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
VARRAY, memory & extracting subarrays [message #25609] Sun, 01 July 2001 23:21
Kristine Hensel is currently offline  Kristine Hensel
Messages: 26
Registered: June 1999
Junior Member
I'm processing large (105 MB) arrays of images, and I've been running
into memory problems. (Not surprisingly, right?) I've started using
Eric Korpela's VARRAY routine, which has helped, but I still can't
manage to extract a subarray without using all of the available memory.
Theoretically I have 1 GB of memory, and we've tried maximizing every
system variable that we can, but I'm still crashing ("Unable to allocate
memory to create array") when I try to run my image processing program.

I can declare the main array and subarray using VARRAY, and I can read
images into the main array. However, once I try to put anything from
main array in the subarray, e.g. subarray=main_array[i:j,k:l,*], or even
subarray=main_array, I start chewing up memory.

Two not-very-good workarounds are:
- using subarray=temporary(main_array), but then I lose main_array. I
suppose I could read the main array into main_array and then into some
temporary variable, so that I could do subarray=temporary(tmp_array),
but that involves more I/O
- writing the subsection of main_array to a file, then reading it
directly into subarray - this is slow

I've attached sample code below, along with the results of
memory(/current) along the way.

Any assistance with VARRAY would be greatly appreciated.

Thanks,
Kristine

--
Kristine Hensel
Environmental Systems & Services Phone: +61-3-9864-5300
405 Toorongo Rd FAX: +61-3-9822-8028
Hawthorn East, VIC 3123 Australia e-mail: kristine@esands.com

>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>
pro sector_noaa

filename = '/home/meteor/mapped_data/200105171839N14.map'

openr, lun, filename, /get_lun, error=err
nlon=0L
nlat=0L
nchannel=0L
readu, lun, nlon, nlat, nchannel
lons=fltarr(nlon)
lats=fltarr(nlat)
readu, lun, lons, lats
; declare main images array:
file_delete, '/home/meteor/mapped_data/images.dat', /quiet

*** Memory in use: 71 kB

images = varray("/home/meteor/mapped_data/images.dat",byte(0), $
nlon,nlat,nchannel,/writable)

*** Memory in use: 71 kB
; read in images array:
readu, lun, images

*** Memory in use: 71 kB

free_lun, lun

; declare subarray:
file_delete, '/home/meteor/mapped_data/sector_images.dat', /quiet

*** Memory in use: 70 kB

sector_images = varray("/home/meteor/mapped_data/sector_images.dat", $
byte(0),nlon,nlat,nchannel,/writable)

*** Memory in use: 70 kB
; write out subarray:
openw, lun, filename+'_sector', /get_lun, error=err
writeu, lun, images[0:nlon-1,0:nlat-1,*]
free_lun, lun
; read in sector images:
openr, lun, filename+'_sector', /get_lun, error=err
readu, lun, sector_images
*** Memory in use: 70 kB
free_lun, lun

; try to copy directly:
sector_images = images
*** Memory in use: 10531 kB

end
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: plazmah
Next Topic: pixel coordinates of a line

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

Current Time: Wed Oct 08 17:37:20 PDT 2025

Total time taken to generate the page: 0.00804 seconds