[OSM-dev] RuntimeError: need at least two points for linestring (way_id=619453148)

koji higuchi koji51guchi at gmail.com
Thu Nov 1 03:13:40 UTC 2018


*I tried to extract data from .osm.pbf file and write to shapefile as
follows:*

import os, osmium, fiona

fi = 'europe-latest.osm.pbf'
fo = 'europe-latest.shp'

drv = 'ESRI Shapefile'

crs = {'no_defs': True, 'ellps': 'WGS84', 'datum': 'WGS84', 'proj':
'longlat'}

 schema = {'geometry': 'LineString',
                   'properties': {'id': 'float', 'name' : 'str', 'kind' :
'str'}}

outfile = fiona.open(fo, 'w', driver=drv, crs=crs, schema=schema)

geomfab = osmium.geom.GeoJSONFactory()

class ShapeConverter(osmium.SimpleHandler):
      def way(self, w):
           if 'place' in w.tags:
               rec = {'geometry' : eval(geomfab.create_linestring(w)),
                      'properties' : {'id' : float(w.id),
                                     'name' : w.tags.get('name'),
                                       'kind' : w.tags['place']}}
               outfile.write(rec)

ShapeConverter().apply_file(fi, locations=True)

I got the following error after extracting several contents:

 rec = {'geometry' : eval(geomfab.create_linestring(w)),
RuntimeError: need at least two points for linestring (way_id=619453148)

How could I skip that erroneous id and extract data for other working ids?

Your help is appreciated.
Thank you so much.

Koji
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/dev/attachments/20181101/19b8f99d/attachment.html>


More information about the dev mailing list