Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jaké jsou rozdíly v podpoře formátu souborů mezi Fionou a Pyogrio


Jaké jsou rozdíly v podpoře formátu souborů mezi Fionou a Pyogrio


Fiona a Pyogrio jsou obě knihovny používané pro čtení a zápis formátů prostorových vektorových dat. I když sdílejí některé podobnosti, existují klíčové rozdíly v jejich přístupech a schopnostech:

1. Přístup

- Fiona: Fiona je plnohodnotná Python knihovna pro práci se zdroji vektorových dat OGR. Využívá stavový přístup, kdy se data čtou nebo zapisují v sérii průchodů, což umožňuje větší flexibilitu a kontrolu nad zpracováním dat. Díky tomu je vhodný pro širokou škálu úloh, včetně složitých transformací dat a přírůstkových zápisů nebo připojování[1].
- Pyogrio: Pyogrio je experimentální přístup, který používá vektorizovaný přístup (orientovaný na pole) pro čtení a zápis formátů prostorových vektorových souborů. Interně používá numpy-orientovaný přístup v Cythonu ke čtení informací o zdrojích dat a záznamech z vrstev prostorových dat. Tento přístup umožňuje rychlejší I/O operace, ale může být méně flexibilní než Fiona kvůli své bezstavové povaze, kde jsou všechna data čtena nebo zapisována v jediném průchodu[1].

2. Podpora formátů souborů

- Fiona: Fiona podporuje širokou škálu formátů souborů, včetně ESRI Shapefile, GeoPackage, GeoJSON a mnoha dalších. Jedná se o univerzální I/O knihovnu prostorového formátu používanou v mnoha projektech v ekosystému Python[1].
- Pyogrio: Pyogrio se specificky zaměřuje na GeoPandas jako pokus o snížení počtu transformací dat potřebných ke čtení/zápisu dat mezi GeoPandas GeoDataFrames a formáty prostorových souborů pomocí Fiona. Podporuje formáty GeoJSON, GeoPackage a Shapefile, ale primárně se zaměřuje na I/O operace orientované na GeoPandas[1][5].

3. Výkon

- Fiona: Fiona je známá svou flexibilitou a robustností, ale nemusí být optimalizována pro výkon. Je navržen tak, aby zvládal složité transformace dat a podporuje inkrementální zápisy nebo připojování.
- Pyogrio: Pyogrio je navrženo pro rychlejší I/O operace využívající vektorizovaný přístup. To může vést k výraznému zlepšení výkonu ve srovnání s Fionou, zejména u velkých souborů dat[1].

4. Instalace a kompatibilita

- Fiona: Fiona je široce dostupná a podporuje širší škálu platforem, včetně Windows. Ve výchozím nastavení je součástí GeoPandas a lze ji použít jako engine pro čtení a zápis souborů.
- Pyogrio: Pyogrio je k dispozici na Conda-forge pro Linux a MacOS, ale zatím ne na PyPi kvůli složitosti binárních závislostí balení pro Windows. Vyžaduje kompatibilní verze GDAL a numpy od Conda-forge pro nezpracovanou I/O podporu a geopandy, pygeos a jejich závislosti pro GeoDataFrame I/O podporu[1].

5. Výchozí engine v GeoPandas

- Fiona: Fiona je v současnosti výchozí engine používaný GeoPandas pro čtení a zápis souborů. GeoPandas 1.0 však přejde na používání Pyogrio jako výchozího motoru kvůli jeho potenciálu pro výrazné zrychlení[4].

Stručně řečeno, Fiona nabízí větší flexibilitu a kontrolu nad zpracováním dat, zatímco Pyogrio je optimalizováno pro rychlejší I/O operace. Fiona podporuje širší škálu formátů souborů a je dostupnější, ale Pyogrio je navrženo speciálně pro I/O operace orientované na GeoPandas a může poskytnout vylepšení výkonu.

Citace:
[1] https://pypi.org/project/pyogrio/0.2.0/
[2] https://github.com/geopandas/geopandas/issues/2908
[3] https://discourse.pangeo.io/t/geopandas-bbox-and-mask-params-return-empty-dataframe-fiona-pyogrio-for-file-geodatabase/3011
[4] https://geopandas.org/en/stable/docs/reference/api/geopandas.read_file.html
[5] https://github.com/geopandas/pyogrio