Fiona et Pyogrio sont tous deux des bibliothèques Python utilisées pour lire et écrire des formats de données vectorielles spatiales, mais ils diffèrent considérablement par leur support de format de fichier, leur conception sous-jacente et leurs capacités spécifiques.
Fiona est une bibliothèque Python bien établie et complète pour travailler avec des sources de données Vector OGR. Il est conçu pour diffuser des données de fonctionnalités simples vers et depuis divers formats SIG comme GeoPackage, ShapeFile et bien d'autres. Fiona prend en charge les formats GIS multicouches, les systèmes de fichiers virtuels zippés et en mémoire, et peut gérer les fichiers localement et dans le cloud. Il est lié à la bibliothèque GDAL, qui prend en charge une très large gamme de formats de données spatiaux. Étant donné que Fiona dépend étroitement de GDAL, sa prise en charge du format de fichier est vaste, ce qui lui permet de gérer pratiquement tous les formats vectoriels soutenus par OGR, y compris les fichiers de forme (SHP), Geojson, Geopackage (GPKG), KML, GML, MapinFO Files (TAB) et de nombreux formats vectoriels basés sur XML. Fiona prend également en charge les types de géométrie 3D conformément aux spécifications de Geojson. Cependant, les utilisateurs peuvent rencontrer une complexité d'installation en raison de ses dépendances sur des versions GDAL spécifiques et du besoin de pilotes binaires compatibles, en particulier pour les pilotes de format en option comme GML. L'installation de la source, le cas échéant, peut fournir un support pour des formats supplémentaires non inclus dans les binaires précompilés. Fiona prend également en charge le réglage du codage explicitement si la détection de codage du pilote du format échoue.
En revanche, Pyogrio est une bibliothèque plus récente et légère optimisée pour la lecture et l'écriture rapides des formats de données vectorielles spatiaux, spécialement conçus pour bien s'adapter au cas d'utilisation de Geopandas des opérations de données en vrac sur GeodataFrames. Il utilise une approche basée sur le volume en vrac implémentée dans Cython pour des E / S de données efficaces, extrait les géométries en tant que binaires bien connues (WKB) et attributs dans des tableaux numpy. Pyogrio lit ou écrit toutes les données à la fois, ne prenant pas en charge les écritures incrémentielles ou apprentissage dans des fichiers existants. Bien que cela conduit à des performances beaucoup plus rapides dans de nombreux scénarios (souvent 5 à 20 fois plus rapides que Fiona), Pyogrio a une portée plus limitée en termes de support de format par rapport à Fiona. Il prend généralement en charge les formats vectoriels les plus couramment utilisés et les plus performants qui sont pertinents pour les workflows de géopandas, en bonne place géopackage et fichiers de forme, mais n'expose pas la gamme complète des formats OGR. Pyogrio ne prend pas en charge la spécification des paramètres de schéma pour l'écriture de fichiers, ce qui signifie que les utilisateurs ne peuvent pas définir explicitement les types de données d'attribut lors de l'enregistrement. Il a également un comportement distinctif concernant les géométries: par exemple, il écrit des géométries vides comme vides (par exemple, pour les polygones) tandis que Fiona les convertit en géométries lors de l'écriture.
Certaines différences pratiques dans la manipulation du format incluent la capacité de Fiona à travailler avec des sources de données multicouches et des fichiers zippés, tandis que Pyogrio est plus axé sur la lecture / l'écriture / écriture en vrac unique et monocouche. Fiona prend en charge les tables d'attribut de lecture (sans géométrie) à travers des ajustements de schéma, tandis que Pyogrio peut gérer cela en écrivant directement des données Pandas mais sans contrôle de schéma. La dépendance de Fiona à l'égard de GDAL signifie qu'il hérite de la prise en charge du format étendu mais également de la complexité d'installation, tandis que Pyogrio, étant focalisé et sans état, a moins de dépendances et d'installation plus simple mais moins de polyvalence au format.
Ainsi, Fiona offre une prise en charge de format de fichiers plus large, des fonctionnalités plus riches pour des sources de données SIG variées, notamment des formats moins courants et des données multicouches, et un contrôle explicite sur les schémas et les encodages de données. Pyogrio, en revanche, priorise la vitesse et la facilité d'intégration avec les géopandas pour les opérations GIS en vrac communes, prenant en charge les types de fichiers de vecteur clés comme la géopackage et le fichier de forme, mais manquant de l'étendue de Fiona de format et de couverture des fonctionnalités.
Cette distinction informe les choix d'utilisation: Fiona est idéale pour les flux de travail SIG divers et complexes nécessitant une compatibilité de format étendue et un contrôle détaillé, tandis que Pyogrio est le mieux adapté pour le traitement par lots à haute performance des formats vectoriels spatiaux largement utilisés dans les pipelines d'analyse de données Python centriques de Geopandas.