pypi geopandas 0.11.0
v0.11.0

latest releases: 1.0.1, 1.0.0, 1.0.0rc1...
2 years ago

Highlights of this release:

  • The geopandas.read_file() and GeoDataFrame.to_file() methods to read and write GIS file formats can now optionally use the pyogrio package under the hood through the engine="pyogrio" keyword. The pyogrio package implements vectorized IO for GDAL/OGR vector data sources, and is faster compared to the fiona-based engine (#2225).
  • GeoParquet support updated to implement v0.4.0 of the OpenGeospatial/GeoParquet specification (#2441). Backwards compatibility with v0.1.0 of the metadata spec (implemented in the previous releases of GeoPandas) is guaranteed, and reading and writing Parquet and Feather files will no longer produce a UserWarning (#2327).

New features and improvements:

  • Improved handling of GeoDataFrame when the active geometry column is lost from the GeoDataFrame. Previously, square bracket indexing gdf[[...]] returned a GeoDataFrame when the active geometry column was retained and a DataFrame was returned otherwise. Other pandas indexing methods (loc, iloc, etc) did not follow the same rules. The new behaviour for all indexing/reshaping operations is now as follows (#2329, #2060):

    • If operations produce a DataFrame containing the active geometry column, a GeoDataFrame is returned
    • If operations produce a DataFrame containing GeometryDtype columns, but not the active geometry column, a GeoDataFrame is returned, where the active geometry column is set to None (set the new geometry column with set_geometry())
    • If operations produce a DataFrame containing no GeometryDtype columns, a DataFrame is returned (this can be upcast again by calling set_geometry() or the GeoDataFrame constructor)
    • If operations produce a Series of GeometryDtype, a GeoSeries is returned, otherwise Series is returned.
    • Error messages for having an invalid geometry column have been improved, indicating the name of the last valid active geometry column set and whether other geometry columns can be promoted to the active geometry column (#2329).
  • Datetime fields are now read and written correctly for GIS formats which support them (e.g. GPKG, GeoJSON) with fiona 1.8.14 or higher. Previously, datetimes were read as strings (#2202).

  • folium.Map keyword arguments can now be specified as the map_kwds argument to GeoDataFrame.explore() method (#2315).

  • Add a new parameter style_function to GeoDataFrame.explore() to enable plot styling based on GeoJSON properties (#2377).

  • It is now possible to write an empty GeoDataFrame to a file for supported formats (#2240). Attempting to do so will now emit a UserWarning instead of a ValueError.

  • Fast rectangle clipping has been exposed as GeoSeries/GeoDataFrame.clip_by_rect() (#1928).

  • The mask parameter of GeoSeries/GeoDataFrame.clip() now accepts a rectangular mask as a list-like to perform fast rectangle clipping using the new GeoSeries/GeoDataFrame.clip_by_rect() (#2414).

  • Bundled demo dataset naturalearth_lowres has been updated to version 5.0.1 of the source, with field ISO_A3 manually corrected for some cases (#2418).

Deprecations and compatibility notes:

  • The active development branch of geopandas on GitHub has been renamed from master to main (#2277).
  • Deprecated methods GeometryArray.equals_exact() and GeometryArray.almost_equals() have been removed. They should
    be replaced with GeometryArray.geom_equals_exact() and GeometryArray.geom_almost_equals() respectively (#2267).
  • Deprecated CRS functions explicit_crs_from_epsg(), epsg_from_crs() and get_epsg_file_contents() were removed (#2340).
  • Warning about the behaviour change to GeoSeries.isna() with empty geometries present has been removed (#2349).
  • Specifying a CRS in the GeoDataFrame/GeoSeries constructor which contradicted the underlying GeometryArray now raises a ValueError (#2100).
  • Specifying a CRS in the GeoDataFrame constructor when no geometry column is provided and calling GeoDataFrame. set_crs on a GeoDataFrame without an active geometry column now raise a ValueError (#2100)
  • Passing non-geometry data to theGeoSeries constructor is now fully deprecated and will raise a TypeError (#2314). Previously, a pandas.Series was returned for non-geometry data.
  • Deprecated GeoSeries/GeoDataFrame set operations __xor__(), __or__(), __and__() and __sub__(), geopandas.io.file.read_file/to_file and geopandas.io.sql.read_postgis now emit FutureWarning instead of DeprecationWarning and will be completely removed in a future release.
  • Accessing the crs of a GeoDataFrame without active geometry column is deprecated and will be removed in GeoPandas 0.12 (#2373).

Bug fixes:

  • GeoSeries.to_frame now creates a GeoDataFrame with the geometry column name set correctly (#2296)
  • Fix pickle files created with pygeos installed can not being readable when pygeos is not installed (#2237).
  • Fixed UnboundLocalError in GeoDataFrame.plot() using legend=True and missing_kwds (#2281).
  • Fix explode() incorrectly relating index to columns, including where the input index is not unique (#2292)
  • Fix GeoSeries.[xyz] raising an IndexError when the underlying GeoSeries contains empty points (#2335). Rows corresponding to empty points now contain np.nan.
  • Fix GeoDataFrame.iloc raising a TypeError when indexing a GeoDataFrame with only a single column of GeometryDtype (#1970).
  • Fix GeoDataFrame.iterfeatures() not returning features with the same field order as GeoDataFrame.columns (#2396).
  • Fix GeoDataFrame.from_features() to support reading GeoJSON with null properties (#2243).
  • Fix GeoDataFrame.to_parquet() not intercepting engine keyword argument, breaking consistency with pandas (#2227)
  • Fix GeoDataFrame.explore() producing an error when column is of boolean dtype (#2403).
  • Fix an issue where GeoDataFrame.to_postgis() output the wrong SRID for ESRI authority CRS (#2414).
  • Fix GeoDataFrame.from_dict/from_features classmethods using GeoDataFrame rather than cls as the constructor.
  • Fix GeoDataFrame.plot() producing incorrect colors with mixed geometry types when colors keyword is provided. (#2420)

Notes on (optional) dependencies:

  • GeoPandas 0.11 drops support for Python 3.7 and pandas 0.25 (the minimum supported pandas version is now 1.0.5). Further, the minimum required versions for the listed dependencies have now changed to shapely 1.7, fiona 1.8.13.post1, pyproj 2.6.1.post1, matplotlib 3.2, mapclassify 2.4.0 (#2358, #2391)

Acknowledgments

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

  • Akylzhan Sauranbay +
  • Alan D. Snow
  • Alyssa Ross +
  • Andreas Meier +
  • Andrii Oriekhov +
  • Brendan Ward
  • Ewout ter Hoeven +
  • Guillaume Lostis +
  • James McBride
  • Joris Van den Bossche
  • Karol Zlot +
  • Koshy Thomas +
  • Martin Fleischmann
  • Martina Oefelein +
  • Matt Richards
  • Mike Taves
  • Mjumbe Poe +
  • Nathan Lis +
  • Nicolò Lucchesi +
  • RadMagnus +
  • Ray Bell
  • Ryan +
  • Will Schlitzer
  • bstadlbauer +
  • clausmichele +
  • froast +
  • joooeey +
  • readthedocs-assistant +
  • rraymondgh +
  • ryanward-io +
  • simberaj

Don't miss a new geopandas release

NewReleases is sending notifications on new releases.