Fiona ja Pyogrio ovat molemmat kirjastoja, joita käytetään spatiaalisen vektoritietomuotojen lukemiseen ja kirjoittamiseen. Vaikka heillä on joitain yhtäläisyyksiä, niiden lähestymistapoissa ja kyvyissä on keskeisiä eroja:
1. Lähestymistapa
- Fiona: Fiona on täysin varusteltu Python-kirjasto OGR-vektoritietolähteiden kanssa työskentelemiseen. Se käyttää tilallista lähestymistapaa, jossa dataa luetaan tai kirjoitetaan sarjassa, mikä mahdollistaa enemmän joustavuutta ja tietojenkäsittelyn hallinnan. Tämä tekee siitä sopivan monenlaisiin tehtäviin, mukaan lukien monimutkaisiin datamuunnoksiin ja inkrementaalisiin kirjoituksiin tai lisäyksiin[1].- Pyogrio: Pyogrio on kokeellinen lähestymistapa, joka käyttää vektorisoitua (matriisoitua) lähestymistapaa spatiaalisten vektoritiedostomuotojen lukemiseen ja kirjoittamiseen. Se käyttää sisäisesti numpyorientoitunutta lähestymistapaa Cythonissa lukeakseen tietoja tietolähteistä ja tietueista paikkatietokerroksista. Tämä lähestymistapa mahdollistaa nopeammat I/O-toiminnot, mutta voi olla vähemmän joustava kuin Fiona sen tilattoman luonteen vuoksi, jossa kaikki tiedot luetaan tai kirjoitetaan yhdellä kertaa[1].
2. Tiedostomuototuki
- Fiona: Fiona tukee laajaa valikoimaa tiedostomuotoja, mukaan lukien ESRI Shapefile, GeoPackage, GeoJSON ja monet muut. Se on yleiskäyttöinen tilamuotoisen I/O-kirjasto, jota käytetään monissa Python-ekosysteemin projekteissa[1].- Pyogrio: Pyogrio pyrkii erityisesti GeoPandasiin pyrkimään vähentämään datamuunnosten määrää, joita tarvitaan tietojen lukemiseen/kirjoittamiseen GeoPandas GeoDataFrame -kehysten ja tilatiedostomuotojen välillä Fionan avulla. Se tukee GeoJSON-, GeoPackage- ja Shapefile-muotoja, mutta sen pääpaino on GeoPandas-suuntautuneissa I/O-toiminnoissa[1][5].
3. Suorituskyky
- Fiona: Fiona tunnetaan joustavuudestaan ja kestävyydestään, mutta sitä ei ehkä ole optimoitu suorituskykyyn. Se on suunniteltu käsittelemään monimutkaisia datamuunnoksia ja tukee inkrementaalista kirjoitusta tai liittämistä.- Pyogrio: Pyogrio on suunniteltu nopeampaan I/O-toimintoihin hyödyntäen vektorisoitua lähestymistapaa. Tämä voi johtaa merkittäviin suorituskyvyn parannuksiin verrattuna Fionaan, erityisesti suurille tietojoukoille[1].
4. Asennus ja yhteensopivuus
- Fiona: Fiona on laajalti saatavilla ja tukee laajempaa valikoimaa alustoja, mukaan lukien Windows. Se sisältyy oletusarvoisesti GeoPandasiin, ja sitä voidaan käyttää tiedostojen lukemisen ja kirjoittamisen moottorina.- Pyogrio: Pyogrio on saatavilla Conda-forgelle Linuxille ja MacOS:lle, mutta ei vielä PyPi:lle, koska binääririippuvuuksien pakkaus Windowsille on monimutkainen. Se vaatii yhteensopivia GDAL- ja numpy-versioita Conda-forgesta raaka-I/O-tukea varten sekä geopandat, pygeot ja niiden riippuvuudet GeoDataFrame I/O -tukeen[1].
5. GeoPandasin oletusmoottori
- Fiona: Fiona on tällä hetkellä oletusmoottori, jota GeoPandas käyttää tiedostojen lukemiseen ja kirjoittamiseen. GeoPandas 1.0 kuitenkin siirtyy käyttämään Pyogrioa oletusmoottorina, koska se voi nostaa merkittävästi[4].Yhteenvetona voidaan todeta, että Fiona tarjoaa enemmän joustavuutta ja tiedonkäsittelyn hallintaa, kun taas Pyogrio on optimoitu nopeampaan I/O-toimintoihin. Fiona tukee laajempaa valikoimaa tiedostomuotoja ja on laajemmin saatavilla, mutta Pyogrio on suunniteltu erityisesti GeoPandas-suuntautuneisiin I/O-toimintoihin ja voi tarjota suorituskyvyn parannuksia.
Lainaukset:[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