问题标签 [osmnx]
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.
python - 安装 OSMNX 错误
我试图通过 pip 安装 osmnx 但遇到了这个错误:
这是我通过这个命令安装 fiona 的时候:
还有GDAL:
两者都安装成功。我看不出问题出在哪里。同样根据 osmnx 文档,我尝试通过键入这些命令来使用 conda
在 Anaconda 提示符下。似乎它成功了。它要求通过键入来激活 ox 环境
我这样做并运行了我的脚本:
但我得到的错误是:
没有名为 osmnx 的模块
我不知道是什么问题。显然我无法正确安装 osmnx,任何帮助将不胜感激。
pandas - 将 GPX 错误的经纬度点映射/捕捉到边缘
我有几个 (25*10) GPX 骑行轨迹要分析(距离、最大速度、加速度等),这些轨迹是从 Runkeeper 获得的。问题是数据包含重大错误,数据点位于田地而不是道路上。我是地理空间分析的新手,所以我知道存在诸如 geopandas 和 shapely 之类的包,但我离我知道应该一直使用哪些包的地步还很远。
我的主要问题的解决方案似乎类似于 Schuessler, N. 和 KW Axhausen (2009) 的论文中提出的建议:Map-matching of GPS traces on high-resolution navigation networks using the Multiple Hypothesis Technique (MHT), https ://www.ethz.ch/content/dam/ethz/special-interest/baug/ivt/ivt-dam/vpl/reports/501-600/ab568.pdf
到目前为止,我最接近下载、绘制和分析地图数据的是使用osmnx包,它避免了使用付费服务(例如谷歌的snap-to-road 功能,它也只能处理 100 点一次)。我已经使用 gpxpy 将 GPX 数据转换为 pandas 数据帧,这给了我一个包含时间、纬度、经度和海拔数据的 df。
我想将每个明显不正确的 GPX 点(道路宽度 + 容差例如 20 m)捕捉到道路(=边缘)。我的问题是我对 osmnx 包的理解不够好,无法做我想做的事。
当我做
“route_edges”的内容是一个 ndarray,其中包含可能投影的数字(到 WGS84 或 UTM?),而不是度数。我不知道如何将 ndarray 转换回度数,或者以 ndarray 的格式获取 lat/lon GPX 跟踪值,因此我可以计算到道路的距离并确定是保留还是替换数据。
总结一下:我的主要问题是将不正确的 GPX 数据捕捉/纠正到已知道路,我更喜欢使用 OpenStreetMap 数据。
子问题:
我应该使用 osmnx 来计算 GPX(纬度/经度)点和边缘之间的距离,还是应该使用 geopandas 或 shapely(或完全是其他的东西?)?
如何将纬度/经度点转换为 osmnx 中使用的投影格式(例如
G_projected = ox.project_graph(G)
),以便我可以以米而不是度为单位说明 get_nearest_edges 方法的距离?
python - 如何使用 pip 在 Windows 10 上安装 Geopandas
为了在堆栈溢出上接受一个可行的解决方案,并尽可能多地了解使用 pip 安装 Geopandas 或依赖于它的 OSMnx 等软件包在 Windows 10 上使用 pip 的问题,我将发布我的工作流程以下
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)。 - 手动或使用重新安装 fiona
pip 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 年),因为有更新的软件包版本,这些解决方案都没有对我有用。
提前致谢!
networkx - 如何在已知纬度和经度的osmnx上绘制节点
有谁知道['x'],['y']和['lon']和['lat']之间的关系是什么?如果我知道一个节点的 ['lon'] 和 ['lat'],我如何在街道地图上绘制这个节点?
我可以使用 G.node[22258] 找到一个节点的详细信息,比如
但我想在地图上绘制一个节点。我知道这个节点的纬度和经度,但似乎我需要知道“x”和“y”。
networkx - networkx ego_graph 适用于 geopandas 系列加速
拥有GeoSeries
大约 100000 个位置,我有一个工作代码,用于计算Polygons
以每个位置为中心的步行可达性。
该代码对networkx
从OpenStreeMaps
via osmnx
by apply
to 获得的图进行计算GeoDataFrame
。
我正在尝试加快计算速度,因为这非常慢。
G
- 是一个networkx
图表
这是我的apply
功能GeoDataFrame
:
我使用以下代码行申请:
谢谢!!!
python - OSMnx 错误:没有名为“pyproj.compat”的模块
我正在尝试尝试OSMnx的一些应用程序。按照提供的在 Windows 10 中使用 Anaconda3 的安装指南,安装顺利完成。但是,在导入包后,
我收到以下错误。
我尝试了各种安装方法:
无论安装方法如何,我都会收到相同的错误。pyproj
单独导入时也会出现该错误。
我被困住了。对于查找和解决我的问题有什么建议吗?
Conda 环境信息(来自严格的通道优先级):
osmnx - 添加颜色渐变图例以可视化节点中心性
我是在 python 中使用 osmnx 包的初学者。从https://github.com/gboeing/osmnx-examples/blob/master/notebooks/08-example-line-graph.ipynbin中的示例中, 我试图可视化我的项目所需的网络,即国家的铁路网络丹麦。我能够使用颜色渐变来可视化网络上的节点中心值。但我想添加一个图例,显示值和相应的调色板以便更好地理解,而不是仅仅说最低值代表黑暗区域,反之亦然。我曾尝试从其他包中实现图例功能,但最终无法获得图例。可能有一个我不知道的内置函数。如果有人可以为此提供一些建议,那将非常有帮助。
实现的代码类似于示例中提供的代码,但针对丹麦的铁路网络实现。
python - 为什么我会收到此错误?在 Windows 10 上安装 osmnx 可以做些什么?
我无法在 jupyter notebook 中安装 osmnx。shapely 1.6 版出现以下问题
我可以安装 shapely 1.4 但 osmnx 需要 1.6 版本
我使用的命令是 !pip install osmnx
收集 Shapely>=1.6(来自 osmnx)使用缓存的https://files.pythonhosted.org/packages/a2/fb/7a7af9ef7a35d16fa23b127abee272cfc483ca89029b73e92e93cdf36e6b/Shapely-1.6.4.post2.tar.gz
错误:命令出错,退出状态为 1:python setup.py egg_info 检查日志以获取完整的命令输出。
python - 如何获取osmnx图中某个节点的经纬度点?
我构建了一个图表,想查看图表中每个节点的纬度和经度值。我怎样才能找到那些?
我曾经G.nodes
找到每个节点,但我得到了某种 id。
输出:(缩短)