- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我对用Cartopy渲染google tiles有点疑惑。与标准的谷歌地图外观相比,该 map 看起来非常糟糕。
示例(来自 https://ocefpaf.github.io/python4oceanographers/blog/2015/06/22/osm/ 的代码):
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.io import shapereader
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
def make_map(projection=ccrs.PlateCarree()):
fig, ax = plt.subplots(figsize=(9, 13),
subplot_kw=dict(projection=projection))
gl = ax.gridlines(draw_labels=True)
gl.xlabels_top = gl.ylabels_right = False
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
return fig, ax
import cartopy.io.img_tiles as cimgt
extent = [-39, -38.25, -13.25, -12.5]
request = cimgt.GoogleTiles()
fig, ax = make_map(projection=request.crs)
ax.set_extent(extent)
ax.add_image(request, 10)
生成:
与链接网站上显示的相同图像相比,这看起来很差——看看文本标签和街道号码的像素化渲染:
更改缩放级别似乎并没有改善这种情况。
这是我正在处理的由 Cartopy 和 googletiles() 渲染的 map 上的另一个示例:
Google Maps 中显示了相同的 map
有人知道这个奇怪问题的原因是什么以及如何解决吗?
最佳答案
这个问题也在 https://github.com/SciTools/cartopy/issues/1048 的 cartopy 问题跟踪器上被问到,建议设置 interpolation=
关键字参数。这是 imshow 的标准 matplotlib 插值,记录在 https://matplotlib.org/gallery/images_contours_and_fields/interpolation_methods.html .
我们在问题跟踪器中确定您在这里看到的是 nearest
的插值。将其更改为 bilinear
会得到很好的结果,并且可以使用不同的插值方案实现更好的结果。例如 spline36
方案产生了非常令人愉快的图像......
因此,使用您的示例代码:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.io import shapereader
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import cartopy.io.img_tiles as cimgt
extent = [-39, -38.25, -13.25, -12.5]
request = cimgt.OSM()
fig = plt.figure(figsize=(9, 13))
ax = plt.axes(projection=request.crs)
gl = ax.gridlines(draw_labels=True, alpha=0.2)
gl.xlabels_top = gl.ylabels_right = False
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
ax.set_extent(extent)
ax.add_image(request, 10)
plt.show()
我们得到:
要设置双线性
插值,我们可以将add_image
行更改为:
ax.add_image(request, 10, interpolation='bilinear')
更好的是,让我们尝试类似 spline36 的东西:
ax.add_image(request, 10, interpolation='spline36')
并排放置这些图像:
有一个注意事项(如 https://github.com/SciTools/cartopy/issues/1048#issuecomment-417001744 中所指出的),当在非本地投影上绘制图 block 时。在这种情况下,我们需要配置两个变量:
关于python - 为什么我的谷歌图 block 在 Cartopy map 中看起来很差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49155110/
我正在尝试执行 vagrant up 但一直遇到此错误: ==> default: IOError: [Errno 13] Permission denied: '/usr/local/lib/pyt
我在容器 div 中有一系列动态创建的不同高度的 div。 Varying text... Varying text... Varying text... Varying text.
通过 cygwin 运行 vagrant up 时遇到以下错误。 stderr: /bin/bash: /home/vagrant/.ansible/tmp/ansible-tmp-14872260
今天要向小伙伴们介绍的是一个能够快速地把数据制作成可视化、交互页面的 Python 框架:Streamlit,分分钟让你的数据动起来! 犹记得我在做机器学习和数据分析方面的毕设时,
我是 vagrant 的新手,正在尝试将第二个磁盘添加到我正在用 vagrant 制作的虚拟机中。 我想出了如何在第一次启动虚拟机时连接磁盘,但是当我关闭机器时 然后再次备份(使用 'vagrant
我是一名优秀的程序员,十分优秀!