[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New IDL User Questions
Thanks to all for the concise and helpful answers to my questions.
I appreciate the help.
John Piccirillo, Ph.D.
Radiance Technologies Inc.
Huntsville, AL 35816
jpicciri@radiancetech.com
John Piccirillo <jpicciri@radiancetech.com> wrote in message
f6WJ6.8403$2B6.790502@e420r-chi2.usenetserver.com">news:f6WJ6.8403$2B6.790502@e420r-chi2.usenetserver.com...
> Hello,
>
> I'm new to IDL, but not new to programming. I have
> the IDL manuals and Dr. Fanning's excellent book, nevertheless,
> I have a few basic questions:
>
> 1. Editor Screen
> a. Is there a way to make the Editor full screen or extend
> over some of the other windows? Using resize doesn't do it.
> Does everyone confine themselves to this small window on their
> code?
> b. My scrolling mouse will scroll in the Output Log and Variable
> Watch
> windows, but not in the Editor Window. Que pasa?
>
> 2. Array Operations - Not being used to IDL type of array operations,
> is there a simpler way to do the following?
> a.
> For I = 0, 199 Do Begin
> For J = 0, 84 Do Begin
> If (ImageMask[I,J] EQ 1) Then ImageROI[I,J,*] =
> ImageS[I,J,*]
> Else ImageROI[I,J,*] = 0
> EndFor
> EndFor
> I thought of using the WHERE function as in,
> ROI = Where(ImageMask EQ 1)
> but ImageROI[ROI} = ImageS{ROI} leaves out the third dimension.
>
> b. ;blow-up image X 9 For Screen Display
> For j = 0,84 Do Begin
> For i = 0,199 Do Begin
> JImage[3*i,3*j] = ImageS[i,j,[4]]
> JImage[3*i,3*j+1] = ImageS[i,j,[4]]
> JImage[3*i,3*j+2] = ImageS[i,j,[4]]
> JImage[3*i+1,3*j] = ImageS[i,j,[4]]
> JImage[3*i+1,3*j+1] = ImageS[i,j,[4]]
> JImage[3*i+1,3*j+2] = ImageS[i,j,[4]]
> JImage[3*i+2,3*j] = ImageS[i,j,[4]]
> JImage[3*i+2,3*j+1] = ImageS[i,j,[4]]
> JImage[3*i+2,3*j+2] = ImageS[i,j,[4]]
> EndFor
> EndFor
>
> I don't use the EXPAND function because I don't want to interpolate
> the data.
>
> 3. PLOT
> I have a couple of plots I want on the same Y Scale, the larger
of
> the two
> data sets. Presently, I use plot to generate the scale to !y.range, and
> then test
> the two ranges and re-plot, as in.
>
> Window, 0, Title = ' P Target; NPix = ' + string(Fix(NumOnes)), $
> XSize = 350, YSize = 350, XPos = 0, YPos = 0
> Plot, WavL, MeanPT, PSYM = 2, TickLen = 1, XGrid = 1, YGrid = 1
> PTYRange = !y.crange
> Window, 1, Title = ' P BkGnd; NPix = ' + string(Fix(17000 - NumOnes)),
$
> XSize = 350, YSize = 350, XPos = 0, YPos = 375
> Plot, WavL, MeanPB, PSYM = 2, TickLen = 1, XGrid = 1, YGrid = 1
> PBYRange = !y.crange
> SPRange = Max([PTYRange[1], PBYRange[1]])
> MaxY = [0,SPRange]
>
> ; replot all with new, uniform Y scale
> Window, 0, Title = 'P Target; NPix = ' + string(Fix(NumOnes)), $
> XSize = 350, YSize = 375, XPos = 0, YPos = 0
> Plot, WavL, MeanPT, PSYM = 2, TickLen = 1, XGrid = 1, YGrid = 1, YRange =
> MaxY
> Window, 1, Title = 'P BkGnd ; NPix = ' + string(Fix(17000 - NumOnes)), $
> XSize = 350, YSize = 350, XPos = 0, YPos = 375
> Plot, WavL, MeanPB, PSYM = 2, TickLen = 1, XGrid = 1, YGrid = 1, YRange =
> MaxY
>
> this seems inefficient, what is a better way?
>
> Thanks,
>
> John Piccirillo
>
>
>
>