--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
Experimental: optional use of PyGEOS to speed up spatial operations (#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, #1401, #1421, #1427, #1428). See the installation docs for more info and how to enable it.
New features and improvements:
- IO enhancements:
GeoDataFrame.to_postgis()method to write to PostGIS database (#1248).
- New Apache Parquet and Feather file format support (#1180, #1435)
- Allow appending to files with
- Add support for the
read_fileto only read the attribute data. If set to True, a pandas DataFrame without geometry is returned (#1383).
geopandas.read_filenow supports reading from file-like objects (#1329).
GeoDataFrame.to_filenow supports specifying the CRS to write to the file (#802). By default it still uses the CRS of the GeoDataFrame.
geopandas.read_postgisto read a query in chunks (#1123).
- Improvements related to geometry columns and CRS:
- Any column of the GeoDataFrame that has a "geometry" dtype is now 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).
- Multiple geometry columns in a GeoDataFrame can now each have a different CRS. The global
gdf.crsattribute continues to returns the CRS of the "active" geometry column. The CRS of other geometry columns can be accessed from the column itself (eg
set_crs()method on GeoDataFrame/GeoSeries to set the CRS of naive geometries (#747).
- Improvements related to plotting:
- The y-axis is now scaled depending on the center of the plot when using a geographic CRS, instead of using an equal aspect ratio (#1290).
- When passing a column of categorical dtype to the
column=keyword of the GeoDataFrame
plot(), we now honor all categories and its order (#1483). In addition, a new
categorieskeyword allows to specify all categories and their order otherwise (#1173).
- For choropleths using a classification scheme (using
legend_kwdsaccept two new keywords to control the formatting of the legend:
fmtwith a format string for the bin edges (#1253), and
labelsto pass fully custom class labels (#1302).
covered_by()methods on GeoSeries/GeoDataframe for the equivalent spatial predicates (#1460, #1462).
- GeoPandas now warns when using distance-based methods with data in a geographic projection (#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_crsmethod to override an existing CRS. See the docs.
- The helper functions in the
geopandas.plottingmodule are deprecated for public usage (#656).
geopandas.iofunctions are deprecated, use the top-level
- The set operators (
-) are deprecated, use the
difference()methods instead (#1255).
sindexfor empty dataframe will in the future return an empty spatial index instead of
objectskeyword in the
intersectionmethod of the spatial index returned by the
sindexattribute is deprecated and will be removed in the future (#1440).
- Fix the
total_bounds()method to ignore missing and empty geometries (#1312).
geopandas.clipwhen masking with non-overlapping area resulting in an empty GeoDataFrame (#1309, #1365).
- Fix error in
geopandas.sjoinwhen joining on an empty geometry column (#1318).
- CRS related fixes:
pandas.concatpreserves CRS when concatenating GeoSeries objects (#1340), preserve the CRS in
geopandas.clip(#1362) and in
- Fix bug in
GeoDataFrame.explode()when 'level_1' is one of the column names (#1445).
- Better error message when rtree is not installed (#1425).
- Fix bug in
- Fix plotting of multi-part geometries with additional style keywords (#1385).
And we now have a Code of Conduct!
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 +
- sangarshanan-- 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 firstname.lastname@example.org.
To view this discussion on the web visit https://groups.google.com/d/msgid/pydata/CALQtMBYGjZ3Mg83S%2Bc%3DU_9ysNT%2BGGZ_MztygtNJBzkm%2B9iencw%40mail.gmail.com.