python: pyproj 坐标转换库-安装与使用
Python 第三方庫 pyproj 坐標轉換-安裝與使用
一個python庫函數,包含了地理坐標系、坐標系、ECEF、BLH、ECI,ENU等坐標系,簡單易用
Pure Python (no prerequistes beyond Python itself) 3-D geographic coordinate conversions and geodesy.
API similar to popular $1000 Matlab Mapping Toolbox routines for Python
PyMap3D is intended for non-interactive use on massively parallel (HPC) and embedded systems.
API docs
相關名詞
- 地心地固坐標系(Earth-Centered, Earth-Fixed,ECEF),簡稱地心坐標系。
- 地理坐標系統(Geographic Coordinate System,GCS),坐標系是地心坐標系,用經緯度表示球面上的點。
- 世界大地測量系統(World Geodetic System, WGS),比如WGS84,是一種地理坐標系統,用于全球定位系統(GPS)。
- 投影坐標系統(Projection Coordinate System,PCS),在二維平面上用米表示位置。
- 通用橫軸墨卡托投影(Universal Transverse Mercator,UTM),是一種投影方法。
Python 提供了第三方庫 pyproj 可以方便地進行坐標轉換。下面主要介紹安裝及使用方法:
Prerequisites
Python>=3.7。
Numpy和AstroPy是可選的;如果AstroPy不存在,則使用Vallado和Meeus的算法。
Install 安裝
python3 -m pip install pymap3dor for the latest development code:
git clone https://github.com/geospace-code/pymap3dpip install -e pymap3dOne can verify Python functionality after installation by:
pytest pymap3dUsage
Where consistent with the definition of the functions, all arguments may
be arbitrarily shaped (scalar, N-D array).
Python argument unpacking can be used for compact function arguments with scalars or arbitrarily shaped N-D arrays:
aer = (az,el,slantrange) obslla = (obs_lat,obs_lon,obs_alt)lla = pm.aer2geodetic(*aer,*obslla)where tuple lla is comprised of scalar or N-D arrays (lat,lon,alt).Example scripts are in the examples directory.Native Python float is typically 64 bit.Numpy can select real precision bits: 32, 64, 128, etc.
Functions
包含了大部分坐標系轉換的函數
Popular mapping toolbox functions ported to Python include the following, where the source coordinate system (before the “2”) is
converted to the desired coordinate system:
Vincenty functions “vincenty.vreckon” and “vincenty.vdist” are accessed like:
import pymap3d.vincenty as pmvlat2, lon2 = pmv.vreckon(lat1, lon1, ground_range_m, azimuth_deg) dist_m, azimuth_deg = pmv.vdist(lat1, lon1, lat2, lon2)Additional functions:
- loxodrome_inverse: rhumb line distance and azimuth between ellipsoid points (lat,lon) akin to Matlab distance('rh', ...) and azimuth('rh', ...)
- loxodrome_direct
- geodetic latitude transforms to/from: parametric, authalic, isometric, and more in pymap3d.latitude
Abbreviations:
- AER: Azimuth, Elevation, Range
- ECEF: Earth-centered, Earth-fixed
- ECI: Earth-centered Inertial using IERS via astropy
- ENU: East North Up
- NED: North East Down
- radec: right ascension, declination
Ellipsoid
默認為WGS84,包含了多種其它的。Numerous functions in pymap3d use an ellipsoid model. The default is WGS84 Ellipsoid.Numerous other ellipsoids are available in pymap3d.Ellipsoid.
Print available ellipsoid models:
import pymap3d as pmprint(pm.Ellipsoid.models)Specify GRS80 ellipsoid:
import pymap3d as pmell = pm.Ellipsoid.from_name('grs80')command line
Command line convenience functions provided include:
python -m pymap3d.vdist python -m pymap3d.vreckonarray vs scalar
Use of pymap3d on embedded systems or other streaming data applications often deal with scalar position data.These data are handled efficiently with the Python math stdlib module.Vector data can be handled via list comprehension.
Those needing multidimensional data with SIMD and other Numpy and/or PyPy accelerated performance can do so automatically by installing Numpy.pymap3d seamlessly falls back to Python’s math module if Numpy isn’t present.To keep the code clean, only scalar data can be used without Numpy.As noted above, use list comprehension if you need vector data without Numpy.
總結
以上是生活随笔為你收集整理的python: pyproj 坐标转换库-安装与使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bootice添加黑苹果引导_黑苹果去除
- 下一篇: 【PC工具】在线格式转换工具,在线智能抠