Pyogrio ondersteunt geen incrementele schrijft of voegt bestaande gegevensbronnen toe zoals Fiona. Het maakt gebruik van een staatloze, bulk-georiënteerde benadering van het lezen en schrijven van ruimtelijke vectorgegevensformaten, wat betekent dat alle gegevens in een enkele pass worden gelezen of geschreven. Dit houdt in dat Pyogrio geen nieuwe records toestaat aan een bestaande gegevensbron of aan een bestand toe te voegen zonder het hele bestand te herschrijven. Fiona ondersteunt daarentegen incrementele schrijft of voegt toe, waardoor meer flexibiliteit en controle over gegevensverwerking biedt.
Pyogrio werd ontwikkeld als een experimenteel alternatief voor Fiona, en richtte zich op snellere I/O-bewerkingen specifiek voor geopandas. Pyogrio gebruikt intern een numpy-georiënteerde aanpak met Cython om ruimtelijke gegevens te verwerken, waarbij geometrieën worden geëxtraheerd als bekende binaire objecten en veldattributen als numpy arrays voordat ze worden omgezet in geoDatas geodataframes. Het gehele geodataframe wordt in het geheugen verwerkt en in één bulkbewerking geschreven, die de snelheid verhoogt maar de flexibiliteit zoals incrementele schrijven beperkt.
Fiona, aan de andere kant, is een volledige, algemene Python-bibliotheek voor het werken met OGR-vectorgegevensbronnen. Het maakt gebruik van een stateful -aanpak waar gegevens in meerdere passen worden gelezen of geschreven. Dit maakt Fiona meer aanpasbaar voor diverse use-cases, waaronder complexe gegevenstransformaties en incrementele schrijftjes of app-bewerkingen. Het ontwerp van Fiona maakt het mogelijk om nieuwe functies toe te voegen aan een bestaand ruimtelijk bestand of het wijzigen van een gegevensset zonder alles opnieuw te verwerken. Deze mogelijkheid om incrementele schrijven te verwerken is van cruciaal belang voor workflows die in de loop van de tijd updates voor geospatiale datasets vereisen.
Pyogrio richt zich op het bieden van snellere lees-/schrijftoegang door meerdere conversies te vermijden tussen Python en native gegevenstypen die Fiona uitvoert. Het maakt gebruik van vooraf gecompileerde bindingen aan GDAL/OGR-bibliotheken om gegevensbewerkingen op een gevectoriseerde en bulk manier te bereiken. Prestatievergelijkingen tonen aan dat Pyogrio meer dan 5-20 keer versnellingen kan bereiken in vergelijking met FIONA bij het lezen en schrijven van bestanden, waardoor het goed geschikt is voor het verwerken van grote datasets of bewerkingen die de voorkeur geven aan de doorvoer boven genuanceerde bewerking.
De belangrijkste afweging tussen de twee bibliotheken ligt in flexibiliteit versus snelheid. Hoewel Fiona incrementele updates, diverse bestandsformaten en rijke besturingsmogelijkheden ondersteunt, vertoont het niet dezelfde high-speed-verwerking voor bulkgegevens die Pyogrio levert. Omgekeerd verhoogt Pyogrio's staatloze, alles-op-once-verwerking de snelheid aanzienlijk, maar ten koste van het niet ondersteunen van incrementele bijlagen of aanpassing van bestaande datasets.
Bovendien ondersteunt Pyogrio geen ondersteuning van schema's tijdens het schrijven, in tegenstelling tot Fiona, die gedetailleerde controle over attributentypen en geometrieën mogelijk maakt bij het schrijven van gegevens. Pyogrio behandelt ook duidelijk lege geometrieën, het schrijven van ze als leeg in plaats van nul in sommige gevallen, als gevolg van de focus op directe, bulk-georiënteerde gegevensverwerking.
Samenvattend kan Pyogrio incrementele schrijft of toevoegen zoals Fiona niet aan. Het leest en schrijft ruimtelijke gegevensbronnen in een enkele bewerking zonder de mogelijkheid om bestaande bestanden gedeeltelijk bij te werken. Fiona blijft de meer flexibele optie voor workflows die incrementele gegevensaanpassingen vereisen, terwijl Pyogrio blinkt voor krachtige bulk I/O-bewerkingen, vooral in geopandas-gerichte workflows.
Deze informatie wordt verzameld uit officiële documentatie, gebruikersgidsen en ontwikkelaarsdiscussies over Pyogrio en Fiona, waarbij hun architecturale verschillen, gebruikspatronen en ondersteunde functies met betrekking tot incrementele schrijf- en gegevens worden geactiveerd.