【问题标题】:Geospatial Analytics in PythonPython 中的地理空间分析
【发布时间】:2016-11-30 13:33:08
【问题描述】:

我一直在做一些调查,以找到一个可以安装和用于地理空间分析的软件包

我最接近的是https://github.com/harsha2010/magellan - 但是它只有 scala 接口,没有文档如何在 Python 中使用它。

我希望有人知道我可以使用的包吗?

我要做的是分析 Uber 的数据并将其映射到实际的邮政编码/郊区,然后通过 SGD 运行它来预测前往特定郊区的旅行次数。

这里已经有很多数据信息 - http://hortonworks.com/blog/magellan-geospatial-analytics-in-spark/#comment-606532,我正在寻找用 Python 实现它的方法。

【问题讨论】:

标签: python geospatial


【解决方案1】:

在 Python 中,我会看一下 GeoPandas。它提供了一个名为 GeoDataFrame 的数据结构:它是一个特征列表,每个特征都有一个几何图形和一些可选属性。您可以根据几何相交将两个 GeoDataFrame 连接在一起,并且可以聚合单个几何(例如邮政编码)内的行数(例如行程)。

  1. 我不熟悉 Uber 的数据,但我会尝试找到一种方法将其放入 GeoPandas GeoDataFrame。
  2. 同样,邮政编码可以从美国人口普查、OpenStreetMap[1] 等地方下载,然后强制转换为 GeoDataFrame。
  3. 根据几何相交将#1 连接到#2。您需要一个新的 GeoDataFrame,每次 Uber 行程只有一行,但每个都附有邮政编码。 Another StackOverflow post discusses how do to this,目前比应有的要难。
  4. 按邮政编码汇总并计算每个行程。代码将类似于 joined_dataframe.groupby('postcode').count()

我对上述过程的担心是,如果您有数十万个非常复杂的行程几何形状,它可能会在一台机器上花费很长时间。您发布的链接使用 Spark,您最终可能希望将其并行化。您可以针对 Spark 集群编写 Python(!),但我不是帮助您使用此组件的人。

最后,对于预测组件(例如 SGD),请查看 scikit-learn:,它是一个功能非常齐全的机器学习包,具有非常简单的 API。

[1]:有一个名为 geopandas_osm 的单独包,它抓取 OSM 数据并返回一个 GeoDataFrame:https://michelleful.github.io/code-blog/2015/04/27/osm-data/

【讨论】:

  • 谢谢@Jeff G,我去看看GeoPandas,Uber的数据只有lat和long(点数据结构)我觉得Goolge maps API很好,但唯一的缺点是我需要被连接并且集群没有暴露在互联网上。因此,我将不得不像 GeoPandas 或 magellan 那样离线处理是的,我已经为 scikit 学习准备了 SGD。如果我使用 Python 进行此操作,我可以使用有助于 map reduce(使用集群)的 hadoop-streaming。
  • 自 3 小时以来我一直在尝试安装 geopandas,卡在 Fiona
  • Python 地理空间生态系统依赖于大量的 C 库,并带来与您的系统发生冲突的可能性。虽然不是 100% 肯定的赌注,但我倾向于幸运地将我的 Python 库与使用 Conda 的系统库分开。这应该可以让您在项目的隔离环境中安装 fiona/geopandas。
【解决方案2】:

我意识到这是一个老问题,但要建立在 Jeff G 的答案之上。

如果您在访问此页面时寻求帮助,在 python 中整合一套地理空间分析工具 - 我强烈推荐本教程。

https://geohackweek.github.io/vector

在第 3 部分中,它真的很火。

它展示了如何集成

  1. 地理熊猫
  2. 后地理信息系统
  3. 大叶
  4. 光栅统计

添加 scikit-learn、numpy 和 scipy,你真的可以完成很多事情。您也可以从nDarray tutorial 获取信息

【讨论】:

  • 谢谢@BDHudson,我去看看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 2018-01-27
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
  • 2017-01-10
相关资源
最近更新 更多