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

Home » Public Forums » archive » Re: FOR LOOP problem
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
Re: FOR LOOP problem [message #30971] Sun, 02 June 2002 23:54 Go to next message
R.Bauer is currently offline  R.Bauer
Messages: 1424
Registered: November 1998
Senior Member
Doug Rowland wrote:
>
> What happens if the image you are reading in is only 400x400 bytes (as seems
> to be implied by the filename)?
> Does readu then redefine image to be a 400x400 array or does it just leave
> the rest of the 462x350 array blank?

Dear Doug,

the rest 1700 bytes will be 0b and the size is (462, 350).
This gaves no new information.

It's not easy to examine the right size of a binary file.
First step could be to examine by fstat the byte size.
Then the data could be read as byte vector.

If you have an idea how it is organized you can use a reform
to put it in the correct size.

Reimar







>
> How about trying this:
>
> image = bytarr(462, 350)
> image_mod = bytarr(462, 350)
> openr, 1, FILEPATH(SUB=['examples','data'], '400_400_gb')
> readu, 1, image
> print,size(image)
> close,1
> end
>
> Doug Rowland
> rowland@fields.space.umn.edu
>
> On 05/31/02 4:27 PM, in article MPG.176198a6982878fc989905@news.frii.com,
> "David Fanning" <david@dfanning.com> wrote:
>
>> Shravan Kumar Durvasula (skd6@ra.msstate.edu) writes:
>>
>>> I am very much new to IDL. Could anyone please tell me what the problem is
>>> with
>>> this .pro file?
>>>
>>> ************************************************************ **********
>>> image = bytarr(462, 350)
>>> image_mod = bytarr(462, 350)
>>> openr, 1, FILEPATH(SUB=['examples','data'], '400_400_gb')
>>> readu, 1, image
>>> FOR i = 0, 461 DO BEGIN
>>> FOR j = 0, 349 DO image_mod[i,j] = image[i,j]
>>> ENDFOR
>>> close, 1
>>> ************************************************************ *********
>>>
>>> It gives me the following error message :
>>>
>>> ************************************************************ *********
>>> % Attempt to subscript IMAGE with I is out of range.
>>> % Execution halted at: $MAIN$
>>> ENDFOR
>>> ^
>>> % Syntax error.
>>> At: D:\webpages\IONJava\examples\ndvi_pro.pro, Line 7
>>> ************************************************************ *********
>>
>> I suspect the problem lies in how you are trying to
>> run this program. I recommend you put another END at the
>> end of the program file (after the CLOSE statement),
>> then run it like this from the IDL command line:
>>
>> IDL> .Run ndvi_pro
>>
>> Does that work better? This will compile the code before
>> it tries to run it. I think that will work better for you.
>>
>> I should point out that you can more easily do what you
>> want to do (and a hell of lot faster!) by simply writing this:
>>
>> image_mod = image
>>
>> Cheers,
>>
>> David

--
Reimar Bauer

Institut fuer Stratosphaerische Chemie (ICG-I)
Forschungszentrum Juelich
email: R.Bauer@fz-juelich.de
------------------------------------------------------------ -------
a IDL library at ForschungsZentrum Juelich
http://www.fz-juelich.de/icg/icg1/idl_icglib/idl_lib_intro.h tml
============================================================ =======
Re: FOR LOOP problem [message #30974 is a reply to message #30971] Fri, 31 May 2002 15:30 Go to previous messageGo to next message
nobody@nowhere.com (S is currently offline  nobody@nowhere.com (S
Messages: 55
Registered: July 2001
Member
On Fri, 31 May 2002 15:27:27 -0600, David Fanning <david@dfanning.com> wrote:
> Shravan Kumar Durvasula (skd6@ra.msstate.edu) writes:
>

<-------------cut---------------->

>
> I should point out that you can more easily do what you
> want to do (and a hell of lot faster!) by simply writing this:
>
> image_mod = image
>

touche' ;^) !

> Cheers,
>
> David
> --
> David W. Fanning, Ph.D.
> Fanning Software Consulting
> Phone: 970-221-0438, E-mail: david@dfanning.com
> Coyote's Guide to IDL Programming: http://www.dfanning.com/
> Toll-Free IDL Book Orders: 1-888-461-0155


--
Steve S.

steve @ NOSPAM mailaps dot org
remove spaces, NOSPAM and replace dot for . before replying
Re: FOR LOOP problem [message #30975 is a reply to message #30974] Fri, 31 May 2002 14:45 Go to previous messageGo to next message
Doug Rowland is currently offline  Doug Rowland
Messages: 12
Registered: March 2002
Junior Member
What happens if the image you are reading in is only 400x400 bytes (as seems
to be implied by the filename)?
Does readu then redefine image to be a 400x400 array or does it just leave
the rest of the 462x350 array blank?

How about trying this:

image = bytarr(462, 350)
image_mod = bytarr(462, 350)
openr, 1, FILEPATH(SUB=['examples','data'], '400_400_gb')
readu, 1, image
print,size(image)
close,1
end

Doug Rowland
rowland@fields.space.umn.edu


On 05/31/02 4:27 PM, in article MPG.176198a6982878fc989905@news.frii.com,
"David Fanning" <david@dfanning.com> wrote:

> Shravan Kumar Durvasula (skd6@ra.msstate.edu) writes:
>
>> I am very much new to IDL. Could anyone please tell me what the problem is
>> with
>> this .pro file?
>>
>> ************************************************************ **********
>> image = bytarr(462, 350)
>> image_mod = bytarr(462, 350)
>> openr, 1, FILEPATH(SUB=['examples','data'], '400_400_gb')
>> readu, 1, image
>> FOR i = 0, 461 DO BEGIN
>> FOR j = 0, 349 DO image_mod[i,j] = image[i,j]
>> ENDFOR
>> close, 1
>> ************************************************************ *********
>>
>> It gives me the following error message :
>>
>> ************************************************************ *********
>> % Attempt to subscript IMAGE with I is out of range.
>> % Execution halted at: $MAIN$
>> ENDFOR
>> ^
>> % Syntax error.
>> At: D:\webpages\IONJava\examples\ndvi_pro.pro, Line 7
>> ************************************************************ *********
>
> I suspect the problem lies in how you are trying to
> run this program. I recommend you put another END at the
> end of the program file (after the CLOSE statement),
> then run it like this from the IDL command line:
>
> IDL> .Run ndvi_pro
>
> Does that work better? This will compile the code before
> it tries to run it. I think that will work better for you.
>
> I should point out that you can more easily do what you
> want to do (and a hell of lot faster!) by simply writing this:
>
> image_mod = image
>
> Cheers,
>
> David
Re: FOR LOOP problem [message #30976 is a reply to message #30975] Fri, 31 May 2002 14:27 Go to previous messageGo to next message
David Fanning is currently offline  David Fanning
Messages: 11724
Registered: August 2001
Senior Member
Shravan Kumar Durvasula (skd6@ra.msstate.edu) writes:

> I am very much new to IDL. Could anyone please tell me what the problem is with
> this .pro file?
>
> ************************************************************ **********
> image = bytarr(462, 350)
> image_mod = bytarr(462, 350)
> openr, 1, FILEPATH(SUB=['examples','data'], '400_400_gb')
> readu, 1, image
> FOR i = 0, 461 DO BEGIN
> FOR j = 0, 349 DO image_mod[i,j] = image[i,j]
> ENDFOR
> close, 1
> ************************************************************ *********
>
> It gives me the following error message :
>
> ************************************************************ *********
> % Attempt to subscript IMAGE with I is out of range.
> % Execution halted at: $MAIN$
> ENDFOR
> ^
> % Syntax error.
> At: D:\webpages\IONJava\examples\ndvi_pro.pro, Line 7
> ************************************************************ *********

I suspect the problem lies in how you are trying to
run this program. I recommend you put another END at the
end of the program file (after the CLOSE statement),
then run it like this from the IDL command line:

IDL> .Run ndvi_pro

Does that work better? This will compile the code before
it tries to run it. I think that will work better for you.

I should point out that you can more easily do what you
want to do (and a hell of lot faster!) by simply writing this:

image_mod = image

Cheers,

David
--
David W. Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438, E-mail: david@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
Re: FOR LOOP problem [message #31041 is a reply to message #30976] Tue, 04 June 2002 14:35 Go to previous messageGo to next message
skd6 is currently offline  skd6
Messages: 4
Registered: May 2002
Junior Member
Hi,

I am actually working on IONJava. I have a strange problem. This is
the .pro file that i have written :

************************************************************ ********
band4_image = bytarr(420, 345)
band3_image = bytarr(420, 345)
final_image = bytarr(420, 345)
OPENR, 1, FILEPATH(SUB=['examples','data'], 'band_4')
OPENR, 2, FILEPATH(SUB=['examples','data'], 'band_3')
READU, 1, band4_image
READU, 2, band3_image
FOR i = 0,419 DO BEGIN
FOR j = 0,344 DO final_image[i,j] = band4_image[i,j]
ENDFOR
CLOSE, 1
CLOSE, 2
TV, final_image
END
************************************************************ ********

When i compile and run this program from the IDL command prompt, it
runs absolutely fine. But when i run this file through IONJava using
the "executeIDLCommand()" (method in the IONGraphicsClient class of
IONJava) it gives the following error message :

************************************************************ *******
% Attempt to subscript BAND3_IMAGE with I is out of range.
% Execution halted at: $MAIN$
ENDFOR
^
% Syntax error.
At: D:\webpages\IONJava\examples\ndvi_pro.pro, Line 10
END
^
% Syntax error.
At: D:\webpages\IONJava\examples\ndvi_pro.pro, Line 14
************************************************************ *******

I tried eliminating "ENDFOR" by modiying the code to :

************************************************************ ******
band4_image = bytarr(420, 345)
band3_image = bytarr(420, 345)
final_image = bytarr(420, 345)
OPENR, 1, FILEPATH(SUB=['examples','data'], 'band_4')
OPENR, 2, FILEPATH(SUB=['examples','data'], 'band_3')
READU, 1, band4_image
READU, 2, band3_image
FOR i = 0,419 DO FOR j = 0,344 DO final_image[i,j] = band4_image[i,j]
CLOSE, 1
CLOSE, 2
TV, final_image
END
************************************************************ ******

When i do that it says :

************************************************************ ******
END
^
% Syntax error.
At: D:\webpages\IONJava\examples\ndvi_pro.pro, Line 12
************************************************************ ******

I then removed END in the last line and tried running it again. It
worked absolutely fine. I am not able to guess what the problem could
be. I was wondering if it had anything to do with the indentation as
it said Syntax error. But i could not correct it. Could anyone please
help? Any suggestions given on this would be of great help to me.

Thanks,
Shravan Kumar Durvasula

David Fanning <david@dfanning.com> wrote in message news:<MPG.176198a6982878fc989905@news.frii.com>...
> Shravan Kumar Durvasula (skd6@ra.msstate.edu) writes:
>
>> I am very much new to IDL. Could anyone please tell me what the problem is with
>> this .pro file?
>>
>> ************************************************************ **********
>> image = bytarr(462, 350)
>> image_mod = bytarr(462, 350)
>> openr, 1, FILEPATH(SUB=['examples','data'], '400_400_gb')
>> readu, 1, image
>> FOR i = 0, 461 DO BEGIN
>> FOR j = 0, 349 DO image_mod[i,j] = image[i,j]
>> ENDFOR
>> close, 1
>> ************************************************************ *********
>>
>> It gives me the following error message :
>>
>> ************************************************************ *********
>> % Attempt to subscript IMAGE with I is out of range.
>> % Execution halted at: $MAIN$
>> ENDFOR
>> ^
>> % Syntax error.
>> At: D:\webpages\IONJava\examples\ndvi_pro.pro, Line 7
>> ************************************************************ *********
>
> I suspect the problem lies in how you are trying to
> run this program. I recommend you put another END at the
> end of the program file (after the CLOSE statement),
> then run it like this from the IDL command line:
>
> IDL> .Run ndvi_pro
>
> Does that work better? This will compile the code before
> it tries to run it. I think that will work better for you.
>
> I should point out that you can more easily do what you
> want to do (and a hell of lot faster!) by simply writing this:
>
> image_mod = image
>
> Cheers,
>
> David
Re: FOR LOOP problem [message #31159 is a reply to message #30971] Fri, 07 June 2002 11:11 Go to previous message
Paul Sorenson is currently offline  Paul Sorenson
Messages: 48
Registered: May 2002
Member
"Reimar Bauer" <r.bauer@fz-juelich.de> wrote in message
news:3CFB1297.BAC0ACAE@fz-juelich.de...
> Doug Rowland wrote:
>>
>> What happens if the image you are reading in is only 400x400 bytes (as
seems
>> to be implied by the filename)?
>> Does readu then redefine image to be a 400x400 array or does it just
leave
>> the rest of the 462x350 array blank?
>
> Dear Doug,
>
> the rest 1700 bytes will be 0b and the size is (462, 350).
> This gaves no new information.
>
> It's not easy to examine the right size of a binary file.
> First step could be to examine by fstat the byte size.
> Then the data could be read as byte vector.

You can do this with one command:

IDL> vector = read_binary()

> If you have an idea how it is organized you can use a reform
> to put it in the correct size.

You can read it and reform it in one command:

IDL> array = read_binary(data_dims=[400, 400])

-Paul Sorenson
>
> Reimar
>
>
>
>
>
>
>
>>
>> How about trying this:
>>
>> image = bytarr(462, 350)
>> image_mod = bytarr(462, 350)
>> openr, 1, FILEPATH(SUB=['examples','data'], '400_400_gb')
>> readu, 1, image
>> print,size(image)
>> close,1
>> end
>>
>> Doug Rowland
>> rowland@fields.space.umn.edu
>>
>> On 05/31/02 4:27 PM, in article
MPG.176198a6982878fc989905@news.frii.com,
>> "David Fanning" <david@dfanning.com> wrote:
>>
>>> Shravan Kumar Durvasula (skd6@ra.msstate.edu) writes:
>>>
>>>> I am very much new to IDL. Could anyone please tell me what the
problem is
>>>> with
>>>> this .pro file?
>>>>
>>>>
************************************************************ **********
>>>> image = bytarr(462, 350)
>>>> image_mod = bytarr(462, 350)
>>>> openr, 1, FILEPATH(SUB=['examples','data'], '400_400_gb')
>>>> readu, 1, image
>>>> FOR i = 0, 461 DO BEGIN
>>>> FOR j = 0, 349 DO image_mod[i,j] = image[i,j]
>>>> ENDFOR
>>>> close, 1
>>>> ************************************************************ *********

>>>>
>>>> It gives me the following error message :
>>>>
>>>> ************************************************************ *********
>>>> % Attempt to subscript IMAGE with I is out of range.
>>>> % Execution halted at: $MAIN$
>>>> ENDFOR
>>>> ^
>>>> % Syntax error.
>>>> At: D:\webpages\IONJava\examples\ndvi_pro.pro, Line 7
>>>> ************************************************************ *********
>>>
>>> I suspect the problem lies in how you are trying to
>>> run this program. I recommend you put another END at the
>>> end of the program file (after the CLOSE statement),
>>> then run it like this from the IDL command line:
>>>
>>> IDL> .Run ndvi_pro
>>>
>>> Does that work better? This will compile the code before
>>> it tries to run it. I think that will work better for you.
>>>
>>> I should point out that you can more easily do what you
>>> want to do (and a hell of lot faster!) by simply writing this:
>>>
>>> image_mod = image
>>>
>>> Cheers,
>>>
>>> David
>
> --
> Reimar Bauer
>
> Institut fuer Stratosphaerische Chemie (ICG-I)
> Forschungszentrum Juelich
> email: R.Bauer@fz-juelich.de
> ------------------------------------------------------------ -------
> a IDL library at ForschungsZentrum Juelich
> http://www.fz-juelich.de/icg/icg1/idl_icglib/idl_lib_intro.h tml
> ============================================================ =======




-----------== Posted via Newsfeed.Com - Uncensored Usenet News ==----------
http://www.newsfeed.com The #1 Newsgroup Service in the World!
-----= Over 100,000 Newsgroups - Unlimited Fast Downloads - 19 Servers =-----
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Embedding applications into widgets.
Next Topic: Re: Plot resize

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

Current Time: Wed Oct 08 19:29:34 PDT 2025

Total time taken to generate the page: 0.00868 seconds