@lru_cache(maxsize=1)
def __call__(self) -> gpd.GeoDataFrame:
    "Retrieve the dataframe for all boundaries information\n\n        Parameters\n        ----------\n\n        Returns\n        -------\n        gpd.GeoDataFrame\n            Dataframe containing information for all boundaries shape\n            and type.\n\n        Notes\n        -----\n        The result of this method is cached, so that multiple calls\n        to it won't result in multiple calculations. If the mesh\n        is modified and the cache is not properly clear the calls\n        to this method can result in invalid return values.\n        "
    self._init_dataframes()
    data = []
    for bnd in self.ocean().itertuples():
        data.append({'id': bnd.id, 'ibtype': None, 'index_id': bnd.index_id, 'indexes': bnd.indexes, 'geometry': bnd.geometry})
    for bnd in self.land().itertuples():
        data.append({'id': bnd.id, 'ibtype': bnd.ibtype, 'index_id': bnd.index_id, 'indexes': bnd.indexes, 'geometry': bnd.geometry})
    for bnd in self.interior().itertuples():
        data.append({'id': bnd.id, 'ibtype': bnd.ibtype, 'index_id': bnd.index_id, 'indexes': bnd.indexes, 'geometry': bnd.geometry})
    return gpd.GeoDataFrame(data, crs=self.mesh.crs)
Retrieve the dataframe for all boundaries information

Parameters
----------

Returns
-------
gpd.GeoDataFrame
    Dataframe containing information for all boundaries shape
    and type.

Notes
-----
The result of this method is cached, so that multiple calls
to it won't result in multiple calculations. If the mesh
is modified and the cache is not properly clear the calls
to this method can result in invalid return values.
@lru_cache(maxsize=1)
def __call__(self) -> gpd.GeoDataFrame:
    "Retrieve the dataframe for all boundaries information\n\n        Parameters\n        ----------\n\n        Returns\n        -------\n        gpd.GeoDataFrame\n            Dataframe containing information for all boundaries shape\n            and type.\n\n        Notes\n        -----\n        The result of this method is cached, so that multiple calls\n        to it won't result in multiple calculations. If the mesh\n        is modified and the cache is not properly clear the calls\n        to this method can result in invalid return values.\n        "
    self._init_dataframes()
    data = []
    for bnd in self.ocean().itertuples():
        data.append({'id': bnd.id, 'ibtype': None, 'index_id': bnd.index_id, 'indexes': bnd.indexes, 'geometry': bnd.geometry})
    for bnd in self.land().itertuples():
        data.append({'id': bnd.id, 'ibtype': bnd.ibtype, 'index_id': bnd.index_id, 'indexes': bnd.indexes, 'geometry': bnd.geometry})
    for bnd in self.interior().itertuples():
        data.append({'id': bnd.id, 'ibtype': bnd.ibtype, 'index_id': bnd.index_id, 'indexes': bnd.indexes, 'geometry': bnd.geometry})
    return gpd.GeoDataFrame(data, crs=self.mesh.crs)