作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的很喜欢 cartopy 可以在不同的 map 投影中自动绘制的想法。但是,我不知道如何处理 Iris 立方体。作为一个姊妹项目,我希望我能做到。有可能做这样的事情吗?
import iris as I
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
someCube = I.load('someCube.pp')
ax = plt.axes(projection=ccrs.Robinson())
I.plot.contourf(someCube, transform=ccrs.Robinson())
plt.show()
谢谢
最佳答案
我采用了您的伪代码并使其可以与 Iris 的示例数据一起运行:
import iris
import iris.plot as iplt
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fname = iris.sample_data_path('air_temp.pp')
air_temp = iris.load_cube(fname)
ax = plt.axes(projection=ccrs.Robinson())
iplt.contourf(air_temp, transform=ccrs.Robinson(central_longitude=180))
ax.coastlines()
plt.show()
如果你运行这段代码,你会得到一个异常:
Traceback (most recent call last):
File "using_custom_projections.py", line 11, in <module>
iris.plot.contourf(air_temp, transform=ccrs.Robinson())
File "lib/iris/plot.py", line 452, in contourf
result = _draw_2d_from_points('contourf', None, cube, *args, **kwargs)
File "lib/iris/plot.py", line 263, in _draw_2d_from_points
result = _map_common(draw_method_name, arg_func, iris.coords.POINT_MODE, cube, data, *args, **kwargs)
File "lib/iris/plot.py", line 406, in _map_common
assert 'transform' not in kwargs, 'Transform keyword is not allowed.'
AssertionError: Transform keyword is not allowed.
它试图告诉你,你不需要告诉它立方体在哪个“变换”(或坐标系)中。原因是 Iris 立方体应该包含关于底层数据的完整元数据:坐标系是该元数据的一部分。
因此,要使示例正常运行,您只需删除 contourf
调用中的 transform 关键字参数即可:
import iris
import iris.plot as iplt
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
fname = iris.sample_data_path('air_temp.pp')
air_temp = iris.load_cube(fname)
ax = plt.axes(projection=ccrs.Robinson(central_longitude=180))
iplt.contourf(air_temp)
ax.coastlines()
plt.show()
在 iris gallery 中有一个类似的例子, 具体来说 http://scitools.org.uk/iris/docs/latest/examples/graphics/rotated_pole_mapping.html#rotated-pole-mapping-03 (示例中的最后一个图)。
HTH,
关于python - 你能改变cartopy中的虹膜立方体投影吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13766275/
我正在尝试一些非常简单的事情,从我正在构建的应用程序的松弛命令中获取信息,并且由于我是 Go 的新手,我发现 Iris 是一个非常好的框架,所以我决定使用它和它实际工作的网站上的示例 https://
我知道 Go 不是一种面向对象的语言,但我正在尝试按照 this 的建议在我的 Iris Controller 中实现一个继承结构。文章。我这样做的主要动机是避免重复。到目前为止,它一直在为我工作。例
我是一名优秀的程序员,十分优秀!