Recent Releases of PyMap3D
PyMap3D - Default Ellipsoid improvements
microseconds added to juliandate
Fixed numpy divide by zero error converting ECEF for multiple locations.
Don't skip Beta calculation if some values would divide-by-zero.
vdist, vreckon: add deg= option (default true)
ecef2geodetic: scalar-in, scalar-out
Scientific Software - Peer-reviewed
- Python
Published by scivision about 2 years ago
PyMap3D - Bugfix: don't use numpy.seterr
use warnings.catch_warnings() context manager instead of numpy.seterr to avoid breaking other programs that import pymap3d and want their warnings not to be errors.
Thanks @sanguinariojoe for the report and suggested fix
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 3 years ago
PyMap3D - overhaul Ellipsoid, fix Numpy warning to error
- Numpy would issue warnings that could cause incorrect computations by not being caught in
try: except:for things like divide by zero. This has been fixed. - overhaul the Ellipsoid() class
- apply good coding style and use only pyproject.toml (no setup.py, setup.cfg)
- Require Python >= 3.8: Numpy NEP29 dropped support for Python < 3.8 in December 2021. We are having a harder time supporting corner cases in Python 3.7.
Scientific Software - Peer-reviewed
- Python
Published by scivision about 3 years ago
PyMap3D - project PEP517
thanks @EpicWink
Scientific Software - Peer-reviewed
- Python
Published by scivision over 3 years ago
PyMap3D - add spherical<->geodetic transforms, enhance inputs and testing
lookAtSpheroid allows all inputs to be arrays of same shape
add functions spherical2geodetic, geodetic2spherical thanks @leouieda
remove internal "use_astropy" option
add mathfun.py to abstract numpy/math fallback
Scientific Software - Peer-reviewed
- Python
Published by scivision over 3 years ago
PyMap3D - remove most numeric type hint
The type hinting for most numerics was removed to avoid causing external package problems as per #50. thanks @randallpittman The CI coverage was improved by testing each supported Python version across MacOS, Linux, and Windows. The PEP621 pyproject.toml meta was removed to avoid duplication and conflicts with setup.cfg. thanks @philblckwd
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 4 years ago
PyMap3D - ecef2geodetic stability with float32
enhance ecef2geodetic stability with float32
Scientific Software - Peer-reviewed
- Python
Published by scivision over 4 years ago
PyMap3D - loxodrome_direct stability near asymptote
Thanks to @noritada for finding and making tests for loxodrome_direct issues. Always appreciate hearing where the test suite isn't covering a broken case.
used numpy.broadcast_arrays to simplify code.
Scientific Software - Peer-reviewed
- Python
Published by scivision over 4 years ago
PyMap3D - loxodrome_direct stability near asymptote, enhance CI
CI tests Python 3.7...3.10
Added stability to loxodromedirect for azimuth = {90,-90,270,-270} enhanced efficiency of loxodromeinverse for stability
Scientific Software - Peer-reviewed
- Python
Published by scivision over 4 years ago
PyMap3D - speed imports, add -m pymap3d.{vdist,reckon}
Don't automatically import less widespread used modules including:
lox
los
rcurve
rsphere
`
this speeds imports for most users.
add command line convenience functions:
```sh python -m pymap3d.vdist python -m pymap3d.vreckon
```
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 5 years ago
PyMap3D - bugfix: ecef2geodetic inside bug from 2.6.0
when implementing the speedup of 2.6.0, a mistake was made in ecef2geodetic that could cause an exception. This is now fixed thanks to @dschurman
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 5 years ago
PyMap3D - 100x speedup for Numpy operations
eliminated numpy.vectorize for ~100x speedup of many of the pymap3d functions, while still preserving the "no-Numpy" functionality for scalars.
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 5 years ago
PyMap3D - pypi readme fix, pep621
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 5 years ago
PyMap3D - Python >= 3.7, modernize type annotations
For better internal quality, modernize type annotations in accord with Numpy 1.20 final release.
This requires __future__.annotations, which requires Python >= 3.7.
For many months, Python 3.5 use of pymap3d has been ≪ 1%
Python 3.6 use of pymap3d continues to drop as current Numpy requires Python >= 3.7 as well.
Python 3.5 and 3.6 users can continue to use pymap3d 2.4.x. If we find any significant bugs, we plan to backport them to pymap3d 2.4.x as long as there is still significant pymap3d usage from Python < 3.7.
Scientific Software - Peer-reviewed
- Python
Published by scivision about 5 years ago
PyMap3D - prepare for optional Numpy 1.20 type hinting
Numpy 1.20 adds optional type hinting in the numpy.typing module. ArrayLike is a key type we feel appropriate for PyMap3D. PyMap3D will continue to work without Numpy or older versions of Numpy.
We add optional type hinting using numpy.typing.ArrayLike
Scientific Software - Peer-reviewed
- Python
Published by scivision over 5 years ago
PyMap3D - add codecov, cleanup test
- remove extraneous syntax from tests
- add codecov
Scientific Software - Peer-reviewed
- Python
Published by scivision over 5 years ago
PyMap3D - ECI: restore less accurate Numpy-only fallback
v2.4.0 too boldly removed the non-AstroPy ECI conversions that only require Numpy. However, the Numpy-only fallback can have several percent error due to rotation only being considered. AstroPy considers higher-order effects that greatly increase accuracy of conversions involving ECI (eci2* or *2eci)
This release restores optional status of AstroPy for ECI, but Numpy is still required for ECI as it always has been for PyMap3d.
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 6 years ago
PyMap3D - eci: use AstroPy
The ECI calculation error was substantial for some applications due to only considering Earth rotation. Now ECI calculations use AstroPy for better accuracy (< 1% error) considering more factors in the ECI transformations. Fixes #33
Added geodetic2eci
Added more ECI self-tests
Temporarily pinned CI to Python 3.8 to avoid the usual issues with brand new Python releases not immediately having PyPi wheels for Astropy. We still also test Python 3.5.
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 6 years ago
PyMap3D - return scalars when result is scalar
also move to python "src/" directory layout
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 6 years ago
PyMap3D - return scalar for scalar input
v2.0 introduced the use of numpy.vectorize to allow seamless pymap3d use with ndarray but also without numpy and scalars. However, this returned 0-d ndarray for certain functions rather than scalars for scalar inputs. This fixes that issue and adds tests for it.
Scientific Software - Peer-reviewed
- Python
Published by scivision about 6 years ago
PyMap3D - add geod2geoc, geoc2geod
API change: the last releases geodetic2geocentric and geocentric2geodetic have a "alt_m" parameter now. Set it to zero to act like before / Matlab. include the altitude to account for object height above ellipsoid.
Type hinting / quality / refactoring
Added diagnostic plots
Corrected / updated docs and error messages.
Scientific Software - Peer-reviewed
- Python
Published by scivision about 6 years ago
PyMap3D - add numerous geodetic / spherical transforms from @rpavlick
Thanks to @rpavlick for adding numerous functions in rcurve, rsphere, latitude, lox, utils and more. These functions each had tests written. Further, some Numpy functionality that was accidentally removed from v2.0 was restored for v2.1.
The goal of the PyMap3D package remains to support non-Numpy users, while also fully supporting those who have Numpy. The non-Numpy users are typically robots or platforms that stream positions in realtime, and don't need arrays, and want the faster performance of Python's built-in math module.
Scientific Software - Peer-reviewed
- Python
Published by scivision over 6 years ago
PyMap3D - unify ellipsoid spec, add geocentric <=> geodetic latitude conversion
also breaking out tests to make easier to read and more comprehensive (checking for singularities, numpy vs scalar, etc.)
Scientific Software - Peer-reviewed
- Python
Published by scivision over 6 years ago
PyMap3D - Drop Python 2.x, improve numerical stability, improve non-Numpy use, move to GitHub Actions CI
- Drop Python 2.x as code duplication and maintenance burden is too high.
- improve numerical stability, thanks @bcminch #27
- make non-Numpy use a first-class use case, with all but ECI working without Numpy (let us know if non-Numpy ECI is desirable). Of course Numpy, Pandas and Xarray are still handled first-class as well.
- move CI to GitHub Actions.
Scientific Software - Peer-reviewed
- Python
Published by scivision over 6 years ago
PyMap3D - enhance CI integration, modularize
Put ellipsoid in own file put examples in own dir
test python setup.py install as well as python setup.py develop
Scientific Software - Peer-reviewed
- Python
Published by scivision over 6 years ago
PyMap3D - Enable fallback to Python 2.6, 2.7 and 3.4
Full functionality of PyMap3D (as with Python in general in 2019) requires Python ≥ 3.5, but a useful subset is made available to Python 2.6, 2.7 and 3.4. This is relevant to MicroPython and ROS users and other special use cases where currently supported Python versions may not yet be readily available.
Put Ellipsoid() in its own file for clarity and flexibility with other packages.
ECI functions previously had an API unlike other PyMap3D functions, they are now the same as the rest of PyMap3D (scalar or N-D array for each variable).
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 7 years ago
PyMap3D - more input types
added several tests so that Pandas and Xarray are functioning.
Also handles ecef2geodetic scalar input.
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 7 years ago
PyMap3D - BUGFIX: aer2geogetic ellipsoid specifier
AER2GEODETIC was always going to the default WGS84 ellipsoid since the ell= argument was not present. We have fixed this error.
Also did a complete rewrite of documentation to numpydoc standards (mostly) and regenerated with pdoc3.
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 7 years ago
PyMap3D - BUGFIX: ecef2geodetic negative altitude
Corrected algorithmic error for ecef2geodetic where negative altitude wrapped to positive altitude
parameterized tests to provide better coverage of singularities / edge cases
Scientific Software - Peer-reviewed
- Python
Published by scivision about 7 years ago
PyMap3D - pdoc docs, negative altitude OK
use pdoc instead of sphinx for autogen docs
Don't limit altitude to be positive in geodetic2ecef, useful for near-earth WGS84 not exactly matching Earth's complicated surface.
Scientific Software - Peer-reviewed
- Python
Published by scivision about 7 years ago
PyMap3D - closed form ecef2geodetic
Improving accuracy and computation speed, a more modern closed form ecef2geodetic is implemented.
More self-tests.
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - handle more types of arrays
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - Astropy completely optional, test with pandas and xarray times
Made AstroPy completely optional for all functions, including ECI conversions
added tests for times coming in from Pandas and Xarray.
Note: removed PyPy from Travis-CI because Travis has old PyPy versions. However PyMap3D does still work with the current release of PyPy3 (6.0)
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - Reveal aer2eci, cleanup typing, improve test coverage
aer2eci was accidentally hidden before.
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - add rhumb line functions
added functions
* track2 (like Matlab)
* loxodrome_inverse (like Matlab distance('rh',...)azimuth('rh', ...))
* some auxillary functions inlox.py`
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - add ellipsoid to vincenty, python >= 3.5 and PyPy3
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - ellipsoid for other planets, more robust vincenty API and testing
Ellipsoid() now covers more Earth ellipsoid systems as well as a couple other planetary bodies such as Mars, Venus and the Moon. Feel free to pull request your own as usual, or ask.
Using Numpy ≥ 1.10.0 broadcast_to instead of tile in vreckon vdist to reduce memory usage and improve speed by using views instead of copies.
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - Move Matlab, Fortran to own repos, validate slant range and altitude
- moved Matlab/Octave code
- moved Fortran code
check for negative slant range or altitude
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - Matlab/Octave function validation
add parameter verification to Matlab/Octave functions (e.g. number of arguments, type of arguments)
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - add lookAtSpheroid
Add lookAtSpheroid to Python, Matlab/Octave, Fortran code. This determines the intersection point of a look angle from an object above the spheroid
improve test modularity and robustness with minimum prereqs (Numpy)
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - console entry points
- CI Template update
- console scripts easier to use
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - Modernize setup and test
modernize setup (setup.cfg)
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - Cleanup Fortran
- Cleaned up Fortran code error handling
- fixed Python code coverage testing
- Readme.rst => Readme.md
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - Type checking, flake8
Use flake8 and mypy type checking to improve correctness
* Python >= 3.6 required
Scientific Software - Peer-reviewed
- Python
Published by scivision over 7 years ago
PyMap3D - Improve robustness for CMake Fortran build & Matlab self-test
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 8 years ago
PyMap3D - allow radians or degrees into angular separation
This speeds up massively repeated operations of these functions--convert once to radians beforehand instead of each time (optionally)
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 8 years ago
PyMap3D - cleanup, test coverage, argument expansion
Lots of little improvements:
- cleaned up Python self-test and improved coverage via argument expansion
- added AppVeyor (windows testing)
- published in
- using Ctest
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 8 years ago
PyMap3D - Fortran radians bugfix, add err_msg to Fortran & Matlab assert
- Fixed incorrect calculations with "radians" input angles to Fortran code.
- allowed "errmag" text message for assertisclose() in Fortran and Matlab code, like Python
- improved test coverage in Fortran and Python.
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 8 years ago
PyMap3D - Correct function/variable names
Corrected names of anglesep (angular separation) formulas.
Added radec2azel,azel2radec to Fortran.
Updated paper to describe Fortran code
Scientific Software - Peer-reviewed
- Python
Published by scivision about 8 years ago
PyMap3D - pure Python fallback, Python 2.6 - 3.7+
For users without Numpy, PyMap3D can now fallback to a subset of functionality with Python alone.
Python versions tested: 2.6, 2.7, 3.3, 3.4, 3.5. 3.6, 3.7 (that's all that Travis-CI supports)
Scientific Software - Peer-reviewed
- Python
Published by scivision about 8 years ago
PyMap3D - Matlab compatibility and HTML docs
Better API compatibility with Matlab Mapping Toolbox.
HTML docs for Matlab and Python.
Scientific Software - Peer-reviewed
- Python
Published by scivision about 8 years ago
PyMap3D - Matlab and cleanup
- Added several Matlab/Octave functions (save $1000 on Matlab Mapping Toolbox).
- cleaned up self-test
Scientific Software - Peer-reviewed
- Python
Published by scivision about 8 years ago
PyMap3D - Python 2.7 - 3.7 compatible
On request Python 2.7 - 3.7 compatible.
Also added fallback simpler (but less accurate) functions where AstroPy not available.
Scientific Software - Peer-reviewed
- Python
Published by scivision about 8 years ago
PyMap3D - Vincenty, API
Scientific Software - Peer-reviewed
- Python
Published by scivision almost 9 years ago
PyMap3D - Python 3D coordinate conversions for geospace
Scientific Software - Peer-reviewed
- Python
Published by drhirsch about 9 years ago