Files
bom-local-service/Models/RadarFrame.cs
T
alex 2d9d45d430 Fix frame deduplication and chronological ordering in time series endpoint
- Fix scraping to wait for display label to change after step forward, preventing duplicate minutesAgo values within same folder
- Add hashset-based deduplication by AbsoluteObservationTime across cache folders
- Filter frames that are too close together (< 4 minutes apart)
- Preserve original folder structure while pruning filtered frames
- Sort folders by earliest frame time to maintain chronological order
- Add validation to detect folder overlaps that could cause out-of-order frames
2025-12-08 01:20:09 +10:00

30 lines
1013 B
C#

namespace BomLocalService.Models;
/// <summary>
/// Represents a single radar frame (historical precipitation data).
/// Frame 0 is oldest (40 minutes ago), Frame 6 is newest (10 minutes ago).
/// Radar frames can be joined across cache folders to create extended historical slideshows.
/// </summary>
public class RadarFrame : CachedFrame
{
/// <summary>
/// Number of minutes ago this frame represents (40, 35, 30, 25, 20, 15, 10).
/// Frame 0 = 40 minutes ago, Frame 6 = 10 minutes ago.
/// This is relative to the cache folder's observation time.
/// </summary>
public int MinutesAgo { get; set; }
/// <summary>
/// The absolute UTC observation time for this frame.
/// Calculated as: ObservationTime - MinutesAgo.
/// This is set when frames are joined across cache folders in timeseries responses.
/// </summary>
public DateTime? AbsoluteObservationTime { get; set; }
public RadarFrame()
{
DataType = CachedDataType.Radar;
}
}