PRO surfertable_update, itable, name, p,r,g,b, bw=bw @compile_opt.pro ; On error, return to caller InitVar, bw, /key n_colors = 256 pp = round( p/100.0*(n_colors-1) ) rr = bytarr(n_colors) gg = bytarr(n_colors) bb = bytarr(n_colors) FOR i=1,n_elements(pp)-1 DO BEGIN np = pp[i]-pp[i-1] rr[pp[i-1]:pp[i]-1] = round(gridgen( np, range=r[i-1:i] )) gg[pp[i-1]:pp[i]-1] = round(gridgen( np, range=g[i-1:i] )) bb[pp[i-1]:pp[i]-1] = round(gridgen( np, range=b[i-1:i] )) ENDFOR IF bw THEN BEGIN rr[ [0,n_colors-1] ] = [ 0, 255 ] gg[ [0,n_colors-1] ] = [ 0, 255 ] bb[ [0,n_colors-1] ] = [ 0, 255 ] ENDIF ; IDL has 41 color tables (0..40). ; Add Surfer at the top (can only be done from root account) print, name, itable modifyct, itable, name, rr, gg, bb RETURN & END PRO surfertable @compile_opt.pro ; On error, return to caller itable = 40 ; Last IDL table it = itable ; ===================================== SURFER 1 (41) it = it+1 p = [ 0, 8, 20, 40, 70,100] r = [255,255,255,255, 0, 0] g = [255,255, 0, 0, 0, 0] b = [255,204, 0,255,255, 0] surfertable_update, it, 'Surfer'+strcompress(it-itable,/rem), p, r, g, b ; ===================================== SURFER 2 (42) it = it+1 p = [ 0, 50, 100] r = [255, 255, 0] g = [ 0, 255, 0] b = [ 0, 255, 255] surfertable_update, it, 'Surfer'+strcompress(it-itable,/rem), p, r, g, b, /bw ; ===================================== SURFER 3 (43) it = it+1 p = [ 0, 25, 50, 75, 100] r = [255, 255, 255, 0, 0] g = [ 0, 204, 255, 255, 0] b = [ 0, 153, 255, 255, 255] surfertable_update, it, 'Surfer'+strcompress(it-itable,/rem), p, r, g, b, /bw ; ===================================== SURFER 4 (44) it = it+1 p = [ 0, 0.454545, 9.090909, 10.454545, 15.909091, 95.566502, 100] r = [255, 255, 255, 153, 0, 0, 255] g = [255, 102, 255, 255, 255, 0, 255] b = [255, 102, 255, 255, 255, 255, 255] surfertable_update, it, 'Surfer'+strcompress(it-itable,/rem), p, r, g, b, /bw ; ===================================== SURFER 5 (45) it = it+1 p = [ 0, 50, 95, 100] r = [255, 255, 255, 255] g = [255, 204, 0, 255] b = [255, 153, 0, 255] p = [ 0, 50, 94, 95, 100] r = [255, 255, 255, 255, 255] g = [255, 204, 0, 255, 255] b = [255, 153, 0, 255, 255] surfertable_update, it, 'Surfer'+strcompress(it-itable,/rem), p, r, g, b, /bw ; ===================================== SURFER 6 (46) it = it+1 p = [0, 0.5, 1.0, 16.666667, 25.00000, 41.666667, 83.333333, 99.5, 100] r = [0, 0, 153, 0, 0, 255, 255, 255, 0] g = [0, 0, 0, 0, 0, 255, 255, 255, 0] b = [0, 0, 204, 255, 255, 255, 255, 0, 0] surfertable_update, it, 'Surfer'+strcompress(it-itable,/rem), p, r, g, b, /bw RETURN & END