手动设置地理视图的纬度、经度范围

2024-09-28 16:19:38 发布

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

我正在使用GeoViewsQuadMesh元素绘制数据。我找不到一种方法来扩展我的绘图的地理区域,使其超出我数据的边缘一点点。我想通过显示[34,36]N纬度和[30.5,32.5]E经度范围内的区域来提供更多的上下文(海岸线等)。以下是我的代码(来自Jupyter笔记本):

import xarray as xr
import numpy as np
import holoviews as hv
from holoviews import opts
import geoviews as gv
import geoviews.feature as gf
from cartopy import crs as ccrs

gv.extension('matplotlib', 'bokeh')

dummy_data = np.arange(100).reshape((10, 10))
dummy_lats = np.tile(np.arange(0, 90, 9), (10, 1))
dummy_lons = np.transpose(dummy_lats)

dummy2d = xr.Dataset(data_vars={'data': (['x', 'y'], dummy_data)},
                     coords={'lat2d': (['x', 'y'], dummy_lats),
                             'lon2d': (['x', 'y'], dummy_lons)})

gf.ocean * gf.land  * gv.Dataset(dummy2d.data).to(gv.QuadMesh)

我试过:

gf.ocean * gf.land  * gv.Dataset(dummy2d.data).to(gv.QuadMesh, extent=(34, 30.5, 36, 32.5))

在不改变绘图的情况下发出警告WARNING:param.QuadMesh05440: Setting non-parameter attribute extent=(34, 30.5, 36, 32.5) using a mechanism intended only for parameters。你知道吗

我也试过了

img = gf.ocean * gf.land  * gv.Dataset(dummy2d.data).to(gv.QuadMesh)
img.redim.range(Latitude=(34, 36), Longitude=(30.5, 32.5))

这没有明显的效果。你知道吗


Tags: to数据importdataasnpdatasetdummy