Geofileops

Latest version: v0.8.1

Safety actively analyzes 619477 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 4

0.8.1

This is a small bugfix release.

Bugs fixed

- Fix error in `erase` if `erase_path` countains multiple layers (451)
- Fix error in `dissolve` on polygon input if a pass that is not the last one has 0
onborder polygons in its result (459, 461)
- Fix `groupby` parameter becoming case sensitive in `dissolve` when `agg_columns` is
also specified (462)

0.8.0

The main improvements in this version are:
- the option to specify a precision of the output (`gridsize`) for most operations: this is an important tool to avoid slivers and gaps
- important performance improvements for most overlay operations with input layers that contain polygons with more than 2.000 coordinates.

Improvements

- Add support to read/add/remove embedded layer styles in gpkg (263)
- Add `gridsize` parameter to most spatial operations (261, 407, 413)
- Add `keep_empty_geoms` and `where_post` parameters to many single layer spatial operations (262, 398)
- Add `where_post` parameter to many two layer spatial operations (312)
- Add `columns`, `sql` and `where` parameters to `copy_layer` and `append_to` (311, 432)
- Add `dissolve_within_distance` operation (409)
- Add support for lang+ algorithm in `simplify` (334)
- Add support to use `select` and `select_two_layers` on attribute tables (= tables without geometry column) and/or have an attribute table as result (322, 379)
- Add support to process all file types supported by gdal in most general file and layer operations, e.g. `get_layerinfo`, `read_file`,... (402)
- Add support for files with Z/M dimensions in the general file and layer operations (369)
- Add support for spatialite 5.1 in `join_nearest` (412)
- Improve performance of `makevalid` and `isvalid` (258)
- Improve performance of `intersection`, 30% faster for typical data, up to 4x faster for large input geometries (340, 358)
- Improve performance of `clip`: 3x faster for typical data (358)
- Improve performance of `export_by_location`, especially when `area_inters_column_name` and `min_area_intersect` are `None`: a lot faster + 10x less memory usage (370)
- Improve performance of `erase`, `identity`, `symmetric difference` and `union` by applying on-the-fly subdividing of complex geometries to speed up processing. The new parameter `subdivide_coords` can be used to control the feature. For files with very large input geometries, up to 100x faster + 10x less memory usage. (329, 330, 331, 357, 396, 427, 438, 446)
- Improve performance of spatial operations when only one batch is used (271)
- Improve performance of single layer operations (375)
- Improve performance of some geopandas/shapely based operations (342, 408)
- Add checks that `output_path` must not be equal to the/an `input_path` for geo operations (246)
- Follow geopandas behaviour of using shapely2 and/or pygeos instead of forcing pygeos (294)
- Improve handling of "SELECT * ..." style queries in `select` and `select_two_layers` (283)
- Improve handling + tests regarding empty input layers/NULL geometries (320)
- Improve logging: use geo operation being executed as `logger name` (410)
- Many small improvements to logging, documentation, (gdal)error messages,... (321, 366, 394, 439,...)
- Use smaller footprint conda packages for tests (use `geopandas-base`, `nomkl`) (377)
- Use ruff instead of flake8 for linting (317)

Bugs fixed

- Fix parameter `index` in `to_file` being ~ ignored (285)
- Fix `fid` column in output having only null values in e.g. `union` (362)
- Fix "json" aggregate column handling in dissolve on line and point input files gives wrong results (257)
- Fix error in `read_file` when `read_geometry=False` and `columns` specified (393)
- Fix error in `copy_layer`/`convert` with `explodecollections` on some input files (395)
- Fix dissolve forcing output to wrong geometrytype in some cases (424)

Deprecations and compatibility notes

- Drop support for shapely1 (329, 338)
- Parameter `precision` of `makevalid` is renamed to `gridsize` as this is the typical terminology in other libraries (273)
- When `join_nearest` is used with spatialite, >= 5.1, two additional mandatory parameters need to be specified: `distance` and `expand` (412)
- Parameter `area_inters_column_name` in `export_by_location` now defaults to `None` instead of "area_inters" (370)
- Deprecate `convert` and rename to `copy_layer` (310)
- Deprecate `split` and rename to `identity` (397)
- Deprecate `is_geofile` and `is_geofile_ext` (402)
- Make the `GeofileType` enum private, in preparation of probably removing it later on (402)
- Remove the long-deprecated functions `get_driver_for_ext`, `to_multi_type` and `to_generaltypeid` (276)
- Remove the long-deprecated `vector_util`, `geofileops.geofile` and `geofileops.geofileops` namespaces (276)
- Remove `geometry_util`, `geoseries_util` and `grid_util` (339):
- Most functions were moved to `pygeoops` because they are generally reusable.
- Remaining functions are moved either to `_geometry_util` or `_geoseries_util` to make it clearer they are not public.

0.7.1.0

Improvements

- Add support for geopandas 0.13 (289)

v0.7.0.post1.0
Update dependency to geopandas<0.13 to avoid issues.

0.7.0

Improvements

- Use [pyogrio](https://github.com/geopandas/pyogrio) for GeoDataFrame io to improve performance for operations involving GeoDataFrames (#64, 217)
- Add possibility to backup the fid in output files when applying operations (114)
- Add support to `to_file` to write empty dataframe + add basic support for `force_output_geometrytype` (205)
- Add support to `read_file` to execute sql statements (222)
- Add function `get_layer_geometrytypes` to get a list of all geometry types that are actually in a layer (230)
- Add `fid_as_index` parameter to `read_file` (215)
- Add `force_output_geometrytype` parameter to `apply` (233)
- Add `fid_as_index` parameter to `read_file` (215)
- Add `force_output_geometrytype` parameter to `apply` (233)
- Optimize performance of operations when only one batch is used (19)
- Optimize number batches for single layer sql operations (214)
- Add check for select operations that if nb_parallel > 1, {batch_filter} is mandatory in sql_stmt (208)
- Small improvements/code cleanup (216, 223, 240,...)

Deprecations and compatibility notes

- When a geo operation results in an empty result, gfo now always writes an empty output file instead of no output. This is also the behaviour of other high level libraries like in the toolbox of QGIS or ArcGIS. This behaviour needs gdal version >= 3.6.3 to be applied consistently. (188)
- In `read_file` the columns in the output now reflect the casing used in the parameter rather than the casing in the source file (229)
- Functions `read_file_sql` and `read_file_nogeom` are deprecated in favour of `read_file`. Mind: in `read_file` the `sql_dialect` default is None, not "SQLITE". (222, 232, 236)
- The (private) util function `view_angles` is moved to [pygeoops](https://github.com/pygeoops/pygeoops) (#209)

0.6.4

Improvements

- Support geopandas 12 with shapely 2.0 + pygeos (191, 193)
- Support improvements in gdal 3.6.2 (195)
- Improve performance of sql-based operations for very large input files (201)
- Small improvements to formatting, linting,... (202)

Deprecations and compatibility notes

- Fix: Due to a change in fiona >= 1.9, using read_file on string columns with all None values ended up as a float64 column (199)
- Because geofileops uses pygeos directly, pin geopandas to < 1.0. More info: https://github.com/geopandas/geopandas/issues/2691 (#200)

0.6.3

Improvements

- Make writing to gpkg more robust in locking situations (179)
- Add create_spatial_index parameter to to_file (183)
- Ignore pandas futurewarning in dissolve (184)
- Improve dissolve performance (185)
- Small general improvements (180)

Bugs fixed

- Fix groupby columns in dissolve sometimes becoming all NULL values (181)

Deprecations and compatibility notes

- In to_file, the default behaviour is now also for .shp to create a spatial index, consistent with convert,... (183)

Page 1 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.