diff --git a/src/AnalysisPrograms/Sandpit.cs b/src/AnalysisPrograms/Sandpit.cs index 48875b355..c04393971 100644 --- a/src/AnalysisPrograms/Sandpit.cs +++ b/src/AnalysisPrograms/Sandpit.cs @@ -145,7 +145,7 @@ public static void ContentDescriptionApplyTemplates() var path = Path.Combine(@"C:\Ecoacoustics\Output\Test\Test24HourRecording", "Testing__2Maps.png"); var ldfcSpectrogram = Image.FromFile(path); var image = ContentVisualization.DrawLdfcSpectrogramWithContentScoreTracks(ldfcSpectrogram, contentPlots); - var path2 = Path.Combine(@"C:\Ecoacoustics\ContentDescription", "Testing_2Maps.CONTENTnew05.png"); + var path2 = Path.Combine(@"C:\Ecoacoustics\ContentDescription", "Testing_2Maps.CONTENTnew07.png"); image.Save(path2); Console.WriteLine("# Finished scanning recording with content description templates"); } diff --git a/src/AudioAnalysisTools/ContentDescriptionTools/ContentDescription.cs b/src/AudioAnalysisTools/ContentDescriptionTools/ContentDescription.cs index 47bcee35f..c2b2f5295 100644 --- a/src/AudioAnalysisTools/ContentDescriptionTools/ContentDescription.cs +++ b/src/AudioAnalysisTools/ContentDescriptionTools/ContentDescription.cs @@ -13,10 +13,7 @@ public class ContentDescription { // All the code base for content description assumes a sampling rate of 22050 (i.e. a Nyquist = 11025) and frame size = 512 (i.e. 256 frequency bins). public const int Nyquist = 11025; - - //public int FrameSize { get; set; } public const int FreqBinCount = 256; - public const string AnalysisString = "__Towsey.Acoustic."; /// @@ -47,7 +44,7 @@ public static List ContentDescriptionOfMultipleRecordingFiles(FileInfo lis var completeListOfResults = new List(); // cycle through the directories - // WARNING: Assume one-hour duration for each recording + // TODO WARNING: Assume one-hour duration for each recording for (int i = 0; i < filePaths.Count; i++) { // read the spectral indices for the current file @@ -58,7 +55,8 @@ public static List ContentDescriptionOfMultipleRecordingFiles(FileInfo lis // ContentDescription.DrawNormalisedIndexMatrices(dir1, baseName, dictionary); // get the rows and do something with them one by one. - var results = AnalyzeMinutes(templates, templatesAsDictionary, dictionaryOfRecordingIndices, i * 60); // WARNING: HACK: ASSUME ONE HOUR FILES + // TODO WARNING: HACK: ASSUME ONE HOUR FILES - must fix this. + var results = AnalyzeMinutes(templates, templatesAsDictionary, dictionaryOfRecordingIndices, i * 60); completeListOfResults.AddRange(results); } @@ -72,7 +70,7 @@ public static List ContentDescriptionOfMultipleRecordingFiles(FileInfo lis //contentPlots = DataProcessing.SubtractModeAndSd(contentPlots); // Use percentile thresholding followed by normalize in 0,1. - contentPlots = DataProcessing.PercentileThresholding(contentPlots, 80); + contentPlots = DataProcessing.PercentileThresholding(contentPlots, 90); return contentPlots; } @@ -127,7 +125,7 @@ public static List AnalyzeMinutes( break; } - var result = new KeyValuePair(template.Name, score); + var result = new KeyValuePair(template.Description, score); descriptionResult.AddDescription(result); } diff --git a/src/AudioAnalysisTools/ContentDescriptionTools/DescriptionResult.cs b/src/AudioAnalysisTools/ContentDescriptionTools/DescriptionResult.cs index a3c30a9c6..69b19c821 100644 --- a/src/AudioAnalysisTools/ContentDescriptionTools/DescriptionResult.cs +++ b/src/AudioAnalysisTools/ContentDescriptionTools/DescriptionResult.cs @@ -11,10 +11,7 @@ public class DescriptionResult { private readonly Dictionary descriptionDictionary = new Dictionary(); - public DescriptionResult(int startTimeInMinutes) - { - this.StartTimeInCurrentRecordingFile = TimeSpan.FromMinutes(startTimeInMinutes); - } + public DescriptionResult(int startTimeInMinutes) => this.StartTimeInCurrentRecordingFile = TimeSpan.FromMinutes(startTimeInMinutes); public TimeSpan StartTimeInCurrentRecordingFile { get; set; } diff --git a/src/AudioAnalysisTools/ContentDescriptionTools/TemplateManifest.cs b/src/AudioAnalysisTools/ContentDescriptionTools/TemplateManifest.cs index 6e9b72c80..7668eeb4d 100644 --- a/src/AudioAnalysisTools/ContentDescriptionTools/TemplateManifest.cs +++ b/src/AudioAnalysisTools/ContentDescriptionTools/TemplateManifest.cs @@ -40,7 +40,7 @@ public static void CreateNewFileOfTemplateDefinitions(FileInfo manifestFile, Fil // the current manifest is not an existing template - therefore make it. var newTemplate = CreateNewTemplateFromManifest(manifest); newTemplate.TemplateId = i; - newTemplate.Template = CreateTemplateDeftn(manifest); + newTemplate.Template = CreateTemplateDefinition(manifest); newTemplate.MostRecentEdit = DateTime.Now; newTemplateList.Add(newTemplate); continue; @@ -51,7 +51,7 @@ public static void CreateNewFileOfTemplateDefinitions(FileInfo manifestFile, Fil // edit an existing template but use the manifest. var newTemplate = CreateNewTemplateFromManifest(manifest); newTemplate.TemplateId = i; - newTemplate.Template = CreateTemplateDeftn(manifest); + newTemplate.Template = CreateTemplateDefinition(manifest); newTemplate.MostRecentEdit = DateTime.Now; newTemplateList.Add(newTemplate); continue; @@ -104,7 +104,7 @@ public static void CreateNewFileOfTemplateDefinitions(FileInfo manifestFile, Fil /// /// THis method calculates new template based on passed manifest. /// - public static Dictionary CreateTemplateDeftn(TemplateManifest templateManifest) + public static Dictionary CreateTemplateDefinition(TemplateManifest templateManifest) { // Get the template provenance. Assume array contains only one element. var provenanceArray = templateManifest.Provenance; @@ -143,6 +143,7 @@ public static TemplateManifest CreateNewTemplateFromManifest(TemplateManifest te var newTemplate = new TemplateManifest { Name = templateManifest.Name, + Description = templateManifest.Description, TemplateId = templateManifest.TemplateId, FeatureExtractionAlgorithm = templateManifest.FeatureExtractionAlgorithm, SpectralReductionFactor = templateManifest.SpectralReductionFactor,