Python 基于caryopy的背景图像插值

Python 基于caryopy的背景图像插值,python,matplotlib,cartopy,Python,Matplotlib,Cartopy,最近我更新了python 3.8上的matplotlib 3.3.1。我使用cartopy版本0.18.0。在这个版本中,背景图像插值似乎不再有效。有人有解决方法/解决方案吗? 以下是一个最小可复制示例: import matplotlib.pyplot as plt import cartopy as ccrs import cartopy.io.img_tiles as cimgt fig, ax = plt.subplots(subplot_kw=dict(projection=ccrs

最近我更新了python 3.8上的matplotlib 3.3.1。我使用cartopy版本0.18.0。在这个版本中,背景图像插值似乎不再有效。有人有解决方法/解决方案吗? 以下是一个最小可复制示例:

import matplotlib.pyplot as plt
import cartopy as ccrs
import cartopy.io.img_tiles as cimgt

fig, ax = plt.subplots(subplot_kw=dict(projection=ccrs.crs.PlateCarree()))
ax.set_extent([67, 75, 20, 26])
ax.add_image(cimgt.GoogleTiles(), 8, interpolation='spline36')
这会引发一个错误:

TypeError:获得意外的关键字参数“interpolation”


如果需要更高分辨率的图像,则需要增加
scale
值。在代码中,可以将8更改为10作为新的实验

ax.add_image(cimgt.GoogleTiles(), 10)
Edit1

由于投影(
crs.PlateCarree()
)的使用与原始(
crs.Mercator()
)不同,因此在渲染时会导致图像重新投影,并导致图像质量不理想。这类图像具有锐利的边缘/线条、符号和文本,通过重投影或插值很难获得好的效果。让我们使用原始投影绘制地图并研究结果

import matplotlib.pyplot as plt
import cartopy as ccrs
import cartopy.io.img_tiles as cimgt

tiles = cimgt.GoogleTiles()
image_crs = tiles.crs

fig, ax = plt.subplots(figsize=(16,12), subplot_kw=dict(projection=image_crs))

ax.set_extent([67, 75, 20, 26], crs=ccrs.crs.PlateCarree())

ax.add_image(cimgt.GoogleTiles(), 8)
plt.show()
输出曲线图:


您希望的结果是什么?哪个版本的
cartopy
支持
cartopy.mpl.geoaxes.geoaxes.add_image
的“插值”参数
add_image
当前不允许使用任何参数或kwargs,我使用的是与cartopy相同的verison,但在python 3.6上使用matplotlib 3.1。我需要插值以获得更好看的地图。例如,请参见感谢您指出这一点。但是,“比例”参数只是添加了更多细节,但贴图质量没有提高。请参阅@VinodKumar上的讨论,新方法是否能提供更好的图像质量?这确实提高了图像质量,但我不希望跳过投影(crs.PlateCarree())。这是在地图上添加更多数据覆盖所必需的。如果其他数据覆盖为矢量,则在web mercator投影上没有问题。只有某些类型的光栅数据在重新投影时才会失败。