【问题标题】:How to overlay a vector annotation image on the top of a cartopy map?如何在地图顶部叠加矢量注释图像?
【发布时间】:2020-06-24 03:16:17
【问题描述】:

如何在cartopy地图上方叠加矢量标注图像?

import cartopy.io.img_tiles as cimgt
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER

class TDT(cmigt.GoogleWTS):
    def _image_url(self, tile):
        x, y, z = tile
        url = 'http://t1.tianditu.gov.cn/DataServer?T=vec_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, mykey)
        return url
        
class TDT_1(cmigt.GoogleWTS):
    def _image_url(self, tile):
        x, y, z = tile
        url = 'http://t1.tianditu.gov.cn/DataServer?T=cva_w&x=%s&y=%s&l=%s&tk=%s' % (x, y, z, mykey)
        return url
        
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
    
extent = [105, 106, 35.5, 36.5]

request = TDT()
request_1=TDT_1()
fig, ax = make_map(projection=request.crs)
ax.set_extent(extent) 
ax.add_image(request, 10)
ax.add_image(request_1, 10)  #Can't to add another image,how to let it to display on the top of the map.
plt.show()  

我想得到带有矢量注释的合并图像,但我只得到一张图像。 我该怎么办?

【问题讨论】:

  • 在第二张图片上使用 alpha 选项。试试这个ax.add_image(request_1, 10, alpha=0.5)
  • 你如何定义merged image。举个例子很有帮助。

标签: python layer cartopy


【解决方案1】:

当您将两个图像叠加在一起绘制时,顶部图像将完全隐藏底部,除非您允许顶部图像具有一定的透明度。在您的情况下,您可以使用以下代码设置第二张图片:

ax.add_image(request_1, 10, alpha=0.6)

alpha的值:

0 is 100% transparent
1 is 100% opaque

你需要一个介于 0 和 1 之间的好值。

在某些情况下,可能需要zorder 选项。

ax.add_image(request, 10, zorder=10)
ax.add_image(request_1, 10, alpha=0.6, zorder=20)

希望这会有所帮助。

【讨论】:

  • 但是,无论我做什么,图像上似乎都有一个蒙版。
  • 它很有用,但不是我想要的。 request_1 是 png 格式的图像。它应该是不透明的。但是...
  • 会出现错误:"Image.py:952: UserWarning: Palette images with Transparency 以字节表示应转换为RGBA图像"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 1970-01-01
  • 1970-01-01
  • 2017-12-25
  • 2014-10-09
  • 1970-01-01
相关资源
最近更新 更多