Congratulations to Joris and all of the contributors.
This seems like a monumental release and huge testament to the cross-project collaboration in the python/GIS world. Very excited to give this a go! -paul
On Wed, Jun 24, 2020 at 8:19 AM Joris Van den Bossche < firstname.lastname@example.org> wrote:
We are pleased to announce a new release of GeoPandas!
Highlights: more IO (PostGIS, Parquet, Feather), optional speed-up using PyGEOS, better support for multiple geometry columns, and lots of other fixes and improvements. See below for more detailed notes. Thanks to all contributors for making this possible!
GeoPandas can be installed with conda from the conda-forge channel (conda install -c conda-forge geopandas) or with pip assuming the dependencies are available for your platform or are already installed (pip install geopandas).
Please report any issues, or request new features via our GitHub repository: https://github.com/geopandas/geopandas/issues
Documentation can be found here: http://geopandas .readthedocs.io/en/stable/
*Experimental*: optional use of PyGEOS to speed up spatial operations ( #1155 https://github.com/geopandas/geopandas/issues/1155). PyGEOS is a faster alternative for Shapely (being contributed back to a future version of Shapely), and is used in element-wise spatial operations and for spatial index in e.g. sjoin (#1343 https://github.com/geopandas/geopandas/pull/1343, #1401 https://github.com/geopandas/geopandas/pull/1401, #1421 https://github.com/geopandas/geopandas/pull/1421, #1427 https://github.com/geopandas/geopandas/pull/1427, #1428 https://github.com/geopandas/geopandas/pull/1428). See the installation docs https://geopandas.readthedocs.io/en/latest/install.html#using-the-optional-pygeos-dependency for more info and how to enable it.
*New features and improvements:*
- IO enhancements:
- New GeoDataFrame.to_postgis() method to write to PostGIS database
https://github.com/geopandas/geopandas/pull/1180, #1435 https://github.com/geopandas/geopandas/pull/1435)
- New Apache Parquet and Feather file format support (#1180
- Allow appending to files with GeoDataFrame.to_file (#1229
read the attribute data. If set to True, a pandas DataFrame without geometry is returned (#1383 https://github.com/geopandas/geopandas/pull/1383).
- Add support for the ignore_geometry keyword in read_file to only
- geopandas.read_file now supports reading from file-like objects (
the file (#802 https://github.com/geopandas/geopandas/pull/802). By default it still uses the CRS of the GeoDataFrame.
- GeoDataFrame.to_file now supports specifying the CRS to write to
in chunks (#1123 https://github.com/geopandas/geopandas/pull/1123 ).
- New chunksize keyword in geopandas.read_postgis to read a query
- Improvements related to geometry columns and CRS:
returned as a GeoSeries. This means that when having multiple geometry columns, not only the "active" geometry column is returned as a GeoSeries, but also accessing another geometry column (gdf["other_geom_column"]) gives a GeoSeries (#1336 https://github.com/geopandas/geopandas/pull/1336).
- Any column of the GeoDataFrame that has a "geometry" dtype is now
different CRS. The global gdf.crs attribute continues to returns the CRS of the "active" geometry column. The CRS of other geometry columns can be accessed from the column itself (eg gdf["other_geom_column"].crs) (#1339 https://github.com/geopandas/geopandas/pull/1339).
- Multiple geometry columns in a GeoDataFrame can now each have a
naive geometries (#747 https://github.com/geopandas/geopandas/pull/747).
- New set_crs() method on GeoDataFrame/GeoSeries to set the CRS of
- Improvements related to plotting:
using a geographic CRS, instead of using an equal aspect ratio ( #1290 https://github.com/geopandas/geopandas/pull/1290).
- The y-axis is now scaled depending on the center of the plot when
of the GeoDataFrame plot(), we now honor all categories and its order (#1483 https://github.com/geopandas/geopandas/pull/1483). In addition, a new categories keyword allows to specify all categories and their order otherwise (#1173 https://github.com/geopandas/geopandas/pull/1173).
- When passing a column of categorical dtype to the column= keyword
the legend_kwds accept two new keywords to control the formatting of the legend: fmt with a format string for the bin edges (#1253 https://github.com/geopandas/geopandas/pull/1253), and labels to pass fully custom class labels (#1302 https://github.com/geopandas/geopandas/pull/1302).
- For choropleths using a classification scheme (using scheme=),
- New covers() and covered_by() methods on GeoSeries/GeoDataframe for
- GeoPandas now warns when using distance-based methods with data in a
geographic projection (#1378 https://github.com/geopandas/geopandas/pull/1378).
- When constructing a GeoSeries or GeoDataFrame from data that already
has a CRS, a deprecation warning is raised when both CRS don't match, and in the future an error will be raised in such a case. You can use the new set_crs method to override an existing CRS. See the docs https://geopandas.readthedocs.io/en/latest/projections.html#projection-for-multiple-geometry-columns .
- The helper functions in the geopandas.plotting module are deprecated
for public usage (#656 https://github.com/geopandas/geopandas/pull/656).
- The geopandas.io functions are deprecated, use the top-level
read_file and to_file instead (#1407 https://github.com/geopandas/geopandas/pull/1407).
- The set operators (&, |, ^, -) are deprecated, use the intersection(),
union(), symmetric_difference(), difference() methods instead (#1255 https://github.com/geopandas/geopandas/pull/1255).
- The sindex for empty dataframe will in the future return an empty
spatial index instead of None (#1438 https://github.com/geopandas/geopandas/pull/1438).
- The objects keyword in the intersection method of the spatial index
returned by the sindex attribute is deprecated and will be removed in the future (#1440 https://github.com/geopandas/geopandas/pull/1440).
- Fix the total_bounds() method to ignore missing and empty geometries
- Fix geopandas.clip when masking with non-overlapping area resulting
- Fix error in geopandas.sjoin when joining on an empty geometry
column (#1318 https://github.com/geopandas/geopandas/pull/1318).
- CRS related fixes: pandas.concat preserves CRS when concatenating
GeoSeries objects (#1340 https://github.com/geopandas/geopandas/issues/1340), preserve the CRS in geopandas.clip (#1362 https://github.com/geopandas/geopandas/issues/1362) and in GeoDataFrame.astype (#1366 https://github.com/geopandas/geopandas/issues/1366).
- Fix bug in GeoDataFrame.explode() when 'level_1' is one of the
column names (#1445 https://github.com/geopandas/geopandas/pull/1445 ).
- Better error message when rtree is not installed (#1425
- Fix bug in GeoSeries.equals() (#1451
- Fix plotting of multi-part geometries with additional style keywords
And we now have a Code of Conduct https://github.com/geopandas/geopandas/blob/master/CODE_OF_CONDUCT.md!
GeoPandas 0.8.0 is the last release to support Python 3.5. The next release will require Python 3.6, pandas 0.24, numpy 1.15 and shapely 1.6 or higher.
Thanks to everyone who contributed to this release! A total of 28 people contributed patches to this release. People with a "+" by their names contributed a patch for the first time.
- Adrian Garcia Badaracco +
- Alan D. Snow
- Bhavika Tekwani +
- Bo-Deng +
- Brendan Ward
- Christopher Yeh +
- Geir Arne Hjelle
- Henrikki Tenkanen +
- Ian Rose
- James McBride
- Joris Van den Bossche
- Julia Signell +
- Kyle Barron +
- Martin Fleischmann
- Martin Jul +
- Mateusz Konieczny +
- Mike Taves
- Oliver Schillinger +
- Rowan Molony +
- Sergio Rey
- SylvainLan +
- TimothyLucas +
- abonte +
- harryposner +
- pietro +
- raphacosta27 +
- rwijtvliet +
*-- The GeoPandas developers*
-- You received this message because you are subscribed to the Google Groups "PyData" group. To unsubscribe from this group and stop receiving emails from it, send an email to email@example.com. To view this discussion on the web visit https://groups.google.com/d/msgid/pydata/CALQtMBYGjZ3Mg83S%2Bc%3DU_9ysNT%2BG... https://groups.google.com/d/msgid/pydata/CALQtMBYGjZ3Mg83S%2Bc%3DU_9ysNT%2BGGZ_MztygtNJBzkm%2B9iencw%40mail.gmail.com?utm_medium=email&utm_source=footer .