Use geopandas for optimize vectors operation
There are a lot of custom function for vector manipulation in iota2.
Geopandas provide a lot of them, and optimize memory and processing.
In the last release 8.0, they ensure 5-7x faster write time and 1.5-2x faster read time of a shapefile.
In addition, this version provide function to compute intersection (indicate if there is a intersection between two polygons) and clip (cut polygon according a mask i.e samples with an envelope).
In OBIA, gain are observed (using version 0.6.3) reducing the time for a whole step from more than 2h30 to arround 40min.
An interesting work should be to compare both performances.
Notes
The current OTB version use OSSIM (last update on december 2015) which downgrade geos version to 3.7.1. It cause a incompatibility with the last version of geopandas which require 3.8.1
Without a patch of the OSSIM sources it will not be possible to use both in the same conda environment. Also, this imposes a version of gdal to 2.4 whereas the current one is 3.1.
In OTB 8.0 OSSIM will no longer be a dependency.
A negative point is that geopandas is based on fiona
library and then can't use sqlite as input.