【问题标题】:Osmnx error: module 'osmnx.elevation' has no attribute 'add_node_elevations_raster'Osmnx 错误:模块“osmnx.elevation”没有属性“add_node_elevations_raster”
【发布时间】:2022-01-18 06:47:39
【问题描述】:

我正在尝试从栅格文件中获取高程并添加到道路网络。我收到模块“osmnx.elevation”没有属性“add_node_elevations_raster”错误。

按照这个笔记本: https://github.com/gboeing/osmnx-examples/blob/main/notebooks/12-node-elevations-edge-grades.ipynb

我的 osmnx 版本是 '0.16.0' 并且所有其他功能都在工作。

我不想使用 add_node_elevations 函数,因为需要一个 google api 密钥,我正在寻找一个免费选项。

【问题讨论】:

    标签: python osmnx


    【解决方案1】:

    您可以通过查看免费的 Elevation API 将其包含在您的项目中:

    据我研究,其中一些 API 可以在本地运行,而其他 API 则通过互联网提供服务。要在您的项目中使用这些 API 之一,您必须能够使用 Python 创建 HttpGet 请求。如果OSMNX 库让您无法完成此过程,您可以按照this link 学习如何用python 编程语言发出HttpGet 请求。

    例如,我根据Open Topo Data API上的位置做出的HttpGet请求的返回如下:

    import requests
    import json
    
    r = requests.get('https://api.opentopodata.org/v1/test-dataset?locations=56,123')
    
    if r.status_code == 200:
       if r.headers['Content-Type'] == 'application/json':
          print(r.text)
          response = r.text.replace("'", '"')
          response = json.loads(response)
          for e in response['results']:
             print('Value of Elevation: ', e['elevation'])
    

    【讨论】:

      【解决方案2】:

      您使用的是非常旧的 OSMnx 版本,早在该功能存在之前就发布了。只需升级到最新版本的软件包(在撰写本文时为 v1.1.2),您就可以开始使用了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-29
        • 2021-07-17
        • 2021-09-25
        • 2018-01-21
        相关资源
        最近更新 更多