Affixing a 2D image plot to a surface in Gizmo

I have Igor 6.22A. I have a topographic surface plotted in Gizmo from a 2D wave that I would like to put a texture on to provide the coloring. I would like the texture to match an image plot I also have. The image plot is of a 2D wave where the color of the plot is from a standard color table. I know how to put a texture on if it comes from a .jpeg mainly because I have a recreation macro that does it, so perhaps I just need a way to convert the image plot area into a jpeg.

As an aside, in the tutorial video on textures, the info window object list pulldown menu has the option to create a new group object, but I don't have that option. Is there a reason this is the case?
After getting a phone explanation, my problem is solved, and without textures.

I had to use:
imageinterpolate/resl={512,512} bilinear imageplotwavename
to resample the wave data to the same X-Y dimensions as the topo surface

modifygizmo makecolorwave={M_interpolatedimage,Rainbow,0}
to map the interpolated wave "M_interpolatedimage" onto a colortable, which becomes the color wave M_interpolatedimage_C

This can then be selected under Surface0 (or whatever) in the Gizmo Info Window as Surface Color/Color from Wave.
jmcclimo2003 wrote:
..In the tutorial video on textures, the info window object list pulldown menu has the option to create a new group object, but I don't have that option. Is there a reason this is the case?


Type this command to show that and other advanced options:

ModifyGizmo userlevel=9

--Jim Prouty
Software Engineer, WaveMetrics, Inc.
I'm back with a related problem. I have a gizmo plot (in Igor 7 now) with topographic surface data in an array of 2048x2048 pixels. I would like to append colors based on spectrum data taken on an 8x8 grid within this range. The imageinterpolate command works great, except that the interpolation gives the false impression that the spectral data is taken at a much higher resolution than it is. Instead I would like to increase this 8x8 matrix to 2048x2048 for the surface coloring but maintain the 8x8 appearance of the boxes (i.e. don't interpolate the points, just have a big, single color square in the vicinity of each spectrum spot like if I do an image plot of the 8x8 matrix. Is this something I can do with reasonable effort?

Thanks,
Brandon
So what you want isn't an interpolation, you just want to fill a big matrix with values from your small matrix. Something like
Make/N=(2048,2048) bigmatrix
bigmatrix = smallmatrix[floor(p/256)][floor(q/256)]  // 256 = 2048/8


John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
The number type is irrelevant as the scaled wave is converted into a color wave via ModifyGizmo makeColorWave.
Thanks so much. I just had a chance to try it and this worked great. I have one other issue. If I add a colorscale annotation, the color scale runs from 0-100 and not the actual values the color scale was built from. Is there a way to make the colorscale run the range of the actual values? I have a workaround, which is to paste the colorscale from a 2D image plot onto the gizmo plot after export, so this isn't critical, but it would be nice to do this in the Gizmo window.


Thanks again,
Brandon
jmcclimo2003 wrote:
If I add a colorscale annotation, the color scale runs from 0-100 and not the actual values the color scale was built from. Is there a way to make the colorscale run the range of the actual values?


Unlike a regular graph, a colorScale in Gizmo is not necessarily representing values in the graph. For example, you may display a surface from waveA and you use waveB to color the surface using some arbitrary scale values. There is no way for the colorScale to know about your scaling so it obviously can't be made to automatically update.

A.G.