Release Notes - INMS Analysis Library Most recent release is described first, prior releases in reverse chronological order ;+ T H E I N M S A N A L Y S I S L I B R A R Y I S S U P P L I E D "A S - I S", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. ++++Version 2007170 This release adds routines for trajectory and pointing display, for SPICE kernel management and for programming utilities. The ion tuning coefficients for all encounters through T32 are incorporated into inms_ion_sensitivity. A number of the plotting routines were modified to display closest approach time and to improve format. NEW ROUTINES inms_plot_geom Clots trajectory and pointing with respect to target or Saturn. inms_get_spice_kernels Invokes FTP to download missing SPICE kernels IIS_frame_definitions.txt A SPICE frames text kernel defining the Ionospheric Interaction System frame for Titan and Enceladus inms_auxiliary_value Computes latitude, west longitude, ram angle, and speed with respect to a target body or Saturn inms_dump_structure Creates a comma-separated value file containing the contents of a structure array inms_idl_type Determines the IDL type that best matches a PDS type inms_reduce_qb_scan Performs the quad bias scan data reduction - Alpha Version CHANGED ROUTINES: inms_test Adds example geometry plot (calls inms_plot_geom) inms_ion_sensitivity Include all tuning model coefficients through T32 inms_add_aux_axis Now produces axis from either L1A or Spectra structure arrays Optionally replaces west longitude with local solar time inms_plot_mass_history Now uses inms_add_aux_axis inms_plot_stacked_spectra Now uses inms_add_aux_axis inms_plot_state Displays vertical line at time of closest approach inms_plot_mt_line Improved graphic format inms_plot_mt_spectra Improved graphic format inms_plot_series Improved graphic format inms_plot_compare Improved graphic format inms_get_spectra Store time of closest approach inms_define_xSpecRec Added closest approach time to spectra structure inms_prepare_plot Color tables no longer implicitly changed. Updated prolog inms_make_window Added portrait orientation inms_reduce_ql_scan Correct indexing error in annotations inms_read_fmt_file Produces complete structure template eliminating the need for inms_create_l1a_template inms_get_data Streamlined data structure creation inms_kernel_list Converted from function to procedure inms_doy2utc Correct error handler DEPRECIATED ROUTINES: The functionality of these routines have been replaced and improved by new routines. These routines should not be used in new code. inms_saturn_latitude Use inms_auxiliary_value inms_saturn_wLongitude Use inms_auxiliary_value inms_ram_angle Use inms_auxiliary_value inms_create_l1a_template Replaced by inms_read_fmt_file ;- ++++Version 2007075 This maintenance release supplies an updated version of inms_ion_sensitivity which includes quadrupole switching lens tuning factors bsed on the T25 data. A minor change was made to inms_plot_state to add time from closest approach. NEW ROUTINES inms_make_pds_label Creates a pds label for a spreadsheet file based on the file being labeled and a label template. CHANGED ROUTINES inms_ion_sensitivity Coefficients based on the T25 results included in algorithm inms_plot_state Includes display of ram angle and a time from closest approach axis inms_add_aux_axis Optionally includes the time from closest approach axis inms_plot_cal_ptrn Adds keyword to specify plot title inms_plot_cal_sens Adds keyword to specify plot title inms_read_cal Increased max size of a calibration record to support toluene data inms_select_cal Correct documentation formatting error ++++Version 2007018 This maintenance release fixes a compatibility problem between IDL V6.2 and later versions. It also corrects a number of problems encountered in the previous release by users and updates the ion sensitivity calculation with the Titan T23 encounter energy scan results. The routine used to reduce energy scans is included in the library NEW ROUTINES inms_reduce_ql_scan Reduces the quadrupole lens scans, producing the tuning parameters required to adjust for miss-focusing. CHANGED ROUTINES inms_post_message Delete the /center keyword from the dialog_message calls for backwards compatibility sprl_color_plot Delete the /center keyword from the dialog_message calls for backwards compatibility inms_plot_stacked_spectra Display ram angle over spectra, if requested, to aid diagnosis of ion density calculations inms_compute_mean_spectra Add the ion source to the spectra type descriptions inms_ion_sensitivity Add T23 tuning coefficients. Handle scalar, 1-dimensional and 2-dimensional mass arrays inms_spectra_aux_values Separate the Saturn ram angle and speed computations from those of the other targets inms_tabulate_spectra Support output to files in addition to the screen inms_make_ion_spectra Support options to disable the quadrupole lens tuning and ram angle corrections to the sensitivity inms_prepare_plot Adjust line widths used for the X and WIN display types ++++Version 2007008 This release provides final routines for computing ion densities and adds additional options to the data selection routines. Additional items have been added to the spectra record to permit handling exceptions when computing ion densities. NOTE: The order of the arguments of inms_make_ion_spectra has been reversed to match the usage of inms_compute_mean_spectra and inms_compute_summed_spectra NEW_ROUTINES inms_tabulate_spectra Produces a table of information extracted from a spectra record CHANGED ROUTINES inms_compute_mean_spectra Ensures compatibility with spectra records formed with previous releases inms_compute_summed_spectra Ensures compatibility with spectra records formed with previous releases inms_plot_histogram Adds grid to plot and target name to title inms_build_locator Accepts /INGRESS and /EGRESS keywords inms_plot_mass_history Properly label altitude axis when target is Saturn inms_plot_stacked_spectra Properly label altitude axis when target is Saturn inms_plot_mass_profile Properly label altitude axis when target is Saturn Adds option to connect plot markers inms_define_xSpecRec Add sequence table and cycle table IDS to spectra record inms_grid_spectra Add sequence table and cycle table IDS to spectra record inms_get_spectra Handle pathological case when selecting data which includes final data point in input Add sequence table and cycle table IDS to spectra record inms_ion_sensitivity Deletes alternative method Handle T17 ion measurements interspersed with the energy scans inms_make_ion_spectra Handle T17 ion measurements interspersed with the energy scans Change order of arguments to match usage of other routines. inms_spectra_aux_values Save correct velocity components for ion sensitivity calculation Compute positions with respect to Saturn when no target is specified inms_neat_ticks Correct calculation of major tick locations when quarter-hour tick spacing selected ++++Version 2006341 This release fixes a number of bugs and shortcomings observed since the last release (2005263). Routines to apply calibrations to the ion data and to plot the results are added. To support analysis of the Refurbished Engineering Model (REU) calibration, a number of routines were added or modified. Finally a general error handler was added to most routines so error messages are handled in a common manner. LIMITATIONS inms_make_ion_spectra This routine is currently restricted to processing one input raw spectra at a time. Off-nominal pointing is not accounted for. inms_ion_transmission This routine is as not yet validated and should be used with caution. DEPRECIATED ROUTINES inms_plot_cal Replaced by inms_plot_cal_ptrn to avoid confusing names for routines that plot cracking patterns and sensitivities from cal data. See new routine inms_plot_cal_sens inms_ss_positions Sub-solar point latitude and longitude now included in L1A data inms_init_ss_positions Sub-solar point latitude and longitude now included in L1A data inms_compute_density Method has been overtaken by other analysis inms_density_file Driver for inms_compute_density, no longer to be used. NEW ROUTINES inms_doy2julian Converts an ordinal date to a Julian date inms_ion_sensitivity Computes the open source ion sensitivity for a particular mass and velocity, considering QL miss tuning. inms_ion_transmission Computes the adjustment factor to be applied to the sensitivity due to off-nominal pointing inms_kernel_list Compares the SPICE kernels listed in a FURNISH text kernel to those on the local system. inms_make_ion_spectra Computes ion abundance spectra from a raw counts spectra inms_plot_cal_sens Plots sensitivity data from a calibration summary file as a function of species inms_plot_cal_ptrn Plots cracking PaTteRN data from a calibration summary file inms_plot_mass_profile Plots data from an array of spectra records as a function of altitude for selected masses inms_plot_state Plots the transitions between mass tables or between cycle tables as a function of time inms_post_message Puts an error dialog on the screen inms_put_annotations Creates a table of annotations, see plots from inms_deconvolve for example inms_ram_angle Computes the angle between the spacecraft velocity w.r.t the target body and the INMS boresight. inms_read_jcamp Reads a jcamp format mass spectra as obtained from NIST inms_weighted_mean Computes the average of a series of measurements weighted by their standard deviations. CHANGED ROUTINES inms_add_aux_axes Adjust axis label character size inms_build_locator Fixed error in sclk time formatting inms_compute_mean_spectra Return geometric quantities evaluated at central time inms_compute_summed_spectra Return geometric quantities evaluated at central time inms_deconvolve Fall back to closed source cal data if open source is not available Provide for setting closed source temperatures Omit isotope ratio computation Change critical C1 counter frequency to 1.25 MHz (ex 1.75 MHz) Change C1/C2 ratio to 5840.7 (ex 4459.6) inms_define_xSpecRec Add ION to spectra types Add velocity components to structure inms_get_data Ensure files are sorted properly on Windows Ensure a valid label was obtained and post more specific error message inms_get_spectra Prune empty spectra records prior to return inms_make_windows Make windows columns stagger slightly. Permit adjustment of window size and region containing the plots inms_make_profiles Omit computation of isotope ratio inms_make_window Provide method to set size and location of window Correct window position calculation on MS Windows platform inms_plot_cal Added support for REU data Optionally plot multiple matches Improve compatibility with inms_prepare_plot inms_plot_histogram Support ION abundance spectra display Change critical C1 counter frequency to 1.25 MHz (ex 1.5 MHz) Change C1/C2 ratio to 5840.7 (ex 4459.6) inms_plot_mt_line Correct auxiliary axis location Add "ESM" source to list of valid sources Reduced spacing between aux axis inms_plot_mt_spectra Reduced spacing between aux axis inms_plot_series Adjust size of x-axis characters when aux axes present Use subtitle keyword consistent with other routines inms_prepare_plot Collect multiple image files produced with /NEXT in one subdirectory. Create directories if required. Adds support for TIFF and JPEG images in addition to PNG Image and PS line weights increased for better legibility. inms_ram_coefficient Corrected miss-spelled variable name inms_read_cal Corrected errors in converting NIST style cracking patterns to INMS style Made mass variable float to avoid an off-by-one error when plotting the cracking patterns Added name of calibration data file to structure for identification of the data source Remove enclosing quotation marks from strings, if present to comply with PDS Increased the maximum number of peaks in a spectra to 40 (ex 30) inms_read_format_file Corrected errors parsing format file contents Ensure that the path keyword value is of correct type inms_select_cal Correct initialization of return value Add REU to list of calibration instruments Return multiple matches under some conditions. Improved argument validation inms_test Added state plot to tests Changed names of isotopes to match current naming convention Changed data set to T18 to include ION data sprl_date_plotted Added option to place annotation at lower left instead of default lower right. Most Routines Added error handler that posts dialog on window display system or to console log when debugging or when displaying on a non-windowing (PS) display ++++Version 2005325 Changed default value of c1/c2 count ratio Added an option to plot count rates instead of counts per sample period Supports latest version of calibration summary files which may include fractionation patterns from NIST Bug fixes CHANGED ROUTINES inms_compute_density revised default value of C1 C2 ratio inms_deconvolve revised default value of C1/C2 ratio displays both abundance and mole fraction displays reduced chi-square and other goodness of fit measures inms_file_format supports calibration system data file formats inms_format_time_tick Include seconds in the time string inms_grid_spectra corrects source id value in spectra inms_neat_ticks added quarter-hour tick marks to routine inms_plot_histogram revised default value of C1/C2 ratio inms_plot_mass_history count rate display option added inms_plot_mt_line count rate display option added inms_plot_mt_spectra count rate display option added inms_plot_stacked_spectra count rate display option added inms_prepare_plot corrected file delimiter character for MS Windows inms_read_cal handle NIST fractionation patterns inms_spectra_aux_values suppress floating point exception messages inms_test updates to display rates NEW ROUTINES inms_put_annotations Adds table of annotations to plots, see inms_deconvolve for example useage ;- ++++Version 2005263 Added density profile routines Added additional ancillary data to spectra records Adjusted character sizes in PNG files to better match screen views Bug fixes CHANGED ROUTINES inms_deconvolve added code to remove outliers Now returns chi-square, not reduced chi-square, added keywords to control annotation and c1 replacement by c2. inms_file_format Checks for the presence of a format stack and prompts user for format file to read if absent. inms_get_spectra Add latitude, longitude, solar zenith angle, and solar local time to spectra structure inms_grid_spectra Add latitude, longitude, solar zenith angle, and solar local time to spectra structure inms_list_cal_species molecular mass added to table inms_make_window MS Windows support inms_plot_cal Species selection defaults to all, control of plot format inms_plot_compare minor changes inms_plot_histogram check input spectra and post error if an array of structures passed inms_plot_hkg minor changes inms_plot_mass_history minor changes Finms_plot_mt_line minor changes inms_plot_mt_spectra minor changes inms_plot_stacked_spectra Add auxiliary axes, latitude and either west longitude or solar local time. inms_prepare_plot MS Windows support, multiple PNG plots inms_ram_coefficient Keywords available to set source and ambient temperatures inms_read_cal Initialize output structure prior to use, ensure final line read without requiring a trailing null line. inms_read_fmt_file ensure final line read without requiring a trailing null line. inms_utc_increment Corrected error when crossing year boundaries sprl_cvt_jdate_odate Correct off-by-one error in centennial years sprl_cvt_odate_jdate Correct off-by-one error in leap years and centennial years following day-of-year 58. sprl_error_plot Simplify and correct size of tick marks on logarithmic plots. sprl_find_color MS Windows support when displaying color swatch sprl_load_colors Improved color table for sequential='spectrum" option NEW ROUTINES inms_define_xSpecRec Include file to create a spectra record instance inms_select_cal General calibration record selection function inms_spectra_aux_values Computes ancillary values for inclusion in spectra records inms_make_profiles Determines the density profiles of selected species by repeated calls to inms_deconvolve inms_plot_density_profile Plots density profiles produced by inms_make_profiles. ++++Version 050713 Maintenance Release Changed Routines: sprl_cvt_jdate_odate Correct problem in computing day-of-year in years following a leap year, when the day-o-year is greater than 179 ++++Version 050623 Support for HKG files added and compatibility with L1A files as delivered to the PDS Changed Routines: inms_build_locator changed method of obtaining field names inms_compute_mean_density corrected prolog inms_create_l1A_template added provision for variables of type PDS time inms_deconvolve changed critical frequency and added control of status message production inms_get_data added support for HKG allow time ranges to cross day and year boundaries inms_get_spectra support for high resolution (0.125 AMU) mass scans inms_grid_spectra code to remove outliers, delete background correction inms_l1A_labels support for HKG files inms_parse_l1a_name now a wrapper for a general file name parser inms_parse_time fix length of loop counter inms_validate_time fix length of loop counter inms_read_cal supports PDS compliant calibration summaries inms_read_fmt_file support for HKG inms_read_label support for HKG inms_plot_series no longer requires a continuous data plot to plot discrete values. Recycles colors when a multi-valued discrete has more states than there are defined colors inms_plot* adjusted fonts and made keywords more consistent inms_prepare_plot fixed problem that resulted in exceeded x window resource availability when creating PNGs. Adjusted fonts sprl_cvt_jdate_odate fix and off-by-one error sprl_error_plot fix floating point exception when plotting logarithmically New Routines: support for HKG files inms_file_fmt returns format structure for specified file type inms_hkg_labels returns axis labels for housekeeping data inms_plot_hkg plots housekeeping data inms_validate_hkg validates housekeeping data structure inms_parse_file_name parses any INMS data file name support for plotting inms_neat_ticks determines location of time tick marks inms_label_ticks formats time tick mark labels inms_set_charsize sets size for characters considering the !p.charsize scaling miscellaneous inms_plot_compare plots time signal time histories from L1A and spectra data sprl_cvt_jdate_mdy converts a julian date to month, day and year sprl_cvt_jtime_tod converts a fractional day to hours, minutes and seconds.