如何在lambert共形投影中绘制数据

2024-06-16 10:50:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Geoviews绘制WRF输出。WRF输出文件包含纬度和经度信息,它们都是二维数组。在

所以我现在要做的是:

  1. 使用Cartopy的投影定义,计算1D x/y坐标
  2. 修改我的xr.dataset使其具有这些1D x/y坐标
  3. 从这个xr.Dataset创建一个gv.Dataset,提供WRFcrs(这是Lambert共形的,顺便说一句)
  4. 从这个gv.Dataset绘制一个gv.Image

xr.Dataset如下所示:

<xarray.Dataset>
Dimensions:       (Time: 48, low_mid_high: 3, south_north: 210, west_east: 210)
Coordinates:
  * Time          (Time) datetime64[ns] 2016-08-22 2016-08-22T00:30:00 ...
  * low_mid_high  (low_mid_high) <U4 'low' 'mid' 'high'
  * south_north   (south_north) float64 -3.7e+06 -3.699e+06 -3.698e+06 ...
  * west_east     (west_east) float64 6.629e+06 6.627e+06 6.626e+06 ...
Data variables:
    cloudfrac     (low_mid_high, Time, south_north, west_east) float32 0.533683 ...

我的代码是这样的:

^{pr2}$

我得到了一个结果,但是它不是在经纬度投影中,而是在原始的Lambert共形投影中,这意味着south_north和{}是y轴和x轴。在

根据the Geoviews website

both backends can use incoming data in any of the supported projections, via the crs parameter of most GeoViews objects.

如何在图像中使用经度/纬度作为x和y轴?

编辑:如果可能,我希望使用Bokeh后端。实际上,我并不关心tick标签,但在绘图中投影是错误的:当x/y轴表示lon/lat时,就像在WebMercator投影中一样,并且在gv.Image()调用中使用lambertformal数据投影,我希望图像的区域是非方形的(在北半球,图像范围的上边缘的左右距离应该比图像范围的下边缘大)。在


Tags: the图像timedatasetlow投影westhigh