使用 OpenTripPlanner 生成的空多边形生成错误 .is_empty Shapely 指令
An empty polygon generated with OpenTripPlanner generates error with .is_empty Shapely instruction
我有一个用 OpenTripPlanner 生成的等时线多边形:
{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[]},"properties":{"time":-47},"id":"fid--576b228b_15b66d32d71_-7cbd"}]}
使用以下指令将此多边形转换为 Shapely 对象:
isochrone = shapely.geometry.asShape(isochroneJSON['features'][0]['geometry'])
这是它在 Spyder 中的样子:
{u'type': u'FeatureCollection', u'features': [{u'geometry': {u'type': u'MultiPolygon', u'coordinates': []}, u'type': u'Feature', u'properties': {u'time': -47}, u'id': u'fid--576b228b_15b66d32d71_-7a54'}]}
在我看来它真的像一个空的多边形。我的问题是我想将它从其余的处理中排除,并检查它是否有效 and/or 为空。以及以下说明:
if not isochrone.is_empty:
使用 .is_empty 匀称指令生成错误:
return (self._geom is None) or bool(self.impl['is_empty'](self))
self.__geom__, n = self.factory(self.context)
我完全迷路了,因为 the only similar question 似乎没有我自己的问题。
空几何有点棘手,在您的特定情况下(MultiPolygons),您可以使用 shape
而不是 asShape
来部分修复它:
import json
from shapely.geometry import MultiPolygon, shape, mapping, asShape
Q = shape({'type': 'MultiPolygon', 'coordinates': []})
print(Q.is_empty)
print(Q.geom_type)
print(json.dumps(mapping(Q)))
这个输出(geom_type
在空多边形的情况下确实不等于MultiPolygon
):
True
GeometryCollection
{"type": "MultiPolygon", "coordinates": []}
我有一个用 OpenTripPlanner 生成的等时线多边形:
{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[]},"properties":{"time":-47},"id":"fid--576b228b_15b66d32d71_-7cbd"}]}
使用以下指令将此多边形转换为 Shapely 对象:
isochrone = shapely.geometry.asShape(isochroneJSON['features'][0]['geometry'])
这是它在 Spyder 中的样子:
{u'type': u'FeatureCollection', u'features': [{u'geometry': {u'type': u'MultiPolygon', u'coordinates': []}, u'type': u'Feature', u'properties': {u'time': -47}, u'id': u'fid--576b228b_15b66d32d71_-7a54'}]}
在我看来它真的像一个空的多边形。我的问题是我想将它从其余的处理中排除,并检查它是否有效 and/or 为空。以及以下说明:
if not isochrone.is_empty:
使用 .is_empty 匀称指令生成错误:
return (self._geom is None) or bool(self.impl['is_empty'](self))
self.__geom__, n = self.factory(self.context)
我完全迷路了,因为 the only similar question 似乎没有我自己的问题。
空几何有点棘手,在您的特定情况下(MultiPolygons),您可以使用 shape
而不是 asShape
来部分修复它:
import json
from shapely.geometry import MultiPolygon, shape, mapping, asShape
Q = shape({'type': 'MultiPolygon', 'coordinates': []})
print(Q.is_empty)
print(Q.geom_type)
print(json.dumps(mapping(Q)))
这个输出(geom_type
在空多边形的情况下确实不等于MultiPolygon
):
True
GeometryCollection
{"type": "MultiPolygon", "coordinates": []}