问题标签 [contextily]

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 投票
0 回答
166 浏览

matplotlib - 如何在 matplotlib 和 Jupyter 笔记本中旋转上下文底图

我正在使用 matplotlib 和 geopandas 在 Jupyter Notebook 中制作一组带有子图的数字。顶部图(A 和 B)具有地理空间数据并使用各种底图(航空影像、阴影浮雕等)。

如何将前两个图旋转 90 度,使它们被拉长?

(当然,我需要重做 gridspec 布局,但这很容易;我不知道该怎么做:旋转绘图,但保留地理信息以绘制底图。)

可重复的代码如下。

在此处输入图像描述

0 投票
1 回答
223 浏览

geopandas - 上下文底图匹配问题

我正在尝试在 python 中使用上下文在底图上绘制一组点。我有以下由 shapely.geometry 生成的点对象,先长,然后是纬度。

0 点 (-122.44040676 37.7452892821)

1 点 (-122.432337016 37.7814273807)

2 点 (-122.409302275 37.7923551768)

3 点 (-122.446989285 37.7963790178)

4 点 (-122.412922159 37.8076612624)

然后我将其转换为 geopandas 数据并习惯于跟随绘制它。

我将 crs 设置为geo_df = geo_df.to_crs(epsg=3857). 问题是我可以看到这些点,但底图显示不正确。似乎它只是在海洋中间展示它们。我怀疑底图有不同的 crs,或者我的 crs 中可能存在问题。有人对此有想法吗?这是具有更多点的完整图像。

图片

0 投票
1 回答
354 浏览

zooming - 根据上下文,如何获得允许的最大缩放并相应地设置地图范围

使用 Python 3.8、GeoPandas 和 Contextily,我在不同区域以不同的缩放级别绘制了许多地图(循环遍历 GeoDataFrame 中的点列表)。不同的缩放级别适用于不同的全局区域。

将缩放设置为允许的最大值,捕获我正在绘制的点的最佳方法是什么?在下面的代码中,我不知道如何:

  1. 返回允许的最大缩放(我在第二个图中只使用了 13,因为那是错误消息)
  2. 更改第二个地块的范围——第二个地块的范围与第一个相同;我本来希望改变缩放级别会改变范围

我想我已经正确设置了 EPSG,这是此处类似问题的答案的要点。

代码:

在此处输入图像描述

0 投票
0 回答
90 浏览

python - 如何导出 contextily-geopandas 图像?

我有一个脚本,我在其中循环遍历 geopandas daraframe 并在笔记本上显示每一行,并根据上下文显示底图,但我不确定如何导出它。

我知道bounds2img方法,但问题是我只能导出底图,而不是我的几何图形。

我的add_basemap代码如下 在此处输入图像描述

0 投票
0 回答
130 浏览

python - 来自上下文的低质量底图

我正在尝试contextily在我的一些地块中插入地理底图,但底图的分辨率似乎非常低且呈颗粒状。例如,查看由 folium 生成的同一区域的地图,对于诸如文字之类的东西来说要清楚得多。

到目前为止,Contextily 与我的绘图方式有最简单的接口,所以我很好奇我是否做错了什么

在我的计算机上,我更喜欢生成矢量图形图,但在这里它是一个 png。据我所知,当呈现为 pdf 与 png 时,低质量的效果很明显。 在此处输入图像描述

生成此图像的代码是

0 投票
1 回答
184 浏览

python - Contextily basemap is blank with point GeoDataFrame

I have a dataframe of individual addresses with lat/long that I converted to a GeoPandas dataframe. I set the projection to the Contextily EPSG:3857 projection.

All of these individuals are in the state of Georgia, so these points look correct to me. I confirmed with df.crs that the EPSG is 3857. I'm trying to plot the points on a contextily plot, using:

Here is the resulting blank plot

I tried to follow the advice of other people who have had similar issues: Github issue, Stack Overflow issue by changing the source and zoom level but that hasn't resolved it.

0 投票
0 回答
226 浏览

python - matplotlib 设置轴限制不起作用

我试图在 matplotlib 中指定数字限制,但它们没有被强制执行。我在我的子图中设置了限制,我看到这些数字明显处于不同的程度,所以我打印了指定的和实际的限制以确认它们是不同的。

无论数据范围如何,如何强制数字限制?

当我为几个数据帧运行这个函数时,地图不在相同的范围内,也不在我指定的范围内。

它返回的限制与我指定的不同。我指定的在左边,实际在右边。

0 投票
0 回答
109 浏览

python - 根据上下文更改底图大小

我正在创建一个程序来映射我选择的邮政编码,然后根据某些条件应用颜色图。我遇到的问题是我希望生成的图像始终是特定尺寸。我正在使用来自https://www.suche-postleitzahl.org/downloads的数据。

目前,我正在从地理数据框中绘制我的邮政编码:

我正在使用上下文添加底图,如下所示:

我试过了

并且

这些会增加生成的邮政编码图的大小,但不会增加我的底图。

我想要的行为是调整底图的大小,但我在上下文文档中找不到任何方法来做到这一点。

0 投票
1 回答
173 浏览

python - 添加上下文底图时忽略绘图限制

正如标题所说,当我自己绘制一些 geopandas 数据时,绘图限制与我指定的完全一样,但是当我通过上下文(v1.1.0)添加底图时,图块的范围决定了底层图像的大小,并且情节限制成为图像的延伸。结果,我实际想要绘制的区域更小并且经常偏离中心(这很糟糕)。

其他人已经发布,他们通过使用 xlim 和 ylim 参数修复了范围内的类似问题,但这对我不起作用

在我的特殊情况下,xMin 的值为 15,535,161,但该图向西延伸超过 15,530,000(小于 xMin)。

上下文文档说该选项reset_extent具有[Default=True]If True, the extent of the basemap added is reset to the original extent (xlim, ylim) of ax. 然而,这似乎是一个谎言,因为它没有发生。

您可以在我的代码片段中看到,我在绘图和底图之前和之后明确设置了 lims,这也没有效果。我希望它将绘图的可见部分裁剪到绘图范围内(就像我用于绘制地图的其他语言一样)。

所以,要么这在上下文中被打破,它实际上不应该做我正在寻找的(显然是想要的)裁剪,或者我做错了我找不到或弄清楚的事情。希望有人能发现问题并告诉我如何让这些地图图看起来应该如何。

请注意,当我将 imshow 命令更改为ax.imshow(basemap, extent=[xMin, xMax, yMin, yMax])我的数据时,我的数据正确显示在绘图限制中,但底图没有改变,它们也没有对齐。

另请注意,如果我删除填充,我的数据会一直延伸到北、南和东侧的边缘,但地图会延伸到西边界上的相同(错误)位置。

0 投票
0 回答
24 浏览

python - 如何将底图添加到已使用 geopanda 和上下文屏蔽的 geotiff

我是 geopandas 和 rasterio 的新手。我已经设法用我的掩码 geotiff 数据绘制了一个图,并使用转换来获取轴上的正确坐标值。我现在想根据上下文添加底图,但我很挣扎。

到目前为止,这是我的代码...

我认为contexily可以做到这一点,但我在两个图书馆之间迷路了。你能帮忙吗?