gemgis.vector.sort_by_stratigraphy#

gemgis.vector.sort_by_stratigraphy(gdf: geopandas.geodataframe.GeoDataFrame, stratigraphy: List[str], formation_column: str = 'formation') geopandas.geodataframe.GeoDataFrame#

Sorting a GeoDataFrame by a provided list of Stratigraphic Units

Parameters
  • gdf (gpd.geodataframe.GeoDataFrame) – GeoDataFrame containing the unsorted input polygons

  • stratigraphy (List[str]) – List containing the stratigraphic units sorted by age, e.g. stratigraphy=['Layer1' , 'Layer2']

  • formation_column (str) – Name of the formation column, default is formation, e.g. formation_colum='formation'

Returns

gdf_sorted – GeoDataFrame containing the sorted input polygons

Return type

gpd.geodataframe.GeoDataFrame

New in version 1.0.x.

Example

>>> # Loading Libraries and creating Polygon
>>> import gemgis as gg
>>> from shapely.geometry import Polygon
>>> import geopandas as gpd
>>> polygon1 = Polygon([(0, 0), (1, 1), (1, 0)])
>>> polygon1.wkt
'POLYGON ((0 0, 1 1, 1 0, 0 0))'
>>> # Creating second polygon
>>> polygon2 = Polygon([(0, 0), (2, 2), (2, 0)])
>>> polygon2.wkt
'POLYGON ((0 0, 2 2, 2 0, 0 0))'
>>> # Creating GeoDataFrame from polygons
>>> gdf = gpd.GeoDataFrame(geometry=[polygon1, polygon2])
>>> gdf['formation'] = ['Layer2', 'Layer1']
>>> gdf
    geometry                                            formation
0   POLYGON ((0.00000 0.00000, 1.00000 1.00000, 1....   Layer2
1   POLYGON ((10.00000 0.00000, 20.00000 0.00000, ...   Layer1
>>> # Creating stratigraphy list
>>> stratigraphy = ['Layer1' , 'Layer2']
>>> # Sorting GeoDataFrame by stratigraphy
>>> gdf_sorted = gg.vector.sort_by_stratigraphy(gdf=gdf, stratigraphy=stratigraphy)
>>> gdf_sorted
    geometry                                            formation
0   POLYGON ((10.00000 0.00000, 20.00000 0.00000, ...   Layer1
1   POLYGON ((0.00000 0.00000, 1.00000 1.00000, 1....   Layer2