使用底图扭曲图像保持透明度

2024-04-22

我有一张 RGBA png 地图,所有海洋都是透明的。

我想在北极立体投影中使用底图,并使用带有扭曲图像的地图。当我想保留透明度时,透明度会丢失并被黑色取代。我能做些什么 ? 我的最终目标是在海洋中绘制颜色网格,然后在其上方绘制透明地图。

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

m = Basemap(projection='npstere',boundinglat=60,lon_0=300,resolution='l',round=True)
m.drawlsmask(ocean_color='white')
m.warpimage("land.png")
plt.show()

我认为这是功能上的一个错误warpimage。如果投影不是圆柱形,则必须变换原始图像,这就是透明度丢失的地方。即,在文件中mpl_toolkits/basemap/__init__.py在功能上warpimage:

1> 4141                 for k in range(3):
   4142                     self._bm_rgba_warped[:,:,k],x,y = \
   4143                     self.transform_scalar(self._bm_rgba[:,:,k],\
   4144                     self._bm_lons,self._bm_lats,nx,ny,returnxy=True)

这里,原始文件中的 RGB 通道(k=0,1,2)(self._bm_rgba)被转换并传递给扭曲的图像,但 alpha 通道(带有索引k = 3) 不是。

Solution

如果你可以修改你的 python 发行版, 定位文件mpl_toolkits/basemap/__init__.py, 求一个函数warpimage并换线for k in range(3):(在上面代码中的第 4141 行附近)

for k in range(self._bm_rgba.shape[2]):

这解决了问题。

行号可能不同。我使用底图-1.0.7。


顺便说一句,我使用你的 jpg 文件进行测试,发现它没有 Alpha 通道。我希望你意识到这一点。

Update

其实这个bug已经存在了fixed https://github.com/matplotlib/basemap/pull/217在 github 版本中basemap https://github.com/matplotlib/basemap.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用底图扭曲图像保持透明度 的相关文章

  • Lighttpd 和 cgi python

    我正在尝试通过 lighttpd 执行一些 python 脚本 但是当我尝试运行它时 我只得到一个要求我下载的空白文件 lighttpd conf server modules mod access mod alias mod access
  • Django 的内联管理:一个“预填充”字段

    我正在开发我的第一个 Django 项目 我希望用户能够在管理中创建自定义表单 并向其中添加字段当他或她需要它们时 为此 我在我的项目中添加了一个可重用的应用程序 可在 github 上找到 https github com stephen
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 需要在python中找到print或printf的源代码[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在做一些我不能完全谈论的事情 我
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • 立体太阳图 matplotlib 极坐标图 python

    我正在尝试创建一个与以下类似的简单的立体太阳路径图 http wiki naturalfrequent com wiki Sun Path Diagram http wiki naturalfrequency com wiki Sun Pa
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • 为什么 Pickle 协议 4 中的 Pickle 文件是协议 3 中的两倍,而速度却没有任何提升?

    我正在测试 Python 3 4 我注意到 pickle 模块有一个新协议 因此 我对 2 个协议进行了基准测试 def test1 pickle3 open pickle3 wb for i in range 1000000 pickle
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解

随机推荐

  • 如果存在则更改表,如果不存在则创建

    我需要运行一个安装程序 它也可以是更新程序 安装程序需要能够最终获得 mysql 数据库的特定方案 结构 无论某些表是否存在 丢失了几列 或者因为其结构是最新的而不需要更改 我怎样才能优雅地组合ALTER and CREATE 我在想一定有
  • 在数组中的两对之间添加键/值对

    我一直在寻找和思考 但无法想出一个可行的解决方案来解决这个问题 我有一个带有连续数字键的数组 Example Array 0 gt value 0 1 gt value 1 2 gt value 2 3 gt value 3 我需要在数组中
  • 查询列出数据库中每个表的记录数

    如何列出数据库中每个表的行数 一些相当于 select count from table1 select count from table2 select count from tableN 我将发布一个解决方案 但欢迎其他方法 如果您使用
  • 将对象序列化为 XML 时如何添加 XML 命名空间 (xmlns)

    我正在 XStream 的帮助下将对象序列化为 XML 如何告诉 XStream 将 xmlns 插入到对象的 XML 输出中 例如 我有一个想要序列化的简单对象 XStreamAlias value domain public class
  • 如何在 Spark Pipeline 中使用随机森林

    我想通过网格搜索和 Spark 交叉验证来调整我的模型 在 Spark 中 它必须将基础模型放入管道中 即管道办公室演示 http spark apache org docs latest ml guide html example mod
  • ASP.NET 自定义错误被忽略

    我在 web config 中配置了自定义错误 但 IIS 6 0 返回网站配置的 自定义错误 选项卡中指定的自定义错误
  • Coverage.py 无法发现子目录中没有 init.py 文件的测试

    当我运行 python 覆盖范围时 我总是需要一个空的 init py测试子目录中的文件以获得运行测试的覆盖范围 这是 python2 软件包的要求 但不是 python3 的要求 为了重现 我执行了以下操作 先决条件是 python3 p
  • XPath 和 Regexp 哪个更快?

    我正在为 firefox 制作一个附加组件 它使用 ajax 加载一个 html 页面 附加组件有它的 XUL 面板 现在 我没有寻找创建document对象并将ajax请求内容放入其中 然后使用xPath找到我需要的内容 相反 我加载内容
  • 用于云服务“沙盒”的 SecurityManager

    All 我正在设计一个基于云的服务 该服务将提供执行客户提交的一些 插件 代码的选项 为了使这项工作正常进行 插件不能威胁系统完整性或有能力访问其他客户端的数据 这一点至关重要 理想情况下 我希望客户端能够提交一个简单的 jar 文件 包含
  • 我应该为 Windows 选择 ActivePerl 还是 Strawberry Perl? [复制]

    这个问题在这里已经有答案了 我对 Perl 完全陌生 但我想尝试一下 我读到了有关 Windows 平台的两个竞争对手的发行版 我猜有just其他操作系统上的 Perl 维基百科 http en wikipedia org wiki Per
  • .NET Core 锁定文件

    我有一个 ASP NET Core 应用程序 我通过运行命令来运行应用程序 dotnet run 当我构建此 ASP NET Core 应用程序时 我在五分之一的情况下会看到以下错误 C error CS2012 无法打开 C bin De
  • Swift:可编码 - 提取单个编码密钥

    我有以下代码来提取编码密钥中包含的 JSON let value try decoder decode String Applmusic self from 0 applmusic 这成功处理了以下 JSON applmusic code
  • Android 博客应用程序,我应该使用 Sharedpreferences 还是 Intents?

    我正在构建一个android应用程序 当前用户的后续页面是可点击的 我保存点击的页面id并将其传递给打开相应的页面 打开后 用户可以查看关注者列表 页面内的帖子等 这是包含所有页面子级的根节点 数据库 Firebase 结构 pageDat
  • GO Websocket 向所有客户端发送消息

    这段代码一切正常 为了更好的阅读而缩短了它 When Client1向服务器发送请求 服务器立即响应他 但是 其他客户端看不到响应消息 所以我想更进一步 当客户端向服务器发送请求时 服务器会响应所有客户端 以便所有客户端都可以看到该消息 我
  • 尝试在Python中将wav文件转换为文本时出现wave.Error:known format:3

    我需要从麦克风录制音频并将其转换为文本 我已经使用从网上下载的几个音频剪辑尝试了此转换过程 效果很好 但是 当我尝试转换从麦克风录制的音频剪辑时 出现以下错误 回溯 最近一次调用最后一次 文件 C Users HP AppData Loca
  • Angular2 CanActivate 除一条路线之外的所有路线的守卫

    我知道我们可以将位于一个模块中的路线分组 像那样 canActivate AuthGuard children path children path crises component ManageCrisesComponent path h
  • 如何防止 java.lang.NumberFormatException: 对于输入字符串:“N/A”?

    在运行我的代码时 我得到了NumberFormatException java lang NumberFormatException For input string N A at java lang NumberFormatExcepti
  • 将统计数据整理成时间块

    我正在尝试为MySQL 制定一条SQL 语句 我有一系列服务器的一系列统计数据 每半小时报告一次 我有一个统计表 其中的列与此类似 server varchar 64 time datetime bytesIn int bytesOut i
  • 在领域表中选择随机行

    我想从领域表中选择一个随机行 就像是 SELECT FROM table ORDER BY RANDOM LIMIT 1 像这样的事情就可以了 是吗 Random random new Random RealmResults
  • 使用底图扭曲图像保持透明度

    我有一张 RGBA png 地图 所有海洋都是透明的 我想在北极立体投影中使用底图 并使用带有扭曲图像的地图 当我想保留透明度时 透明度会丢失并被黑色取代 我能做些什么 我的最终目标是在海洋中绘制颜色网格 然后在其上方绘制透明地图 from