Re: gridding large amounts of data [message #2912 is a reply to message #2808] |
Sun, 09 October 1994 17:47   |
lmudge
Messages: 9 Registered: October 1994
|
Junior Member |
|
|
In article 0510942006120001@peace.gsfc.nasa.gov, candey@nssdca.gsfc.nasa.gov (Robert M. Candey) writes:
> Several ideas. First, to get more than 32,767 values in the loop, declare the index variable as a long (for i=1L,num do $)
>
> A second idea is to check the ROSAT IDL library and Astro library for suitable routines. As far as my understanding goes, ROSAT has large lists of hits with position info that are converted to a matrix like yours. See (from Astronomy lib's Other_sources.txt:
>
> Gail Reichert at the GSFC High Energy Astrophysics Science Archive
> Research Center (HEASARC) has been developing software to analyze
> ROSAT data using IDL. People interested in this software can contact her
> at HEASRC::REICHERT (=15552::REICHERT) or reichert@heasrc.gsfc.nasa.gov
>
> The files are available via Decnet on node HEASRC in the directory
> IDL:[IDL...]. The procedures are found in the directory
>
> heasrc::idl:[lib.rosat.experimental]
>
> and an extensive LaTeX guide to the procedures can be found in the file
>
> heasrc::idl:[lib.rosat.doc]idl_recipes.tex
>
> The procedures are also available via anonymous FTP on the
> machine legacy.gsfc.nasa.gov in the subdirectory rosat/software/idl.
> The LaTeX guide is found on the same machine in the software/idl directory.
> ____________
>
> In article <36v30k$14n@danberg.llnl.gov>, dan@danberg.llnl.gov (Dan Bergmann) wrote:
>
>> I have a large table of data in the form
>>
>> LATITUDE LONGITUDE VALUE
>>
>> There can be a million rows of entries in this 3 colum table.
>> I would like to put the data into a 1x1 degree array (fltarr(360,180))
>> If there are multiple entries for a particular longitude and latitude
>> I would like to sum the values. I could do this in an ugly do loop that
>> looked like
>>
>> data=fltarr(360,180)
>> for i=1,num do $
>> data(longitude(i),latitude(i)) = data(longitude(i),latitude(i)) + value(i)
>>
>> This works fine for small values of num, but for num>32,767 I get an error
>> saying my do loop index is too large. Can I write do loops with limits
>> greater than 32,767 ?? Could I rewrite this in vector syntax using the
>> where statement ??
>> --
>> ************************************************************ ***
>> ** Dan Bergmann dbergmann@llnl.gov **
>> ** Global Climate Research fax (510) 422-5844 **
>> ** Lawrence Livermore National Lab human (510) 423-6765 **
The limit for 16 bit signed integers is 32,767 as stated in the IDL manuals.
I have met this problem of exceeding this limit in a FOR loop and have been
able to get around it by using longword integers. This will give you a limit
of 2,147,483,647 ( 2^31 - 1 ) according to the manual.
Leith Mudge
---
End Of Message
|
|
|