1
0
python-geopandas/python-geopandas.changes

472 lines
22 KiB
Plaintext
Raw Normal View History

-------------------------------------------------------------------
Sat Aug 31 12:45:03 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Update to 1.0.1
* Support a named datetime or object dtype index in explore()
(#3360, #3364).
* Fix a regression preventing a Series as an argument for
geometric methods (#3363)
## Notes 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).
## New methods:
* Added count_geometries method from shapely to
GeoSeries/GeoDataframe (#3154).
* Added count_interior_rings method from shapely to
GeoSeries/GeoDataframe (#3154)
* Added relate_pattern method from shapely to
GeoSeries/GeoDataframe (#3211).
* Added intersection_all method from shapely to
GeoSeries/GeoDataframe (#3228).
* Added line_merge method from shapely to GeoSeries/GeoDataframe
(#3214).
* Added set_precision and get_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 shared_paths method from shapely to
GeoSeries/GeoDataframe (#3215).
* Added is_ccw method from shapely to GeoSeries/GeoDataframe
(#3027).
* Added is_closed attribute from shapely to
GeoSeries/GeoDataframe (#3092).
* Added force_2d and force_3d methods from shapely to
GeoSeries/GeoDataframe (#3090).
* Added voronoi_polygons method from shapely to
GeoSeries/GeoDataframe (#3177).
* Added contains_properly method from shapely to
GeoSeries/GeoDataframe (#3105).
* Added build_area method exposing build_area shapely to
GeoSeries/GeoDataframe (#3202).
* Added snap method from shapely to GeoSeries/GeoDataframe
(#3086).
* Added transform method from shapely to GeoSeries/GeoDataFrame
(#3075).
* Added get_geometry method from shapely to
GeoSeries/GeoDataframe (#3287).
* 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).
* Added polygonize method exposing both polygonize and
polygonize_full from shapely to GeoSeries/GeoDataframe (#2963).
* Added is_valid_reason method from shapely to
GeoSeries/GeoDataframe (#3176).
* Added to_arrow method and from_arrow class method to
GeoSeries/GeoDataFrame to export and import to/from Arrow data
with GeoArrow extension types (#3219, #3301).
## New features and improvements:
* Added predicate="dwithin" option and distance argument to the
sindex.query() method and sjoin (#2882).
* GeoSeries and GeoDataFrame __repr__ now trims trailing zeros
for a more readable output (#3087).
* Add on_invalid parameter to from_wkt and from_wkb (#3110).
make_valid option in overlay now uses the make_valid method
instead of buffer(0) (#3113).
* Passing "geometry" as dtype to pd.read_csv will now return a
GeoSeries for the specified columns (#3101).
* Added support to read_file for the mask keyword for the pyogrio
engine (#3062).
* Added support to read_file for the columns keyword for the
fiona engine (#3133).
* Added support to to_parquet and read_parquet for writing and
reading files using the GeoArrow-based native geometry encoding
of GeoParquet 1.1 (#3253, #3275).
* Add sort keyword to clip method for GeoSeries and GeoDataFrame
to allow optional preservation of the original order of
observations (#3233).
* Added show_bbox, drop_id and to_wgs84 arguments to allow
further customization of GeoSeries.to_json (#3226). explore now
supports GeoDataFrames with additional columns containing
datetimes, uuids and other non JSON serializable objects
(#3261).
* The GeoSeries.fillna method now supports the limit keyword
(#3290).
* Added on_attribute option argument to the sjoin() method,
allowing to restrict joins to the observations with matching
attributes. (#3231)
* Added support for bbox covering encoding in geoparquet. Can
filter reading of parquet files based on a bounding box, and
write out a bounding box column to parquet files (#3282). align
keyword in binary methods now defaults to None, treated as
True. Explicit True will silence the warning about mismatched
indices (#3212).
* GeoSeries.set_crs can now be used to remove CRS information by
passing crs=None, allow_override=True (#3316).
* Added autolim keyword argument to GeoSeries.plot() and
GeoDataFrame.plot() (#2817).
* Added metadata parameter to GeoDataFrame.to_file (#2850)
* Updated documentation to clarify that passing a named
(Geo)Series as the geometry argument to the GeoDataFrame
constructor will not use the name but will always produce a
GeoDataFrame with an active geometry column named "geometry"
(#3337). read_postgis will query the spatial_ref_sys table to
determine the CRS authority instead of its current behaviour of
assuming EPSG. In the event the spiatal_ref_sys table is not
present, or the SRID is not present, read_postgis will fallback
on assuming EPSG CRS authority. (#3329)
## Backwards incompatible API changes:
* 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).
* GeoPandas now raises a ValueError when an unaligned Series is
passed as a method argument to avoid confusion of whether the
automatic alignment happens or not (#3271). 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)Series ser with a name. The new active geometry column
name in this case will be ser.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 call
gdf.set_geometry(ser.rename(gdf.active_geometry_name)) (#3237).
* Note that this behaviour change does not affect the
GeoDataframe constructor, passing a named GeoSeries ser to
GeoDataFrame(df, geometry=ser) will always produce a
GeoDataFrame with a geometry column named "geometry" to
preserve backwards compatibility. If you would like to instead
propagate the name of ser when constructing a GeoDataFrame, you
can instead call df.set_geometry(ser) or GeoDataFrame(df,
geometry=ser).rename_geometry(ser.name) (#3337).
* delaunay_triangles now considers all geometries together when
creating the Delaunay triangulation instead of performing the
operation element-wise. If you want to generate Delaunay
triangles for each geometry separately, use
shapely.delaunay_triangles instead. (#3273)
* 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.
## Enforced deprecations:
* 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), (#3190)
- geopandas.io.read_file, geopandas.io.to_file and
geopandas.io.sql.read_postgis.
- geopandas.read_file, geopandas.read_postgis and the
GeoDataFrame/GeoSeries to_file(..) method should be used
instead.
- Removed deprecated GeometryArray.data property,
np.asarray(..) or the to_numpy() method should be used
instead.
- Removed deprecated sindex.query_bulk method, using
sindex.query instead.
- Removed deprecated sjoin parameter op, predicate should be
supplied instead.
- Removed deprecated GeoSeries/ GeoDataFrame methods __xor__,
__or__, __and__ and __sub__. Instead use methods
symmetric_difference, union, intersection and difference
respectively.
- Removed deprecated plotting functions
plot_polygon_collection, plot_linestring_collection and
plot_point_collection, use the GeoSeries/GeoDataFrame .plot
method directly instead.
- Removed deprecated GeoSeries/GeoDataFrame .plot parameters
axes and colormap, instead use ax and cmap respectively.
- Removed compatibility for specifying the version keyword in
to_parquet and to_feather. This keyword will now be passed
through to pyarrow and use schema_version to specify the
GeoParquet specification version (#3334).
## New deprecations:
* unary_union attribute is now deprecated and replaced by the
union_all() method (#3007) allowing opting for a faster union
algorithm for coverages (#3151).
* The include_fields and ignore_fields keywords in read_file()
are deprecated for the default pyogrio engine. Currently those
are translated to the columns keyword for backwards
compatibility, but you should directly use the columns keyword
instead to select which columns to read (#3133).
* The drop keyword in set_geometry has been deprecated, and in
future the drop=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 as drop=False). To replicate the previous
drop=True behaviour you should replace
gdf.set_geometry(new_geo_col, drop=True)
with
geo_col_name = gdf.active_geometry_name
gdf.set_geometry(new_geo_col).drop(columns=geo_col_name)
.rename_geometry(geo_col_name)
* The geopandas.use_pygeos option has been deprecated and will be
removed in GeoPandas 1.1 (#3283)
* Manual overriding of an existing CRS of a GeoSeries or
GeoDataFrame by setting the crs property has been deprecated
and will be disabled in future. Use the set_crs() method
instead (#3085).
## Bug fixes:
* Fix GeoDataFrame.merge() incorrectly returning a DataFrame
instead of a GeoDataFrame when the suffixes argument is applied
to the active geometry column (#2933).
* Fix bug in GeoDataFrame constructor where if geometry is given
a named GeoSeries the name was not used as the active geometry
column name (#3237).
* Fix bug in GeoSeries constructor when passing a Series and
specifying a crs to not change the original input data (#2492).
* Fix regression preventing reading from file paths containing
hashes in read_file with the fiona engine (#3280). An analgous
fix for pyogrio is included in pyogrio 0.8.1.
* Fix to_parquet to write correct metadata in case of 3D
geometries (#2824).
* Fixes for compatibility with psycopg (#3167).
* Fix to allow appending dataframes with no CRS to PostGIS tables
with no CRS (#3328)
* Fix plotting of all-empty GeoSeries using explore (#3316).
-------------------------------------------------------------------
Sun May 5 10:59:24 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Update to 0.14.4
* Several fixes for compatibility with the upcoming pandas 3.0,
numpy 2.0 and fiona 1.10 releases.
-------------------------------------------------------------------
Thu Mar 21 20:06:36 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Don't test folium on python39: no longer available
-------------------------------------------------------------------
Tue Mar 5 21:10:50 UTC 2024 - Ben Greiner <code@bnavigator.de>
- Update to 0.14.3
* Several fixes for compatibility with the latest pandas 2.2
release.
* Fix bug in pandas.concat CRS consistency checking where CRS
differing by WKT whitespace only were treated as incompatible
(#3023).
- Version 0.14.2 (Jan 4, 2024)
* Fix regression in overlay where using buffer(0) instead of
make_valid internally produced invalid results (#3074).
* Fix explore() method when the active geometry contains missing
and empty geometries (#3094).
-------------------------------------------------------------------
Fri Nov 24 16:40:15 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Update to 0.14.1
* The Parquet and Feather IO functions now support the latest
1.0.0 version of the GeoParquet specification (geoparquet.org)
(#2663).
* Fix read_parquet and read_feather for CVE-2023-47248 (#3070).
- Remove deprecated pygeos from testing: It is included in Shapely
now
-------------------------------------------------------------------
Wed Oct 25 13:41:11 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Skip a test still failing with pandas 2.1.1
* See gh#geopandas/geopandas#2948, gh#geopandas/geopandas#2994,
gh#geopandas/geopandas#3038
-------------------------------------------------------------------
Sat Sep 23 08:43:04 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Update to 0.14.0
* GeoPandas will use Shapely 2.0 by default instead of PyGEOS
when both Shapely >= 2.0 and PyGEOS are installed. PyGEOS will
continue to be used by default when PyGEOS is installed
alongside Shapely < 2.0. Support for PyGEOS and Shapely < 2.0
will be removed in GeoPandas 1.0. (#2999)
## API changes:
* seed keyword in sample_points is deprecated. Use rng instead.
(#2913).
## New methods:
* Added concave_hull method from shapely to
GeoSeries/GeoDataframe (#2903).
* Added delaunay_triangles method from shapely to
GeoSeries/GeoDataframe (#2907).
* Added extract_unique_points method from shapely to
GeoSeries/GeoDataframe (#2915).
* Added frechet_distance() method from shapely to
GeoSeries/GeoDataframe (#2929).
* Added hausdorff_distance method from shapely to
GeoSeries/GeoDataframe (#2909).
* Added minimum_rotated_rectangle method from shapely to
GeoSeries/GeoDataframe (#2541).
* Added offset_curve method from shapely to
GeoSeries/GeoDataframe (#2902).
* Added remove_repeated_points method from shapely to
GeoSeries/GeoDataframe (#2940).
* Added reverse method from shapely to GeoSeries/GeoDataframe
(#2988).
* Added segmentize method from shapely to GeoSeries/GeoDataFrame
(#2910).
* Added shortest_line method from shapely to
GeoSeries/GeoDataframe (#2960).
## New features and improvements:
* Added exclusive parameter to sjoin_nearest method for Shapely
>= 2.0 (#2877)
* The to_file() method will now automatically detect the
FlatGeoBuf driver
* for files with the .fgb extension (#2958)
## Bug fixes:
* Fix ambiguous error when GeoDataFrame is initialized with a
column called "crs" (#2944)
* Fix a color assignment in explore when using UserDefined bins
(#2923)
* Fix bug in apply with axis=1 where the given user defined
function returns nested
* data in the geometry column (#2959)
* Properly infer schema for np.int32 and pd.Int32Dtype columns
(#2950)
* assert_geodataframe_equal now handles GeoDataFrames with no
active geometry (#2498)
## Notes on (optional) dependencies:
* GeoPandas 0.14 drops support for Python 3.8 and pandas 1.3 and
below (the minimum
* supported pandas version is now 1.4). Further, the minimum
required versions for the
* listed dependencies have now changed to shapely 1.8.0, fiona
1.8.21, pyproj 3.3.0 and
* matplotlib 3.5.0 (#3001)
## Deprecations and compatibility notes:
* geom_almost_equals() methods have been deprecated and
* geom_equals_exact() should be used instead (#2604).
-------------------------------------------------------------------
Thu Jun 22 17:42:59 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Update to 0.13.2
* Fix a regression in reading from local file URIs (file://..)
using geopandas.read_file (#2948).
* Fix a regression in reading from URLs using geopandas.read_file
(#2908). This restores the behaviour to download all data
up-front before passing it to the underlying engine (fiona or
pyogrio), except if the server supports partial requests (to
support reading a subset of a large file).
- Relese 0.13
## New methods:
* Added sample_points method to sample random points from Polygon
or LineString geometries (#2860).
* New hilbert_distance() method that calculates the distance
along a Hilbert curve for each geometry in a
GeoSeries/GeoDataFrame (#2297).
* Support for sorting geometries (for example, using
sort_values()) based on the distance along the Hilbert curve
(#2070).
* Added get_coordinates() method from shapely to
GeoSeries/GeoDataframe (#2624).
* Added minimum_bounding_circle() method from shapely to
GeoSeries/GeoDataframe (#2621).
* Added minimum_bounding_radius() as GeoSeries method (#2827).
## Other new features and improvements:
* The Parquet and Feather IO functions now support the latest
1.0.0-beta.1 version of the GeoParquet specification
(<geoparquet.org>) (#2663).
* Added support to fill missing values in GeoSeries.fillna via
another GeoSeries (#2535).
* Support specifying min_zoom and max_zoom inside the map_kwds
argument for .explore() (#2599).
* Added support for append (mode="a" or append=True) in to_file()
using engine="pyogrio" (#2788).
* Added a to_wgs84 keyword to to_json allowing automatic
re-projecting to follow the 2016 GeoJSON specification (#416).
* to_json output now includes a "crs" field if the CRS is not the
default WGS84 (#1774).
* Improve error messages when accessing the geometry attribute of
GeoDataFrame without an active geometry column related to the
default name "geometry" being provided in the constructor
(#2577)
## Deprecations and compatibility notes:
* Added warning that unary_union will return 'GEOMETRYCOLLECTION
EMPTY' instead of None for all-None GeoSeries. (#2618)
* The query_bulk() method of the spatial index .sindex property
is deprecated in favor of query() (#2823).
## Bug fixes:
* Ensure that GeoDataFrame created from DataFrame is a copy, not
a view (#2667)
* Fix mismatch between geometries and colors in plot() if an
empty or missing geometry is present (#2224)
* Escape special characters to avoid TemplateSyntaxError in
explore() (#2657)
* Fix to_parquet/to_feather to not write an invalid bbox (with
NaNs) in the metadata in case of an empty GeoDataFrame (#2653)
* Fix to_parquet/to_feather to use correct WKB flavor for 3D
geometries (#2654)
* Fix read_file to avoid reading all file bytes prior to calling
Fiona or Pyogrio if provided a URL as input (#2796)
* Fix copy() downcasting GeoDataFrames without an active geometry
column to a DataFrame (#2775)
* Fix geometry column name propagation when GeoDataFrame columns
are a multiindex (#2088)
* Fix iterfeatures() method of GeoDataFrame to correctly handle
non-scalar values when na='drop' is specified (#2811)
* Fix issue with passing custom legend labels to plot (#2886)
## Notes on (optional) dependencies:
* GeoPandas 0.13 drops support pandas 1.0.5 (the minimum
supported pandas version is now 1.1). Further, the minimum
required versions for the listed dependencies have now changed
to shapely 1.7.1, fiona 1.8.19, pyproj 3.0.1 and matplotlib
3.3.4 (#2655)
- Release 0.12.2
* Correctly handle geometries with Z dimension in to_crs() when
using PyGEOS or Shapely >= 2.0 (previously the z coordinates
were lost) (#1345).
* Assign Crimea to Ukraine in the naturalearth_lowres built-in
dataset (#2670)
- Release 0.12
* The highlight of this release is the support for Shapely 2.0.
This makes it possible to test Shapely 2.0 (currently 2.0b1)
alongside GeoPandas.
* Note that if you also have PyGEOS installed, you need to set an
environment variable (USE_PYGEOS=0) before importing geopandas
to actually test Shapely 2.0 features instead of PyGEOS. See
https://geopandas.org/en/latest/getting_started/install.html#using-the-optional-pygeos-dependency
for more details.
## New features and improvements:
* Added normalize() method from shapely to GeoSeries/GeoDataframe
(#2537).
* Added make_valid() method from shapely to
GeoSeries/GeoDataframe (#2539).
* Added where filter to read_file (#2552).
* Updated the distributed natural earth datasets
(naturalearth_lowres and naturalearth_cities) to version 5.1
(#2555).
## Deprecations and compatibility notes:
* Accessing the crs of a GeoDataFrame without active geometry
column was deprecated and this now raises an AttributeError
(#2578).
* Resolved colormap-related warning in .explore() for recent
Matplotlib versions (#2596).
## Bug fixes:
* Fix cryptic error message in geopandas.clip() when clipping
with an empty geometry (#2589).
* Accessing gdf.geometry where the active geometry column is
missing, and a column named "geometry" is present will now
raise an AttributeError, rather than returning gdf["geometry"]
(#2575).
* Combining GeoSeries/GeoDataFrames with pandas.concat will no
longer silently override CRS information if not all inputs have
the same CRS (#2056).
-------------------------------------------------------------------
Sat Feb 25 22:30:51 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Split package into multibuild to avoid a build cycle
(bsc#1207791).
-------------------------------------------------------------------
Fri Sep 16 01:58:53 UTC 2022 - John Vandenberg <jayvdb@gmail.com>
- Update to v0.11.1
-------------------------------------------------------------------
Fri Aug 21 12:39:37 UTC 2020 - John Vandenberg <jayvdb@gmail.com>
- Update to v0.8.1
-------------------------------------------------------------------
Tue Dec 10 16:28:25 UTC 2019 - Todd R <toddrme2178@gmail.com>
- initial version for v0.6.2