[Python] python osmium application can't stop

Discussão em 'Python' iniciado por Stack, Julho 7, 2025.

  1. Stack

    Stack Membro Participativo

    My code is below, it doesn't stop after it has ran.

    import osmium
    import geopandas as gpd
    from shapely import LineString
    from shapely.geometry import Point

    project_dir = r'C:\Users\Administrator\Desktop\QGIS\projectTest\extractOSMFileByOsmium'
    osm_file_name = r'mapExtentsCrossOSM.osm'
    osm_file = project_dir + r'/' + osm_file_name

    output_points_file_shp_name = r'extractOSMFile_points.shp'
    output_points_file_shp = project_dir + r'/' + output_points_file_shp_name

    output_lines_file_shp_name = r'extractOSMFile_lines.shp'
    output_lines_file_shp = project_dir + r'/' + output_lines_file_shp_name

    class osmExtractor(osmium.SimpleHandler):
    def __init__(self):
    super().__init__()
    self.points = []
    self.lines = []
    self.multipolygons = []

    def node(self, n):
    self.points.append({
    "id": n.id,
    "geometry": Point(n.lon, n.lat),
    "tags": dict(n.tags)
    })

    def way(self, w):
    if len(w.nodes) > 1:
    coords = [(n.lon, n.lat) for n in w.nodes]
    self.lines.append({
    "id": w.id,
    "geometry": LineString(coords),
    "tags": dict(w.tags)
    })


    try:
    handler = osmExtractor()
    handler.apply_file(osm_file, locations=True)
    except Exception as e:
    print(f"error:{e}")


    save_file = gpd.GeoDataFrame(handler.points, geometry="geometry", crs="EPSG:4326")
    save_file.to_file(output_points_file_shp)


    save_file = gpd.GeoDataFrame(handler.lines, geometry="geometry", crs="EPSG:4326")
    save_file.to_file(output_lines_file_shp)


    Below shows how I installed osmium

    pip install osmium fiona shapely
    Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
    Collecting osmium
    Downloading https://mirrors.aliyun.com/pypi/packages/c6/60/78ad4ee586423bfd841f25d5b02fb2a35fde15fafeda9145bd1997398b2a/osmium-4.0.2-cp39-cp39-win_amd64.whl (1.5 MB)
    ---------------------------------------- 1.5/1.5 MB 8.7 MB/s eta 0:00:00
    Collecting fiona
    Downloading https://mirrors.aliyun.com/pypi/packages/a9/21/5d355e0960a6b0443c9147c4ec81dca65ff3386117d28a5a5a497a6e5dc3/fiona-1.10.1-cp39-cp39-win_amd64.whl (24.5 MB)
    ---------------------------------------- 24.5/24.5 MB 8.5 MB/s eta 0:00:00
    Requirement already satisfied: shapely in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (2.0.7)
    Requirement already satisfied: requests in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from osmium) (2.32.3)
    Requirement already satisfied: attrs>=19.2.0 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (25.3.0)
    Requirement already satisfied: certifi in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (2025.6.15)
    Requirement already satisfied: click~=8.0 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (8.1.8)
    Requirement already satisfied: click-plugins>=1.0 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (1.1.1)
    Requirement already satisfied: cligj>=0.5 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (0.7.2)
    Requirement already satisfied: importlib-metadata in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from fiona) (8.6.1)
    Requirement already satisfied: colorama in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from click~=8.0->fiona) (0.4.6)
    Requirement already satisfied: numpy<3,>=1.14 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from shapely) (2.0.2)
    Requirement already satisfied: zipp>=3.20 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from importlib-metadata->fiona) (3.21.0)
    Requirement already satisfied: charset_normalizer<4,>=2 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from requests->osmium) (3.4.2)
    Requirement already satisfied: idna<4,>=2.5 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from requests->osmium) (3.10)
    Requirement already satisfied: urllib3<3,>=1.21.1 in c:\programdata\miniforge3\envs\qgis_py3.9_new\lib\site-packages (from requests->osmium) (2.4.0)
    Installing collected packages: osmium, fiona
    Successfully installed fiona-1.10.1 osmium-4.0.2

    Continue reading...

Compartilhe esta Página