簡體   English   中英

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投影中的坐標)。 我怎樣才能做到這一點?

為此,您需要將點從軸坐標轉換為顯示坐標,然后轉換為數據坐標,最后轉換為緯度/經度坐標。 因此,您需要來自matplotlibcartopy的轉換

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM