![](/img/trans.png)
[英]How to convert display coordinates to geographoc coordinates (lat, lon) using cartopy?
[英]Cartopy: Convert point from axes coordinates to lat/lon coordinates
我正在使用Cartopy( TransverseMercator
投影)制作地圖。 我在軸坐標( p_a = (0.1, 0.9)
( p_a = (0.1, 0.9)
)中有一個點,我需要它的lat / lon坐標(即PlateCarree
投影中的坐標)。 我怎樣才能做到這一點?
為此,您需要將點從軸坐標轉換為顯示坐標,然后轉換為數據坐標,最后轉換為緯度/經度坐標。 因此,您需要來自matplotlib和cartopy的轉換 。
點p_a = (0.1, 0.9)
似乎在有效的緯度/經度坐標之外(對於默認的ccrs.TransverseMercator()
)。 因此我使用p_a = (0.6, 0.6)
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
proj = ccrs.TransverseMercator()
proj_cart = ccrs.PlateCarree()
f, ax = plt.subplots(subplot_kw=dict(projection=proj))
ax.coastlines()
# define point
p_a = (0.6, 0.6)
# plot point in Axes coordinates
ax.plot(*p_a, transform=ax.transAxes, marker='o', ms=10)
# convert from Axes coordinates to display coordinates
p_a_disp = ax.transAxes.transform(p_a)
# convert from display coordinates to data coordinates
p_a_data = ax.transData.inverted().transform(p_a_disp)
# convert from data to cartesian coordinates
p_a_cart = proj_cart.transform_point(*p_a_data, src_crs=proj)
# make sure we are correct
ax.plot(*p_a_cart, transform=proj_cart, marker='x', ms=10)
這產生了下圖:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.