问题标签 [geoviews]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
157 浏览

geopandas - Geoview和geopandas groupby投影错误

我在地理数据框上的 groupby 之后遇到投影错误。您将在下面找到我正在使用的库:

虽然这些是一些关键库的版本: bokeh 2.1.1 geopandas 0.6.1 geoviews 1.8.1 holoviews 1.13.3

我已经连接了 3 个 shapefile 来构建英国医疗保健边界的多边形图片(如果需要,可以链接到提供的文件)。不幸的是,据我发现,英国并没有产生一个结合所有这些的文件,因此不得不合并来自我感兴趣的 3 个单独国家的形状文件。这 3 个形状文件的大小为:

形状文件 1 = ( https://www.opendatani.gov.uk/dataset/department-of-health-trust-boundaries )

形状文件 2 = ( https://geoportal.statistics.gov.uk/datasets/5252644ec26e4bffadf9d3661eef4826_4 )

形状文件 3 = ( https://data.gov.uk/dataset/31ab16a2-22da-40d5-b5f0-625bafd76389/local-health-boards-december-2016-ultra-generalised-clipped-boundaries-in-wales )

我将它们连接在一起的代码如下:

一旦加入,每个文件都具有相同的 esri 投影,并且当我运行时,形状完美地绘制为一个:

这给了我一个英国的多边形图,每个 ccg 的所有区域边界。

然后,我在我的地理数据框中添加了一个名为“Country”的新列,它将每个 CCG 归属于它们所属的任何国家。因此,所有威尔士 CCG 都归于威尔士,所有英国 CCG 归于英格兰,所有苏格兰 CCG 归于苏格兰。只是对数据进行简单的附加分组。

我想要实现的是在我正在制作的多边形地图旁边有一个下拉菜单,当从下拉小部件中选择它时,它将显示特定国家/地区的所有 CCG。我知道这样做的方法是通过 groupby。但是,当我使用以下代码来实现这一点时:

我得到一长串投影错误,说明:

“警告:param.project_path:将多边形元素从 PlateCarree 坐标参考系 (crs) 投影到墨卡托投影时,没有任何投影路径包含在投影指定的范围内。确保您为数据指定了正确的坐标系。”</p>

我没有地图,但我保留了小部件。有谁知道这里出了什么问题以及可能的解决方案是什么?它让我发疯!

亲切的问候,

0 投票
1 回答
118 浏览

matplotlib - 如何使用地理视图缩放正交投影?

我知道使用 matplotlib 我可以用类似的东西放大正交投影:

我如何使用 hvplot / Geoviews / Holoviews 做到这一点?我发现的所有例子都没有放大这个特定的投影,

实际例子:

谢谢

0 投票
1 回答
203 浏览

python - 在 hv.Layout 或面板 Row,Column,Gridspec 中包含的各个绘图上设置独立缩放级别

摘要版本: 我有 2 个使用 holoviewsstreams.Selection1DDynamicMap. 当单独绘制时,它们可以设置不同的缩放级别(第二个图是第一个图的放大版本)。但是,当我在布局中并排绘制它们时,我无法在每个图上设置独立的缩放级别。如何生成一个布局,其中两个包含的地图处于不同的缩放级别但它们仍然共享它们的轴?

通过进一步调查,此问题似乎适用于全息视图布局和面板行、列和网格规范。本质上,当我使用其中一种机制来呈现我的两个绘图时,我在绘图级别设置的任何选项都会被布局、行等覆盖。

完整版: 我有 2 个合唱团:

1. 英国地图。多边形是地方当局区。引脚是商店位置。

在此处输入图像描述

当您单击特定的商店位置图钉时,它应该会生成此地图的附加放大版本:

2.商店特定的放大地图:

在此处输入图像描述

当我分别绘制 2 个等值线时,它们具有上述所需的缩放级别。

但是,如果我将两个图链接在一起并使用布局并排显示两个地图(左侧为完整的英国地图,右侧放大了商店特定地图),则右侧放大的图实际上并没有缩放。相反,它与完整的英国地图保持在相同的缩放级别(抱歉,在这里我不得不显示一个在另一个之上而不是从左到右的图):

在此处输入图像描述在此处输入图像描述

我尝试按照此处所述手动设置正确地图的缩放:https ://github.com/holoviz/geoviews/issues/340

这成功地将我的右侧地图的缩放设置为所需的级别,但不幸的是它也将整个英国地图放大了相同的数量。

在此处输入图像描述在此处输入图像描述

我还尝试为两个图设置缩放级别(使用英国的 total_bounds 左图),但这只会产生与不为任一图设置缩放级别相同的结果。

我还尝试shared_axes=False在布局上进行设置。这具有为我的左右等值线具有两个单独的缩放级别的理想结果。但是,现在由于轴不再链接,虽然单击英国地图确实会在右侧生成正确的放大地图,但右侧地图不会移动到每个引脚选择的新位置。您必须手动平移到新位置。

如何生成全息视图布局或面板行、列或网格规范,其中两个包含的地图处于不同的缩放级别但它们仍然共享它们的轴?

谢谢

0 投票
1 回答
139 浏览

python - 生成缓冲区半径多边形 - 可能的投影问题

我创建了一个带有 Pointsgeometry列的 GeoDataFrame:

1. 创建df

2. 创建gdfdf

3.重投影到使用米的CRS并计算buffer_radius每个Point周围10KM

4.将几何列更改为新buffer_radius

上述过程似乎生成了我想要的 GeoDataFrame ,其中包含gdf一个名为 Polygons 的新“几何”列buffer_radius

然后我想绘制这些新创建的多边形,所以首先我转换了buffer_radius列的 CRS:

5.重新投影到允许我制作情节的CRS:

6. 制作最终情节:

然后我尝试绘制多边形,但它返回了一个空图:

在此处输入图像描述

我的情节返回空的事实让我想知道这是否是一个可能的投影问题?

有谁知道我在这里做错了什么?任何想法或指示将不胜感激。

谢谢

0 投票
1 回答
91 浏览

python - Geoviews 绘图显示不正确的经度和纬度/以错误的格式显示它们

我有一个带有longitude = -0.050122和的点latitude = 52.699185

当我在 Geoviews 中绘制此图时,此点显示不正确:

输出:

在此处输入图像描述

同样的事情似乎也发生在使用 Geoviews 生成的多边形图上。

这是一个错误还是我必须做其他事情才能正确显示经度和纬度?

谢谢

0 投票
0 回答
91 浏览

python - 使用 geoviews 时无法导入 matplotlib 后端

我正在尝试从 Geoviews 主页 ( https://geoviews.org/index.html ) 运行示例。但是,我不能使用 matplotlib 后端来绘制曲面。我不断收到此错误:

警告:param.notebook_extension:Holoviews matplotlib 扩展无法导入,它引发了以下异常:ImportError('cannot import name 'rc_params_from_file' from 'matplotlib' (unknown location)') WARNING:param.notebook_extension: matplotlib backend hook <function _load_mpl at 0x00000224D63544C8> 失败,出现以下异常:没有名为“matplotlib.ticker”的模块

我已经尝试过重新安装 matplotlib、geoviews 和 holoviews。

我正在使用 Windows 10 中的 Jupyter Notebooks 运行代码。有什么想法吗?

0 投票
1 回答
44 浏览

bokeh - 如何为地理视图(散景)创建自定义颜色图?

我正在尝试在 Geoviews 中绘制一个 xarray 数据集,如下所示:

https://geoviews.org/gallery/bokeh/xarray_image.html#bokeh-gallery-xarray-image

在那里我可以通过 cmap 定义颜色图。

cmap 只是一个十六进制代码列表,例如:

['#150b00','#9b4e00','#f07800','#ffa448','#a8a800','#dddd00','#ffff00','#ffffb3','#ffffff','#b0ffff' , '#00e8e8', '#00bfbf', '#008a8a', '#79bcff', '#0683ff', '#0000c1', '#000048']

我想为这些颜色定义值的级别,比如这个列表:

[-10.0, -5.0, -2.5, -1.0, -0.5, -0.2, -0.1, -0.05, 0.05, 0.1, 0.2, 0.5, 1.0, 2.5, 5.0, 10.0]

如何定义这些级别?

0 投票
0 回答
38 浏览

python - 自定义多边形未在 Geoviews 中绘制

我正在尝试在 Geoviews 中绘制自定义多边形。我希望多边形以 10 度的纬度增量跨越地球。我创建的多边形使用以下代码:

但是,当我尝试在 Geoviews 上绘制此图时,出现错误。我的代码是:

我收到的错误是:

我有一个具有类似设置的 shapefile(有 2 列、区域和几何),并且代码可以使用它。但是,当我尝试使用自定义多边形时,会出现上述错误。我尝试构建多边形以绘制它的方式有什么问题吗?链接到带有多边形的全局 shapefile 的加分点,所以我可以完全绕过它:)

如果需要更多上下文,这是我的存储库的链接,或者如果我能澄清任何事情,我很乐意编辑我的问题。https://github.com/JSLifeform/Ocean-Temperature-Comparisons/tree/broken

0 投票
0 回答
53 浏览

folium - 使用folium Map作为holoviews DynamicMap

我有一个folium.Map包含带有可点击 URL 的自定义 HTML 弹出窗口。单击地图的多边形时会打开这些弹出窗口。这是一个似乎无法使用holoviews.

我想用 holoviews/geoviews 构建的最终应用程序的理想示例是这里的源代码但我想用我的 folium Map 交换主地图并绘制多边形而不是光栅化点。现在,当我想holoviews.DynamicMap从 folium.Map 创建时,holoviews(当然)抱怨数据类型“map”不被接受。这在某种程度上仍然可能吗?我在 GitHub 上找到了一些笔记本,其中全息视图使用一种可再次写入和读取 HTML 的变通方法嵌入到 folium 地图中,但似乎不可能将 folium 地图嵌入到全息视图中,以便可以使用 Streams 从该图中更新其他图!?

这是我使用的数据集的一些玩具数据(来自这里)。为简单起见,假设我只有点数据而不是多边形:

如果我理解正确,现在需要以它可以作为第一个参数传递给 holoviews.DynamicMap 的方式进行调整:

哪里my_streams还有其他一些应该随着叶图的范围更新的地块。这是可能的还是我的策略错误?

0 投票
2 回答
66 浏览

bokeh - 使散景的自定义 TapTool 为全息视图工作

我想TapTool在单击每个holoviews.Polygons. 在散景中如何工作的一个完美示例是点数据的散景文档。但是,当我尝试在全息视图中使用它时,它似乎不起作用。我能做的最接近的事情是:

该图显示得很好,并且 URL 打开的触发工作正常,但是“@domain”的解析不起作用并且 URL 是“google.???” 这里有什么问题?