Si su rásteres son propensos a tener irregulares o girado límites, puede cargar los rásteres en postgres utilizando raster2pgsql, a continuación, ejecutar el sql que genera, algo como esto
raster2pgsql -I -C -s <SRID> <PATH/TO/RASTER FILE> <SCHEMA>.<DBTABLE> | psql -d <DATABASE>
Para hacer esto, usted necesita para asegurarse de que usted cree su primera base de datos, y permitir a la extensión postgis.
por ejemplo,
raster2pgsql -I -C -s 27700 "/path/to/xyz.tif" public.test | psql -d rastertest
Aquí, la base de datos es 'rastertest' y la trama está escrita en su propia mesa, 'prueba'.
Usted puede utilizar ST_ConvexHull para generar un polígono de la geometría del contorno. ST_MinConvexHull hace lo mismo, pero excluye NODATA píxeles.
select ST_AsEWKT(ST_ConvexHull(rast)) from test;
No estoy seguro de cómo la velocidad sería comparar a su propuesta de numpy máscara de solución, pero podría ser vale la pena intentarlo. He encontrado en mi laptop que se generó el convex hull en 142ms para un 2000x2000, 16Mb tiff.
Como vas a estar haciendo esto en un montón de imágenes, usted probablemente querrá script en python (el psycopg2 de la biblioteca es la mejor manera de acceder a postgres desde python)