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

python - 为什么 Python 包 Fiona 正在搜索 Microsoft.VC90.DebugCRT?

我安装了 Python 包 Fiona。当我尝试在我的应用程序中导入它时,我收到以下错误:

文件“C:\Anaconda3\lib\site-packages\fiona\collection.py”,第 7 行,在

从 fiona.ogrext 导入迭代器,ItemsIterator,KeysIterator

ImportError: DLL load failed: 应用程序无法启动,因为它的并排配置不正确。请查看应用程序事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息。

我使用了 Windows 的“事件查看器”并检查了问题:

“C:\Anaconda3\Library\bin\netcdf.dll”的激活上下文生成失败。相关程序集 Microsoft.VC90.DebugCRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" 找不到。请使用 sxstrace.exe 进行详细诊断。

从这个问题我收集到一些模块正在使用调试库,它不应该。我以为可能是GDAL?如何检测 Fiona 本身或 Fiona 的某些依赖项是否正在执行此操作?

我试图卸载 Fiona(和 GDAL)并重新安装它们。

我可以使用以下方法成功卸载和安装它们:

但错误仍然存​​在。

0 投票
1 回答
2476 浏览

python - Geopandas 读取文件

read_file使用该功能时,我遇到了一些关于 geopandas 和 fiona 的问题。这是我的回溯:

df = gpd.read_file('/Users/danqing0703/github/Land-Use-Simulation/LBS_Data_Fetching/osm_api/singapore_roads.geojson')

0 投票
1 回答
757 浏览

geopandas - 菲奥娜读取数据

我在使用 geopandas 读取数据时遇到问题,但根据这篇文章,我试图将 fiona 重新安装到 1.1.6 版本,但似乎错误是由于 fiona 造成的,但它仍然不起作用..

使用 fiona.open('taz.shp') 作为 src 导入 fiona:用于 src 中的功能:打印功能

但是当我编写其他类似的脚本时,它似乎可以工作

0 投票
1 回答
868 浏览

geopandas - 在 Python 2.6 上安装 geopandas

这是我之前的问题Geospatial Analytics in Python的延续

我开始了一个新问题,以使这两个问题在逻辑上分开。

我试图在 python 2.6 上安装 geopandas

令人惊讶的是,geopandas 已经由 GeoSeries 安装,它不起作用,它需要一个包“Fiona”。我按照此处提供的说明进行操作

我通过搜索和遵循建议安装了所需的库(包括认为我会得到 .h 文件的开发库),但是我遇到了这两个问题:

https://github.com/Toblerity/Fiona

在 Fiona 上从 git 和 python setup.py install 克隆后,出现错误:

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE - fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv - fPIC -I/usr/include/python2.6 -c fiona/_geometry.c -o build/temp.linux-x86_64-2.6/fiona/_geometry.o gcc: fiona/_geometry.c: 没有这样的文件或目录

pip install geopandas 给出

任何有关分类问题和安装 geopandas 的帮助将不胜感激

0 投票
1 回答
995 浏览

python - 在 Centos 安装 Fiona

这个问题与我之前的两个问题有关:

Python 中的地理空间分析

在 Python 2.6 上安装 geopandas

我通过升级整个系统让 geopandas 工作。我没有让 Fiona 工作,以下是我尝试时遇到的错误

0 投票
0 回答
1197 浏览

python - 地理空间分析(shapefile 中的纬度)

这是Python中地理空间分析的后续问题

这个问题类似于https://gis.stackexchange.com/questions/84114/shapely-unable-to-tell-if-polygon-contains-point但反转纬度似乎已经解决了这个问题,但它不是帮我。

Uber 数据以 lat/long 形式给出,非常直接,反向查找在 geopandas 中使用时给出地址

然而,问题是在 shapefile 中查找那些纬度/经度。Uber 数据如下所示:

形状文件多边形边界看起来像

所以 polygon/polygon.contains(point) 中的点不起作用。查看数据,与 shapely 文件相比,lat long 非常小,我不确定是否必须将一个单位转换为另一个单位,看起来完全不同的公制:) 下面是代码:

Uber 数据和 SFO shapefile 的链接在这里http://hortonworks.com/blog/magellan-geospatial-analytics-in-spark/#comment-606532

0 投票
0 回答
880 浏览

python - 如何使用 Python 将折线 shapefile 转换为栅格数据

这是我的问题。我有一堆折线显示,例如:

http://i4.tietuku.com/bc378d1cd2c24142.png

我想基于折线生成栅格数据,其中包含一个网格中线的长度。

例如:

  1. 原始数据
    http://i4.tietuku.com/8b8768aac183cfe6.png

  2. 目标

http://i4.tietuku.com/a09ba42a122f561a.png

===== 添加 ====

从此使用 ArcGIS 找到答案

从此使用 R


我的目标是使用带有一些开源模块(gdal、fiona 等)的Python 将折线转换为栅格

0 投票
0 回答
220 浏览

python - 把点放在陆地上,把点放在水上

我有几个多边形,它们实际上是点的联合。我想要一种相当快速的方法来删除不是陆地的点(但在河流、湖泊、海洋等)。

所以到目前为止,我已经想出了以下方法,它将我从左图带到右图:

在此处输入图像描述

然后在一个循环中我测试我的观点:

我使用三个适合我的目的的形状文件(湖泊有点粗糙):海岸湖泊小湖

但是,对于 10,000 点,代码有点慢(我有大约 30 个文件,所以要检查 300,000 点)。

我想知道以下任何一项是否可能:

1) 我正在循环遍历形状并检查 shape.contains(point) 而不是遍历点并检查 point.within(shape) -> 我不确定是否会有改进?

2)使用空间索引可能会加快速度,但我认为 RTree 不再适用于 Python 3.4

3)也许有一个更快的功能(粗略的包含),它只检查边界,我可以将它用作第一步,然后包含作为步骤 2。

4)不是循环通过点,有没有办法一次矢量化和传递?

5)也许将形状优美的多边形转换为路径会更快,以便我可以使用matpotlib的path.contains_point?

6)最后,我意识到我可能应该使用墨卡托投影作为多边形测试中的点,但粗剪对我来说很好(它不像水形状文件那样超级准确)。

谢谢

0 投票
2 回答
1006 浏览

python - 查找 shapefile 中补丁子集的地图边界(Python)

我正在尝试在 Python 的 shapefile 中绘制某些区域的地图。我的基本方法是这样的:

现在我的问题是 shapefile 覆盖了更大的地理区域,但我只想绘制该区域的一个子集(例如,我有一个英国 shapefile,但想绘制威尔士所有地区的地图)。现在我可以识别正确的区域并只添加上面示例中的那些补丁,但是 matplotlib 仍然会绘制 shapefile 中所有区域的边界,并且由 fiona 的bounds方法识别的边界显然与我的补丁子集无关选择。

我有两个与此相关的问题:

  1. 如何让 matplotlib 仅绘制 shapefile 中定义的补丁子集的边界?

  2. 如何获得补丁子集的边界,类似于 fiona 的bound方法对整个 shapefile 所做的那样?

0 投票
0 回答
2056 浏览

python - 使用 Python fiona 读取多边形

现在,我可以使用fiona读取一个特定的多边形并将其绘制如下:

输出如下:

http://i13.tietuku.com/65d7d9d6a423a5d3.png

但是当 shapefile 由几个 shapefile 组成时,如下所示:

http://i13.tietuku.com/a331edcbeec29d5e.png

我不能使用上面的类似代码来获得 4 个多边形代表 4 个不同的区域。

我的问题

如何使用 fiona 读取并将其转换为几个 fiona.polygon(在我的示例中,我想获得四个多边形)。然后,我可以使用每个多边形来做更多的操作。