Fiona 2.0 planning


Joshua Arnott
 

Re: improving the performance of geometries, I've actually been working on a WKB-instead-of-GeoJSON interface this week.

https://github.com/Toblerity/Fiona/pull/741

Internally the exportToGEOS function is doing the same thing: converting to WKB then parsing in GEOS.

https://github.com/OSGeo/gdal/blob/0c80e420aa00e9bdd0acbb05ab4148841a75d9ca/gdal/ogr/ogrgeometry.cpp#L2932

I think that exposing the WKB is actually more useful as it doesn't create a hard dependency to Shapely/GEOS.


René Buffat
 

Maybe regarding https://github.com/Toblerity/Fiona/issues/685 something we should think about is to have an additional iterator having GEOS objects instead of Geojson for the geometries of features. This would eliminate a conversion to geojson and then back to a geos for libraries such as geopandas. However, after a quick look, it looks like OGRGeometry::exportToGEOS (https://www.gdal.org/classOGRGeometry.html#a2ea594db36b7281f73242273e22d62c2) is not available in the gdal c api.

Another issue, but completely unrelated to Fiona 2.0 is, that I think we are currently lacking consistent documentation / beginners guides among the different existing spatial python libraries.  I think this makes it harder for people starting and not having the greatest programming/python skills. Especially, as I have the impression that programming/computer science skills have not enough weight in classical GIS education.


Sean Gillies
 

Hi Howard,

On Mon, Mar 25, 2019 at 9:21 PM Howard Butler <howard@...> wrote:


> On Mar 25, 2019, at 6:11 PM, Sean Gillies <sean.gillies@...> wrote:
>
> Hi all,
>
> Without a lot of preamble, I'll get right to it: I think that a change to Fiona to make WKT the canonical representation of a coordinate reference system, as made in Rasterio 1.0.15, will have a bigger negative impact on Fiona-using projects like Geopandas than we have seen in the Rasterio "ecosystem". Instead of overhauling Fiona's CRS class in 1.9, I'd like to propose doing it in a 2.0 along with dropping support for Python 2 and dropping support for GDAL versions < 2.0 – and also getting right on this and releasing a 2.0.0 by the end of July.
>
> I'd love to get some early feedback on this idea. Yes? No? Do you see anything else that might be easily done in a new backwards-incompatible version? I'm eager to read what you have to share and grateful that you've signed up for the discussion.


:thumbsup: to all of this. We are ditching GDAL < 2.2 for our latest PDAL 1.9 release (this catches what's in Ubuntu 18.04).

Dropping support for GDAL 2.0 and 2.1 is attractive... this would let us delete two shim modules, ~10 lines of code in setup.py, and 2 columns of our build matrix.

--
Sean Gillies


Joris Van den Bossche
 

Sounds good to me as well!
I personally think the impact on GeoPandas will be quite OK (I need to review your PR ..), since we will have a way to fow now keep the dict representation, or at some point to move to the pyproj CRS class. But anyway, doing this change for fiona itself in a major version, sounds like a good idea (as well as dropping python 2).

Another topic I am interested in is the performance (column-based retrieval and/or more efficient representation of records, https://github.com/Toblerity/Fiona/issues/469 and https://github.com/Toblerity/Fiona/issues/685). I might have some time to look at that in April / May. But those should certainly not need any breaking changes.

Joris

Op di 26 mrt. 2019 om 23:15 schreef Joshua Arnott <snorfalorpagus@...>:

Sounds good to me. I can't see any other obvious breaking changes in the backlog.


Joshua Arnott
 

Sounds good to me. I can't see any other obvious breaking changes in the backlog.


Howard Butler
 

On Mar 25, 2019, at 6:11 PM, Sean Gillies <sean.gillies@gmail.com> wrote:

Hi all,

Without a lot of preamble, I'll get right to it: I think that a change to Fiona to make WKT the canonical representation of a coordinate reference system, as made in Rasterio 1.0.15, will have a bigger negative impact on Fiona-using projects like Geopandas than we have seen in the Rasterio "ecosystem". Instead of overhauling Fiona's CRS class in 1.9, I'd like to propose doing it in a 2.0 along with dropping support for Python 2 and dropping support for GDAL versions < 2.0 – and also getting right on this and releasing a 2.0.0 by the end of July.

I'd love to get some early feedback on this idea. Yes? No? Do you see anything else that might be easily done in a new backwards-incompatible version? I'm eager to read what you have to share and grateful that you've signed up for the discussion.

:thumbsup: to all of this. We are ditching GDAL < 2.2 for our latest PDAL 1.9 release (this catches what's in Ubuntu 18.04).


Alan Snow
 

Sounds like a great plan to me!


Sean Gillies
 

Hi all,

Without a lot of preamble, I'll get right to it: I think that a change to Fiona to make WKT the canonical representation of a coordinate reference system, as made in Rasterio 1.0.15, will have a bigger negative impact on Fiona-using projects like Geopandas than we have seen in the Rasterio "ecosystem". Instead of overhauling Fiona's CRS class in 1.9, I'd like to propose doing it in a 2.0 along with dropping support for Python 2 and dropping support for GDAL versions < 2.0 – and also getting right on this and releasing a 2.0.0 by the end of July.

I'd love to get some early feedback on this idea. Yes? No? Do you see anything else that might be easily done in a new backwards-incompatible version? I'm eager to read what you have to share and grateful that you've signed up for the discussion.

--
Sean Gillies