Pyogrioは、Fionaが行うような既存のデータソースへの増分書または追加をサポートしていません。空間ベクトルデータ形式を読み書きするために、無国籍のバルク指向のアプローチを使用します。これは、すべてのデータが単一のパスで読み取られるか、書かれていることを意味します。これは、Pyogrioがファイル全体を書き換えずに既存のデータソースに新しいレコードを追加したり、ファイルに追加したりすることを許可しないことを意味します。対照的に、Fionaはインクリメンタルな書き込みまたは追加をサポートし、データ処理をより柔軟に制御できるようにします。
Pyogrioは、フィオナに代わる実験的な高性能の代替として開発され、ジオパンダ向けに特に迅速にI/O操作を標的としています。 Pyogrioは、Cythonを使用して内部的にnumpy指向のアプローチを使用して、空間データを処理し、ジオパンダのジオダタフレームに変換する前に、よく知られているバイナリオブジェクトおよびフィールド属性としてnumpyアレイとしてジオメトリを抽出します。 GeodataFrame全体はメモリで処理され、1つのバルク操作で書き込まれます。
一方、フィオナは、OGRベクターデータソースを操作するためのフル機能の汎用Pythonライブラリです。データが複数のパスで読み取られるか、書かれているステートフルなアプローチを採用しています。これにより、Fionaは、複雑なデータ変換や漸進的な書き込みまたは操作を含む多様なユースケースに対してより適応性があります。 Fionaの設計により、既存の空間ファイルに新機能を追加するか、すべてを再処理せずにデータセットを変更することができます。インクリメンタルの書き込みを処理するこの機能は、時間の経過とともに地理空間データセットの更新を必要とするワークフローにとって重要です。
Pyogrioは、PythonとFionaが実行するネイティブデータ型との間の複数の変換を回避することにより、より速い読み取り/書き込みアクセスの提供に焦点を当てています。事前にコンパイルされたバインディングをGDAL/OGRライブラリに活用して、ベクトル化されたバルク方法でデータ操作を達成します。パフォーマンスの比較によると、Pyogrioはファイルを読み書きする際にFionaに比べて5〜20回以上速度を達成できることが示されており、微妙な編集よりもスループットを支持する大きなデータセットまたは操作を処理するのに適しています。
2つのライブラリ間の主要なトレードオフは、柔軟性と速度にあります。 Fionaは増分更新、多様なファイル形式、およびリッチ制御機能をサポートしていますが、Pyogrioが提供するバルクデータ操作に同じ高速処理を示すことはありません。逆に、PyogrioのStatelester、All-at-Once処理は速度を大幅に向上させますが、既存のデータセットの増分付録または変更をサポートしないことを犠牲にします。
さらに、Pyogrioは、データを作成するときに属性タイプとジオメトリを詳細に制御できるように、Fionaとは異なり、書き込み中にスキーマの指定をサポートしていません。また、Pyogrioは空の幾何学をはっきりと扱い、場合によってはヌルではなく空のように書いており、直接的なバルク指向のデータ処理に焦点を当てています。
要約すると、PyogrioはFionaのような増分書き込みまたは追加を処理できません。既存のファイルを部分的に更新する機能なしに、単一の操作で空間データソースを読み取り、書き込みます。 Fionaは、特にGeopandas中心のワークフローでは、段階的なデータ変更を必要とするワークフローにとって、より柔軟なオプションであり続けますが、Pyogrioは高性能のバルクI/O操作に優れています。
この情報は、PyogrioとFionaに関する公式のドキュメント、ユーザーガイド、および開発者ディスカッションから収集され、インクリメンタルな書き込みとデータの追加に関連するアーキテクチャの違い、使用パターン、およびサポートされている機能を強調しています。