pro make_xrt_geometry, XRT_geometry, geometry, qabort, define=define, $ debug=debug ; ========================================================================= ;+ ; PROJECT: ; Solar-B / XRT ; ; NAME: ; MAKE_XRT_GEOMETRY ; ; CATEGORY: ; Calibration ; ; PURPOSE: ; Generate the XRT GEOMETRY structure. ; ; CALLING SEQUENCE: ; MAKE_XRT_GEOMETRY, XRT_geometry, geometry, [,qabort] [,/define] ; ; INPUTS: ; XRT_GEOMETRY: [Mandatory] Variable to return XRT_GEOMETRY structure ; GEOMETRY: [Optional] geometry input structure from config file ; ; KEYWORDS: ; /DEFINE: [Optional] when set returns only XRT_geometry structure ; definition. ; ; OUTPUTS: ; XRT_GEOMETRY: (structure) Returns fully populated geometry structure, ; or geometry skeleton if called with /DEFINE. ; QABORT: [Optional] program return status ; ; EXAMPLES: ; make_xrt_geometry, XRT_geometry, /define ; make_xrt_geometry, XRT_geometry, geometry, qabort ; ; COMMON BLOCKS: ; None. ; ; NOTES: ; Uses utility routine, timestamp.pro. ; ; MODIFICATION HISTORY: ; progver = 'v2008.Sep.15' ; --- (Alisdair Davey/Mark Weber) ; First debugged version. progver = 'v2008.Oct.01' ; --- (M.Weber) Reviewed version. ; ;- ; ========================================================================= qabort = 0 XRT_geometry = { XRT_geometry_v0001, $ type: '', $ geo_str_version: '', $ geo_str_descr: '', $ name: '', $ long_name: '', $ foc_len: double(0), $ foc_len_units: '', $ aperture_area: double(0), $ aperture_area_units: '', $ data_files: strarr(5), $ history: strarr(3), $ comments: strarr(5) $ } if keyword_set(define) then return ; Populate structure struct_assign, geometry, XRT_geometry, /nozero XRT_geometry.history[0] = 'MAKE_XRT_GEOMETRY '+progver+timestamp() XRT_geometry.geo_str_version = tag_names(XRT_geometry,/structure) end