当前位置:   article > 正文

python地理坐标转换库:pymap3d的安装与使用

pymap3d

pymap3d的GitHub地址:https://github.com/geospace-code/pymap3d

一、pymap3d安装

1.1 Prerequisites

Python>=3.7。
Numpy和AstroPy是可选的;如果AstroPy不存在,则使用Vallado和Meeus的算法。

1.2 Install 安装

python3 -m pip install pymap3d

or for the latest development code:

  1. git clone https://github.com/geospace-code/pymap3d
  2. pip install -e pymap3d

One can verify Python functionality after installation by:

pytest pymap3d

二、使用

2.1 Usage

Where consistent with the definition of the functions, all arguments may be arbitrarily shaped (scalar, N-D array).

  1. import pymap3d as pm
  2. x,y,z = pm.geodetic2ecef(lat,lon,alt)
  3. az,el,range = pm.geodetic2aer(lat, lon, alt, observer_lat, observer_lon, 0)
  1. import pymap3d as pm
  2. lat0, lon0, alt0 = 4029.25745, 11146.61129, 1165.2
  3. lat, lon, alt = 4028.25746, 11147.61125, 1165.1
  4. e, n, u = pm.geodetic2enu(lat, lon, alt, lat0, lon0, alt0)
  5. print(e, n, u)

Python argument unpacking can be used for compact function arguments with scalars or arbitrarily shaped N-D arrays:

  1. aer = (az,el,slantrange)
  2. obslla = (obs_lat,obs_lon,obs_alt)
  3. 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.

2.2 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:

  1. aer2ecef aer2enu aer2geodetic aer2ned
  2. ecef2aer ecef2enu ecef2enuv ecef2geodetic ecef2ned ecef2nedv
  3. ecef2eci eci2ecef eci2aer aer2eci geodetic2eci eci2geodetic
  4. enu2aer enu2ecef enu2geodetic
  5. geodetic2aer geodetic2ecef geodetic2enu geodetic2ned
  6. ned2aer ned2ecef ned2geodetic
  7. azel2radec radec2azel
  8. lookAtSpheroid
  9. track2 departure meanm
  10. rcurve rsphere
  11. geod2geoc geoc2geod
  12. geodetic2spherical spherical2geodetic

Vincenty functions "vincenty.vreckon" and "vincenty.vdist" are accessed like:

  1. import pymap3d.vincenty as pmv
  2. lat2, lon2 = pmv.vreckon(lat1, lon1, ground_range_m, azimuth_deg)
  3. 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:

 三、相关名词与python库

3.1 相关名词

  • 地心地固坐标系(Earth-Centered, Earth-Fixed,ECEF),简称地心坐标系。
  • 地理坐标系统(Geographic Coordinate System,GCS),坐标系是地心坐标系,用经纬度表示球面上的点。
  • 世界大地测量系统(World Geodetic System, WGS),比如WGS84,是一种地理坐标系统,用于全球定位系统(GPS)。
  • 投影坐标系统(Projection Coordinate System,PCS),在二维平面上用米表示位置。
  • 通用横轴墨卡托投影(Universal Transverse Mercator,UTM),是一种投影方法。

3.2 相关python库PyProj

与PyProj相比:

  • pymap3d不需要纯python之外的任何东西——基本函数甚至不需要numpy。
  • PyMap3D API与Matlab Mapping Toolbox类似,而PyProj的接口则非常独特
  • pymap3d本质上处理本地坐标系,如enu, 而pyproj enu需要一些additional effort。
  • pyproj面向行星表面上的点,而pymap3d处理行星表面上或上面的点同样出色,对于机载车辆和遥感尤其重要。
     

参考博客

【1】python: pyproj 坐标转换库-安装与使用_pyproj库_hyisoe的博客-CSDN博客

【2】 Python之pymap3d_追捕的风的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/118956
推荐阅读
相关标签
  

闽ICP备14008679号