问题标签 [cartopy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1654 浏览

python-2.7 - 在 python 2.7 64 位上安装 cartopy 时出现 GEOSversion 错误

我从http://www.lfd.uci.edu/~gohlke/pythonlibs/下载了 cartopy 的 .whl 文件。使用命令行pip install cartopyETC.whl,表示安装成功。但是当我使用它进行测试时import cartopy,出现以下错误:

0 投票
1 回答
1216 浏览

matplotlib - 如何用 cartopy 和 matplotlib 绘制 tissot?

对于绘制天空图,我刚刚从 Basemap 切换到 cartopy,我更喜欢它。

(主要原因是某些计算机上的 Basemap 段错误,我无法修复)。

我唯一挣扎的是,得到一个天梭圆环(用来显示我们望远镜的视锥。)

这是一些绘制随机星星的示例代码(我使用真实的目录):

我如何在该图像中添加具有一定半径的天梭圆? https://en.wikipedia.org/wiki/Tissot%27s_indicatrix

0 投票
1 回答
1012 浏览

python - 使 Matplotlib 地图图彼此对齐

我正在尝试在 Python 中生成一个将显示的图形(除其他外):

A) 从墨卡托投影图像转换的底图

B) 带标签的网格线

我希望该图形处于横向墨卡托(或其他球形)投影中。

我已经尝试过 Matplotlib 底图和 Cartopy。Cartopy 可以做 (A),Basemap 可以做 (B),但是 Cartopy 只能在 PlateCarree 图上标注网格线,并且 Basemap 不支持使用imshow().

除非有人可以提出另一种选择,否则我认为最简单的方法是在重新投影的图像上覆盖 Basemap 图中的网格线和标签。但是我无法让这两个地块相互对齐。到目前为止我所拥有的:

覆盖不匹配的图

这会产生大致彼此重叠但不匹配的图。我认为这是因为为第一个图给出的限制可能是针对顶部和底部边缘设置的,而为第二个图给出的(相同)限制是针对右上角和左下角的。

有关如何解决此问题的任何提示?

谢谢!

0 投票
2 回答
3453 浏览

python - 更改投影的 Matplotlib 轴的背景颜色

我正在尝试使用 Cartopy 创建一个图形,该图形需要在未投影的轴上绘制投影轴。

这是一个尽可能简单的代码版本,它将轴上的内容替换为背景颜色:

而不是让蓝色轴可见会产生这个: 从上面的代码中在此处输入图像描述 删除projection=ccrs.Mercator()参数会产生这个预期的结果: 在此处输入图像描述

如何使投影轴背景透明?

谢谢!

编辑:我尝试了这些其他设置背景透明的方法,但没有成功:

0 投票
1 回答
817 浏览

matplotlib - 用 cartopy 和 matplotlib.tri 绘制三角网格

我正在尝试用 cartopy 和 matplotlib.tri 绘制一个三角形网格。我使用一个matplotlib.tri.Triangulation对象并想用matplotlib.pyplot.triplot.

当我将 cartopy 投影作为转换传递给 triplot 时transform=projection,就像我绘制一条线时所做的那样,并不是所有的三角形都被绘制出来,我IndexError在尝试保存图形时得到了一个。

另一方面,当我手动转换三角剖分中的所有点并调用 triplot 时,它可以工作。

在下面的第一个示例中,所有三角形都被绘制并且Line2D对象没有区别。但试图挽救这个数字会引发IndexError.

在第二个示例中,使用trilot 和手动转换后Line2D来自 triplot 的结果对象transform=projection在应用于其数据的转换结果方面有所不同。所以也许这是组合转换顺序的问题。

注意:我选择 PlateCarree 是为了让它尽可能简单。我对轴和数据投影的其他组合也有同样的问题。

输出是

当试图保存用 创造的任何人物时transform=projectioncartopy._crs.CRS.transform_points会引发IndexError

这是 cartopy 还是 matplotlib.tri 的问题?有没有办法避免手动转换并将transform参数传递给triplot?

编辑:

在pp-mo的回答之后,我发现在triplot命令中添加一个带有标记的格式字符串,比如'o-',使它工作。但是,仅仅改变颜色 ( 'g-) 并没有帮助。

编辑2:

在示例代码中添加fig1.savefig以产生完整的回溯。

0 投票
6 回答
12533 浏览

python - 如何在 cartopy / matplotlib 图上显示公里标尺?

如何在地图的放大部分显示公里标尺,无论是在图像中插入还是作为绘图一侧的标尺?

例如,侧面的 50 公里条(左)或 mi 中的插图(右):

来源:1、2

(问题:cartopy#490

0 投票
1 回答
3983 浏览

python - Location of stored offline data for cartopy

Where is offline data stored in cartopy? Is it stored in the data folder under site-packages? Is there any way to trigger the downloading of all available data? I would like to copy this over to a Linux machine that is not connected to the internet. I'm currently working from a Windows machine that is connected to the internet, so I'm hoping to download the data from there. Thanks.

0 投票
0 回答
1167 浏览

python - 使用 seaborn FacetGrid 绘制空间网格

我是 seaborn 的新手,所以如果这是一个愚蠢的问题,请原谅......我计划使用 seaborn 来绘制我的空间数据(作为栅格数据)的多个方面。源数据来自 netcdf 文件...在导入和一些清理之后,我确实有一个以下列布局的 pandas 数据框:

如果我使用散点图,我可以获得一些视觉输出(我使用 cartopy 进行地理变换绘图):

但是,当我想绘制栅格数据时我迷路了......我想我应该使用 pandas.meshgrid、plot.contourf 和其他一些魔法,但我无法为我的生活弄清楚我是如何从 pandas 变成 faceted光栅图...

0 投票
1 回答
613 浏览

cartopy - 试图在防火墙和代理后面使用 Cartopy

我试图在我的办公室使用 Cartopy 在世界地图上绘制飞行模式。我了解 Cartopy 需要访问http://naciscdn.org/naturalearth才能获得正确的地图。

我的防火墙和代理似乎阻止了这种情况。当我运行脚本(甚至是示例脚本)时,我收到以下消息: .

我的问题:有没有办法在本地获取这些地图并更改 Cartopy 用来定位要绘制的地图图像的路径?

0 投票
1 回答
123 浏览

python - cartopy中的溢出错误

我正在使用 cartopy 绘制一些地图。在某些情况下,当调用.set_extent()我的轴时,我收到此错误:

问题是行为有点随机。不是每个调用都.set_extent()这样做。这是一个解释器会话的摘录(bounds是一个 pandas DataFrame,它包含我打算稍后添加到轴的各种形状的边界框坐标)。

相同的代码可以工作,而不会更改其间的任何变量。

此行似乎引发了错误trace,pyx

我做了一些搜索,发现了一个与某个邮件列表上提出的类似问题相关的旧提交

我对这个问题的理解是,_geom这些 Shapely 对象的属性存储了某种指向某个 C 库中对象的指针。如果此指针的整数值对于 C long 来说太大,则会引发错误。该错误不可重现,因为_geom每次我创建一个 new 时都会创建一个 new GeoAxes,并且 new_geom可能会或可能不会太大。

不过,令人费解的是,我能找到的关于这个错误的大部分信息(例如,上面提交的提交消息)表明它应该只是 32 位系统的问题,但我使用的是 64 位带有所有库的 64 位版本的 Python 2.7。

所以我的问题是:我对正在发生的事情是否正确?如果是这样,为什么在 64 位系统上仍然会出现这些错误?有没有办法解决它?