pro plot_pixels_color,data,lon,lat,pix_size=pix_size,levels=levels,color=color ; ; plot pixels with a given size or determined by the pixel distances ; ; num=n_elements(data) if (n_elements(data) ne n_elements(lat) and n_elements(data) ne n_elements(lon)) then begin print,'data must have same numbers as x and y' return endif if(n_elements(pix_size) lt 1) then begin pix_size=fltarr(2) dis=(lon(0:n_elements(lon)-2)-lon(1:n_elements(lon)-1))^2+$ (lat(0:n_elements(lat)-2)-lat(1:n_elements(lat)-1))^2 pix_size(0)=min(sqrt(dis))*0.75 pix_size(1)=min(sqrt(dis))*0.75 print,'pixels size is:',pix_size print,'Note: the pixel size calculated may not be correct. Then use: ,pix_size=[xsize,ysize] in the option' endif if(n_elements(levels) lt 1 or n_elements(color) lt 1) then begin restore,'~/idllib/pub/c_liu.clr' ind=5+indgen(21)*12 color=c_liu.colors(5,ind) color(0)=c_liu.white levels=min(data)+(max(data)-min(data))/22.0*(indgen(22)) endif step=levels(1)-levels(0) for k=0L,num-1 do begin ind=where(data(k) le levels[where(data(k) ge levels)+1]) colorindex=ind[0] if(colorindex gt n_elements(color)-1) then colorindex=n_elements(color)-1 if(colorindex gt n_elements(color)) then print,'impossible' if(colorindex ge 0) then ccolor=color(colorindex) if(colorindex lt 0) then ccolor=0 polyfill,[lon(k)-pix_size(0),lon(k)+pix_size(0),lon(k)+pix_size(0),lon(k)-pix_size(0),lon(k)-pix_size(0)],$ [lat(k)+pix_size(1),lat(k)+pix_size(1),lat(k)-pix_size(1),lat(k)-pix_size(1),lat(k)+pix_size(1)],$ color=ccolor endfor end