diff --git a/doc/plot_tracked_partitions.ipynb b/doc/plot_tracked_partitions.ipynb new file mode 100644 index 0000000..4268a44 --- /dev/null +++ b/doc/plot_tracked_partitions.ipynb @@ -0,0 +1,137 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import datetime\n", + "import json\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Loaded 148 tracked partitions\n" + ] + } + ], + "source": [ + "with open('../tracked_partitions.json', 'r') as f:\n", + " tracked_partitions = json.load(f)\n", + "\n", + "print(f'Loaded {len(tracked_partitions)} tracked partitions')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lengths: [1, 1, 3, 12, 1, 1, 4, 22, 8, 1, 6, 2, 1, 8, 2, 1, 3, 4, 1, 1, 1, 1, 88, 5, 5, 3, 17, 1, 1, 2, 42, 9, 1, 4, 1, 53, 1, 13, 1, 15, 36, 18, 1, 1, 1, 1, 7, 2, 25, 1, 10, 1, 50, 48, 1, 11, 8, 5, 1, 1, 3, 1, 1, 4, 5, 1, 4, 2, 5, 2, 1, 41, 42, 1, 4, 2, 1, 2, 1, 10, 1, 1, 1, 5, 1, 1, 1, 3, 2, 31, 2, 3, 2, 27, 2, 2, 1, 1, 1, 27, 2, 4, 1, 5, 6, 2, 1, 5, 5, 2, 1, 3, 19, 45, 5, 92, 10, 11, 1, 3, 2, 32, 1, 1, 4, 11, 1, 1, 85, 69, 2, 7, 2, 10, 10, 1, 7, 15, 8, 11, 1, 79, 3, 1, 6, 5, 2, 1]\n" + ] + } + ], + "source": [ + "lengths = [len(p[1]) for p in tracked_partitions.items()]\n", + "print(f'Lengths: {lengths}')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Filtered: 94\n" + ] + } + ], + "source": [ + "filtered = [p for p in tracked_partitions.items() if len(p[1]) > 1]\n", + "print(f'Filtered: {len(filtered)}')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_partition(partition):\n", + " partition_data = partition[1]\n", + " times = [datetime.datetime.fromisoformat(d[0]) for d in partition_data[0:50]]\n", + " values = [d[1][\"wave_height\"][\"value\"] for d in partition_data[0:50]]\n", + " plt.plot(times, values)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for partition in filtered:\n", + " #print([p[0] for p in partition[1]])\n", + " plot_partition(partition)\n", + "\n", + "plt.xlim([datetime.datetime.fromisoformat('2022-09-21T20:00:00'), datetime.datetime.fromisoformat('2022-09-27T20:00:00')])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/src/tools/waves.rs b/src/tools/waves.rs index 63311ec..ee5fbc5 100644 --- a/src/tools/waves.rs +++ b/src/tools/waves.rs @@ -1,6 +1,7 @@ -use std::{f64::consts::PI, ops::Sub, vec}; +use std::{collections::HashSet, f64::consts::PI, ops::Sub, vec}; use chrono::{DateTime, Utc}; +use itertools::Itertools; use crate::{ dimensional_data::DimensionalData, @@ -252,11 +253,8 @@ pub fn dfp_swell_sea(dt: f64, distance: f64) -> f64 { /// Adapted from wavespectra library /// https://github.com/wavespectra/wavespectra/blob/master/wavespectra/partition/tracking.py pub fn track_partitions( - inputs: &[(f64, DateTime, Vec)], - separation_frequency: f64, - max_wind_sea_dir_delta: f64, - max_swell_dir_delta: f64, - wind_sea_freq_scale: f64, + inputs: &[(DateTime, Vec)], + max_dir_delta: f64, swell_source_distance: f64, ) -> Vec> { // Create a new partition map. The partition id is inferred from the @@ -270,68 +268,84 @@ pub fn track_partitions( // For the first time step, all partitions are candidates for tracking and they // keep their original partition id. if inputs.len() < 2 { - return inputs.iter().map(|x| x.2.to_vec()).collect(); + return inputs.iter().map(|x| x.1.to_vec()).collect(); } // Since all of the partitions are candidates for tracking in the first time step, // we can start the partition counter at the length of the consecutive_partitions // asumming that the first time steps - let mut partition_count = inputs.first().as_ref().unwrap().2.len(); + let mut partition_count = inputs.first().as_ref().unwrap().1.len(); // Create a new partition map. There is definitely a better way to do this, but lets just get the // logic working first without modifying the input data let mut partition_map: Vec> = inputs .iter() - .map(|x| x.2.iter().map(|s| (s.partition.unwrap_or(999), 999.99)).collect()) + .map(|x| { + x.1.iter() + .map(|s| (s.partition.unwrap_or(999), 999.99)) + .collect() + }) .collect(); for i in 1..partition_map.len() { let prev = inputs.get(i - 1).unwrap(); let current = inputs.get(i).unwrap(); - let dt = (current.1 - prev.1).num_seconds() as f64; + let dt = (current.0 - prev.0).num_seconds() as f64; let dfp_swell = dfp_swell_sea(dt, swell_source_distance); - let wind_speed = current.0; - - current.2.iter().enumerate().for_each(|(icp, p)| { - let dfp_wind = dfp_wind_sea(wind_speed, p.period.get_value(), dt, wind_sea_freq_scale); - let partition_dir = p.direction.get_value().degrees; - let partition_period = p.period.get_value(); - - let closest = prev - .2 - .iter() - .enumerate() - .map(|(ipp, prev_p)| { - let prev_partition_dir = prev_p.direction.get_value().degrees; - let dir_delta = - ((((partition_dir - prev_partition_dir) + 180) % 360) - 180).abs(); - let period_delta = (partition_period - prev_p.period.get_value()).abs(); - - let score = if partition_period <= separation_frequency { - (dir_delta as f64 / max_wind_sea_dir_delta).abs() + (period_delta / dfp_wind).abs() - } else { - (dir_delta as f64 / max_swell_dir_delta).abs() + (period_delta / dfp_swell).abs() - } - .abs(); - (ipp, score) - }) - .min_by(|(_i, a), (_ii, b)| a.partial_cmp(b).unwrap_or(std::cmp::Ordering::Equal)); - if let Some((ip, score)) = closest { - let (ip, _) = partition_map[i - 1][ip]; - println!("Closest: {} {}", ip, score); - if score < 1.0 { - partition_map[i][icp] = (ip, score); - } else { + let matches = current + .1 + .iter() + .enumerate() + .map(|(icp, p)| { + let partition_dir = p.direction.get_value().degrees; + let partition_period = p.period.get_value(); + + prev.1 + .iter() + .enumerate() + .map(|(ipp, prev_p)| { + let prev_partition_dir = prev_p.direction.get_value().degrees; + let dir_delta = + ((((partition_dir - prev_partition_dir) + 180) % 360) - 180).abs(); + //println!("Dir delta: {} partition dir: {}, prev partition dir: {}", dir_delta, partition_dir, prev_partition_dir); + let period_delta = (partition_period - prev_p.period.get_value()).abs(); + + let score = if dir_delta > max_dir_delta as i32 { + 999.99 + } else { + (dir_delta as f64 / max_dir_delta).abs() + + (period_delta / dfp_swell).abs() + } + .abs(); + (icp, ipp, score) + }) + .min_by(|(_i, __i, a), (_ii, __ii, b)| a.partial_cmp(b).unwrap()) + }) + .sorted_by(|a, b| { + a.as_ref() + .unwrap() + .2 + .partial_cmp(&b.as_ref().unwrap().2) + .unwrap() + }) + .collect::>(); + + let mut hit: HashSet = HashSet::new(); + for m in matches { + if let Some((icp, ipp, score)) = m { + let (ipp, _) = partition_map[i - 1][ipp]; + if hit.contains(&ipp) || score > 999.0 { partition_map[i][icp] = (partition_count, 0.0); partition_count += 1; + } else { + //println!("Hit: {} score {}", ipp, score); + partition_map[i][icp] = (ipp, score); + hit.insert(ipp); } - } else { - partition_map[i][icp] = (partition_count, 0.0); - partition_count += 1; } - }); + } } // Now that we have the partition map, we can use it to create the new partitions @@ -339,7 +353,7 @@ pub fn track_partitions( .iter() .enumerate() .map(|(i, x)| { - x.2.iter() + x.1.iter() .enumerate() .map(|(icp, p)| { let (ip, _) = partition_map[i][icp]; diff --git a/tests/buoy_data_tests.rs b/tests/buoy_data_tests.rs index 37bdf86..0ee4437 100644 --- a/tests/buoy_data_tests.rs +++ b/tests/buoy_data_tests.rs @@ -234,25 +234,21 @@ fn track_partitioned_swell_components() { let swell_data = swell_data.unwrap(); let mut swell_components = swell_data.filtered_components(); swell_components.truncate(5); - let wind_speed = record.wind_speed.get_value(); let time = record.date; - (wind_speed, time, swell_components) + (time, swell_components) }) .collect::>(); let tracked = track_partitions( &inputs, - 9.99, - 30.0, 20.0, - 1.0, 1e6, ); let mut partition_map: HashMap, Swell)>> = HashMap::new(); for i in 0..tracked.len() { let timestep = &tracked[i]; - let timestamp = inputs[i].1; + let timestamp = inputs[i].0; for partition in timestep{ let Some(partition_id) = partition.partition else { continue;