;+ ; NAME: ; RemoteView_Init ; PURPOSE: ; Sets up structure for volume data and viewing information ; CATEGORY: ; sat/idl/remoteview ; CALLING SEQUENCE: PRO RemoteView_Init, M3D, V3D, D3D, getcube=GetCube, fovcube=FOVCube, silent=silent, _extra=_extra ; OPTIONAL INPUT PARAMETERS: ; /silent controls display of messages ; /getcube ; if set, only the volume data array FOVCube is returned. ; None of the structures will exist on return. ; ; Keywords defining the volume data (passed to href=RemoteView_Init_Matrix=) ; f3dmat ; b3dmat ; matrix_time ; matrix_rect ; volsize ; start_lng ; degrees ; cme ; ; Keywords passed to href=RemoteView_Init_View= are explained there: ; degrees ; view_rect ; ecliptic ; location ; direction ; view_time ; fovsize ; fovtilt ; stereo ; ngrid ; eqdistance ; eqangle ; eqarea ; ; Keywords passed to href=RemoteView_Init_Display= are explained there: ; xysize ; gif ; tiff8 ; tiff24 ; bmp8 ; bmp24 ; interleave ; probe ; helios ; twinsc ; spgreen ; spred ; earth ; rotation (????) ; ; Keywords passed to href=RemoteView_rgbo= are explained there: ; full_color, ; full_opacity ; mid_range ; mid_color ; mid_opacity ; opacity_power ; update ; ; rotation=Rotation scalar; type: float ; ; The value of Rotation is used in three ways: ; 1. the fractional part is used to set the starting heliographic longitude, ; e.g. 1884.0 starts at 0 degrees; 1884.25 at 270 degrees. ; 2. if the image time in the States array is set to !values.f_nan, it is ; assumed to be the time at which the longitude corresponding to 'Rotation' ; crossed the central meridian (i.e. it is set to CarringtonT(Rotation)) ; 3. Rotation is passed to ReadSynopticMap to read in a map to be wrapped around ; the surface of the Sun ; ; OUTPUTS: ; M3D array[1]; type: structure ; contains information about volume data ; V3D array[1]; type: structure ; contains information about view ; D3D array[1]; type: structure ; contains information about display ; OPTIONAL OUTPUT PARAMETERS: ; fovcube = FOVCube ; 4-dim array; type: float ; Output only when /getcube is set. Contains the volume data ; for all views. ; INCLUDE: @compile_opt.pro ; On error, return to caller ; CALLS: ; RemoteView_Init_Matrix, RemoteView_Init_View, RemoteView_FOV, RemoteView_Destroy ; RemoteView_Destroy_FOV, RemoteView_Init_Display, IsType, InitVar ; PROCEDURE: ; The structures are actually set up by the RemoteView_Init_* functions. This procedure just ; functions as a wrapper to keep everything in one place. ; MODIFICATION HISTORY: ; APR-2001, Paul Hick (UCSD/CASS; pphick@ucsd.edu) ;- InitVar, getcube, /key InitVar, silent , 0 M3D = RemoteView_Init_Matrix(silent=silent, _extra=_extra) CASE IsType(M3D, /struct) OF 0: message, /info, 'no volume data available' 1: BEGIN V3D = RemoteView_Init_View(time=*M3D.time, silent=silent, _extra=_extra) ; If /getcube is set get the FOV cube for all views. CASE getcube OF 0: BEGIN fmin = min( *M3D.F3D, /nan, max=fmax ) D3D = RemoteView_Init_Display([fmin,fmax], _extra=_extra) ; Display characteristics END 1: BEGIN Status = RemoteView_FOV(V3D, M3D, FOVCube, FOVInfo) RemoteView_Destroy_FOV, FOVInfo RemoteView_Destroy, M3D=M3D, V3D=V3D END ENDCASE END ENDCASE RETURN & END