We are pleased to announce a new release of GeoPandas!

The main highlight of GeoPandas 0.7.0 is related to Coordinate Reference System (CRS) handling. The .crs attribute of a GeoSeries and GeoDataFrame no longer stores the CRS information as a proj4 string or dict, but as a pyproj.CRS object. This gives a better user interface and integrates improvements from pyproj and PROJ 6, but might also require some changes in your code. Check the migration guide in the documentation.

Further, this release includes a nice set of other improvements and bug fixes. See the full list below.

---

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

What is it?

GeoPandas is an open source project to make working with geospatial data in python easier. GeoPandas combines the capabilities of pandas and shapely, providing geospatial operations in pandas and a high-level interface to multiple shapely geometries. GeoPandas enables you to easily do operations in python that would otherwise require a spatial database such as PostGIS.

Documentation can be found here: http://geopandas.readthedocs.io/en/stable/

What's new?

Support for Python 2.7 has been dropped. GeoPandas now works with Python >= 3.5.

The important API change of this release is that GeoPandas now requires PROJ > 6 and pyproj > 2.2, and that the .crs attribute of a GeoSeries and GeoDataFrame no longer stores the CRS information as a proj4 string or dict, but as a pyproj.CRS object (#1101).

This gives a better user interface and integrates improvements from pyproj and PROJ 6, but might also require some changes in your code. Check the migration guide in the documentation.

Other API changes:

  • The GeoDataFrame.to_file method will now also write the GeoDataFrame index to the file, if the index is named and/or non-integer. You can use the index=True/False keyword to overwrite this default inference (#1059).

New features and improvements:

  • A new geopandas.clip function to clip a GeoDataFrame to the spatial extent of another shape (#1128).
  • The geopandas.overlay function now works for all geometry types, including points and linestrings in addition to polygons (#1110).
  • The plot() method gained support for missing values (in the column that determines the colors). By default it doesn't plot the corresponding geometries, but using the new missing_kwds argument you can specify how to style those geometries (#1156).
  • The plot() method now also supports plotting GeometryCollection and LinearRing objects (#1225).
  • Added support for filtering with a geometry or reading a subset of the rows in geopandas.read_file (#1160).
  • Added support for the new nullable integer data type of pandas in GeoDataFrame.to_file (#1220).

Bug fixes:

  • GeoSeries.reset_index() now correctly results in a GeoDataFrame instead of DataFrame (#1252).
  • Fixed the geopandas.sjoin function to handle MultiIndex correctly (#1159).
  • Fixed the geopandas.sjoin function to preserve the index name of the left GeoDataFrame (#1150).

Acknowledgments

Thanks to everyone who contributed to this release!
A total of 12 people contributed patches to this release. People with a "+" by their names contributed a patch for the first time.

  • Alan D. Snow
  • Aleksey Bilogur
  • Ardie Orden +
  • Brendan Ward +
  • Brett Naul
  • James McBride
  • Joris Van den Bossche
  • Leah Wasser
  • Martin Fleischmann
  • Mike Taves
  • jess +
  • sangarshanan +

-- The GeoPandas developers