On Nov 26, 5:09 am, Jeremy Bailin <astroco...@gmail.com> wrote:
> On Nov 26, 7:37 am, "Jean H." <jghas...@DELTHIS.ucalgary.ANDTHIS.ca>
> wrote:
>
>
>
>> mbwel...@gmail.com wrote:
>>> Hello,
>
>>> I am running the code:
>
>>> image = fltarr(nx,ny)
>>> deltax = (xrange[1]-xrange[0])/float(nx)
>>> deltay = (yrange[1]-yrange[0])/float(ny)
>>> for i=0l,ndata-1 do $
>>> image[(left[i]-xrange[0])/deltax:(right[i]-xrange[0])/deltax , $
>>> (bottom[i]-yrange[0])/deltay:(top[i]-yrange[0])/deltay] =
>>> magnitude
>>> [i]
>
>>> where: nx=ny=180
>>> xrange= [-180,0]
>>> yrange = [-90,90]
>>> ndata = 32400 ( or180^2 or nx*ny)
>>> eg left -180
>>> right -179
>>> top 90
>>> bottom 89
>>> magnitude 0.1648
>
>>> and i get the error when I run the code:
>
>>> % Subscript range values of the form low:high must be >= 0, < size,
>>> with low <= high: IMAGE
>
>>> I assume the problem is in the way that my data is ordered, and I have
>>> tried switching lows and highs around, but to no avail. I would
>>> imagine this is pretty simple to solve, but it is not clear to me
>>> right now.
>
>>> Any insight?
>
>>> Thanks,
>
>>> ~Matt
>
>> Hi,
>> with the data you provide, you are out of bounds...
>> (bottom[i]-yrange[0])/deltay:(top[i]-yrange[0])/deltay] ==> 179:180
>> ... 180 is out of bound. Remember that indexing is from 0 to n-1. You
>> might want to throw a -1 in your indexes...
>> As Chris has suggested it, print your indexes and be sure they are correct!
>
>> Jean
>
> That looks distinctly like code I suggested. ;-)
>
> Yes, Jean is exactly right - there should be -1 in both the "top" and
> "right" part of the indexing, i.e. replace the current line with:
>
> image[(left[i]-xrange[0])/deltax:(right[i]-xrange[0])/delt ax-1, $
> (bottom[i]-yrange[0])/deltay:(top[i]-yrange[0])/deltay-1] =
> magnitude[i]
>
> Sorry about that!
>
> -Jeremy.
That fixed the problem! Thank you all for your help; However, as these
things often go, I have a new problem.
In trying to run:
erase
loadct, 10 ; or whatever you want - the Brewer tables would probably
be useful
location = [0.1,0.1,0.9,0.9]
tvimage, bytscl(image,top=250)+4, position=location
plot, /noerase, /nodata, [0],[0], position=location, xrange=xrange,
yrange=yrange
I get an error that I don't quite understand (probably my relative
inexperience) with:
tvimage, bytscl(image,top=250)+4, position=location
Erase, Color=FSC_Color(background, BREWER=brewer)
^
% Syntax error.
At: G:\Mars_tectonics\IDL_programs\tvimage.pro, Line 662
IF Size(acolor, /TNAME) EQ 'STRING' THEN acolor = FSC_COLOR
(acolor, BREWER=brewer)
^
% Syntax error.
At: G:\Mars_tectonics\IDL_programs\tvimage.pro, Line 995
% Compiled module: TVIMAGE.
% Attempt to call undefined procedure/function: 'TVIMAGE'.
% Execution halted at: $MAIN$
Is this a problem within TVImage, or something I failed to do
correctly?
And Jeremy the code should look familiar ;)
Thanks again for you help
~Matt
|