日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python: pyproj 坐标转换库-安装与使用

發布時間:2023/12/29 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 pymap3d

or for the latest development code:

git clone https://github.com/geospace-code/pymap3dpip install -e pymap3d

One can verify Python functionality after installation by:

pytest pymap3d

Usage

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

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

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:

aer2ecef aer2enu aer2geodetic aer2ned ecef2aer ecef2enu ecef2enuv ecef2geodetic ecef2ned ecef2nedv ecef2eci eci2ecef eci2aer aer2eci geodetic2eci eci2geodetic enu2aer enu2ecef enu2geodetic geodetic2aer geodetic2ecef geodetic2enu geodetic2ned ned2aer ned2ecef ned2geodetic azel2radec radec2azel lookAtSpheroid track2 departure meanm rcurve rsphere geod2geoc geoc2geod geodetic2spherical spherical2geodetic

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.vreckon

array 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 坐标转换库-安装与使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。