zoukankan      html  css  js  c++  java
  • Get A Transportation Network From OSMFile

    # Obtain a transportation network from an osm file.
    # get  osm file 方式1:OpenStreetMap Homepage
    # .osm.pbf下载地址 方式2:http://download.openstreetmap.fr/extracts/asia/china/
    # get  osm file 方式3:Geofabrik  https://download.geofabrik.de/
    # get  osm file 方式4: BBBike(可支持多边形范围) https://extract.bbbike.org/
    
    import osm2gmns as og
    import osm2gmns.settings as defaultsettings
    # pip install -i http://mirrors.aliyun.com/pypi/simple/ osm2gmns --trusted-host mirrors.aliyun.com
    
    # FromOSMFile
    # net = og.getNetFromOSMFile(r'D:/DataWorkspace/data/beijing.osm',
    #                       network_type=('auto',), link_type='all',
    #                       POIs=False, POI_sampling_ratio=1.0,
    #                       strict_mode=True,
    #                       offset='no',
    #                       min_nodes=1,
    #                       combine=False,
    #                       int_buffer=defaultsettings.default_int_buffer,
    #                       bbox=None,
    #                       default_lanes=False,
    #                       default_speed=False)
    
    # FromPBFFile
    net = og.getNetFromPBFFile(r'D:/DataWorkspace/data/beijing.osm.pbf',
                               network_type=('auto',), link_type='all',
                               POIs=False, POI_sampling_ratio=1.0,
                               strict_mode=True,
                               offset='no',
                               min_nodes=1,
                               combine=False,
                               int_buffer=defaultsettings.default_int_buffer,
                               bbox=None,
                               default_lanes=False,
                               default_speed=False)
    # Recommend using getNetFromPBFFile() for large networks
    # net = og.getNetFromPBFFile('***.osm.pbf')
    
    default_lanes_dict = {'motorway': 4, 'trunk': 3, 'primary': 3, 'secondary': 2, 'tertiary': 2,
                          'residential': 1, 'service': 1, 'cycleway':1, 'footway':1, 'track':1,
                          'unclassified': 1, 'connector': 2}
    default_speed_dict = {'motorway': 59, 'trunk': 39, 'primary': 39, 'secondary': 39, 'tertiary': 29,
                          'residential': 29, 'service': 29, 'cycleway':9, 'footway':4, 'track':29,
                          'unclassified': 29, 'connector':59}
    
    # 保存成CSV Output Networks to CSV
    og.outputNetToCSV(net, output_folder='netcsv', projection=False, enconding=None)
    
    # 合并交叉路口 Consolidate Intersections
    og.consolidateComplexIntersections(net)
    og.outputNetToCSV(net, output_folder='netcsv_csd', projection=False, enconding=None)
    
    # # 也可以先保存成csv,然后人工编辑,最后再合并
    # net = og.getNetFromPBFFile(r'D:/DataWorkspace/data/beijing.osm.pbf')
    # og.outputNetToCSV(net, output_folder='', projection=False, enconding=None)
    # # check the main_node_id column in node.csv
    # net = og.getNetFromCSV(folder='', enconding=None)
    # og.consolidateComplexIntersections(net)
    # og.outputNetToCSV(net, output_folder='consolidated', projection=False, enconding=None)
    
    # # 连接POI
    # # Network with POIs
    # net = og.getNetFromPBFFile(r'D:/DataWorkspace/data/beijing.osm.pbf',
    #                            network_type=('auto',), link_type='all',
    #                            POIs=True, POI_sampling_ratio=1.0,
    #                            strict_mode=True,
    #                            offset='no',
    #                            min_nodes=1,
    #                            combine=False,
    #                            int_buffer=defaultsettings.default_int_buffer,
    #                            bbox=None,
    #                            default_lanes=False,
    #                            default_speed=False)
    # # Connect POIs with network
    # og.connectPOIWithNet(net)
    
    # Visualization
    # You can visualize generated networks using NeXTA or QGis.
    # NeXTA:https://github.com/xzhou99/NeXTA-GMNS OR https://github.com/asu-trans-ai-lab/DTALite

     贴几张图吧  记录而已

     

     

     

     

     

    个人学习记录
  • 相关阅读:
    栈和其他寄存器大小
    checksec的安装及初步使用(新版)
    KMP算法之Next数组详解
    向上取整的三种方法
    C++STL(Standard Template Library,即标准模版库)——Map容器
    JS基础语法一
    JS函数学习
    JS对象学习(二)
    JavaStript对象学习(一)
    CSS3新特性学习(2)
  • 原文地址:https://www.cnblogs.com/jeshy/p/14853969.html
Copyright © 2011-2022 走看看