Skip to content

Commit 6dbdd28

Browse files
committed
Skip invalid or empty geometries, close #118
1 parent 4907551 commit 6dbdd28

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

label_maker/label.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import mapbox_vector_tile
1111
import pyproj
1212
from shapely.geometry import shape, mapping, Polygon
13+
from shapely.errors import TopologicalError
1314
from rasterio.features import rasterize
1415
from geojson import Feature, FeatureCollection as fc
1516
from mercantile import tiles, feature, Tile
@@ -223,10 +224,15 @@ def _mapper(x, y, z, data, args):
223224
if ff(feat):
224225
feat['geometry']['coordinates'] = _convert_coordinates(feat['geometry']['coordinates'])
225226
geo = shape(feat['geometry'])
226-
geo = geo.intersection(clip_mask)
227+
try:
228+
geo = geo.intersection(clip_mask)
229+
except TopologicalError as e:
230+
print(e, 'skipping')
231+
break
227232
if cl.get('buffer'):
228233
geo = geo.buffer(cl.get('buffer'), 4)
229-
geos.append((mapping(geo), i + 1))
234+
if not geo.is_empty:
235+
geos.append((mapping(geo), i + 1))
230236
result = rasterize(geos, out_shape=(256, 256))
231237
return ('{!s}-{!s}-{!s}'.format(x, y, z), result)
232238
return ('{!s}-{!s}-{!s}'.format(x, y, z), np.array())

0 commit comments

Comments
 (0)