Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Python library for geographic system transformations with additional helper functions.
This package focuses on:
(3,1)
or (nPoints,3,1)
. Shapes (3,)
and (nPoints,3)
are also supported.pip install transforms84
The following coordinate transformations have been implemented:
The following velocity transformations have been implemented:
The following distance formulae have been implemented:
The following functions have been implemented:
See the Jupyter notebooks in examples to see how to use the transform84. Run pip install transforms84[examples]
to run the examples locally.
The transforms.ECEF2ENU
transformation accepts same and differing matrix shape sizes. Below showcases the many-to-many method where three target points, rrm_target
, in the geodetic coordinate system are transformed to the local ENU coordinate system about the point rrm_local
, where both matrices are of shape (3, 3, 1):
>> import numpy as np
>> from transforms84.systems import WGS84
>> from transforms84.helpers import DDM2RRM
>> from transforms84.transforms import ECEF2ENU, geodetic2ECEF
>>
>> rrm_local = DDM2RRM(
>> np.array(
>> [[[30], [31], [0]], [[30], [31], [0]], [[30], [31], [0]]], dtype=np.float64
>> )
>> ) # convert each point from [deg, deg, X] to [rad, rad, X]
>> rrm_target = DDM2RRM(
>> np.array(
>> [[[31], [32], [0]], [[31], [32], [0]], [[31], [32], [0]]], dtype=np.float64
>> )
>> )
>> ECEF2ENU(
>> rrm_local, geodetic2ECEF(rrm_target, WGS84.a, WGS84.b), WGS84.a, WGS84.b
>> ) # geodetic2ECEF -> ECEF2ENU
array(
[
[[4.06379074e01], [-6.60007585e-01], [1.46643956e05]],
[[4.06379074e01], [-6.60007585e-01], [1.46643956e05]],
[[4.06379074e01], [-6.60007585e-01], [1.46643956e05]],
]
)
We can achieve the same result using the one-to-many method with a single local point of shape (3, 1):
>> rrm_local = DDM2RRM(np.array([[30], [31], [0]], dtype=np.float64))
>> ECEF2ENU(rrm_local, geodetic2ECEF(rrm_target, WGS84.a, WGS84.b), WGS84.a, WGS84.b)
array(
[
[[4.06379074e01], [-6.60007585e-01], [1.46643956e05]],
[[4.06379074e01], [-6.60007585e-01], [1.46643956e05]],
[[4.06379074e01], [-6.60007585e-01], [1.46643956e05]],
]
)
transforms84.systems
includes the WGS84
class, which is the WGS 84 version of the standard. Other standards can be created:
>> from transforms84.systems import WGS, WGS72
>> WGS72 == WGS(6378135.0, 6356750.520016094)
True
...in no particular order:
PRs are always welcome and appreciated!
After forking the repo install the dev requirements: pip install -e .[dev]
.
Pre-commit hooks may be installed: pre-commit install --hook-type pre-commit --hook-type pre-push
. This isn't required as pull requests are checked with tox and apply lint automatically.
FAQs
Geographic system transformations with helper functions
We found that transforms84 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.