问题标签 [fiona]

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 回答
1982 浏览

python - Overlap error using Rasterio mask in Python

I have a satellite image raster file and a Shapefile consisting of several discrete polygons. I would like to individually extract (or mask) the Numpy image array for each of these polygons from the raster file.

Currently, I import the Shapefile using Fiona and create a list of the polygons. I have no problem masking the raster file using all the polygons at once. However when I try to use an individual polygon from the list I get an error: "ValueError: Input shapes do not overlap raster.". This is despite getting a successful result previously, and both files using the same CRS.

This works:

This doesn't work (WindowError: windows do not intersect and ValueError: Input shapes do not overlap raster):

I guess I'm missing something fundamental! Is there an elegant way of extracting each polygon in the list 'features' as an individual image file/numpy array from the raster image?

Thanks!!

0 投票
0 回答
194 浏览

python - Python:其他安装后导入 fiona 的问题

我不知道为什么,但我现在在 mac 上遇到了这个问题。我安装了所有东西anacondaRestart在系统启动之前一切正常

0 投票
1 回答
1817 浏览

python - PyInstaller 无法使用 geopandas 和 fiona 创建 exe。即使我在 .spec 文件中进行了一些更改,exe 也无法正常工作

我正在使用简单的代码使用 pyinstaller 使用 geopandas 和 fiona 作为导入来创建 exe。

示例代码:

我无法使用 PyInstaller 为这个示例代码创建 exe,因为 geopandas 引起了问题。根据此处的一篇文章,我对 .spec 文件进行了一些更改。这使我可以使用以下 .spec 文件内容以某种方式创建 exe:

创建exe后,我无法执行exe,因为它给出了以下错误:

文件“fiona\ogrext.pyx”,第 1 行,在 init fiona.ogrext ModuleNotFoundError: No module named 'fiona._shim'

我使用https://www.lfd.uci.edu/~gohlke/pythonlibs版本安装了 fiona :Fiona‑1.8.6‑cp37‑cp37m‑win_amd64.whl 我可以在站点包的 fiona 文件夹中看到 _shim 文件。请帮忙

0 投票
1 回答
309 浏览

python - Rasterio rasterize 功能:无法插入正确的几何图形

尝试使用 Rasterio 库中的 rasterize 函数对具有特定属性的折线 shapefile 进行光栅化。这个函数需要一个包含 (geometry, value) 元组的可迭代对象,其中几何是一个类似 GeoJSON 的对象(参见文档)。这个几何可以用 fiona 或 geopandas 提取,我读过这个问题并尝试过(所以用 geopandas)但是几何不正确,因为我用“is_valid_geom”测试它,结果是“假”,这似乎是合乎逻辑的因为当我打印这个几何图形时,它会显示:<generator object <genexpr> at 0x000001903856C048>。我也像这样尝试过 Fiona:

这也返回“false”,但我不明白为什么,因为几何似乎是正确的:

所以最后,当我尝试光栅化时,我没有收到任何错误消息,但输出是一个空白图像,所有值都为 0... 光栅化代码:

注意:我已经读过这个并且我的 shapefile 和用于分级的栅​​格之间的投影是相同的

任何人都知道可能是什么问题?

0 投票
0 回答
1231 浏览

python-3.x - 使用 Windows 在 python virtualenv 上安装 Fiona

我在我的 Windows 电脑上创建了一个 python 的虚拟环境。我成功下载了 GDAL 2.4.1 并将其链接到 python,我正在尝试使用安装 Fiona

但我明白了:

有什么想法吗?我需要使用 virtualenv 而不是 conda(我已经在 anaconda 上成功安装了它)

0 投票
0 回答
621 浏览

python - ImportError:没有名为 _shim 的模块

我正在使用 PyInstaller 从 python 脚本生成可执行文件。这就是我所做的:

它成功构建了.exe,但是当我执行它时,出现以下错误:

我尝试寻找该模块,但它似乎不存在。谢谢你。


编辑:

所以我在另一个网站上得到了这个答案:

Fiona 在其设置脚本中具有扩展模块和一些相当复杂的逻辑,以根据 GDAL 库的不同版本来管理它们。这就是为什么 python setup.py build(如另一个问题中所报告的)不起作用的原因,您必须执行 python setup.py build_ext build。我认为您需要为 pyinstaller 找到一种方法来运行 fiona 的 setup.py 中定义的 build_ext 命令,然后一切就绪。

谁能告诉我在我的情况下如何做到这一点?


编辑2:

我通过使用 tuto 安装一个古老的 gdal 版本来计算这个错误。现在,当我在另一台机器上执行它时,我Pyinstaller创建了.exe没有错误的 bur,我得到了同样的错误。使用的目标不就是无需安装所有模块PyInstaller即可执行文件吗?如果运行良好并创建了正确.exe的,为什么我会遇到导入错误?谢谢PyInstaller.exe

0 投票
3 回答
1127 浏览

python - 在 Python 中使用 Geopandas 读取 shapefile 时出错

我正在尝试使用我使用的 geopandas 读取 shapefilegp.read_file

我收到以下错误: TypeError: invalid path: UnparsedPath(path='M:/rathore/vic_5km/L2_data/L2_data/DAMSELFISH_distributions.shp')

问题的追溯是:

我猜fiona有一些问题,但我不太了解。我已经在我的系统中安装fiona 1.8.6并安装了版本。geopandas 0.5.0我正在使用 python 2.7

0 投票
2 回答
2067 浏览

python - 需要帮助在 Windows 10 中为 python 安装 fiona 和 geopandas - 出现无法加载请求的 DLL 错误

我正在尝试在 Windows 10 上为 python 安装 fiona 和 geopandas,并一直遇到错误“错误 1:无法加载请求的 DLL”。

我知道这个问题与已提出的其他问题类似,但我已按照多个答案和教程中的步骤进行操作,但似乎仍然无法使其正常工作。

我得到的最接近的是使用本教程中概述的步骤:https ://geoffboeing.com/2014/09/using-geopandas-windows/

并总结如下:

  1. 从https://www.lfd.uci.edu/~gohlke/pythonlibs/安装了 rtree、pyproj、shapely、gdal、geopandas、fiona 的 .whl 文件

    • Rtree-0.8.3-cp37-cp37m-win_amd64.whl
    • pyproj-2.2.1-cp37-cp37m-win_amd64.whl
    • GDAL-3.0.0-cp37-cp37m-win_amd64.whl
    • geopandas-0.5.0-py2.py3-none-any.whl
    • Fiona-1.8.6-cp37-cp37m-win_amd64.whl
    • Shapely-1.6.4.post2-cp37-cp37m-win_amd64.whl
  2. 导航到下载文件夹并使用 pip install 安装 GDAL 轮

  3. 将 osgeo 路径添加到我的 Windows 用户路径环境变量中

环境变量画面

  1. 使用 pip install 安装剩余的轮子(geopandas 最后),所有安装都没有错误
  2. 作为检查,我运行gdalinfo --help-general并得到以下输出:

gdalinfo 输出

这是我得到“错误1:无法加载请求的DLL:”错误的地方。它说它找不到指定的模块“ogr_FileGDB.dll”。奇怪的是,那个 .dll 实际上是在它正在寻找的位置???

dll位置

此外,在 python shell 中,尝试导入 fiona 或 geopandas 时出现以下错误:

导入错误

这超出了我的故障排除水平......如果有人能让这件事为我工作,我将不胜感激!!!!

仅供参考 - 运行 Python 3.7.3,Windows 10,pip 已更新。

最后并且可能很重要(不确定它是如何发挥作用的?)我已经定义了一个 GDAL_DATA 系统变量,并且(可能不正确?)还尝试将 osgeo 路径添加到我的系统路径变量中:

系统环境变量

0 投票
0 回答
323 浏览

python - 由于几何形状不同,尝试溶解多边形时使用 fiona 的代码失败

使用 fiona,我正在尝试基于溶解字段溶解具有数百甚至数千个几何图形的图层。因此,具有相同溶解字段值的几何图形将对它们执行一元联合函数以保持几何图形相同但仅在图层中显示为一个记录。

输入有一个类型为“MultiPolygon”的几何图形。输出的几何被设置为输入的几何,所以仍然是'MultiPolygon'。我认为问题出在哪里,当联合完成时,它将多多边形几何转换为单个多边形几何,因此在将其写入输出时会给出以下错误代码:

fiona.errors.GeometryTypeValidationError:记录的几何类型与集合架构的几何类型不匹配:'Polygon'!= u'MultiPolygon'

我不确定如何将输出的几何图形更改为 Polygon,因为由于数据中所有不同的溶解字段值,最终输出将是 MultiPolygon。

我是新手,所以我希望我能清楚地解释这个问题。如果您有任何澄清问题,请告诉我。

这是使用 Python 2.7.14,MSC v.1500 32 位 GDAL/OGR 版本 202400

使用 fiona.open(inGDB, layer= 'FISH') 作为输入:

输入.close() 输出.close()

fiona.errors.GeometryTypeValidationError:记录的几何类型与集合架构的几何类型不匹配:'Polygon'!= u'MultiPolygon'

0 投票
0 回答
403 浏览

python - 由于明显的 Fiona 错误,无法导入 OSMnx

我正在尝试学习 OSMnx。但是,我做不到,因为即使在导入它时我也会遇到几个错误。我有一台装有 MacOS Mojave 10.14.4 的 MacBook Pro。我有 Anaconda 3 和 Python 3.7。

我已经尝试了 Stack Overflow 和其他网站上发布的几乎所有解决方案。这些包括:

  • 干净地重新安装 Anaconda(使用 conda clean,并从我的 mac 中删除每个文件)
  • 使用 重新安装 GDAL conda config --add channels conda-forge ,同时手动下载 GDAL、Fiona、pyproj、rtree 和 shapely 的轮子(按照此处的指南),也按照此处的指南(https://hackernoon.com/install-python-gdal-using- conda-on-mac-8f320ca36d90)。
  • 手动或使用重新安装 fionapip install fiona
  • 创建一个新的虚拟环境(类似conda create -n geoPython3 python=3.6 geopandas=0.4.0 gdal=2.2.4
  • 还按照 OSMnx 官方文档中的建议创建具有严格通道优先级的虚拟环境。

我还尝试了用户在类似问题中提出的其他几个解决方案。

我什至无法导入 OSMnx:

import osmnx as ox

相关错误是:

conda list的是:

我知道发布了几个类似的问题,但它们已经过时了(大约 2016 年),因为有更新的软件包版本,这些解决方案都没有对我有用。

提前致谢!