x 座標と y 座標のみを変換してデータをプロットする場合は、iris
andを使用できcartopy
ます。
import iris
import numpy as np
まず、ネイティブ投影で座標点を取得します
proj_x = cube.coord("projection_x_coordinate").points
proj_y = cube.coord("projection_y_coordinate").points
次に、同じ形状の 2 次元配列のペアを作成します。
xx, yy = np.meshgrid(proj_x, proj_y)
次に、ネイティブ プロジェクションを抽出し、それをプロジェクションに変換しcartopy
ます。
cs_nat = cube.coord_system()
cs_nat_cart = cs_nat.as_cartopy_projection()
次に、標準の楕円体投影などのターゲット投影を作成します。
cs_tgt = iris.coord_systems.GeogCS(iris.analysis.cartography.DEFAULT_SPHERICAL_EARTH_RADIUS)
# Again, convert it to a cartopy projection
cs_tgt_cart = cs_tgt.as_cartopy_projection()
最後に、cartopy
の transform メソッドを使用して、ネイティブ投影の 2D 座標配列をターゲット投影の座標に変換します。
lons, lats, _ = cs_tgt_cart.transform_points(cs_nat_cart, xx, yy).T
# Note the transpose at the end.
z
また、上記の関数は常に座標配列を返しますが、この場合は 0 であることにも注意してください。
lons
その後、とを使用しlats
て、Google マップまたは他のアプリケーションでデータをプロットできます。これらの新しい座標は曲線であるため、実際には 2D 配列でなければならないことに注意してください。
iris
ただし、 (および)のデータをプロットする場合は、次のmatplotlib
方法で実行できます。
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
proj_x = cube.coord("projection_x_coordinate").points
proj_y = cube.coord("projection_y_coordinate").points
cs_nat_cart = cube.coord_system().as_cartopy_projection()
fig = plt.figure()
ax = fig.add_subplot(111, projection=ccrs.PlateCarree())
ax.pcolormesh(proj_x, proj_y, cube.data, transform=cs_nat_cart)
ax.coastlines()
お役に立てれば。