/// <summary>
        /// Loads a csv file of summary indices, normalises the values for visualisation and displays a TracksImage
        /// </summary>
        /// <param name="arguments"></param>
        /// <exception cref="InvalidOperationException"></exception>
        /// <returns></returns>
        public static void Main(Arguments arguments)
        {
            bool verbose = true;

            if (verbose)
            {
                string date = "# DATE AND TIME: " + DateTime.Now;
                LoggedConsole.WriteLine("# MAKE AN IMAGE FROM A CSV FILE OF SUMMARY INDICES DERIVED FROM AN AUDIO RECORDING");
                LoggedConsole.WriteLine(date);
                LoggedConsole.WriteLine("# Input  .csv   file: " + arguments.InputCsv);
                LoggedConsole.WriteLine("# Output image  file: " + arguments.Output);
                LoggedConsole.WriteLine();
            }

            var input  = arguments.InputCsv.ToFileInfo();
            var output = arguments.Output.ToFileInfo();

            output.CreateParentDirectories();

            // Find required index generation data
            var igd = IndexGenerationData.GetIndexGenerationData(input.Directory.ToDirectoryEntry());

            // Convert summary indices to image
            string        fileName    = input.BaseName();
            string        title       = $"SOURCE:{fileName},   {Meta.OrganizationTag};  ";
            Image <Rgb24> tracksImage = IndexDisplay.DrawImageOfSummaryIndexTracks(
                input,
                arguments.IndexPropertiesConfig.ToFileInfo(),
                title,
                igd.IndexCalculationDuration,
                igd.RecordingStartDate);

            tracksImage.Save(output.FullName);
        }