Pyogrio non supporta scritture incrementali o aggiunge alle fonti di dati esistenti come Fiona. Utilizza un approccio apolide e orientato alla massa alla lettura e alla scrittura dei formati di dati vettoriali spaziali, il che significa che tutti i dati vengono letti o scritti in un unico passaggio. Ciò implica che Pyogrio non consente l'aggiunta di nuovi record a un'origine dati esistente o l'apprendimento a un file senza riscrivere l'intero file. Al contrario, Fiona supporta le scritture o le aggiunte incrementali, fornendo maggiore flessibilità e controllo sull'elaborazione dei dati.
Pyogrio è stato sviluppato come alternativa sperimentale ad alte prestazioni a Fiona, prendendo di mira operazioni I/O più veloci specificamente per le geopanda. Pyogrio utilizza un approccio orientato a numpy internamente con Cython per gestire i dati spaziali, estraendo le geometrie come oggetti binari ben noti e attributi sul campo come array numpy prima di convertirli in geopandas geodataframe. L'intero frame geodata viene elaborato in memoria e scritto in un'operazione di massa, che aumenta la velocità ma limita la flessibilità come la scrittura incrementale.
Fiona, d'altra parte, è una libreria Python per uso generale e generico per la collaborazione con le fonti di dati del vettore OGR. Impiega un approccio statale in cui i dati vengono letti o scritti in più passaggi. Ciò rende Fiona più adattabile per diversi casi d'uso tra cui trasformazioni di dati complesse e scritture incrementali o opere di appendimento. Il design di Fiona consente di aggiungere nuove funzionalità a un file spaziale esistente o modificare un set di dati senza ritrattare tutto. Questa capacità di gestire le scritture incrementali è fondamentale per i flussi di lavoro che richiedono aggiornamenti ai set di dati geospaziali nel tempo.
Pyogrio si concentra sulla fornitura di un accesso più veloce di lettura/scrittura evitando più conversioni tra i tipi di dati di Python e nativi che Fiona esegue. Sfrutta i legami pre-compatiti alle librerie GDAL/OGR per realizzare operazioni di dati in modo vettoriale e sfuso. I confronti delle prestazioni mostrano che Pyogrio può ottenere accelerazioni oltre 5-20 volte rispetto a Fiona quando si legge e si scrivono file, rendendolo adatto per la gestione di set di dati o operazioni di grandi dimensioni che favoriscono il throughput su editing sfumato.
Il compromesso chiave tra le due biblioteche è in flessibilità rispetto alla velocità. Mentre Fiona supporta aggiornamenti incrementali, diversi formati di file e capacità di controllo ricche, non mostra la stessa elaborazione ad alta velocità per le operazioni di dati in blocco che Pyogrio offre. Al contrario, l'elaborazione apolide e all-once di Pyogrio migliora in modo significativo la velocità ma a spese di non supportare le aggiunte incrementali o la modifica dei set di dati esistenti.
Inoltre, Pyogrio non supporta gli schemi a specifica durante le scritture, a differenza di Fiona, che consente un controllo dettagliato sui tipi di attributi e sulle geometrie durante la scrittura di dati. Pyogrio tratta anche distintamente le geometrie vuote, scrivendole come vuote piuttosto che null in alcuni casi, riflettendo la sua attenzione sulla gestione diretta dei dati orientata alla massa.
In sintesi, Pyogrio non può gestire scritture incrementali o aggiunte come Fiona. Legge e scrive fonti di dati spaziali in un'unica operazione senza la possibilità di aggiornare parzialmente i file esistenti. Fiona rimane l'opzione più flessibile per i flussi di lavoro che richiedono modifiche incrementali di dati, mentre Pyogrio eccelle per operazioni I/O in blocco ad alte prestazioni, in particolare nei flussi di lavoro incentrati su Geopandas.
Queste informazioni sono raccolte dalla documentazione ufficiale, dalle guide degli utenti e dalle discussioni sugli sviluppatori su Pyogrio e Fiona, evidenziando le loro differenze architettoniche, i modelli di utilizzo e le caratteristiche supportate relative alle scritture incrementali e alle aggiunte dei dati.