Known Issues - crash reporting utility does not appear when computer language is not english - rare D3D11 crash when machine left unattended - possible undefined behavior with multi-monitor setups - render texture size uses corner pixel coordinates to calculate texture size - render surface splitting across monitors may result in negative sizes and problems - render thread sometimes dies when computer put to sleep with guru2 running - with synchronized data bindings, while looping, frame updates do not trigger on data frames without a dataset available within the temporal selection window To Do - make measure tool persist - decrease minimum window size - add OpenStreetMap record search - add setting to stay centered on GPS with optional snapback after a certain period - add mechanism to reinitialize FARM quicklook data source if guru2 has no internet access when source is initialized - move to using PureHDF and IKVN libraries for NetCDF instead of requiring installed libraries - add "remove" button in the perusal tab - add bulk ALPACAS position uploads Build 52 (unreleased) - added alert when files are dropped from invalid locations - added setting for maximum render surface count ** allows a maximum of 144, completely filling the 12x12 data frame layout grid - dorade-rotate command resets when run without parameter - dorade-geolocate command resets when run without parameters - added dorade-rtfg command to define quantity of meters to add to sweep range to first gate - widened menu bar so 'Windows' menu will fit on Windows 7 - updated msg31 volume import to accept sweep counts that do not match the VCP message - fixed median function so it no longer fails if only two entries are provided - added support for 1-dimensional data packing in WDSS-II NetCDF import - updated msg31 import to correctly handle successive sweeps of the same elevation and product set - fixed issue causing radars in deployment layout to not be loaded Build 51 - added detection for date in time column of windsond data - fixed issue causing video loop frame timestep to be zero - added command to produce arbitrary resolution plots without any overlays or GIS - added console command to set window to arbitrary size ** when entered without arguments this command will return the window size - threaded and rearranged shutdown so that windows does not declare the application unresponsive - added console commands to facilitate rendering loops that track storm features ** dragging time slider previews render tracking behavior - fixed crash caused by shapefiles with zero entries - added console commands to force rendered loop beginning and end times - added additional processing to the file paths of dropped files ** files dropped out of zip files should no longer cause a crash ** files in AppData/Local/Temp will not be processed - added console command to remap product names of ingested DORADE files - added console command to calculate what the dimensions of an exported video would be - updated AVIEncoder to correctly close when a video loop is finished rendering ** Windows may prevent AVIEncoder from running again until user re-approves - added menu option to copy coordinates to clipboard to data frame context menu, under 'tools' - fixed an issue that caused GOES satellite data to stop working - added console command to add annotation icons - fixed palette autorange function behavior - added error output for issues during DORADE file loading Build 50 (Summer Institute 2026) - added support for CFRadial files which are written using Double data type - radar name now has whitespace trimmed at sweep initialization for Sigmet RAW files - removed problematic RELAMPAGO-era radar product remapping in DORADE file loading - added handling for cfradial files that have latitude and longitude defined as floats - updated bundled crashmon so as to correctly report build number in case of a crash - fixed crash caused by using hotkey to select dataset product when no data is loaded Build 49 - updated geometry regeneration to include rebuilding product textures ** rotate command now works as intended for SURs/PPIs - fixed elevation correction to return raw elevation when elevation is below negative beam size - removed debug flag from D3D11 device creation - 'Clear Data' menu item on data series submenu now also clears list of loaded files for analysis data series - added depth testing to LMA flash rendering - added workaround for NOAA P3 tail doppler sweeps that lack inertial navigation system metadata - added workaround for aircraft tail Doppler synchronization overlay not rendering correctly - fixed retrieval of dataset layer types to avoid crash when dataset collection is changed - added RGB composite support for RHIs and tail Doppler sweeps - updated filtering in shader to remove values where the filter product is RF or NoData - added several experimental winter RGB composites using quality-controlled DOW parameters Build 48 - updated lateral restriction on LMA display on RHIs - added fix for ingesting cfradials lacking a sweep_mode entry for every sweep - fixed range restriction for mosaic data bindings - fixed color palette import to correctly handle labels with spaces - updated pulse renderer to return frame queries - fixed pulse renderer render target inversion - reverted the gridding and dual-Doppler tools to their intended disabled state, as they are nonfunctional - fixed an issue causing legacy 88D files with populated CTM headers from correctly loading - added handling to detect rotation angle lookup tables (RKTB) that are missing the required padding integer - removed exclusive lock causing deadlock when using the data menu while data loads Build 47 - changed MRMS reflectivity product from "MergedReflectivityAtLowestAltitude" to "ReflectivityAtLowestAltitude" - fixed issue where OpenStreetMap lookup texture would be refreshed with zero size - added zoom option in data frame context menu to accomodate touchscreens - added additional logging for instrument deployment - logs to text file in /%localappdata%/GURU2/IOP/ - creates one log per guru instance - appends every time an instrument is deployed or retrieved - stores lat/lon for deployments - stores name/time for both deployments and retrievals - updated ALPACAS client to enforce invariant formatting in floating point string conversion - updated winsond data shader to correctly handle negative altitudes - fixed an issue which would rarely cause sonde indicators to render as red - updated msg31 volume parsing to accept VCP 212 - added more error handling to NMEA message parsing - updated inflator class to correctly deal with files that are in use by another process - updated ALPACAS client to enable terminating the chat polling thread and resetting the chat system - significantly updated ALPACAS chat window - removed clickable elements in messages that block auto-scrolling - moved deployment and annotation download to message context menu - added option to copy messages with or without metadata to context menu - added option to copy deployment locations for instrument deployment messages - fixed MRMS data series naming to avoid collisions - restricted 'clear data' option for data series to analysis only, as was intended - added settings for data series dataset capacities - added setting for OSM road lookup to occur within data frame - fixed bug causing 0 maximum for analysis data series to be taken literally with live data - added "aviate" console command to toggle distance scale and measure tool units to miles - added "-aviate" command line argument to startup parameters to enable use of miles on startup - added additional error handling to OpenStreetMap offscreen render - fixed sensor name retrieval for miniCOW/COW2 - added default date values and additional error handling to NWS warning processor - increased instrument retrieval threshold from 30m to 100m - updated MRMS geometry caching to account for differently sized domains - added "dual" console command and "-dual" command line argument to set arbitrary beam crossing angle 3-90 - fixed product list retrieval to avoid non-base products appearing as filter products - added contextual URL copying to ALPACAS chat window - URLs must start with "http://" or "https://" - adds context menu item for each URL - displays URL to be copied if there is more than one in message - added MRMS archive retrieval console commands to facilitate making loops of past IOPs - added additional exclusive locks to data series and data bindings to address looping crash - updated ALPACAS client to correctly process chat data returned from newer API functions - added support for ALPACAS annotation retraction function - fixed an issue causing sent annotations to not have their ID set - added color coding for system messages sending annotations or individual deployment elements - added a removal option for chat messages indicating placement of an individual deployment element - fixed issue causing deployment shares to be parsed incorrectly - fixed issue causing winsond file list to be parsed incorrectly - added mutex to analysis data series free function - updated color ramps for CPSD-DOW - added, then removed correction factors for ICECHIP - removed waterways from OpenStreetMap import to facilitate SNOWSCAPE - added additional status messages during initialization Build 46 - annotations now override negative infinity sizes to 15 - fixed an issue that caused the annotation tool to create items of negative infinity size - added more exclusive locks to the annotation tool in an effort to fix color reversion - added name database file to OpenStreetMap layer saves - improved size calculation of data frames to avoid line skipping on magnifications less than one - added mouseover roads lookup for OpenStreetMap layers - must right click data frame, select OpenStreetMap Lookup - works in data frames which share a viewport and size - added depth testing for OpenStreetMap lookup render - added setting for MSAA, and disabled it by default - some hardware should see improved performance - added directx device info output for debugging - update road lookup texture to be 4-component float32 to work on intel drivers - added select keybinds - numbers 1 -> 0 on the keyboard (not number pad) switch product - changes to product N on the last clicked data frame - added keybinds for selecting annotation, deploy instruments, and measure tools Build 45 - fixed an issue when parsing GNSS data sent without a milliseconds field - added more logging to error handlers to record any GNSS puck issues - added checks to color palette loading to catch unsuccessfully loaded palettes - fixed handling of ICECHIP winsond file listing when multiple files are present - fixed date parsing in ICECHIP winsond monitor to catch mangled dates - added alert noise (windows notification two-tone or beep) when new ALPACAS message arrives - updated chat tab behavior to scroll to bottom upon tab selection - updated GOES AWS bucket to use GOES-19 for GOES-E - improved handling of ICECHIP MRMS subdomain - fixed bug causing the setting of "Current Position" for GNSS display to become unstuck - resolved issue in file queue size retrieval - fixed termination of GOES and MRMS live data series - fixed deployment sharing and re-enabled API function ** deployment shares are now additive only - mesonet add/remove in the annotation tool is re-enabled and sends an API function - non-mesonet add/remove in the annotation tool is re-enabled and sends an API function - added a 'clear all' button to the deployment tab of the annotation tool with associated API function - updated ALPACAS asset font size to be the base place label size instead of hard-coded 12pt Build 44 - removed pseudo-RHI extraction to investigate crashes - fixed a bug causing renderer font size to increase by a factor of ten every startup - fixed a crash bug when adjusting palette settings with the looper running - fixed a bug in projection of MRMS data - updated function of chat window so it correctly scrolls to the bottom on receiving a new message - added smaller ICECHIP domain for MRMS, to minimize memory usage on field laptops - updated annotation draw order to prevent annotations obscuring GIS layers - added a new pipeline for rendering OpenStreetMap shapefiles - renders in one pass rather than 7 (or 14 with background) ** regular GIS layers are unaffected by this change - increased all OpenStreetMap thicknesses by 1pt to account for loss of background - added initial infrastructure to poll ICECHIP winsond data from svr.guru Build 43 - improved handling of non-US decimal notation in settings - fixed bug in NMEA parsing in local GNSS - updated annotation tool for ICECHIP dry run - deployment element placement now immediately sends ALPACAS signal - mesonet and sounding/non-mesonet vehicle placement disabled - added support for OpenStreetMap data - place folders with shapefiles in %LOCALAPPDATA%/GURU2/OpenStreetMap/ - selected domain persists until cleared - fixed a crash that occurs if the carbone42 palette is missing - added a notification to use a new installer if palettes are missing - added a notification not to try to run guru2 from C:\Program Files - added initial support for winsond trails for ICECHIP