get_interfaces
Get the interfaces b/w the polygons defined in a areas and buffer_area.
Note
Identifies the interface regions between polygons in area1 and in area2
by buffering the area2 polygons and finding their intersections with area1.
The width of the interface is controlled by the buffer_dist parameter.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
area1
|
GeoDataFrame
|
The area or region of interest that is buffered on top of polygons in area2. |
required |
area2
|
GeoDataFrame
|
A geodataframe containing polygons (tissue areas) that might intersect.
with the |
required |
buffer_dist
|
int
|
The radius (in pixels) of the buffer. |
200
|
symmetric_buffer
|
bool
|
Whether to use a symmetric buffering to both directions. This doubles the buffer size. |
False
|
Returns:
| Type | Description |
|---|---|
GeoDataFrame
|
gpd.GeoDataFrame: A geodataframe containing the intersecting polygons including the buffer. |
Examples:
>>> from histolytics.spatial_ops import get_interfaces
>>> from histolytics.data import cervix_tissue
>>> # load the tissue data
>>> tis = cervix_tissue()
>>>
>>> # get the stromal and CIN tissue
>>> stroma = tis[tis["class_name"] == "stroma"]
>>> cin_tissue = tis[tis["class_name"] == "cin"]
>>>
>>> # get the interface between cin lesion and stroma
>>> interface = get_interfaces(cin_tissue, stroma, buffer_dist=300)
>>> print(interface.head(3))
class_name geometry
0 stroma POLYGON ((1588.71 4829.03, 1591.18 4828.83, 15...
1 stroma POLYGON ((743.07 5587.48, 743.63 5589, 744.07 ...
2 stroma POLYGON ((1151 7566, 1150 7567, 1148.2 7568.2,...
>>> # plot the tissue and the interface
>>> ax = tis.plot(column="class_name", figsize=(5, 5), aspect=1, alpha=0.5)
>>> interface.plot(ax=ax, color="blue", lw=1, alpha=0.3)
>>> ax.set_axis_off()
