更新日志#
版本 1.1.0#
新功能和改进:
增加了选项以返回
SpatialIndex.query的结果,可以是密集或稀疏布尔数组。这为稀疏输出增加了对scipy的可选依赖。请注意,这也改变了output_format关键字的以前未记录的行为 (#1674)。向
union_all和dissolve添加grid_size参数 (#3445)。GeoDataFrame.plot现在支持pd.Index作为column关键字的输入 (#3463)。在绘制缺失值时避免改变图形的纵横比 (#3438)。
错误修复:
修复了一个问题,该问题在
to_geo_dict和__geo_interface__中显示numpy数据类型。 (#3436)修复了
sample_points中的一个问题,该问题可能偶尔导致不均匀分布 (#3470)。修复在读取多层数据集时发出的未指定层警告,即使在使用mask或bbox关键字时已指定层(#3378)。
在
GroupBy.agg中正确支持对几何列的命名聚合 (#3368)。支持 GeoDataFrame 构造函数接收作为
geometry的参数, 这些参数不是 (Geo)Series,而应被解释为列名,如枚举 (#3384)。修复了在提供了
crs时,从具有 GeometryDtype 值的 pd.Series 构造 GeoSeries 失败的问题 (#3383)。修复了回归问题,在输入包含无效几何图形时,
overlay与keep_geom_type返回错误结果 (#3395)。修复零长度GeoDataFrames导致在
overlay中出现错误的GeometryArray支持数据类型不正确 (#3424)。修复从具有 GeometryDtype 值的 pd.Series 构建 GeoSeries 时的回归问题,当提供了
crs时失败 (#3383)。
关于依赖项的说明:
GeoPandas 1.1 现在需要 Python 3.10 或更高版本,pandas 2.0,numpy 1.24,pyproj 3.5,现已成为这些依赖项的最低要求版本。 此外,可选依赖项的最低测试版本已更新为 fiona 1.8.21,scipy 1.9,matplotlib 3.7,mapclassify 2.5,folium 0.12 和 SQLAlchemy 2.0。 这些库的旧版本可能继续工作,但不再被认为是支持的 (#3371)。
弃用和兼容性说明:
包装 pandas
Series.select方法的GeoSeries.select方法已被移除。 上游方法在所有支持的 pandas 版本中不再存在 (#3394)。
新功能和改进:
添加了
geopandas.accessors模块。导入该模块以注册一个pandas.Series.geo访问器,通过pandas的扩展机制暴露GeoSeries方法 (#3272)。
版本 1.0.1(2024年7月2日)#
错误修复:
在
explore()中支持命名的日期时间或对象 dtype 索引 (#3360, #3364)。修复了一个回归问题,阻止将Series作为几何方法的参数 (#3363)
版本 1.0.0(2024年6月24日)#
关于依赖项的说明:
GeoPandas 1.0 放弃了对 shapely<2 和 PyGEOS 的支持。目前唯一支持的几何引擎是 shapely >= 2。因此,基于 rtree 包的空间索引也被移除了 (#3035)。
现在I/O引擎默认使用Pyogrio,现已与GeoPandas一起安装,而不是Fiona (#3223)。
新方法:
从shapely添加了
count_geometries方法到GeoSeries/GeoDataframe (#3154)。从shapely添加了
count_interior_rings方法到GeoSeries/GeoDataframe (#3154)从shapely添加了
relate_pattern方法到GeoSeries/GeoDataframe (#3211).从shapely添加了
intersection_all方法到GeoSeries/GeoDataframe (#3228)。从 shapely 添加了
line_merge方法到 GeoSeries/GeoDataframe (#3214)。从 shapely 添加了
set_precision和get_precision方法到 GeoSeries/GeoDataframe (#3175)。从shapely添加了
count_coordinates方法到GeoSeries/GeoDataframe (#3026)。从shapely添加了
minimum_clearance方法到GeoSeries/GeoDataframe (#2989)。从shapely添加了
shared_paths方法到GeoSeries/GeoDataframe (#3215)。从shapely添加了
is_ccw方法到GeoSeries/GeoDataframe (#3027)。从shapely添加了
is_closed属性到GeoSeries/GeoDataframe (#3092)。从shapely添加了
force_2d和force_3d方法到GeoSeries/GeoDataframe (#3090)。从shapely向GeoSeries/GeoDataframe添加了
voronoi_polygons方法 (#3177)。从shapely添加了
contains_properly方法到GeoSeries/GeoDataframe (#3105)。添加了
build_area方法,将build_areashapely 显示给 GeoSeries/GeoDataframe (#3202)。将
snap方法从 shapely 添加到 GeoSeries/GeoDataframe (#3086)。将
transform方法从 shapely 添加到 GeoSeries/GeoDataFrame (#3075)。从 shapely 添加了
get_geometry方法到 GeoSeries/GeoDataframe (#3287)。添加了
dwithin方法以检查 GeoSeries/GeoDataFrame 上的“距离范围”谓词 (#3153)。添加了
to_geo_dict方法,用于从 GeoDataFrame 生成类似于 GeoJSON 的字典 (#3132)。添加了
polygonize方法,暴露了来自 shapely 的polygonize和polygonize_full到 GeoSeries/GeoDataframe (#2963)。将
is_valid_reason方法从 shapely 添加到 GeoSeries/GeoDataframe (#3176)。添加了
to_arrow方法和from_arrow类方法到 GeoSeries/GeoDataFrame 以导出和导入 Arrow 数据与 GeoArrow 扩展类型(#3219, #3301)。
新功能和改进:
添加了
predicate="dwithin"选项和distance参数到sindex.query()方法和sjoin(#2882)。GeoSeries 和 GeoDataFrame
__repr__现在会修剪尾随零以获得更可读的输出 (#3087)。将
on_invalid参数添加到from_wkt和from_wkb(#3110)。make_valid选项在overlay现在使用make_valid方法而不是buffer(0)(#3113)。将
"geometry"作为dtype传递给pd.read_csv现在将返回指定列的 GeoSeries (#3101).为pyogrio引擎的
read_file添加对mask关键字的支持(#3062)。为fiona引擎的
read_file添加了对columns关键字的支持 (#3133)。为使用GeoParquet 1.1的基于GeoArrow的原生几何编码读取和写入文件添加了对
to_parquet和read_parquet的支持 (#3253, #3275).为GeoSeries和GeoDataFrame的
clip方法添加sort关键字,以允许可选地保持观测值的原始顺序 (#3233)。添加了
show_bbox、drop_id和to_wgs84参数,以允许进一步自定义GeoSeries.to_json(#3226)。explore现在支持包含日期时间、UUID和其他非 JSON 可序列化对象的GeoDataFrame附加列 (#3261)。现在,
GeoSeries.fillna方法支持limit关键字 (#3290)。向
sjoin()方法添加了on_attribute选项参数,允许将连接限制为具有匹配属性的观察值。 (#3231)添加了对
bbox覆盖编码在 geoparquet 中的支持。可以根据边界框过滤读取 parquet 文件,并将边界框列写入 parquet 文件 (#3282)。align关键字在二进制方法中现在默认为None,视为 True。显式的 True 将消除关于索引不匹配的警告 (#3212)。GeoSeries.set_crs现在可以通过传递crs=None, allow_override=True来移除CRS信息 (#3316)。为
GeoSeries.plot()和GeoDataFrame.plot()添加了autolim关键字参数 (#2817).为
GeoDataFrame.to_file添加了metadata参数(#2850)更新文档以澄清将命名的(Geo)Series作为
geometry参数传递给GeoDataFrame构造函数时,将不会使用名称,而是始终生成一个名为“geometry”的活动几何列的GeoDataFrame(#3337)。read_postgis将查询 spatial_ref_sys 表以确定 CRS 权威 而不是目前假设 EPSG 的行为。如果 spatial_ref_sys 表不存在,或者 SRID 不存在,read_postgis将回退到假设 EPSG CRS 权威。 (#3329)
向后不兼容的API更改:
现在,
sjoin方法将保留右侧 GeoDataFrame 的索引名称(如果有的话),而不是始终使用"index_right"作为返回值中结果列的名称(#846, #2144)。当将未对齐的 Series 作为方法参数传递时,GeoPandas 现在会引发 ValueError,以避免对是否发生自动对齐的混淆 (#3271)。
GeoDataFrame/ GeoSeries
explode(.., index_parts=True)的弃用默认值现在被设置为false,以与pandas保持一致 (#3174)。当传入一个命名的 (Geo)Series
ser时,set_geometry的行为已经改变。 在这种情况下,新的活动几何列名称将是ser.name,如果不为 None,而不是 以前的活动几何列名称。这意味着如果新旧名称不同,则两个列都会保留在 GeoDataFrame 中。要复制以前的 行为,可以调用gdf.set_geometry(ser.rename(gdf.active_geometry_name))(#3237)。 请注意,这一行为变更不影响GeoDataframe构造函数,传入一个命名的 GeoSeriesser给GeoDataFrame(df, geometry=ser)将始终产生一个名称为“geometry”的几何列的 GeoDataFrame,以保持向后兼容性。如果您希望在构建 GeoDataFrame 时 传播ser的名称,可以调用df.set_geometry(ser)或GeoDataFrame(df, geometry=ser).rename_geometry(ser.name)(#3337)。delaunay_triangles现在在创建 Delaunay 三角剖分时会将所有几何体一起考虑,而不是逐个元素执行操作。如果您想为每个几何体单独生成 Delaunay 三角形,请改用shapely.delaunay_triangles。使用
read_file读取没有几何字段的数据源现在返回一个 Pandas DataFrame,而不是一个带有空geometry列的 GeoDataFrame。
强制弃用:
已强制弃用
geopandas.datasets,该模块已被移除。现在在 geodatasets 包中可以找到新的示例数据集 (#3084)。许多长期被弃用的函数、方法和属性已被删除 (#3174), (#3190)
移除了已弃用的函数
geopandas.io.read_file、geopandas.io.to_file和geopandas.io.sql.read_postgis。 请改用geopandas.read_file、geopandas.read_postgis和 GeoDataFrame/GeoSeriesto_file(..)方法。移除了弃用的
GeometryArray.data属性,应该使用np.asarray(..)或to_numpy()方法。删除了弃用的
sindex.query_bulk方法,改为使用sindex.query。移除了弃用的
sjoin参数op,应提供predicate作为替代。移除了过时的 GeoSeries/ GeoDataFrame 方法
__xor__,__or__,__and__和__sub__。请分别使用方法symmetric_difference,union,intersection和difference。移除了已弃用的绘图函数
plot_polygon_collection,plot_linestring_collection和plot_point_collection,直接使用 GeoSeries/GeoDataFrame.plot方法。删除了过时的 GeoSeries/GeoDataFrame
.plot参数axes和colormap,现在分别使用ax和cmap。移除了在
to_parquet和to_feather中指定version关键字的兼容性。这个关键字现在将传递给 pyarrow,并使用schema_version来指定 GeoParquet 规范版本 (#3334)。
新的弃用:
unary_union属性现在已被弃用,并被union_all()方法替代 (#3007),允许选择更快的覆盖合并算法 (#3151)。在
read_file()中,include_fields和ignore_fields关键字已被弃用 对于默认的 pyogrio 引擎。目前这些被转换为columns关键字 以保持向后兼容,但您应该直接使用columns关键字 来选择要读取的列 (#3133)。set_geometry中的drop关键字已被弃用,未来将移除drop=True的行为(#3237)。为了为此更改做好准备,您应该移除代码中任何显式的drop=False调用(默认行为已与drop=False相同)。要复制之前的drop=True行为,您应该将gdf.set_geometry(new_geo_col, drop=True)替换为geo_col_name = gdf.active_geometry_name gdf.set_geometry(new_geo_col).drop(columns=geo_col_name).rename_geometry(geo_col_name)
选项
geopandas.use_pygeos已被弃用,并将在 GeoPandas 1.1 中被移除 (#3283)通过设置
crs属性手动覆盖现有的 CRS 的 GeoSeries 或 GeoDataFrame 已被弃用,并将在将来被禁用。请改用set_crs()方法 (#3085)。
错误修复:
修复
GeoDataFrame.merge()错误地返回一个DataFrame而不是GeoDataFrame当suffixes参数被应用于活动 几何列 (#2933).修复了在
GeoDataFrame构造函数中的一个错误,如果给geometry传递了一个命名的GeoSeries,则该名称未被用作活动几何列名称(#3237)。修复在传递 Series 并指定
crs以不更改原始输入数据时的GeoSeries构造函数中的错误 (#2492)。修复回归,防止从包含哈希的文件路径中读取数据,使用
read_file和fiona引擎(#3280)。对于pyogrio的类似修复已包含在pyogrio 0.8.1中。修复
to_parquet以在3D几何情况下写入正确的元数据 (#2824)。修复与 psycopg 的兼容性 (#3167)。
修复允许将没有CRS的数据框附加到没有CRS的PostGIS表中 (#3328)
修复使用
explore绘制全部空的 GeoSeries (#3316)。
版本 0.14.4 (2024年4月26日)#
针对即将发布的 pandas 3.0、numpy 2.0 和 fiona 1.10 进行了几个兼容性修复。
版本 0.14.3 (2024年1月31日)#
针对最新的pandas 2.2版本进行了若干兼容性修复。
修复了
pandas.concatCRS 一致性检查的一个错误,其中仅由 WKT 空格造成的 CRS 被视为不兼容 (#3023)。
版本 0.14.2(2024年1月4日)#
修复了
overlay中的回归问题,其中使用buffer(0)而不是make_valid在内部导致了无效结果(#3074)。修复
explore()方法,当活跃几何体包含缺失和空的几何体时 (#3094)。
版本 0.14.1 (2023年11月11日)#
Parquet和Feather IO函数现在支持最新的1.0.0版本的GeoParquet规范 (geoparquet.org) (#2663)。
修复
read_parquet和read_feather以应对 CVE-2023-47248 (#3070).
版本 0.14 (2023年9月15日)#
GeoPandas 默认将使用 Shapely 2.0 而不是 PyGEOS,当 Shapely >= 2.0 和 PyGEOS 都安装时。 当 PyGEOS 与 Shapely < 2.0 共同安装时,默认将继续使用 PyGEOS。 对于 PyGEOS 和 Shapely < 2.0 的支持将在 GeoPandas 1.0 中移除。 (#2999)
API更改:
seed关键字在sample_points中已被弃用。请改用rng。 (#2913).
新方法:
从 shapely 添加了
concave_hull方法到 GeoSeries/GeoDataframe (#2903)。从shapely添加了
delaunay_triangles方法到GeoSeries/GeoDataframe (#2907)。从shapely添加了
extract_unique_points方法到GeoSeries/GeoDataframe (#2915)。从shapely添加了
frechet_distance()方法到GeoSeries/GeoDataframe (#2929)。从shapely添加了
hausdorff_distance方法到GeoSeries/GeoDataframe (#2909).从shapely添加了
minimum_rotated_rectangle方法到GeoSeries/GeoDataframe (#2541)。从shapely向GeoSeries/GeoDataframe添加了
offset_curve方法 (#2902)。从shapely添加了
remove_repeated_points方法到GeoSeries/GeoDataframe (#2940)。添加了来自shapely的
reverse方法到GeoSeries/GeoDataframe (#2988)。从shapely添加了
segmentize方法到GeoSeries/GeoDataFrame (#2910)。将
shortest_line方法从shapely添加到GeoSeries/GeoDataframe (#2960)。
新功能和改进:
为Shapely >= 2.0的
sjoin_nearest方法添加了exclusive参数 (#2877)添加了
GeoDataFrame.active_geometry_name属性,返回活动几何列的名称,如果未设置活动几何列则返回 None。现在,
to_file()方法会自动检测具有.fgb扩展名的文件的 FlatGeoBuf 驱动 (#2958)
错误修复:
修复当 GeoDataFrame 初始化时列名为
"crs"的模糊错误 (#2944)修复在使用
UserDefined分箱时explore的颜色分配 (#2923)修复在
apply中的错误,使用axis=1时,给定的用户定义函数在几何列中返回嵌套数据 (#2959)正确推断
np.int32和pd.Int32Dtype列的模式 (#2950)assert_geodataframe_equal现在可以处理没有活动几何的GeoDataFrames (#2498)
关于(可选)依赖项的说明:
GeoPandas 0.14 不再支持 Python 3.8 和 pandas 1.3 及更早版本(现在支持的最小 pandas 版本为 1.4)。此外,列出的依赖项的最低所需版本现在更改为 shapely 1.8.0、fiona 1.8.21、pyproj 3.3.0 和 matplotlib 3.5.0 (#3001)
弃用和兼容性说明:
geom_almost_equals()方法已经被弃用,应使用geom_equals_exact()代替 (#2604)。
版本 0.13.2 (2023年6月6日)#
错误修复:
修复了从本地文件URI (
file://..) 读取时的回归问题,使用geopandas.read_file(#2948)。
版本 0.13.1 (2023年6月5日)#
错误修复:
修复了使用
geopandas.read_file从 URL 读取的回归错误 (#2908)。这将恢复在将所有数据传递给底层引擎(fiona 或 pyogrio)之前,先下载所有数据的行为,除非服务器支持部分请求(以支持读取大文件的子集)。
版本 0.13 (2023年5月6日)#
新方法:
添加了
sample_points方法来从多边形或线串几何图形中抽样随机点 (#2860)。新增
hilbert_distance()方法,该方法计算 GeoSeries/GeoDataFrame 中每个几何体沿 Hilbert 曲线的距离 (#2297).支持根据希尔伯特曲线的距离(例如,使用
sort_values())对几何体进行排序 (#2070)。从shapely添加了
get_coordinates()方法到GeoSeries/GeoDataframe (#2624)。从shapely添加了
minimum_bounding_circle()方法到GeoSeries/GeoDataframe (#2621)。作为 GeoSeries 方法添加了
minimum_bounding_radius()(#2827).
其他新功能和改进:
Parquet 和 Feather IO 函数现在支持最新的 1.0.0-beta.1 版本的 GeoParquet 规范 (
) (#2663)。 新增通过另一个
GeoSeries填充GeoSeries.fillna中缺失值的支持 (#2535).支持在
map_kwds参数中指定min_zoom和max_zoom供.explore()使用 (#2599)。增加了对追加支持(
mode="a"或append=True)在to_file()中使用engine="pyogrio"(#2788)。为
to_json添加了一个to_wgs84关键字,允许自动重新投影以符合2016年GeoJSON规范(#416)。to_json输出现在包括一个"crs"字段,如果 CRS 不是默认的 WGS84 (#1774)。在没有活动几何列的情况下访问GeoDataFrame的
geometry属性时改进错误消息,这与构造函数中提供的默认名称"geometry"相关 (#2577)
弃用和兼容性说明:
添加警告,
unary_union将返回'GEOMETRYCOLLECTION EMPTY'而不是 None,针对所有为 None 的 GeoSeries。 (#2618)空间索引
.sindex属性的query_bulk()方法已被弃用,推荐使用query()(#2823)。
错误修复:
确保从DataFrame创建的GeoDataFrame是一个副本,而不是一个视图 (#2667)
修复在
plot()中几何图形与颜色不匹配的问题,如果存在空或缺失几何图形 (#2224)转义特殊字符以避免在
explore()中出现模板语法错误 (#2657)修复
to_parquet/to_feather在空的 GeoDataFrame 情况下,元数据中不写入无效的边界框(包含 NaNs) (#2653)修复
to_parquet/to_feather以正确使用 3D 几何的 WKB 风格 (#2654)修复
read_file以避免在调用 Fiona 或 Pyogrio 时读取所有文件字节,如果提供的输入是 URL (#2796)修复
copy()在没有活动几何列的情况下将 GeoDataFrames 向下转换为 DataFrame (#2775)修复当GeoDataFrame列为多重索引时几何列名称传播的问题 (#2088)
修复
iterfeatures()方法,以正确处理非标量值,当na='drop'被指定时(#2811)修复向
plot传递自定义图例标签的问题 (#2886)
关于(可选)依赖项的说明:
GeoPandas 0.13 不再支持 pandas 1.0.5(现在最低支持的 pandas 版本是 1.1)。此外,列出的依赖项的最低要求版本现在已更改为 shapely 1.7.1、fiona 1.8.19、pyproj 3.0.1 和 matplotlib 3.3.4 (#2655)
版本 0.12.2(2022年12月10日)#
错误修复:
在使用 PyGEOS 或 Shapely >= 2.0 时,正确处理带 Z 维度的几何体在
to_crs()中(之前 z 坐标会丢失) (#1345)。在
naturalearth_lowres内置数据集中将克里米亚分配给乌克兰 (#2670)
版本 0.12.1(2022年10月29日)#
小版本修复,去掉了安装要求中的shapely<2的限制。
版本 0.12 (2022年10月24日)#
本次发布的亮点是对Shapely 2.0的支持。这使得可以同时测试Shapely 2.0(当前为2.0b1)和GeoPandas。
请注意,如果您还安装了PyGEOS,您需要在导入geopandas之前设置一个环境变量
(USE_PYGEOS=0),以便实际上测试Shapely 2.0功能而不是PyGEOS。有关更多详细信息,请参见
https://geopandas.org/en/latest/getting_started/install.html#using-the-optional-pygeos-dependency
。
新功能和改进:
在 GeoSeries/GeoDataframe 中添加了
normalize()方法 (#2537)。将来自shapely的
make_valid()方法添加到GeoSeries/GeoDataframe (#2539)。向
read_file添加了where过滤器 (#2552).将分布式自然地球数据集(naturalearth_lowres 和 naturalearth_cities)更新到版本 5.1 (#2555)。
弃用和兼容性说明:
访问没有活动几何列的
GeoDataFrame的crs已被弃用,现在会引发 AttributeError (#2578)。解决了最近版本的 Matplotlib 中在
.explore()中与颜色图相关的警告 (#2596)。
错误修复:
修复在用空几何图形裁剪时
geopandas.clip()中出现的神秘错误信息 (#2589)。访问
gdf.geometry时,如果活动几何列缺失,并且存在一个名为"geometry"的列,将会引发AttributeError,而不是返回gdf["geometry"](#2575)。将 GeoSeries/GeoDataFrames 与
pandas.concat结合时,如果所有输入的 CRS 不相同,将不再默默覆盖 CRS 信息 (#2056)。
版本 0.11.1(2022年7月24日)#
小 bug 修复版本:
修复在涉及 MultiIndex 的 reshape 方法中的回归 (RecursionError),例如
unstack()和pivot(),或使用 MultiIndex 构造 GeoDataFrame (#2486)。修复了在
GeoDataFrame.explode()中使用非默认几何列名称的回归问题。修复
apply()中的回归问题,导致每行的所有nan浮点列被转换为GeometryDtype (#2482)。修复了在读取 datetime 列时崩溃的问题,当文件包含混合时区偏移时(#2479)。这些将被作为 UTC 本地化值读取。
修复在读取日期时间列时发生崩溃的问题,当文件包含超出[ns] 精度支持的日期时间时 (#2505)。
修复在将 Parquet 或 Feather 格式
version传递给to_parquet和to_feather时的回归问题。因此,to_parquet和to_feather方法的version参数已被替换为schema_version。version将直接传递给底层 feather 或 parquet 编写器。如果version是 0.1.0 或 0.4.0 之一,version仅用于设置schema_version(#2496)。
版本 0.11(2022年6月20日)#
本次发布的亮点:
geopandas.read_file()和GeoDataFrame.to_file()方法现在可以选择性地使用 pyogrio 包来读取和写入GIS文件格式,通过engine="pyogrio"关键字。pyogrio包实现了 GDAL/OGR矢量数据源的矢量化IO,相比于fiona基于的引擎,它更快 (#2225)。GeoParquet 支持已更新,以实现 v0.4.0 的 OpenGeospatial/GeoParquet 规范 (#2441)。保证与 v0.1.0 元数据规范的向后兼容性(在之前的 GeoPandas 发布中实现),读取和写入 Parquet 和 Feather 文件将不再产生
UserWarning(#2327)。
新功能和改进:
改进了当活动几何列从GeoDataFrame中丢失时对GeoDataFrame的处理。之前,当活动几何列保留时,方括号索引
gdf[[...]]返回GeoDataFrame,而在其他情况下返回DataFrame。其他pandas索引方法(loc,iloc等)并未遵循相同规则。现在,所有索引/重塑操作的新行为如下(#2329, #2060):如果操作产生一个
DataFrame,其中包含活动几何列,则返回一个 GeoDataFrame如果操作生成一个包含
GeometryDtype列的DataFrame,但没有活动几何列,将返回一个GeoDataFrame,其中活动几何列被设置为None(使用set_geometry()设置新的几何列)如果操作生成一个包含没有
GeometryDtype列的DataFrame,则返回一个DataFrame(这可以通过调用set_geometry()或GeoDataFrame构造函数再次提升)如果操作生成一个
Series的GeometryDtype,将返回一个GeoSeries,否则返回Series。对于无效几何列的错误消息已得到改善,指示最后一个有效活动几何列集的名称,以及其他几何列是否可以提升为活动几何列 (#2329)。
现在,对于支持它们的GIS格式(例如GPKG、GeoJSON),日期时间字段可以正确读取和写入,要求使用fiona 1.8.14或更高版本。之前,日期时间被作为字符串读取(#2202)。
folium.Map关键字参数现在可以作为map_kwds参数指定给GeoDataFrame.explore()方法 (#2315)。向
GeoDataFrame.explore()添加一个新参数style_function,以便根据 GeoJSON 属性启用图形样式 (#2377)。现在可以将一个空的
GeoDataFrame写入支持的格式文件中 (#2240)。尝试这样做将会发出一个UserWarning,而不是ValueError。快速矩形裁剪已被暴露为
GeoSeries/GeoDataFrame.clip_by_rect()(#1928)。GeoSeries/GeoDataFrame.clip()的mask参数现在接受一个矩形遮罩作为类似列表的形式,以使用新的GeoSeries/GeoDataFrame.clip_by_rect()进行快速矩形裁剪 (#2414)。捆绑的演示数据集
naturalearth_lowres已更新到源的 5.0.1 版本,字段ISO_A3在某些情况下手动更正(#2418)。
弃用和兼容性说明:
Geopandas在GitHub上的活跃开发分支已从master更名为main (#2277)。
已弃用的方法
GeometryArray.equals_exact()和GeometryArray.almost_equals()已被移除。它们应该分别替换为GeometryArray.geom_equals_exact()和GeometryArray.geom_almost_equals()(#2267)。不推荐使用的 CRS 函数
explicit_crs_from_epsg()、epsg_from_crs()和get_epsg_file_contents()已被移除 (#2340)。关于
GeoSeries.isna()在存在空几何时的行为变化的警告已被删除 (#2349)。在
GeoDataFrame/GeoSeries构造函数中指定一个与基础GeometryArray相矛盾的CRS现在会引发ValueError(#2100)。在没有提供几何列时,在
GeoDataFrame构造函数中指定CRS,并在没有活动几何列的GeoDataFrame上调用GeoDataFrame. set_crs,现在会引发ValueError(#2100)现在完全弃用将非几何数据传递给
GeoSeries构造函数,并将引发TypeError(#2314)。之前,对于非几何数据,返回的是pandas.Series。已弃用
GeoSeries/GeoDataFrame集合操作__xor__(),__or__(),__and__()和__sub__(),geopandas.io.file.read_file/to_file和geopandas.io.sql.read_postgis现在发出FutureWarning而不是DeprecationWarning并将会在未来的版本中完全移除。访问没有活动几何列的
GeoDataFrame的crs已被弃用,并将在 GeoPandas 0.12 中删除 (#2373)。
错误修复:
GeoSeries.to_frame现在创建一个GeoDataFrame,几何列名称已正确设置(#2296)修复当未安装pygeos时,使用已安装pygeos创建的pickle文件无法读取的问题 (#2237)。
修复了在使用
legend=True和missing_kwds时的GeoDataFrame.plot()中的UnboundLocalError(#2281)。修复
explode()不正确地将索引关联到列的问题,包括输入索引不唯一的情况 (#2292)修复
GeoSeries.[xyz]在底层 GeoSeries 包含空点时引发IndexError的问题 (#2335)。 现在对应空点的行包含np.nan。修复
GeoDataFrame.iloc在仅使用单列GeometryDtype索引GeoDataFrame时引发TypeError的问题 (#1970)。修复
GeoDataFrame.iterfeatures()不返回与GeoDataFrame.columns相同字段顺序的特征 (#2396).修复
GeoDataFrame.from_features()以支持读取具有空属性的GeoJSON (#2243)。修复
GeoDataFrame.to_parquet()未拦截engine关键字参数,导致与 pandas 不一致 (#2227)修复
GeoDataFrame.explore()在column为布尔类型时产生错误的问题 (#2403)。修复了一个问题,即
GeoDataFrame.to_postgis()输出了错误的ESRI权威CRS的SRID(#2414)。修复
GeoDataFrame.from_dict/from_features类方法,使用GeoDataFrame而不是cls作为构造函数。修复
GeoDataFrame.plot()在提供colors关键字时,与混合几何类型一起生成不正确颜色的问题。 (#2420)
关于(可选)依赖项的说明:
GeoPandas 0.11 放弃对 Python 3.7 和 pandas 0.25 的支持(现在最低支持的 pandas 版本为 1.0.5)。此外,列出的依赖项的最低要求版本现已更改为 shapely 1.7, fiona 1.8.13.post1, pyproj 2.6.1.post1, matplotlib 3.2, mapclassify 2.4.0 (#2358, #2391)
版本 0.10.2 (2021年10月16日)#
小 bug 修复版本:
修复
overlay()中的回归,在没有几何体相交的情况下(但总范围有重叠)(#2172)。修复在
overlay()中使用keep_geom_type=True时的回归问题,特别是在一个GeometryCollection中与其他几何类型的两个几何体的叠加(#2177)。修复
overlay()以遵循keep_geom_type关键字在op="differnce"情况下 (#2164)。修复在使用 mapclassify
scheme的情况下,plot()中格式化图例标签重复的问题 (#2166)。修复了
explore()方法忽略vmin和vmax关键字的问题, 如果它们被设置为 0 (#2175)。修复
unary_union以正确处理带有缺失值的 GeoSeries (#2181)。避免在
clip()中出现内部弃用警告 (#2179)。
版本 0.10.1 (2021年10月8日)#
小 bug 修复版本:
修复在具有不重叠几何形状和非默认
how(即不是“交集”)的情况下overlay()的回归问题 (#2157)。
版本 0.10.0(2021年10月3日)#
本次发布的亮点:
一个新的
sjoin_nearest()方法用于基于接近性进行连接,具有设置最大搜索半径的能力 (#1865)。此外,sindex属性获得了一个用于“最近”空间索引查询的新方法 (#1865, #2053)。在GeoDataFrame和GeoSeries上新增了一个
explore()方法,原生支持基于folium / leaflet.js的交互式可视化 (#1953)现在
geopandas.sjoin()/overlay()/clip()函数也可以作为 GeoDataFrame 的方法使用 (#2141, #1984, #2150)。
新功能和改进:
为几何数据类型添加对pandas的
value_counts()方法的支持 (#2047)。explode()方法有一个新的ignore_index关键字(与 pandas 的 explode 方法一致),用于在结果中重置索引,还有一个新的index_parts关键字,用于控制是否应该添加对爆炸多几何形状部分的累积计数索引 (#1871)。points_from_xy()现在可作为 GeoSeries 方法from_xy使用 (#1936).现在,
to_file()方法将尝试根据提供的文件名的扩展名来检测驱动程序(如果未指定),而不是默认为 ESRI Shapefile (#1609)。在
read_parquet()中支持storage_options关键字, 用于指定基于fsspec的文件系统特定选项(例如S3)(#2107)。读/写函数现在支持
~(用户主目录)扩展 (#1876).支持来自pandas的
convert_dtypes()方法以保留GeoDataFrame类(#2115)。在
GeoSeries.from_wkb()中支持十六进制格式的WKB值 (#2106).更新
estimate_utm_crs()方法以处理跨越反射子午线的问题,使用 pyproj 3.1+ (#2049)。改进的启发式方法,根据CRS是投影的还是地理的来决定在repr中显示多少小数位 (#1895)。
将
geocode()的默认值从GeoCode.Farm切换到Photon地理编码API (https://photon.komoot.io) (#2007).
弃用和兼容性说明:
在
sjoin()中,op=关键字表示用于连接的空间谓词将被弃用,并被重命名为新的predicate=关键字(#1626)。属性
cascaded_union已被弃用,请改用unary_union(#2074)。现在构建具有重复 “geometry” 列的 GeoDataFrame 是不允许的。如果这导致重复的活动几何列,这也可能在
pd.concat(.., axis=1)函数中引发错误 (#2046)。当前的
explode()方法返回一个具有 MultiIndex 的 GeoSeries/GeoDataFrame,额外增加了一个级别,用于表示被爆炸的多几何体的部分索引。为了与 pandas 保持一致,这在未来会发生变化,并添加了新的index_parts关键字来控制这一点。
错误修复:
修复了
clip()函数,以正确裁剪MultiPoints,而不是在部分超出裁剪边界时保持它们不变 (#2148)。修复
GeoSeries.isna()以在空的 GeoSeries 情况下正确返回布尔序列 (#2073)。修复GeoDataFrame构造函数,以便在参数已经是GeoDataFrame对象时(即
GeoDataFrame(gdf))保留几何名称 (#2138)。修复在将这些值设置为列时值的CRS丢失的问题 (
GeoDataFrame.__setitem__) (#1963)修复
GeoDataFrame.apply()以保留活动几何列名称 (#1955)。修复在
sjoin()中在右连接的情况下不忽略后缀 (how="right) (#2065).修复
GeoDataFrame.explode()在使用 MultiIndex 时的问题 (#1945).修复在
to/from_wkb和to_from_wkt中处理缺失值的问题 (#1891)。修复
to_file()和to_json()当 DataFrame 有重复列时引发错误 (#1900)。修复用户定义分类方案中显示的颜色错误 (#2019)。
修复对
plot()中的path_effects关键字的处理 (#2127).修复
GeoDataFrame.explode()以保留attrs(#1935)
关于(可选)依赖项的说明:
GeoPandas 0.10.0 放弃对 Python 3.6 和 pandas 0.24 的支持。此外,最低要求的版本为 numpy 1.18, shapely 1.6, fiona 1.8, matplotlib 3.1 和 pyproj 2.2。
使用分类方案绘图现在需要 mapclassify 版本 >= 2.4 (#1737).
与最新的numpy和Shapely 1.7组合的兼容性修复 (#2072)
即将发布的 Shapely 1.8 的兼容性修复 (#2087).
最新 PyGEOS 的兼容性修复 (#1872, #2014) 和 matplotlib (颜色条问题, #2066).
版本 0.9.0 (2021年2月28日)#
许多文档改进以及一个重新设计和重构的网站,配有新标志 (#1564, #1579, #1617, #1668, #1731, #1750, #1757, #1759)。
新功能和改进:
现在,
geopandas.read_file函数接受更通用的类文件对象(例如,fsspec打开的文件对象)。它现在还将自动识别压缩文件(#1535)。GeoDataFrame.plot()方法现在提供对非几何列的 pandas 绘图功能的访问,可以使用kind关键字或访问器方法(例如gdf.plot(kind="bar")或gdf.plot.bar())(#1465)。新的
from_wkt(),from_wkb(),to_wkt(),to_wkb()方法用于构造 GeoSeries ,从 WKT 或 WKB 表示中的几何图形创建 GeoSeries,或者将 GeoSeries 转换为具有 WKT 或 WKB 值的 pandas Series (#1710)。新增
GeoSeries.z属性以访问点几何体的 z 坐标(类似于现有的.x和.y属性) (#1773)。现在
to_crs()方法可以处理缺失值 (#1618)。支持pandas的新
.attrs功能 (#1658)。dissolve()方法现在允许通过未指定列 (by=None) 进行融合,以创建所有几何图形的联合(单行 GeoDataFrame) (#1568)。GeoSeries/GeoDataFrame 上新的
estimate_utm_crs()方法,用于根据边界确定 UTM CRS (#1646)。GeoDataFrame.from_dict()现在接受geometry和crs关键字 (#1619)。GeoDataFrame.to_postgis()和geopandas.read_postgis()现在支持 sqlalchemy 引擎和连接对象 (#1638)。现在,
GeoDataFrame.explode()方法允许基于非几何列进行膨胀,使用pandas实现 (#1720)。使用PyGEOS后端时,
GeoDataFrame/GeoSeries.explode()的性能提高(#1693)。二元操作和谓词方法(例如
intersection(),intersects())有一个新的align关键字,可以选择在执行操作之前不按索引对齐,使用align=False(#1668)。GeoDataFrame.dissolve()方法现在支持所有相关的groupby()关键字,即level、sort、observed和dropna关键字 (#1845)。现在,
geopandas.overlay()函数接受make_valid=False,以跳过确保输入几何图形有效的步骤,使用buffer(0)(#1802)。GeoDataFrame.to_json()方法增加了一个drop_id关键字,以便可以选择不将 GeoDataFrame 的索引写入生成的 JSON 的 “id” 字段中 (#1637)。绘图方法中新增了一个
aspect关键字,允许可选地保留原始纵横比 (#1512)在
plot()方法的legend_kwds组中新增了一个interval关键字, 用于控制使用分类方案时图例标签的外观 (#1605)。GeoSeries的空间索引(通过
sindex属性访问)现在存储在底层数组上。这确保了空间索引在更多可能的操作中得以保留,并且GeoDataFrame的多个几何列可以各自拥有空间索引(#1444)。在GeoSeries/GeoDataFrame上添加一个
has_sindex属性,以检查空间索引是否已经初始化 (#1627)。现在,
geopandas.testing.assert_geoseries_equal()和assert_geodataframe_equal()测试工具具有一个normalize关键字(默认为False),用于在比较相等性之前标准化几何形状(#1826)。当失败时,这些函数现在也提供更有信息量的错误消息(#1808)。
弃用和兼容性说明:
当前
is_ring属性对多边形返回True。将来,这将为False(#1631)。此外,开始对线段和线环进行检查(而不是总是返回False)。不再使用的
objects关键字在intersection()方法中的GeoDataFrame/GeoSeries.sindex空间索引对象已被移除 (#1444)。
错误修复:
修复在
plot()方法中当几何体为空时抛出错误的问题 (#1702, #1828)。修复
geopandas.overlay()以保持在几何集合中嵌套的正确类型的几何图形,因为叠加操作的结果(#1582)。此外,如果不同类型的几何图形从结果中被丢弃,现在将会发出警告(#1554)。修复空GeoSeries的repr,以不显示多余的警告 (#1673).
修复空的 GeoDataFrames 的
.crs(#1560)。修复
geopandas.clip以保留正确的几何列名称 (#1566)。修复在使用
legend_kwds和多个子图时plot()方法中的错误(#1583)修复在没有缺失数据区域时,
plot()方法的missing_kwds关键字产生的虚假警告 (#1600)。修复
plot()方法,以正确对齐作为 pandas Series 传递给column关键字的值 (#1670)。修复在绘制MultiPoints时传递值以确定颜色的错误(#1694)
rename_geometry()方法现在会在使用重复的列名时抛出更为详细的错误信息 (#1602)。修复
explode()方法以保留 CRS (#1655)修复
GeoSeries.apply()方法,使其重新接受convert_dtype关键字,以与 pandas 保持一致 (#1636)。修复
GeoDataFrame.apply()以在可能的情况下保留坐标参考系统(CRS)(#1848)。修复
geom in geoseries中的包含测试的错误 (#1753)。GeoSeries/GeoDataFrame 的
shift()方法现在保留 CRS (#1744)。PostGIS IO 功能现在对表名加引号,以确保它与大小写敏感的名称兼容 (#1825)。
修复
GeoSeries构造函数,使其在不传递数据而仅传递索引的情况下可用 (#1798)。
关于(可选)依赖项的说明:
GeoPandas 0.9.0 不再支持 Python 3.5。此外,最低要求的版本是 pandas 0.24,numpy 1.15 和 shapely 1.6 以及 fiona 1.8。
现在不再需要
descartes包来绘制多边形。这个功能现在默认包含在GeoPandas中,当matplotlib可用时(#1677)。Fiona只有在使用
read_file/to_file时才会导入。这意味着 你现在可以强制geopandas在没有安装fiona的情况下进行安装(尽管它 仍然是默认要求) (#1775)。与即将发布的 Shapely 1.8 兼容 (#1659, #1662, #1819)。
版本 0.8.2 (2021年1月25日)#
与 PyGEOS 0.9 兼容的小错误修复版本。
版本 0.8.1 (2020年7月15日)#
小 bug 修复版本:
修复了在使用JenksCaspallSampled或FisherJenksSampled方案进行可视化时,
plot()方法中的回归问题(#1486)。修复在
GeoDataFrame.to_postgis中出现的虚假警告 (#1497)。修复使用
pd.read_pickle从旧版 GeoPandas 编写的文件中反序列化的问题 (#1511)。
版本 0.8.0 (2020年6月24日)#
实验性: 可选使用 PyGEOS 来加速空间操作 (#1155)。 PyGEOS 是 Shapely 的一个更快的替代品(正在贡献回 Shapely 的未来版本),并用于逐元素空间操作和例如在 sjoin 中的空间索引 (#1343, #1401, #1421, #1427, #1428)。 详情请参阅安装文档以获取更多信息以及如何启用它。
新功能和改进:
IO增强:
新
GeoDataFrame.to_postgis()方法用于写入 PostGIS 数据库 (#1248).新支持Apache Parquet和Feather文件格式 (#1180, #1435)
允许使用
GeoDataFrame.to_file追加到文件中 (#1229).在
read_file中添加对ignore_geometry关键字的支持,仅读取属性数据。如果设置为 True,将返回一个没有几何信息的 pandas DataFrame (#1383)。geopandas.read_file现在支持从类似文件的对象中读取 (#1329).GeoDataFrame.to_file现在支持指定写入文件的坐标参考系(#802)。默认情况下,它仍然使用GeoDataFrame的坐标参考系。在
geopandas.read_postgis中新增chunksize关键字,以分块读取查询 (#1123)。
与几何列和坐标参考系统(CRS)相关的改进:
现在,GeoDataFrame中任何具有“geometry”数据类型的列都将作为GeoSeries返回。这意味着当有多个几何列时,不仅返回“活动”几何列作为GeoSeries,还可以访问另一个几何列(
gdf["other_geom_column"])返回一个GeoSeries(#1336)。现在,GeoDataFrame中的多个几何列可以拥有不同的CRS。全局
gdf.crs属性继续返回“活动”几何列的CRS。其他几何列的CRS可以从列本身访问(例如gdf["other_geom_column"].crs)(#1339)。GeoDataFrame/GeoSeries 上的新
set_crs()方法用于设置天真的几何体的 CRS (#747)。
与绘图相关的改进:
当使用地理坐标参考系统时,y轴的缩放现在取决于图形的中心,而不是使用相等的纵横比(#1290)。
当将分类数据类型的列传递给GeoDataFrame
plot()的column=关键字时,我们现在尊重所有类别及其顺序 (#1483)。此外,新的categories关键字允许指定所有类别及其顺序 (#1173)。对于使用分类方案(使用
scheme=)的分级图,legend_kwds接受两个新的关键字来控制图例的格式:fmt用于设置区间边缘的格式字符串 (#1253),以及labels用于传递完全自定义的类别标签 (#1302)。
GeoSeries/GeoDataframe 上新增了
covers()和covered_by()方法,用于等效的空间谓词 (#1460, #1462)。当使用基于距离的方法处理地理投影中的数据时,GeoPandas 现在会发出警告 (#1378)。
弃用:
当从已经具有CRS的数据构建GeoSeries或GeoDataFrame时,如果两个CRS不匹配,会引发弃用警告,在将来这种情况下将引发错误。您可以使用新的
set_crs方法来覆盖现有的CRS。请参见 the docs。geopandas.plotting模块中的辅助函数已弃用 公共使用 (#656)。函数
geopandas.io已被弃用,请使用顶级函数read_file和to_file代替 (#1407)。集合运算符 (
&,|,^,-) 已被弃用,请使用intersection(),union(),symmetric_difference(),difference()方法 代替 (#1255)。空数据框的
sindex将来会返回一个空的空间索引,而不是None(#1438)。空间索引中由
sindex属性返回的intersection方法中的objects关键字已被弃用,并将在将来移除(#1440)。
错误修复:
修复
total_bounds()方法,以忽略缺失和空的几何体 (#1312)。修复
geopandas.clip在使用非重叠区域掩码时导致空的 GeoDataFrame (#1309, #1365)。修复在空几何列上连接时的错误
geopandas.sjoin(#1318)。与CRS相关的修复:
pandas.concat在连接GeoSeries对象时保留CRS (#1340),在geopandas.clip中保留CRS (#1362) 和在GeoDataFrame.astype中 (#1366)。修复了
GeoDataFrame.explode()当‘level_1’是列名之一时的错误(#1445)。当未安装 rtree 时,提供更好的错误信息 (#1425).
修复
GeoSeries.equals()的错误 (#1451).修复多部分几何图形的绘制,增加了额外的样式关键字 (#1385)。
而我们现在有了一个行为规范!
GeoPandas 0.8.0 是最后一个支持 Python 3.5 的版本。下一个版本将要求 Python 3.6,pandas 0.24,numpy 1.15 和 shapely 1.6 或更高版本。
版本 0.7.0(2020年2月16日)#
对Python 2.7的支持已经停止。GeoPandas现在支持Python >= 3.5。
本次发布的重要API更改是GeoPandas现在需要PROJ > 6和pyproj > 2.2,并且GeoSeries和GeoDataFrame的.crs属性不再将CRS信息存储为proj4字符串或字典,而是存储为pyproj.CRS对象(#1101)。
这提供了更好的用户界面,并整合了来自pyproj和PROJ 6的改进,但可能也需要对您的代码进行一些更改。请查看文档中的迁移指南。
其他API更改;
现在,
GeoDataFrame.to_file方法也会将GeoDataFrame索引写入文件,如果索引是命名的和/或非整数。您可以使用index=True/False关键字来覆盖这个默认推断(#1059)。
新功能和改进:
一个新的
geopandas.clip函数,用于将 GeoDataFrame 剪切到另一个形状的空间范围内 (#1128)。现在,
geopandas.overlay函数适用于所有几何类型,包括点和线串,以及多边形 (#1110)。plot()方法支持缺失值(在确定颜色的列中)。默认情况下,它不会绘制相应的几何图形,但使用新的missing_kwds参数可以指定如何样式化那些几何图形(#1156)。现在
plot()方法也支持绘制GeometryCollection和LinearRing对象(#1225)。添加了通过几何形状进行过滤或读取
geopandas.read_file中的部分行的支持 (#1160).为在
GeoDataFrame.to_file中支持pandas的新可空整数数据类型添加了支持 (#1220)。
错误修复:
GeoSeries.reset_index()现在正确地返回一个 GeoDataFrame,而不是 DataFrame (#1252)。修复了
geopandas.sjoin函数以正确处理 MultiIndex (#1159)。修复了
geopandas.sjoin函数,以保留左侧GeoDataFrame的索引名称 (#1150)。
版本 0.6.3 (2020年2月6日)#
小 bug 修复版本:
与 Shapely 1.7 和 pandas 1.0 的兼容性 (#1244).
修复
GeoDataFrame.fillna使其在几何列没有缺失值时再次接受非几何值。这应该能更容易填充GeoDataFrame的数值列 (#1279)。
版本 0.6.2 (2019年11月18日)#
小的错误修复版本,修复了一些回归问题:
修复将RRB(A)元组数组传递给
.plot()方法的回归问题 (#1178, #1211)。修复空的 GeoSeries 的
bounds和total_bounds属性,这也修复了空或全为 NA 的 GeoSeries 的表示 (#1184, #1195)。修复GeoDataFrame的过滤以在结果为空时保留索引类型(#1190)。
版本 0.6.1 (2019年10月12日)#
小的错误修复版本,修复了一些回归问题:
修复
astype在使用多个几何体转换为字符串时的问题 (#1145) 或在转换没有几何体的数据框时的问题 (#1144)。修复
GeoSeries.fillna以再次接受np.nan(#1149).
版本 0.6.0 (2019年9月27日)#
重要提示!这是最后一个支持 Python 2.7 的版本 (#1031)
API更改:
基于pandas ExtensionArray接口的内部重构 (#1000)。主要的用户可见更改包括:
GeoSeries的
.dtype现在是'geometry'类型(不再是numpy的object类型)。现在,GeoSeries的
.values返回一个自定义的GeometryArray,而不再是numpy数组。要获取Shapely标量的numpy数组,可以显式使用np.asarray(..)进行转换。
当传入非几何数据时,
GeoSeries构造函数现在会发出警告。目前,构造函数会退回返回一个 pandasSeries,但在未来这将引发错误 (#1085)。缺失值处理已更改,现在将缺失几何和空几何的概念分开(#601,1062)。实际上,这意味着(请参见 文档 以获取更多细节):
GeoSeries.isna现在仅考虑缺失值,如果您想检查空几何体,可以使用GeoSeries.is_empty(GeoDataFrame.isna已经只关注缺失值)。GeoSeries.dropna现在实际上会删除缺失值(之前不删除缺失的或空的几何体)GeoSeries.fillna仅填充缺失值(行为不变)。GeoSeries.align默认使用缺失值而不是空几何体来填充不匹配的索引条目。
新功能和改进:
添加一个
GeoSeries.affine_transform方法,相当于 Shapely 的函数 (#1008)。增加了一个
GeoDataFrame.rename_geometry方法,以便轻松重命名活动几何列 (#1053)。添加了
geopandas.show_versions()函数,可以在错误报告中提供已安装库的概览 (#899)。plot()方法的legend_kwds关键字现在也可以用于指定颜色条的关键字 (#1102)。通过重用输入数据框的现有空间索引(如果可用),提高了
sjoin()操作的性能 (#789)。更新文档以适应最新版本的 geoplot 和 contextily (#1044, #1088)。
一个新的
geopandas.options配置,目前有一个选项来控制坐标的显示精度 (options.display_precision)。默认情况下,现在显示更少的坐标(投影坐标为3,地理坐标为5),但可以通过选项覆盖默认值。
错误修复:
如果可用,也尝试使用
pysal而不是mapclassify(#1082)。GeoDataFrame.astype()方法现在正确地返回一个GeoDataFrame,如果几何列被保留 (#1009)。to_crs方法现在使用always_xy=True来确保对于 pyproj>=2.2.0 的经纬度顺序处理正确 (#1122)。修复在“多”几何体情况下在
plot()方法中传递类似列表的颜色 (#1119)。修正了在
plot()方法中传递自定义norm时形状和颜色条的颜色问题 (#1091, #1089)。修复了
GeoDataFrame.to_file以保留 VFS 文件路径(例如,当指定“s3://”路径时) (#1124)。修复了在
geopandas.sjoin中处理空几何体时失败的案例 (#1138)。
此外,某些依赖项的最低要求版本已增加:GeoPandas 现在需要 pandas >=0.23.4 和 matplotlib >=2.0.1 (#1002)。
版本 0.5.1(2019年7月11日)#
与最新的 mapclassify 版本 2.1.0 的兼容性 (#1025).
版本 0.5.0 (2019年4月25日)#
改进:
对于
GeoDataFrame.iterfeatures有显著的性能提升(约 10 倍),这也改善了GeoDataFrame.to_file(#864)。基于Fiona 1.8的文件输入输出增强:
支持写入布尔类型 (#855) 和日期时间类型,如果文件格式支持的话 (#728)。
支持以多种几何类型写入数据框,如果文件格式允许的话(例如,GeoJSON 适用于所有类型,或者 ESRI Shapefile 适用于 Polygon+MultiPolygon) (#827, #867, #870)。
与 pyproj >= 2 的兼容性 (#962).
一个新的
geopandas.points_from_xy()辅助函数,用于将 x 和 y 坐标转换为 Point 对象 (#896)。现在,
buffer和interpolate方法接受类数组形式,以指定每个几何体的可变距离 (#781)。添加一个
relate方法,对应于返回 DE-9IM 矩阵的 shapely 方法 (#853)。绘图改进:
通过仅在实际存在‘Multi’几何体的情况下平滑几何体,从而提高绘图性能(#785)。
分级图:访问所有
mapclassify分类方案,并在plot方法中添加classification_kwds关键字以指定该方案的选项 (#876).能够指定一个 matplotlib axes 对象来绘制颜色条,使用
cax关键字,以便更好地控制颜色条的位置 (#894).
将
geopandas.tools.geocode中的默认提供者从Google(现在需要API密钥)更改为Geocode.Farm(#907,#975)。
错误修复:
移除图例标记中的边缘 (#807)。
修复
align方法以保持 CRS (#829)。修复
geopandas.testing.assert_geodataframe_equal以正确比较左右数据框 (#810)。修复当值包含缺失值时在分级地图中的问题 (#877)。
如果输入不是GeoDataFrame,在
sjoin中提供更好的错误信息 (#842).在
read_postgis中修复处理可为空(缺失)几何形状的问题 (#856)。正确地将
parse_dates关键字传递给read_postgis的底层 pandas 方法 (#860)。修复了附带示例数据集“naturalearth_lowres”中南极的形状(通过更新到最新版本) (#804)。
版本 0.4.1(2019年3月5日)#
与最新的Fiona和PySAL版本兼容的小型错误修复版本:
与Fiona 1.8的兼容性:修复弃用警告(#854)。
与 PySAL 2.0 的兼容性:将依赖项从
PySAL切换为mapclassify用于使用scheme关键字的分级地图绘制 (#872)。在交集为空的情况下修复新的
overlay实现 (#800)。
版本 0.4.0 (2018年7月15日)#
改进:
改进了
overlay函数(性能更好,修复了几个不正确的行为) (#429)传递关键字以控制图例行为 (
legend_kwds) 到plot(#434)为在
read_file中读取远程数据集添加基本支持 (#531)传递 kwargs 用于 GeoSeries 上的
buffer操作 (#535)将所有 geopy 服务作为地理编码中的选项公开 (#550)
更快的写入速度到GeoPackage (#605)
允许通过GeoDataFrame的边界框对
read_file进行过滤 (#613)在
read_postgis返回的 GeoDataFrame 上设置 CRS (#627)允许为带有列值的点GeoSeries图设置标记大小 (#633)
开始了一个示例画廊 (#463, #690, #717)
支持绘制多点 (#683)
测试功能(例如
assert_geodataframe_equal)现在被公开 (#707)将
explode方法添加到GeoDataFrame(与GeoSeries方法相似)(#671)在多轴图上设置活动轴的相等比例 (#718)
将值数组传递给
plot中的列参数 (#770)
错误修复:
确保颜色条绘制在正确的轴上 (#523)
处理绘制空的 GeoDataFrame (#571)
在写入文件时保存z维度 (#652)
处理读取空的shapefile文件 (#653)
空间操作的空结果的正确数据类型 (#685)
修复对于 pandas>=0.23 的空
sjoin处理 (#762)
版本 0.3.0 (2017年8月29日)#
改进:
使用
matplotlib.collections提高绘图性能 (#267)改善默认绘图外观。默认值现在遵循新的matplotlib默认值(#318,#502,#510)
提供对点GeoSeries的x/y坐标作为属性的访问 (#383)
通过
geopandas.datasets提供 NYBB 数据集 (#384)在非整数索引的GeoDataFrames上启用
sjoin(#422)将
cx索引器添加到 GeoDataFrame (#482)GeoDataFrame.from_features现在也接受特征集合 (#225, #507)在
iterfeatures和to_json的输出中使用索引标签而不是整数ID (#421)在与不重叠的地理数据框执行空间连接时返回空数据框,而不是引发错误(#335)
错误修复:
与 shapely 1.6.0 的兼容性 (#512)
修复
fiona.filter在 bbox 不为 None 时的结果 (#372)修复
dissolve以保留 CRS (#389)修复使用索引0时的
cx行为 (#478)修复使用PySAL方案的分层图中图例标签的下限显示 (#450)
版本 0.2.0#
改进:
文档的全面检修
添加
overlay以执行与多边形的空间叠加 (#142)添加
sjoin以执行空间连接 (#115, #145, #188)添加了
__geo_interface__,用于返回一个python数据结构 以将GeoSeries表示为类似于GeoJSON的FeatureCollection(#116) 以及iterfeatures方法 (#178)新增
explode(#146) 和dissolve(#310, #311) 方法。添加了
sindex属性,这是一个使用可选依赖项rtree(libspatialindex) 的空间索引,可以用来加速某些操作,如叠加 (#140, #141)。添加
GeoSeries.cx坐标索引器,以根据坐标的边界框切片GeoSeries (#55)。绘图改进:可以指定边缘颜色(#173),支持
vmin、vmax、figsize、linewidth关键字(#207),用于面积图的图例(#210),通过指定颜色图(#186)或单一颜色(#238)来为点着色。更大的
to_crs灵活性,接受字典和投影字符串 (#289)添加嵌入的示例数据,可以通过
geopandas.datasets.get_path访问。
API更改:
在
plot方法中,axes关键字被重命名为ax以保持与pandas的一致性,而colormap关键字被重命名为cmap以保持与matplotlib的一致性(#208, #228, #240)。
错误修复:
正确处理缺失几何图形的行 (#139, #193)。
修复
GeoSeries.to_json(#263).在序列化时正确保存元数据(#199,#206)。
修复
merge和concat以返回正确的 GeoDataFrame (#247, #320, #322).