Skip to content

Release 1.3.0 of DynAdjust

Latest

Choose a tag to compare

@daleroberts daleroberts released this 09 Mar 23:30
· 14 commits to master since this release

Overview

Key highlights include support for geoid model uncertainties, Canadian reference frames, improved sorting and reporting options, and fixes to matrix operations to stop random crashes when solving.

1. New features

  • Geoid model uncertainties (Issue #208): Interpolate uncertainty from AUSGeoid2020 and AGQG geoid model grids and combine with estimated ellipsoidal height uncertainties to derive orthometric height uncertainties via propagation of variances
  • Canadian reference frames (Issue #314): Add support for NAD83(CSRS) and versions v2–v8, including labels, EPSG codes, reference epochs, and transformation parameters to each ITRF frame

2. Enhancements

  • Measurement-to-station sort options (Issue #305): Add alphanumeric (now default), file-order, increasing-count, and decreasing-count sort modes for the measurement-to-station report (--sort-msr-to-stn-field)
  • Source record propagation (Issue #317): dnareftran now propagates measurement records when exporting via --export-xml-files, adding source file provenance tracking to binary files. Note: this breaks binary file compatibility — all data should be reimported using dnaimport

3. Bug fixes

  • Fix matrix bugs (Issue #228): Fix memory bugs in copybuffer(), operator=, and cholesky_inverse() in the contiguous matrix code, discovered through extensive fuzzing and testing. This stops random failures when solving
  • Fix GNSS n-stat sorting (Issue #285): When sorting adjusted GNSS measurements by n-stat with non-Cartesian display units (ENU/AED/ADU), n-stat values are now recomputed in the displayed coordinate frame before sorting, so sort order matches the printed output
  • Fix direction set counting (Issue #283): Fix discrepancy where XML and DNA imports of the same dataset reported different numbers of direction sets and total measurements
  • Fix network adjustment timing (Issue #327): Fix incorrect "Network adjustment took 0s" message

4. Build and CI improvements

  • Merge unit tests and functional tests (Issue #330): Combine unit tests (under tests/) and functional tests so everything runs under ctest
  • Code coverage workflow (Issue #334): New GCC-based code coverage workflow in GitHub Actions that does not require external website registration
  • Fix ICU dependency in static builds (Issue #333): Add ICU as a dependency for static Linux builds of Xerces, fixing dnaimport transcoding failures on machines without GNU iconv data
  • Combined build and test workflow: Merge separate build and test workflows into a single GitHub Actions workflow with proper dependencies
  • Update version number to 1.3.0 (Issue #332)

5. Testing

  • New test for GNSS n-stat sorting in non-Cartesian frames (test_gnss_nstat_sort.cpp)
  • New test for measurement-to-station sort options (test_msr_to_stn_sort.cpp)
  • New test for source record propagation in binary measurement files
  • Expanded matrix tests covering copybuffer() and inversion edge cases
  • Improvements to dnadiff test dependencies