v1.0.0-alpha1
Pre-releaseNotes on dependencies:
- GeoPandas 1.0 drops support for shapely<2 and PyGEOS. The only geometry engine that is
currently supported is shapely >= 2. As a consequence, spatial indexing based on the
rtree package has also been removed. (#3035) - The I/O engine now defaults to Pyogrio which is now installed with GeoPandas instead
of Fiona. (#3223)
API changes:
unary_union
is now deprecated and replaced by theunion_all
method (#3007).align
keyword in binary methods now defaults toNone
, treated as True. Explicit True
will silence the warning about mismachted indices. (#3212)- The
sjoin
method will now preserve the name of the index of the right
GeoDataFrame, if it has one, instead of always using"index_right"
as the
name for the resulting column in the return value (#846, #2144).
New methods:
- Added
line_merge
method from shapely to GeoSeries/GeoDataframe (#3214). - Added
set_precision
andget_precision
methods from shapely to GeoSeries/GeoDataframe (#3175). - Added
count_coordinates
method from shapely to GeoSeries/GeoDataframe (#3026). - Added
minimum_clearance
method from shapely to GeoSeries/GeoDataframe (#2989). - Added
is_ccw
method from shapely to GeoSeries/GeoDataframe (#3027). - Added
is_closed
attribute from shapely to GeoSeries/GeoDataframe (#3092). - Added
force_2d
andforce_3d
methods from shapely to GeoSeries/GeoDataframe (#3090). - Added
contains_properly
method from shapely to GeoSeries/GeoDataframe (#3105). - Added
snap
method from shapely to GeoSeries/GeoDataframe (#3086). - Added
transform
method from shapely to GeoSeries/GeoDataFrame (#3075). - Added
dwithin
method to check for a "distance within" predicate on
GeoSeries/GeoDataFrame (#3153). - Added
to_geo_dict
method to generate GeoJSON-like dictionary from a GeoDataFrame (#3132).
New features and improvements:
- Added
predicate="dwithin"
option anddistance
argument to thesindex.query()
method
andsjoin
(#2882). - GeoSeries and GeoDataFrame
__repr__
now trims trailing zeros for a more readable
output (#3087). - Add
on_invalid
parameter tofrom_wkt
andfrom_wkb
(#3110). make_valid
option inoverlay
now uses themake_valid
method instead of
buffer(0)
(#3113).- Passing
"geometry"
asdtype
topd.read_csv
will now return a GeoSeries for
the specified columns (#3101). - Added support to
read_file
for themask
keyword for the pyogrio engine (#3062). - Added support to
read_file
for thecolumns
keyword for the fiona engine (#3133). - Added
show_bbox
,drop_id
andto_wgs84
arguments to allow further customization of
GeoSeries.to_json
(#3226)
Backwards incompatible API changes:
- The deprecated default value of GeoDataFrame/ GeoSeries
explode(.., index_parts=True)
is now
set to false for consistency with pandas (#3174). - The behaviour of
set_geometry
has been changed when passed a (Geo)Seriesser
with a name.
The new active geometry column name in this case will beser.name
, if not None, rather than
the previous active geometry column name. This means that if the new and old names are
different, then both columns will be preserved in the GeoDataFrame. To replicate the previous
behaviour, you can instead callgdf.set_geometry(ser.rename(gdf.active_geometry_name))
(#3237).
Potentially breaking changes:
- reading a data source that does not have a geometry field using
read_file
now returns a Pandas DataFrame instead of a GeoDataFrame with an empty
geometry
column.
Bug fixes:
- Fix
GeoDataFrame.merge()
incorrectly returning aDataFrame
instead of a
GeoDataFrame
when thesuffixes
argument is applied to the active
geometry column (#2933). - Fix bug in
GeoDataFrame
constructor where ifgeometry
is given a named
GeoSeries
the name was not used as the active geometry column name (#3237).
Deprecations and compatibility notes:
-
The deprecation of
geopandas.datasets
has been enforced and the module has been
removed. New sample datasets are now available in the
geodatasets package (#3084). -
Many longstanding deprecated functions, methods and properties have been removed (#3174), (#3189)
- Removed deprecated functions
geopandas.io.read_file
,geopandas.io.to_file
andgeopandas.io.sql.read_postgis
.
geopandas.read_file
,geopandas.read_postgis
and the GeoDataFrame/GeoSeriesto_file(..)
method should be used instead. - Removed deprecated
GeometryArray.data
property,np.asarray(..)
or theto_numpy()
method should be used instead. - Removed deprecated
sindex.query_bulk
method, usingsindex.query
instead. - Removed deprecated
sjoin
parameterop
,predicate
should be supplied instead. - Removed deprecated GeoSeries/ GeoDataFrame methods
__xor__
,__or__
,__and__
and
__sub__
. Instead use methodssymmetric_difference
,union
,intersection
and
difference
respectively. - Removed deprecated plotting functions
plot_polygon_collection
,
plot_linestring_collection
andplot_point_collection
, use the GeoSeries/GeoDataFrame.plot
method directly instead. - Removed deprecated GeoSeries/GeoDataFrame
.plot
parametersaxes
andcolormap
, instead use
ax
andcmap
respectively.
- Removed deprecated functions
-
Fixes for compatibility with psycopg (#3167).
-
The
include_fields
andignore_fields
keywords inread_file()
are deprecated
for the default pyogrio engine. Currently those are translated to thecolumns
keyword
for backwards compatibility, but you should directly use thecolumns
keyword instead
to select which columns to read (#3133). -
The
drop
keyword inset_geometry
has been deprecated, and in future thedrop=True
behaviour will be removed (#3237). To prepare for this change, you should remove any explicit
drop=False
calls in your code (the default behaviour already is the same asdrop=False
).
To replicate the previousdrop=True
behaviour you should replace
gdf.set_geometry(new_geo_col, drop=True)
withgeo_col_name = gdf.active_geometry_name gdf.set_geometry(new_geo_col).drop(columns=geo_col_name).rename_geometry(geo_col_name)