public static Image CreateImageOfSpectralIndices(SpectralIndexValues spectralIndices) { var images = new List <Image>(); foreach (var key in Keys) { var spectrum = CachedSelectors[key](spectralIndices); double[] normalisedIndex = DataTools.normalise(spectrum); var image = GraphsAndCharts.DrawGraph(key, normalisedIndex, 100); images.Add(image); } var combinedImage = ImageTools.CombineImagesVertically(images.ToArray()); return(combinedImage); }
/// <summary> /// Used to check that the keys in the indexProperties dictionary correspond to Properties in the SpectralIndexValues class. /// Call this method before entering a loop because do not want the error message at every iteration through loop. /// </summary> public static void CheckExistenceOfSpectralIndexValues(Dictionary <string, IndexProperties> indexProperties) { foreach (var kvp in indexProperties) { if (!kvp.Value.IsSpectralIndex) { continue; } var success = CachedSelectors.ContainsKey(kvp.Key); if (!success) { LoggedConsole.WriteWarnLine( "### WARNING: The PROPERTY <" + kvp.Key + "> does not exist in the SpectralIndexValues class!"); } } }