- Timestamp:
- 07/21/07 23:00:28 (14 months ago)
- Location:
- misc/clouds
- Files:
-
- 2 modified
-
clouds.pro (modified) (1 diff)
-
d_vectrack.pro (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
misc/clouds/clouds.pro
r791 r794 94 94 95 95 meta = { 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, $ 104 101 xrange: [-150,150], $ 105 102 yrange: [-150,150], $ 106 zrange: [0.5,20] } 103 zrange: [0.5,20], $ 104 zticks: 13 } 107 105 108 d_vectrack, data=data, meta=meta 106 d_vectrack, data=data, meta=meta, /showvolume 109 107 end 110 108 -
misc/clouds/d_vectrack.pro
r793 r794 412 412 413 413 '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) 414 419 IF (sState.bShow[0]) THEN BEGIN 415 420 bUpdate = 1 … … 418 423 END 419 424 '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) 420 430 IF (sState.bShow[1]) THEN BEGIN 421 431 bUpdate = 2 … … 424 434 END 425 435 '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) 426 441 IF (sState.bShow[2]) THEN BEGIN 427 442 bUpdate = 3 … … 567 582 ;; Get the data size 568 583 sz = SIZE(d0) 584 xMax = sz[1] - 1 585 yMax = sz[2] - 1 586 zMax = sz[3] - 1 587 569 588 570 589 ;; Create widgets. … … 586 605 endelse 587 606 607 608 609 588 610 ;; Create the menu bar. It contains the file/quit, edit/ shade-style 589 611 wFileButton = WIDGET_BUTTON(barBase, VALUE='File', /MENU) … … 595 617 wRowBase = WIDGET_BASE(wGuiBase, /ROW ) 596 618 wFrameBase = WIDGET_BASE(wRowBase, /COLUMN, /FRAME) 619 620 621 622 597 623 wLabel = WIDGET_LABEL(wFrameBase,VALUE='Planes:') 598 599 624 ;; 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, $ 601 630 TITLE='X Plane', UVALUE='X_VALUE', $ 602 VALUE= FIX(sz[1]*0.75), /DRAG)631 VALUE=xMax*0.75, /SUPPRESS_VALUE, /DRAG) 603 632 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, $ 605 638 TITLE='Y Plane', UVALUE='Y_VALUE', $ 606 value= sz[2]/2, /DRAG )639 value=yMax*0.50, /SUPPRESS_VALUE, /DRAG ) 607 640 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, $ 609 646 TITLE='Z Plane', UVALUE='Z_VALUE', $ 610 VALUE= 9 ge sz[3]-1? 0:9, /DRAG)647 VALUE=zMax*0.10, /SUPPRESS_VALUE, /DRAG) 611 648 wZbutton = WIDGET_BUTTON(wFrameBase,VALUE='Explore Plane',UVALUE='Z_PLANE') 612 649 650 651 652 653 613 654 wFrameBase = WIDGET_BASE(wRowBase, /COLUMN, /FRAME) 614 655 frame = !version.os_family ne 'unix' ; Workaround problem 7763. 656 657 658 659 660 615 661 IF KEYWORD_SET(showvolume) THEN BEGIN 616 662 wVVolSel = WIDGET_DROPLIST(wFrameBase,VALUE=dnames, $ … … 636 682 wSpace = WIDGET_LABEL(wFrameBase,VALUE='Plane Settings:') 637 683 638 ; calculate the transparency value = mode+1684 ;Calculate the transparency value = mode+1 639 685 transparencyMin = KDM_RANGE(mode(d0), [min(d0),max(d0)], [0,255] )+1 640 686 wAlphamin = WIDGET_SLIDER(wFrameBase,/SUPPRESS_VALUE,UVAL='ALPHA_LEVEL', $ … … 695 741 696 742 ;; Compute data bounds. 697 sz = SIZE(d0)698 xMax = sz[1] - 1699 yMax = sz[2] - 1743 ;sz = SIZE(d0) 744 ;xMax = sz[1] - 1 745 ;yMax = sz[2] - 1 700 746 ;; zMin= 0 701 zMax = sz[3] - 1747 ;zMax = sz[3] - 1 702 748 ;;zMin2 = zMin - 1 703 749 ;;zMax2 = zMax + 1 … … 713 759 zs = [-0.5*zMax/maxDim, 1.0/maxDim] * zzscl 714 760 761 762 715 763 ;; Create the axis objects. 716 764 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, $ 719 773 XCOORD_CONV=[xs[0],xs[1]], $ 720 774 YCOORD_CONV=ys, $ … … 722 776 oGroup->Add, oAxis 723 777 778 779 724 780 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,$ 727 789 XCOORD_CONV=xs, $ 728 790 YCOORD_CONV=[ys[0],ys[1]], $ … … 730 792 oGroup->Add, oAxis 731 793 794 795 732 796 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)) 734 801 oAxis = OBJ_NEW('IDLgrAxis', 2, COLOR=[255,255,255], $ 735 802 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, $ 739 805 XCOORD_CONV=xs, $ 740 YCOORD_CONV= [.5 * yMax/maxDim,1.0/maxDim], $806 YCOORD_CONV= -ys, $ 741 807 ZCOORD_CONV=[zs[0],zs[1]]) 742 808 oGroup->Add, oAxis 743 809 810 811 744 812 ;; wireframe box 745 813 oBox = OBJ_NEW('IDLgrPolyline', $ … … 852 920 oHolder->Add, oYTitle 853 921 oHolder->Add, oZTitle 854 ; ;oHolder->Add, oTickText922 ;oHolder->Add, oTickValue 855 923 oHolder->Add, oCBTitle 856 924 oHolder->Add, oPal … … 883 951 meta: XIASTREC(meta) ? meta : 0, $ 884 952 btndown: 0b, $ 885 dragq: 2, $886 dnames: dnames, $887 minmaxarr: minmaxarr, $953 dragq: 2, $ 954 dnames: dnames, $ 955 minmaxarr: minmaxarr, $ 888 956 vdata:vdata, $ 889 957 bShow: [0b,0b,0b], $ … … 893 961 oTrack:oTrack, $ 894 962 wXSlider:wXSlider, $ 963 wXtext:wXtext, $ 895 964 wYSlider:wYSlider, $ 965 wYtext:wYtext, $ 896 966 wZSlider:wZSlider, $ 967 wZtext:wZtext, $ 897 968 wIsoLevel: wIsoLevel, $ 898 969 wIsoText: wIsoText, $ 899 970 wAlpha: [wAlphamin,wAlphamax], $ 900 wTimeStep: wTimeStep, $901 wTimeText: wTimeText, $971 wTimeStep: wTimeStep, $ 972 wTimeText: wTimeText, $ 902 973 wDraw: wDraw, $ 903 974 wLabel: wLabel, $ … … 910 981 iImgVol: 0, $ 911 982 iVrendVol: 0, $ 912 oVols: volarr, $983 oVols: volarr, $ 913 984 oSlices: [oXPolygon,oYPolygon,oZPolygon], $ 914 985 oIsopolygon: oIsopolygon, $ 915 986 oImages: [oXImage,oYImage,oZImage], $ 916 987 iIsoVol: 0, $ 917 fIsoLevel: 128, $918 fWidth: fWidth, $988 fIsoLevel: 128, $ 989 fWidth: fWidth, $ 919 990 bIsoShow: 0, $ 920 bVolShow: 0, $991 bVolShow: 0, $ 921 992 oXPolyline: oXPolyline,$ 922 993 oYPolyline: oYPolyline,$ 923 oZPolyline: oZPolyline, $924 ColorTable: colorTable, $ ; Color table to restore at exit994 oZPolyline: oZPolyline,$ 995 ColorTable: colorTable,$ ; Color table to restore at exit 925 996 debug: keyword_set(debug), $ 926 997 groupBase: 0 $ ;; Base of Group Leader 927 998 } 928 999 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 929 1005 ;; Initialize with an interesting view 930 1006 sState.bShow[*]=1
