Changeset 794 for misc

Show
Ignore:
Timestamp:
07/21/07 23:00:28 (14 months ago)
Author:
mankoff
Message:

The meta values

'xrange', etc, now all work, and you can see it on both the axis
and the sliders. I polished some 'default' stuff and fixed some
source code for readability.

Location:
misc/clouds
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • misc/clouds/clouds.pro

    r791 r794  
    9494 
    9595meta = { time: time, $ 
    96 ;         xtitle: 'Kilometers from 12.2522 Deg. South', $ 
    97 ;         ytitle: 'Kilometers from 131.0428 Deg. East', $ 
    98 ;         ztitle: 'Altitude (km)', $ 
    99          xtitle: 'Array Index', $ 
    100          ytitle: 'Array Index', $ 
    101          ztitle: 'Array Index', $ 
    102          xscale: 1.5, yscale: 1.5, $ 
    103          zscale: 0.5, $ 
     96         xtitle: 'Kilometers from 12.2522 Deg. South', $ 
     97         ytitle: 'Kilometers from 131.0428 Deg. East', $ 
     98         ztitle: 'Altitude (km)', $ 
     99;         xscale: 1.5, yscale: 1.5, $ 
     100;         zscale: 0.5, $ 
    104101         xrange: [-150,150], $ 
    105102         yrange: [-150,150], $ 
    106          zrange: [0.5,20] } 
     103         zrange: [0.5,20], $ 
     104         zticks: 13 } 
    107105 
    108 d_vectrack, data=data, meta=meta 
     106d_vectrack, data=data, meta=meta, /showvolume 
    109107end 
    110108 
  • misc/clouds/d_vectrack.pro

    r793 r794  
    412412      
    413413     'X_VALUE': BEGIN 
     414         minmax = WIDGET_INFO(sState.wXSlider, /SLIDER_MIN_MAX) 
     415         slider_value = XIASTREC(sState.meta,'xrange')?sState.meta.xrange:minmax 
     416         WIDGET_CONTROL, sState.wXSlider, GET_VALUE=Val 
     417         slider_value = kdm_range(Val, minmax, slider_value) 
     418         WIDGET_CONTROL, sState.wXtext, SET_VALUE=STRtrim(string(slider_value, FORMAT='(F10.3)'), 2) 
    414419        IF (sState.bShow[0]) THEN BEGIN 
    415420           bUpdate = 1 
     
    418423     END 
    419424     'Y_VALUE': BEGIN 
     425         minmax = WIDGET_INFO(sState.wYSlider, /SLIDER_MIN_MAX) 
     426         slider_value = XIASTREC(sState.meta,'yrange')?sState.meta.yrange:minmax 
     427         WIDGET_CONTROL, sState.wYSlider, GET_VALUE=Val 
     428         slider_value = kdm_range(Val, minmax, slider_value) 
     429         WIDGET_CONTROL, sState.wYtext, SET_VALUE=STRtrim(string(slider_value, FORMAT='(F10.3)'), 2) 
    420430        IF (sState.bShow[1]) THEN BEGIN 
    421431           bUpdate = 2 
     
    424434     END 
    425435     'Z_VALUE': BEGIN 
     436         minmax = WIDGET_INFO(sState.wZSlider, /SLIDER_MIN_MAX) 
     437         slider_value = XIASTREC(sState.meta,'zrange')?sState.meta.zrange:minmax 
     438         WIDGET_CONTROL, sState.wZSlider, GET_VALUE=Val 
     439         slider_value = kdm_range(Val, minmax, slider_value) 
     440         WIDGET_CONTROL, sState.wZtext, SET_VALUE=STRtrim(string(slider_value, FORMAT='(F10.3)'), 2) 
    426441        IF (sState.bShow[2]) THEN BEGIN 
    427442           bUpdate = 3 
     
    567582  ;; Get the data size 
    568583  sz = SIZE(d0) 
     584  xMax = sz[1] - 1 
     585  yMax = sz[2] - 1 
     586  zMax = sz[3] - 1 
     587 
    569588 
    570589  ;;  Create widgets. 
     
    586605  endelse 
    587606   
     607 
     608 
     609 
    588610  ;;  Create the menu bar. It contains the file/quit, edit/ shade-style 
    589611  wFileButton = WIDGET_BUTTON(barBase, VALUE='File', /MENU) 
     
    595617  wRowBase = WIDGET_BASE(wGuiBase, /ROW ) 
    596618  wFrameBase = WIDGET_BASE(wRowBase, /COLUMN, /FRAME) 
     619 
     620 
     621 
     622 
    597623  wLabel = WIDGET_LABEL(wFrameBase,VALUE='Planes:') 
    598  
    599624  ;; Turn on all image planes. Set slider values 
    600   wXSlider = WIDGET_SLIDER(wFrameBase, MAXIMUM=sz[1]-1, $ 
     625 
     626  slider_value = XIASTREC(meta,'xrange')?meta.xrange:[0, xMax] 
     627  slider_value = kdm_range(xMax*0.75, [0, xMax], slider_value) 
     628  wXtext = WIDGET_LABEL(wFrameBase, VALUE=STRtrim(slider_value, 2)) 
     629  wXSlider = WIDGET_SLIDER(wFrameBase, MAXIMUM=xMax, $ 
    601630                           TITLE='X Plane', UVALUE='X_VALUE', $ 
    602                            VALUE=FIX(sz[1]*0.75), /DRAG) 
     631                           VALUE=xMax*0.75, /SUPPRESS_VALUE, /DRAG) 
    603632  wXbutton = WIDGET_BUTTON(wFrameBase,VALUE='Explore Plane',UVALUE='X_PLANE') 
    604   wYSlider = WIDGET_SLIDER(wFrameBase, MAXIMUM=sz[2]-1, $ 
     633 
     634  slider_value = XIASTREC(meta,'yrange')?meta.yrange:[0, yMax] 
     635  slider_value = kdm_range(yMax*0.50, [0, yMax], slider_value) 
     636  wYtext = WIDGET_LABEL(wFrameBase, VALUE=STRtrim(slider_value, 2)) 
     637  wYSlider = WIDGET_SLIDER(wFrameBase, MAXIMUM=yMax, $ 
    605638                           TITLE='Y Plane', UVALUE='Y_VALUE', $ 
    606                            value=sz[2]/2, /DRAG ) 
     639                           value=yMax*0.50, /SUPPRESS_VALUE, /DRAG ) 
    607640  wYbutton = WIDGET_BUTTON(wFrameBase,VALUE='Explore Plane',UVALUE='Y_PLANE') 
    608   wZSlider = WIDGET_SLIDER(wFrameBase, MAXIMUM=sz[3]-1, $ 
     641 
     642  slider_value = XIASTREC(meta,'zrange')?meta.zrange:[0, zMax] 
     643  slider_value = kdm_range(zMax*0.10, [0, zMax], slider_value) 
     644  wZtext = WIDGET_LABEL(wFrameBase, VALUE=STRtrim(slider_value, 2)) 
     645  wZSlider = WIDGET_SLIDER(wFrameBase, MAXIMUM=zMax, $ 
    609646                           TITLE='Z Plane', UVALUE='Z_VALUE', $ 
    610                            VALUE=9 ge sz[3]-1? 0:9, /DRAG) 
     647                           VALUE=zMax*0.10, /SUPPRESS_VALUE, /DRAG) 
    611648  wZbutton = WIDGET_BUTTON(wFrameBase,VALUE='Explore Plane',UVALUE='Z_PLANE') 
    612649   
     650 
     651 
     652 
     653 
    613654  wFrameBase = WIDGET_BASE(wRowBase, /COLUMN, /FRAME) 
    614655  frame = !version.os_family ne 'unix' ; Workaround problem 7763. 
     656 
     657 
     658 
     659 
     660 
    615661  IF KEYWORD_SET(showvolume) THEN BEGIN 
    616662     wVVolSel = WIDGET_DROPLIST(wFrameBase,VALUE=dnames, $ 
     
    636682  wSpace = WIDGET_LABEL(wFrameBase,VALUE='Plane Settings:') 
    637683   
    638                                 ; calculate the transparency value = mode+1 
     684  ;Calculate the transparency value = mode+1 
    639685  transparencyMin = KDM_RANGE(mode(d0), [min(d0),max(d0)], [0,255] )+1 
    640686  wAlphamin = WIDGET_SLIDER(wFrameBase,/SUPPRESS_VALUE,UVAL='ALPHA_LEVEL', $ 
     
    695741   
    696742  ;; Compute data bounds. 
    697   sz = SIZE(d0) 
    698   xMax = sz[1] - 1 
    699   yMax = sz[2] - 1 
     743  ;sz = SIZE(d0) 
     744  ;xMax = sz[1] - 1 
     745  ;yMax = sz[2] - 1 
    700746  ;; zMin= 0 
    701   zMax = sz[3] - 1 
     747  ;zMax = sz[3] - 1 
    702748  ;;zMin2 = zMin - 1 
    703749  ;;zMax2 = zMax + 1 
     
    713759  zs = [-0.5*zMax/maxDim, 1.0/maxDim] * zzscl 
    714760   
     761 
     762 
    715763  ;; Create the axis objects. 
    716764  oXTitle = OBJ_NEW('IDLgrText', XIASTREC(meta,'xtitle')?meta.xtitle:'X') 
    717   oAxis = OBJ_NEW('IDLgrAxis', 0, COLOR=[255,255,255],RANGE=[0,xMax-1],$ 
    718                   TITLE=oXTitle,TICKLEN=2,$ 
     765  TickValues = makex(0, xMax, xMax*.25) 
     766  _range = XIASTREC(meta,'xrange')?meta.xrange:[0, xMax] 
     767  TickValues = kdm_range(TickValues, [0, xMax], _range) 
     768  oTickValues = OBJ_NEW('IDLgrText', STRINGS=STRtrim(string(TickValues, FORMAT='(F10.2)'), 2)) 
     769  oAxis = OBJ_NEW('IDLgrAxis', 0, COLOR=[255,255,255], $ 
     770                  RANGE=[0,xMax], /EXACT, $ 
     771                  MAJOR=n_elements(TickValues), $ 
     772                  TITLE=oXTitle, TICKTEXT=oTickValues, TICKLEN=2, $ 
    719773                  XCOORD_CONV=[xs[0],xs[1]], $ 
    720774                  YCOORD_CONV=ys, $ 
     
    722776  oGroup->Add, oAxis 
    723777   
     778 
     779 
    724780  oYTitle = OBJ_NEW('IDLgrText', XIASTREC(meta,'ytitle')?meta.ytitle:'Y') 
    725   oAxis = OBJ_NEW('IDLgrAxis', 1, COLOR=[255,255,255],RANGE=[0,yMax-1],$ 
    726                   TITLE=oYTitle,TICKLEN=2,$ 
     781  TickValues = makex(0, yMax, yMax*.25) 
     782  _range = XIASTREC(meta,'yrange')?meta.yrange:[0, yMax] 
     783  TickValues = kdm_range(TickValues, [0, yMax], _range) 
     784  oTickValues = OBJ_NEW('IDLgrText', STRINGS=STRtrim(string(TickValues, FORMAT='(F10.2)'), 2)) 
     785  oAxis = OBJ_NEW('IDLgrAxis', 1, COLOR=[255,255,255], $ 
     786                  RANGE=[0,yMax], /EXACT, $ 
     787                  MAJOR=n_elements(TickValues), $ 
     788                  TITLE=oYTitle, TICKTEXT=oTickValues, TICKLEN=2,$ 
    727789                  XCOORD_CONV=xs, $ 
    728790                  YCOORD_CONV=[ys[0],ys[1]], $ 
     
    730792  oGroup->Add, oAxis 
    731793   
     794 
     795 
    732796  oZTitle = OBJ_NEW('IDLgrText', XIASTREC(meta,'ztitle')?meta.ztitle:'Z') 
    733   ;;oTickText = OBJ_NEW('IDLgrText', STRTRIM(makex(0,zMax,zMax/5),2)) 
     797  TickValues = makex(0, zMax, zMax*.25) 
     798  _range = XIASTREC(meta,'zrange')?meta.zrange:[0, zMax] 
     799  TickValues = kdm_range(TickValues, [0, zMax], _range) 
     800  oTickValues = OBJ_NEW('IDLgrText', STRINGS=STRtrim(string(TickValues, FORMAT='(F10.2)'), 2)) 
    734801  oAxis = OBJ_NEW('IDLgrAxis', 2, COLOR=[255,255,255], $ 
    735802                  RANGE=[0,zMax-1],$ 
    736                   /EXACT, $ 
    737                   ;;TICKTEXT=oTickText, $ 
    738                   TICKLEN=2,TITLE=oZTitle,$ 
     803                  /EXACT, MAJOR=n_elements(TickValues), $ 
     804                  TITLE=oZTitle, TICKTEXT=oTickValues, TICKLEN=2, $ 
    739805                  XCOORD_CONV=xs, $ 
    740                   YCOORD_CONV=[.5 * yMax/maxDim,1.0/maxDim], $ 
     806                  YCOORD_CONV= -ys, $ 
    741807                  ZCOORD_CONV=[zs[0],zs[1]]) 
    742808  oGroup->Add, oAxis 
    743809   
     810 
     811 
    744812  ;; wireframe box 
    745813  oBox = OBJ_NEW('IDLgrPolyline', $ 
     
    852920  oHolder->Add, oYTitle 
    853921  oHolder->Add, oZTitle 
    854   ;;oHolder->Add, oTickText 
     922  ;oHolder->Add, oTickValue 
    855923  oHolder->Add, oCBTitle 
    856924  oHolder->Add, oPal 
     
    883951            meta: XIASTREC(meta) ? meta : 0, $ 
    884952            btndown: 0b,           $ 
    885             dragq: 2,          $ 
    886             dnames: dnames, $ 
    887             minmaxarr: minmaxarr, $  
     953            dragq: 2,              $ 
     954            dnames: dnames,        $ 
     955            minmaxarr: minmaxarr,  $  
    888956            vdata:vdata,           $ 
    889957            bShow: [0b,0b,0b],     $ 
     
    893961            oTrack:oTrack,         $ 
    894962            wXSlider:wXSlider,     $ 
     963            wXtext:wXtext,         $ 
    895964            wYSlider:wYSlider,     $ 
     965            wYtext:wYtext,         $ 
    896966            wZSlider:wZSlider,     $ 
     967            wZtext:wZtext,         $ 
    897968            wIsoLevel: wIsoLevel,  $ 
    898969            wIsoText: wIsoText,    $ 
    899970            wAlpha: [wAlphamin,wAlphamax],    $ 
    900             wTimeStep: wTimeStep, $ 
    901             wTimeText: wTimeText, $ 
     971            wTimeStep: wTimeStep,  $ 
     972            wTimeText: wTimeText,  $ 
    902973            wDraw: wDraw,          $ 
    903974            wLabel: wLabel,        $ 
     
    910981            iImgVol: 0,            $ 
    911982            iVrendVol: 0,          $ 
    912             oVols: volarr, $ 
     983            oVols: volarr,         $ 
    913984            oSlices: [oXPolygon,oYPolygon,oZPolygon], $ 
    914985            oIsopolygon: oIsopolygon, $ 
    915986            oImages: [oXImage,oYImage,oZImage], $ 
    916987            iIsoVol: 0,            $ 
    917             fIsoLevel: 128,      $ 
    918             fWidth: fWidth, $ 
     988            fIsoLevel: 128,        $ 
     989            fWidth: fWidth,        $ 
    919990            bIsoShow: 0,           $ 
    920             bVolShow: 0, $ 
     991            bVolShow: 0,           $ 
    921992            oXPolyline: oXPolyline,$ 
    922993            oYPolyline: oYPolyline,$ 
    923             oZPolyline: oZPolyline, $ 
    924             ColorTable: colorTable, $ ; Color table to restore at exit 
     994            oZPolyline: oZPolyline,$ 
     995            ColorTable: colorTable,$ ; Color table to restore at exit 
    925996            debug: keyword_set(debug), $ 
    926997            groupBase: 0 $     ;; Base of Group Leader 
    927998           } 
    928999   
     1000  ;;Update the Iso level with some proper default value 
     1001  WIDGET_CONTROL, sState.wIsotext, $ 
     1002    SET_VALUE=strcompress(STRING((.5*(sState.minmaxarr[1,sState.iIsoVol]) + $ 
     1003                                  (sState.minmaxarr[0,sState.iIsoVol]*(.5))))) 
     1004 
    9291005  ;; Initialize with an interesting view 
    9301006  sState.bShow[*]=1