问题标签 [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 回答
88 浏览

google-colaboratory - 在 Google Colaboratory Notebook 上使用 Geoviews 绘制 Xarray 图像

我正在尝试从 Google Colaboratory 上的此链接复制代码,但我的 Colab Notebook 因我不明白的原因而崩溃。是否有可能让它正常工作?

0 投票
0 回答
132 浏览

openstreetmap - 使用全息视图放大时,如何让 plottetd 点保持相同大小?

我正在使用 python 中的全息视图在地图上绘制点,即使放大,我也希望绘制的点保持相同的大小。我正在使用散景扩展。

我发现这篇文章解决了散景问题,这是一个链接。但到目前为止,我还没有找到全息视图的解决方案。

这是一些示例代码:

0 投票
2 回答
333 浏览

python - 如何将等值线地图与 Python 中的阴影栅格相结合?

我想在地图上绘制区域的特征,但人口密度非常不均匀,较大的瓷砖会误导性地吸引注意力。想想邮政编码的平均值(比如考试成绩)。

高分辨率地图可用于区分有人居住的地区,甚至是其中的密度。下面的 Python 代码确实根据每个像素的平均密度生成了一个彩色栅格。

但是,我真正需要的是从同一区域的等值线地图(在这种情况下为匈牙利的邮政编码)着色,但着色只影响无论如何都会出现在栅格上的点。光栅只能确定像素的伽玛(或者可能是某些 3D 模拟中的高度)。什么是解决这个问题的好方法?

不知rasterio.mask.mask何故?

(顺便说一句,带有邮政编码边界的叠加层也很好,但我对如何使用它有更好的理解GeoViews。)

0 投票
1 回答
860 浏览

python-3.x - 如何使用 gv.Polygons 而不是 gv.Shape 成功绘制 Choropleth


  • 进一步测试后更新 20/02/20:

我还有 2 个其他 shapefile(一个用于英国邮政编码区,一个用于 Parl 选区)。与这些一起使用 gv.Shape 时,我不需要设置用于成功绘制的投影,这与我在原始帖子中讨论的不同。我还可以使用 gv.Polygons 成功地为这些生成 choropleths:

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

当我检查这些使用的投影时{'init': 'epsg:4326'},我更改了 lad19 shapefile 上的投影以匹配:

gdf = gdf.to_crs(epsg=4326)

但是,当我尝试使用 gv.Polygons 生成 choropleth 时,它失败并出现与我之前记录的第一个错误相同的错误。

这感觉就像我接近解决方案一样,有人有什么建议吗?


  • 原始开始:

我已经下载了这个英国 shapefile: https ://geoportal.statistics.gov.uk/datasets/local-authority-districts-december-2019-boundaries-uk-buc

我可以使用以下代码( gv.Shape 方法)成功创建交互式 UK Choropleth :

在此处输入图像描述

在此处输入图像描述

我的问题是我想转向更具交互性的绘图,即用户在左侧的地图上选择一个多边形,并在右侧为给定的多边形/地方当局区域显示一个表格和/或其他一些绘图: http://holoviews.org/gallery/demos/bokeh/choropleth_data_link.html

为此,我必须从使用 gv.Shape 切换到 gv.Polygons,无论我尝试什么,我都无法让它成功工作。


不成功的 gv.Polygons 方法

我在这里检查了https://spatialreference.org/ref/epsg/osgb-1936-british-national-grid/这似乎是所需的投影,即 OSGB。

所以我认为我可能必须明确设置 kdims:

这给了我一个与以前非常相似的错误。

通过阅读这些错误消息链接中的用户指南,它说“表格数据具有固定的列标题列表,其值存储在任意长的行列表中。电子表格、关系数据库、CSV 文件和许多其他典型数据源自然适合变成这种格式。”

我尝试使用从 csv 和羽毛格式的 shapefile 和 demo_file 创建的 gdf ​​进行此操作,但均未成功。

我尝试的最后一件事是将 gdf ​​与 demo_file df 合并,然后尝试再次绘制等值线:

但正如你所看到的,我又遇到了同样的错误。

有趣的一点是,当我检查在合并的 finalgdf 上使用的投影时,它返回为 NoneType:

所以我将它设置为 OSGB:

然后重复了我上次的情节尝试,但是我又遇到了同样的错误:

我完全输了。谁能帮助我使用 gv.Polygons 而不是 gv.Shape 成功地重新创建我的英国等值线?

如果做不到这一点,如果有一种方法可以按照http://holoviews.org/gallery/demos/bokeh/choropleth_data_link.html将我使用 gv.Shape 生成的 choropleth 成功链接到数据表和/或其他图,那么那将是伟大的。我也尝试过但也未能成功。

谢谢

我正在使用 OSX (10.15.2 (19C57))、firefox 74.0 (64-bit) 并且我正在使用 Jupyter Notebook

软件版本:(试图包括相关的,因为这里不能全部适合它们 - 如果我遗漏了任何让我知道,我会添加它们)

0 投票
1 回答
237 浏览

python-3.x - 使用 OSGB 投影时的 gv.Polygons DataError

我有 2 个英国的 shapefile:

使用 WGS 84 投影的 shapefile,我可以使用 gv.Polygons 成功绘制我的等值线:

在此处输入图像描述

但是,如果我使用 OSGB 投影使用 shapefile,则会出现错误:

我尝试转换使用的投影,但是当我再次尝试运行 gv.Polygons 时又遇到了同样的错误:

请注意,我可以使用 gv.Shape 成功地为这两个 shapefile 绘制等值线。使用 gv.Shape 的唯一区别是使用 shapefile 1 我不需要指定使用的投影,而使用 shapefile 2 我必须指定crs=ccrs.OSGB().

有谁知道这里发生了什么?

谢谢

Shapefile 下载链接:

形状文件 1:

https://geoportal.statistics.gov.uk/datasets/westminster-parliamentary-constituencies-december-2017-uk-bsc

形状文件 2:

https://geoportal.statistics.gov.uk/datasets/local-authority-districts-december-2019-boundaries-uk-buc

0 投票
1 回答
120 浏览

pandas - GeoViews 保存的内联 HTML 文件非常大

我使用 geopandas 和 geoviews 的组合创建了地理数据框。我正在使用的库如下:

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

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

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

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

我已成功合并它们以构建我正在寻找使用的图片:

但是,我想将这些图表包含在一个可共享的 html 文件中。我遇到的问题是,当我使用以下方法保存 HTML 时:

我生成了一个显示图表的 html 文件,但大小为 80mb,太大了,特别是如果我想在同一个 html 中包含更多多边形图表和其他图表。

有谁知道一种更有效的方法,从内存的角度来看,我可以将我的多边形图存储在 HTML 文件中以供共享?

0 投票
1 回答
271 浏览

shapely - 从 shapefile 显示多边形的 geoviews/geopandas/shapely 问题

我正在尝试将表示 Coast Redwoods 范围的 shapefile 覆盖到我在geoviews中处理的其他一些数据上。我可以使用 cartopy 和 matplotlib 成功绘制数据。GeoPandas 读取 shapefile,但将 GeoDataFrame 或单个形状多边形传递给 gv.Shape(如“Shape”下的 geoviews用户指南中)始终导致

我不确定问题出在 Shapely 还是 Geoviews 中。我怀疑 geoviews 因为 geopandas 能够重新投影和绘制多边形。

我已经放了一个笔记本来演示这个问题并提供了 shapefile。

非常感谢任何帮助或想法。

0 投票
1 回答
255 浏览

python - 从数组绘制到 geoviews/holoviews。需要转换为 xarray 吗?

首先,如果有人有一个很好的教程的链接,可以使用geoviews或holoviews创建colomaps并将其传输到仪表板,请发送链接。我试图模仿他们在此处视频中的时间戳所做的事情。除了他们网站上的几个例子之外,也很难找到好的地理视图文档,所以指向完整文档会很棒。

无论如何,我认为我有一个非常基本的情节。它是 y 的 xa 网格和 az 值的网格。我想在geoviews中绘制这个。它基本上包含来自 GPS 站的插值运动,我想制作 z 值的颜色图。我可以用 matplotlib 用一个简单的方法很容易地绘制这个

但是试图将它放入geoviews会产生一个非常时髦的数据框。

运行print(np.shape(mesh_x),np.shape(mesh_y), np.shape(z1))显示所有这些的形状都是 (41,348)。如果我尝试将它们放入一个数组中, a = np.array((mesh_x,mesh_y,z1))我会得到一个形状为 (3,41,348) 的数组,如预期的那样。从这里我真的只是在猜测该怎么做。当我尝试将其放入 geoviews 点数据框时

points = [a[0], a[1], a[2]] df = gv.Points(points) df.dframe()

然后运行df.dframe()它显示两列,经度和纬度的值不正确,这是它显示的屏幕截图,如果它有帮助在此处输入图像描述

我曾尝试转换为 xarray,因为它似乎在 geoviews 网站上显示的所有示例中都是首选,但它看起来也很时髦。当我尝试时,xrtest = xr.DataArray((mesh_x,mesh_y,z1))我得到一个看起来像这样的 xarray在此处输入图像描述

在这一点上,我不知道该怎么做。我尝试了几种不同的方法,虽然我可能会工作,但我不记得所有这些方法。这就是我现在的位置。我确定我做错了什么,我只是不知道如何正确地做。谢谢

0 投票
1 回答
182 浏览

python - geoviews 数据集在覆盖 holoviews 平铺源时将纬度/经度转换为小数

我有一个 geoviews 数据集,我终于开始工作了。它是一组 GPS 站的纬度、经度和速度,在它们之间进行插值。这些值位于规则网格上。

我按照 https://geoviews.org/user_guide/Gridded_Datasets_II.html中的示例创建了一个集合,如下所示

当我调用 ensemble 时,我得到一个带有正确 lat 和 lon 值的热图,如下所示合奏电话 注意 lats 和 lon 在这里是正确的。现在我将再次运行上面显示的被注释掉的行。这是输出在此处输入图像描述

我已经尝试过使用不同的瓷砖来源,希望可以解决它。我还尝试覆盖地理视图功能,例如海岸线(gf.coastline()),当我运行时出现错误TypeError: range() got an unexpected keyword argument 'dimension_range'

我真的很想喜欢这个包,它看起来像一个强大的包,但我很难让事情正常工作。我还将为其他能够创建热图并在其下显示底图的软件包提供建议。最好具有内置缩放功能。

谢谢

0 投票
0 回答
44 浏览

python - 创建 Geoviews quadmesh 时出错:没有可用的存储后端能够支持提供的数据格式

我正在使用 Geoviews 和 Python 来绘制田野中的杂草。我想使用四边形来可视化我们的数据,类似于geoviews 网站上的示例。我有以下代码:

运行代码会产生以下错误:

在将数据读入 Geoviews 数据集之前,我曾尝试将数据转换为 XArray 数据集而不是 pandas 字典,但这会产生相同的错误。