[OSM-dev] RuntimeError: need at least two points for linestring (way_id=619453148)
koji higuchi
koji51guchi at gmail.com
Thu Nov 1 08:34:04 UTC 2018
Another error I got with another file, africa-latest.osm.pbf is as follows.
Traceback (most recent call last):
File "D:\test.py", line 42, in <module>
ShapeConverter().apply_file(fi, locations=True)
File " D:\test.py", line 41, in way
outfile.write(rec)
File "C:\Python27\lib\site-packages\fiona\collection.py", line 341, in
write
self.writerecords([record])
File "C:\Python27\lib\site-packages\fiona\collection.py", line 335, in
writerecords
self.session.writerecs(records, self)
File "fiona\ogrext.pyx", line 1074, in
fiona.ogrext.WritingSession.writerecs
RuntimeError: Failed to write record: {'geometry': {'type': 'LineString',
'coordinates': [[-15.6476295, 11.8897502], [-15.6475324, 11.889773],
[-15.647507, 11.8896699], [-15.6476042, 11.8896471], [-15.6476295,
11.8897502]]}, 'properties': {'kind': 'yes', 'id': 130159705.0, 'name':
None}}
please help me guys.
On Thu, Nov 1, 2018 at 12:13 PM koji higuchi <koji51guchi at gmail.com> wrote:
> *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/c526576e/attachment.html>
More information about the dev
mailing list