Skip to content

Latest commit

 

History

History
159 lines (115 loc) · 5.72 KB

CHANGELOG.md

File metadata and controls

159 lines (115 loc) · 5.72 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • CoordinateSet: xyz(), set_xyz(), xyzt(), set_xyzt() methods
  • Vector space operators (Add, Sub, Mul, Div) for all built in coordinate tuple types (Coor4D, Coor3D, Coor2D, Coor32)
  • TriaxialEllpisoid, mostly as a placeholder
  • Rumination #10: What's wrong with 19111

Fixed

  • A large number of linguistic errors and ambiguities

Changed

  • CoordinateTuple trait now requires implementation of the constructor method new(fill: f64), returning an object of dim() copies of fill.
  • The huge Ellipsoid-implementation switched to a new trait EllipsoidBase, and a number of associated traits requiring EllipsoidBase.
  • Meaning of EllipsoidBase::aspect_ratio() switched from b / a to the apparently more common a / b
  • Major restructuring and clean up of lib.rs. Only marginally visible externally, if using use geodesy::prelude::*
  • Moved some_basic_coorNdinates to crate::test_dat::coorNd

Removed

  • CHANGES.md
  • Unused parallel context stup context/parallel.rs

[0.13.0] - 2024-04-06

Added

  • Better support for handling coordinates via the CoordinateSet and CoordinateTuple traits.

    Not introduced all over the code base, but see tmerc.rs, merc.rs and the documentation for CoordinateSet and CoordinateTuple for usage examples

    Note that there is a minor breaking change involved in this (see "Changed" below)

  • New operators (cf. Rumination #002 for details)

    • stack with options push, pop, roll, unroll, swap and flip.
    • gravity: Normal gravity from a number of different current and historical normal gravity models
    • deflection: Deflection of the vertical, computed from a geoid model

Fixed

  • Adhere to the Keep a Changelog recommendations
  • Tokenize::Normalize: Whitespace error
  • Better series handling in ParsedParameters

Changed

  • Upgrade dependencies

  • The CoordinateSet trait now requires the implementation of a dim() method.

    Essentially dim() is just a function returning a constant, reflecting the native dimensionality of the underlying dataset (typically a usize in the 1..=4 range)

  • Improved syntax for register resources (See Rumination #009)

  • Change the name of CHANGES.md to CHANGELOG.md, and try to follow guidelines from Keep a Changelog

Removed

  • Outdated inner_op/template.rs file
  • CHANGELOG file (can still be generated by just changelog, but not tracked by git anymore)

[0.12.0] Release notes

Improvements

  • Alternative parameter names for the helmert operator (translations, rotations etc.) (Nic Hill)
  • Improved syntax and parameter handling (#92) (Thomas Knudsen)
    • > and < can be used to indicate pipeline steps that are omit_inv and omit_fwd respectively (syntactic sugar for | omit_inv, etc.)
    • True utf-8 subscripts supported in parameter names (e.g. x₀), as alternatives to the existing x_0-style
    • More free form syntax: Modifiers inv, omit_inv and omit_fwd may now prefix the operator name, i.e. inv utm zone=32 is functionally identical to utm inv zone=32
  • Implement the axisswap operator (#84) (Thomas Knudsen)
  • Replace once_cell with std::sync::OneLock. (Corey Farwell)
  • KP: Guess output dimensionality (#82) (Thomas Knudsen)
  • Implement unitconvert operator (#80) (Sean Rennie)
  • Implement latlon, lonlat, latlong, and longlat as noop-aliases (Thomas Knudsen)

Bug fixes

  • LAEA: correct lon_0 in the inverse 'rho==0' case (#90) (Thomas Knudsen)
  • Mark clap-verbosity-flag as an optional dep (#81) (Corey Farwell)
  • Repair links in README.md (Thomas Knudsen)

Acknowledgements

Geodesy v0.12.0 materialized through contributions from

[0.11.0] Release notes

Improvements

  • Handle lists-of-grids, @optional grids, and the @null grid in grids= clauses

  • Support NTv2 format datum shift grids

  • Overall documentation brush up and extension

  • Implement somerc, the Swiss Oblique Mercator operator

  • Implement deformation, the 3D intrapalte deformation operator

  • Rename the NMEA operators to dm/dms and iso_dm/iso_dms

  • Support jacobian-of-projection and the corresponding deformation factors

  • proj_parse: Translate PROJ syntax to Rust Geodesy syntax with partial support for PROJ ellipsoid definitions

  • Through proj_parse, the Plain context, and hence kp now supports PROJ syntax (although with the limitations implied by Geodesy only supporting parts of the PROJ operator gamut, and by the differing input-output conventions between kp and proj/cct) as demonstrated by this example:

    echo 55 12 | kp geo:in | kp "proj=pipeline step proj=utm zone=32 step inv proj=utm zone=32" | kp geo:out

    which does nothing, in a very convoluted way

  • Partial operator introspection

  • General support for 2D, 3D, 4D, and 32 bit 2D coordinates (Coor2D, Coor3D, Coor4D, Coor32)

  • Hence Coord is gone

Bug fixes

  • Avoid double correction for lat_0 in inverse tmerc

Acknowledgements

A huge thank you goes to Sean Rennie who a.o. did most of the work on the improved grid support in 0.11.0, and to Kyle Barron for pushing Geodesy over the WASM barrier in 0.10.0