function expscl_limits,vmn,vmx,cmn,cmx,nlevels=nl if (n_elements(nc) EQ 0) then nc=18 if (n_elements(nl) EQ 0) then nl=6 nc=cmx-cmn+1 lmin=fltarr(nc) lmax=fltarr(nc) ; Set values between 0.0 and 1.0*scl to 1 if (vmn EQ -vmx) then begin scl=vmx/2.0^(nl/2) c0=fix(nc/2) if (nl MOD 2 NE 0) then nl = nl + 1 endif else begin scl=vmx/2.0^nl endelse ; Apply scaling to remaining values if (vmn EQ -vmx) then begin lmin[0]=scl j = 1 n = 1 for i=c0-1,0,-1 do begin x=float(j*nl)/float(nc-1) lmax[i]=2.0^x*scl ;print,i,j,lmin,lmax,lmax-lmin,cmn+i lmin[i+1]=lmax[i] j = j + 1 n = n + 1 endfor x=float(nl)/float(nc-1) lmin[c0]=-scl lmax[c0]=scl ;print,i,j,lmin,lmax,lmax-lmin,cmn+c0 n = n + 1 lmin[n]=scl j = 1; for i=c0+1,nc-1 do begin x=float(j*nl)/float(nc-1) lmax[i]=2.0^x*scl ;print,i,j,lmin,lmax,lmax-lmin,cmn+i lmin[i+1]=lmax[i] j = j + 1 n = n + 1 endfor endif else begin lmin[0]=scl for i=1,nc do begin x=float(i*nl)/float(nc) lmax[i-1]=2.0^x*scl if (i NE nc) then lmin[i]=lmax[i-1] endfor endelse return,[transpose(lmin),transpose(lmax)] end