问题标签 [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 回答
708 浏览

matplotlib - Matplotlib 投影删除边距

这是美国各县的图像,创建于

图片

在用 可以看到的“实时”图中plt.show(),该图周围有一个大的灰色区域。在这里,您可以(不)通过白色填充看到它。

所以我想我可以放大一点:

然后发生了这样的事情:

裁剪图像

虽然图形周围仍有白色边距/填充,但它突然被裁剪了。“实时图像”还向我展示了一些明显位于投影周围的白边。

我试过plt.tight_layout()了,确实去除了很多边距,但留下了一些(第二张照片是在收紧布局后拍摄的)。这个不可见的边距使得它特别难ax.set_extent(),因为直到我可以扩展地图的地方我才能看到。

有什么方法可以删除投影周围的所有隐藏填充/边距?

0 投票
1 回答
537 浏览

python - 在 Python 中的地图上绘制 Cassini-Soldner 投影中的 RGB 卫星图像

我有来自 MODIS 仪器的 geotiff 格式的地理参考 RGB 卫星图像。使用 cartopy 在地图上绘制并保留 RGB 颜色的正确方法是什么?

我猜的主要障碍是图像的投影,即 Cassini-Soldner:

我尝试按照此示例https://ocefpaf.github.io/python4oceanographers/blog/2015/03/02/geotiff/ 并使用 cartopy 定义 EPSG 代码的投影。所以我用谷歌搜索了 Cassini-Soldner EPSG 代码 (9806),但 cartopyccrs.epsg()无法识别它。

我想使用plt.imshow()方法,但是我有点困惑在创建轴时使用什么作为投影关键字以及transform=imshow.

0 投票
1 回答
1468 浏览

matplotlib - 匹配cartopy中shapefile的投影

我正在尝试使用 matplotlib 和 cartopy 制作一个 Choropleth 地图,我显然需要先绘制一个 shapefile。但是,我没有设法这样做,即使已经在这里这里提出了类似的问题。我怀疑投影或边界指定错误。

我的 shapefile 有投影

并且可以在我所说的地方下载vg250_2010-01-01.utm32w.shape.ebenen/vg250_ebenen-historisch/de1001/vg250_gem.shp

我的代码是

我使用 fiona 的相应方法获得了边界。Python 抛出一个错误

这对我来说没有意义。此外,使用 ccrs.UTM() 进行试验给了我一个显示白色区域的图。如果有人能告诉我如何解决这个问题,我将不胜感激。谢谢!

0 投票
1 回答
1596 浏览

python - cartopy:大圆距离线的分辨率更高

我试图在两点之间绘制一个很大的圆距离。我在 cartopy 文档(introductory_examples/01.great_circle.html)中找到了一个:

这使以下图像:

大圆圈示例

问题是,在我自己的工作中,这两个点靠得更近,而且在不同的投影中(尽管我认为这在这里并不重要)。如果我将此代码更改为较小区域中的一行,如下所示:

这使得下面的图像:较短的线

在这种情况下,红色的大圆圈线看起来很糟糕,看起来像是由于分辨率太低。如何增加构成大圆线的点数?

0 投票
1 回答
4245 浏览

python-2.7 - 如何使用 pip 安装地图/绘图库 cartopy 和底图

我了解在安装 cartopy 和底图之前需要满足一些依赖项。pip我使用(如numpy等)整理了其中大部分。

我发现 Proj.4 存在一些cartopy问题,而 GEOS 存在一些底图问题。我认为 python 绑定到 Java 项目 Proj.4 就足够了,我对 C++ 库 GEOS 有点迷失(我认为 GDAL 对 GEOS 来说已经足够了,我已经通过这种方式将它链接到 python 世界:)pip install --global-option=build_ext --global-option="-I/usr/include/gdal" GDAL==`gdal-config --version

我宁愿避免所有这些东西,如 anaconda、canopy 等。如果可能的话,我只想pip在 Ubuntu ( apt-get,仅当pip还不够时) 和 Mac OSX (自制软件,例如brew install <some_package>,仅当pip还不够时) 上使用。

cartopy卡在一个太旧的 Proj.4 版本上。pip输出说Proj4 version 4.8.0 is installed, but cartopy requires at least version 4.9.0.:。我假设这个pippython 绑定的安装就足够了,但它并没有解决问题:

我不明白为什么 python 绑定到 Proj.4 是不够的,即使这些绑定是使用pip.

底图以不同的方式卡住:

  • pip2 install basemap某种方式使用我得到Could not find a version that satisfies the requirement basemap (from versions: ) No matching distribution found for basemap
  • 但是从底图文档中我发现由于pip某种原因该库没有链接到存储库,需要从源代码安装。所以我跑了:pip2 install https://github.com/matplotlib/basemap/archive/v1.0.7rel.tar.gz我相信GEOSC++ 代码的编译被触发,过了一会儿它在底部停止:

    /li>

我不确定我做错了什么:

  • 如何为 cartopy 提供正确的 Proj.4 东西?实际上,我更愿意找到与现有 Proj.4 版本兼容的旧版本 cartopy(我假设它来自pip install绑定)
  • 如何从我设置的 GDAL 链接中获取底图查找 GEOS pip?如果这还不够,那我还应该做些什么呢?也许是一些apt-get避免在底图安装中触发 GEOS 编译的 GEOS 包?

在 Java 二进制文件、C++ 二进制文件和与 python 包的绑定之间的这个无人地带,我有点困惑。

0 投票
2 回答
5964 浏览

pip - 使 proj_api.h 可用于 pip install cartopy

我正在尝试cartopy通过pip install cartopy. 我已经安装proj.4并在此处放置了必要的文件

~/Downloads/proj-4.9.2 $ ls -l /usr/local/include/proj_api.h -rw-r--r--@ 1 dom admin 5911 Nov 21 11:06 /usr/local/include/proj_api.h

pip install没有找到它:

gcc -fno-strict-aliasing -I/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p2/include -DNDEBUG -g -fwrapv -O3 -Wall -Wno-unused -I/Applications/SageMath/local/include -I./lib/cartopy -I/usr/local/Cellar/geos/3.5.0/include -I/Applications/SageMath/local/include/python2.7 -c lib/cartopy/trace.cpp -o build/temp.macosx-10.9-x86_64-2.7/lib/cartopy/trace.o lib/cartopy/trace.cpp:282:22: fatal error: proj_api.h: No such file or directory #include "proj_api.h" ^ compilation terminated. error: command 'gcc' failed with exit status 1

如何-I/usr/local/include在上面的gcc命令中出现类似的东西?不知何故-I/usr/local/Cellar/geos/3.5.0/include被放在那里。

0 投票
2 回答
176 浏览

python - 对象实例中看似不可变的字典

如果我运行以下cartopy代码:

我得到:

暗示该proj4_params属性是不可变的。

但这只是一个沼泽标准dict

其中,由于它是在 C 中实现的,因此不能被覆盖以具有这种行为(至少不安全)。

好的,但是这个类的代码很简单,所以我的理解有问题。有人可以向我解释为什么我会出现这种行为吗?

编辑

以下:

结果是:

0 投票
1 回答
235 浏览

python - Cartopy中正交投影的Shapefile绘图问题

这个问题相关,我正在尝试使用 cartopy 在特定国家/地区着色。复制链接问题中的示例可以正常工作,但在使用正交投影时会失败。包括 MWE 和图像,正如人们所看到的,德国最终并没有被着色。

(Shapefile 数据可以从这里获得。)

在此处输入图像描述

0 投票
1 回答
923 浏览

linux - 如何在 linux-32 上将 Cartopy 安装到 python-3.5

当我尝试通过 conda 安装它时

附加信息:

获取包元数据............解决包规范:.

PackageNotFoundError:找不到包:''当前 linux-32 频道中缺少包:-cartopy

找到接近的匹配项;你的意思是其中之一吗?

你可以在 anaconda.org 上搜索包

当我跑

出现新消息

包:名称 | 版本 | 包装类型 | 平台

...

找到 22 个包裹

当我尝试使用其中之一时 - 例如

我收到

获取包元数据............解决包规范:......

UnsatisfiableError:发现以下规范存在冲突: - cartopy - python 3.5* 使用“conda info”查看每个包的依赖关系。

如何将此软件包安装到我的系统中?

0 投票
1 回答
3100 浏览

python - Cartopy 找不到 Proj.4

我已经通过 tar.gz 正确安装了 proj-4.9.1 和

./configure --prefix=/path/to/directory

然后是“制作”和“制作安装”。不过cartopy告诉我

必须安装 Proj4 4.9.0。

我通过运行安装脚本

那我还需要照顾别的吗?