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

Home » Public Forums » archive » Re: Map image with a sparse array
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Map image with a sparse array [message #18659 is a reply to message #18650] Fri, 21 January 2000 00:00 Go to previous message
Liam E. Gumley is currently offline  Liam E. Gumley
Messages: 378
Registered: January 2000
Senior Member
whdaffer@my-deja.com wrote:

> I have the following problem. I have an array of geographically
> colocated data (0.5 by 0.5 degree grid) that is the result of averaging
> all 253 swaths of one cycle of Topex data into this grid. Topex data has
> a small (3 or maybe 10km) swath, so the majority of the grid location
> (65%) are 'bad' in the sense that those grid elements contain no
> averaged data.
>
> I want to display this by mapping it using map_set/map_image. The old
> method simply 'tv'd the image to the screen and then finessed applying
> the continents/grid lines to the image. A bit of a boondogle, and not
> very upgradeable.
>
> The problem is that there seems to be no way to tell map_image (and
> map_patch too) that certain data (the 'bad' data value) should be
> excluded from whatever
> averaging/bilinear-interpolation/nearest-neighbor-chosing method is used
> and the 'mapped' image has places that are clearly corrupted by the
> presence of the bad data. The problem is ameliorated by use nearest
> neighbor rather than bilinear interpolation (i.e. bilinear=0) and I am
> setting compress=0, so that the inverse transformation is done on each
> pixel. Also, I've started out with a window set to the size of the input
> data array and with map_set,position=[0.,0,1,1] so that the mapping
> coordinate system occupies the entire window. These remedies I hit upon
> thinking that they would minimize the damage, and they have done that,
> but when I compare my results with the older, more 'pristine' but vastly
> less portible, upgradeable, maintainable method, there are big
> differences.
>
> The 'missing' keyword just sets elements outside the range input via
> the 'min' and 'max' keywords and those outside of the mapping
> coordinates to the bad value, it doesn't allow one to exclude data from
> the averaging/interpolation/chosing method.

Assuming
(1) Your data ('grid') is already on a 0.5 x 0.5 degree grid,
(2) The data range is 0.0 to 100.0 (adjust to taste),
(3) The missing value is -999.0 (adjust to taste),

image = bytscl(grid, min=0.0, max=100.0, top=!d.table_size-2) + 1B
index = where(grid eq -999.0, count)
if (count gt 0) then image[index] = 0B

map_set, /aitoff, /isotropic
mapped = map_image(image, startx, starty, xsize, ysize, $
latmin=-90.0, latmax=90.0, lonmin=-180.0, lonmax=180.0, $
compress=1, missing=0B, scale=0.05)

loadct, 13, bottom=1
tv, mapped, startx, starty, xsize=xsize, ysize=ysize

Cheers,
Liam.
http://cimss.ssec.wisc.edu/~gumley
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: IDL Programming Odditites
Next Topic: 3D object - human

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

Current Time: Sat Oct 11 03:03:36 PDT 2025

Total time taken to generate the page: 0.72145 seconds