def test_points_intersects_multipolygon(gp_points, gp_multipolygon): # Get scalar MultiPolygon sg_multipolygon = gp_multipolygon[0] # Compute expected intersection expected = gp_points.intersects(sg_multipolygon) # Create spatialpandas objects multipolygon = MultiPolygon.from_shapely(sg_multipolygon) points = PointArray.from_geopandas(gp_points) points_series = GeoSeries(points, index=np.arange(10, 10 + len(points))) # Test Point.intersects result = np.array([ point_el.intersects(multipolygon) for point_el in points ]) np.testing.assert_equal(result, expected) # Test PointArray.intersect result = points.intersects(multipolygon) np.testing.assert_equal(result, expected) # Test PointArray.intersects with inds inds = np.flipud(np.arange(0, len(points))) result = points.intersects(multipolygon, inds) np.testing.assert_equal(result, np.flipud(expected)) # Test GeoSeries.intersects pd.testing.assert_series_equal( points_series.intersects(multipolygon), pd.Series(expected, index=points_series.index) )
def test_points_intersects_multipoint(gp_points, gp_multipoint): # Get scalar Point sg_multipoint = gp_multipoint[0] if len(gp_points) > 0: # Add gp_point to gp_multipoints so we know something will intersect gp_points = from_shapely(list(gp_points) + [gp_multipoint[0][-1]]) # Compute expected intersection expected = gp_points.intersects(sg_multipoint) # Create spatialpandas PointArray multipoint = MultiPoint.from_shapely(sg_multipoint) points = PointArray.from_geopandas(gp_points) points_series = GeoSeries(points, index=np.arange(10, 10 + len(points))) # Test Point.intersects result = np.array([ point_el.intersects(multipoint) for point_el in points ]) np.testing.assert_equal(result, expected) # Test PointArray.intersect result = points.intersects(multipoint) np.testing.assert_equal(result, expected) # Test PointArray.intersects with inds inds = np.flipud(np.arange(0, len(points))) result = points.intersects(multipoint, inds) np.testing.assert_equal(result, np.flipud(expected)) # Test GeoSeries.intersects pd.testing.assert_series_equal( points_series.intersects(multipoint), pd.Series(expected, index=points_series.index) )
def test_points_intersects_line(gp_points, gp_line): # Get scalar Line sg_line = gp_line[0] # Compute expected intersection expected = gp_points.intersects(sg_line) # Create spatialpandas objects line = Line.from_shapely(sg_line) points = PointArray.from_geopandas(gp_points) points_series = GeoSeries(points, index=np.arange(10, 10 + len(points))) # Test Point.intersects result = np.array([ point_el.intersects(line) for point_el in points ]) np.testing.assert_equal(result, expected) # Test PointArray.intersect result = points.intersects(line) np.testing.assert_equal(result, expected) # Test PointArray.intersects with inds inds = np.flipud(np.arange(0, len(points))) result = points.intersects(line, inds) np.testing.assert_equal(result, np.flipud(expected)) # Test GeoSeries.intersects pd.testing.assert_series_equal( points_series.intersects(line), pd.Series(expected, index=points_series.index) )