owned this note
owned this note
Published
Linked with GitHub
# GeoPandas Meeting Notes
See the notes from older meetings in [the archive](https://github.com/geopandas/community/wiki/Community-Meeting-Notes-Archive).
Meeting link: https://numfocus-org.zoom.us/j/88434008375?pwd=nKj4ll6LjvY2RgMm9qMRfNuOyUsbKZ.1
## 2025-10-30
Attendees: Pieter Roggemans, Brendan Ward, Matt Richards, Joris Van den Bossche
- SSI grant not ultimately accepted; may be opportunity for smaller one
- pandas 3:
- maybe a release candidate in next few weeks
- pyogrio:
- adding libspatialite to wheels now works
- https://github.com/geopandas/pyogrio/pull/546
- issues around including rrtopo optional dependency, which is GPL
- for now leave it out; investigate implications of GPL license if folks ask for it
- release the GIL:
- https://github.com/geopandas/pyogrio/pull/572
- potentially slowdowns / overheads for frequently releasing and reacquiring the GIL
- datetime PR:
- https://github.com/geopandas/pyogrio/pull/486
- let's go for the separate keywords
- try to have a release in next few weeks
## 2025-09-25
Attendees: Martin Fleischmann, Pieter Roggemans, Brendan Ward, Joris van den Bossche
- SSI grant submitted (2 year grant, starting in March 2026)
- general maintenance
- community survey
- integration with Spherely
- SDG on plotting
- planning to aim for same API as we have now, possibly new keywords
- internals will change
- NumFOCUS CoC
- NumFOCUS would take over the reporting
- Martin will submit request to NumFOCUS to adopt this
- Exposing pyogrio functions on geopandas namespace
- https://github.com/geopandas/geopandas/pull/3633
- probably fine to expose pyogrio's `read_info` as `read_file_info` and return dict
- may want to indicate the dtypes that you get in geopandas (could be added later)
- may want to add a method for `list_drivers` or `list_file_drivers`
- GeoArrow vs native
- https://github.com/geopandas/geopandas/pull/3495
- maybe add `native` as an alias for now
- can also specify the exact GeoArrow encoding type (`point` instead of `geoarrow.point`)
- Pyogrio 0.12 release
- https://github.com/geopandas/pyogrio/issues/560
- should add Python 3.14 wheels
- drop 3.9 (3.10 later)
- drop GDAL 3.5 and 3.6 (can drop some of the old GDAL conditionals in the code)
- for manylinux2014, maybe keep until next time it breaks
- may want to add VCPKG feature flag for arrow ADBC (not yet merged), to enable reading from DuckDB
- optimizing reads with filter: https://github.com/geopandas/pyogrio/pull/577
- may want to drop the non-arrow reader and use pyarrow (if available) or nanoarrow for reading and converting to numpy arrays
- releasing the GIL when possible: https://github.com/geopandas/pyogrio/pull/572
- improving datetime support: https://github.com/geopandas/pyogrio/pull/486
## 2025-08-28
Attendees: Pieter Roggemans, Brendan Ward
- pyogrio:
- discussed build issues around libspatialite
- for next time
- drop Python 3.9
- drop manylinux2014
- drop older GDAL?
- datetime PR
## 2025-08-07
Attendees: Martin Fleischmann, Rok Mihevc, Pieter Roggemans, Joris van den Bossche
- NumFOCUS SDG plotting project: granted!
- SSI Software Maintenance Fund - passed to the second round
- GeoParquet / Parquet logical geometry/geography data types (https://github.com/geopandas/geopandas/issues/3632)
- pyogrio
- 0.12?
- Drop Python 3.9 (and Python 3.10?)
- GDAL 3.11 in wheel?
- LIBKML in wheel?
- Add Python 3.14 support (will require updating the manylinux base, last time this gave troubles)
- [Datetime improvement PR](https://github.com/geopandas/pyogrio/pull/486)
- [Json fields issue ?](https://github.com/geopandas/pyogrio/issues/445#issuecomment-3160620127)
## 2025-06-26
Attendees: Martin Fleischmann, Brendan Ward, Matt Richards, Pieter Roggemans, Joris van den Bossche
- Geopandas 1.1.1 patch for regressions
- cut soon from `main`
- Removal of versioneer
- [3589](https://github.com/geopandas/geopandas/pull/3589)
- needs to be tested with the wheel-building action but otherwise seems fine
- Geodetic computations merge soon?
- [3574](https://github.com/geopandas/geopandas/pull/3574)
- keep the option around but follow pandas model of opt-in for future behaviour
- pyogrio PR 486: [Improve datetime support](https://github.com/geopandas/pyogrio/pull/486)
- Default behaviour when reading: keep current behaviour (convert to UTC)
- Add parameter in `read_dataframe` to be able to roundtrip data correctly:
- datetime_as_object : bool, default False
Cast datetimes to objects. If False, all timestamps are converted to datetime64 dtype.
- NumFOCUS-related reports
- check-in with Kari Hall and Arliss
- CoC
- waiting for the next round to see how it works
- SDG
- submitted [plotting proposal](https://github.com/numfocus/small-development-grant-proposals/issues/25)
- Jul 11 notification
- SSI Software Maintenance Fund
- Submitted Expression of Interest
- 7 July feedback
## 2025-05-15
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward, Matt Richards
- GeoPandas 1.1
- deprecation of positional args
- We will make any new args fed through as positional only if positional only in shapely
- In principle agree we should deprecate posiitonal args, not blocking 1.1
- area-weighted mean aggfunc:
- https://github.com/geopandas/geopandas/pull/3229
- Geodesic computations
- https://github.com/geopandas/geopandas/issues/3539
- Discussed we should deal with this independently of spherely discussion
- Difficult around providing a behaviour break. Discussed global option to control warning behaviour
- Okay to provide a slow python only implementation in the first instance, ideally have a fast cython version in pyproj (https://github.com/pyproj4/pyproj/issues/1487)
- Concluded we should merge with a "future" global option in the same way as pandas, so we can release a 1.2 which doesn't introduce the
breaking change.
- NumFOCUS check-in with Kari Hall
- NomFOCUS CoC
- NumFOCUS SDG
- plotting refactoring (MF)?
- GeoPandas paper
- [Special issue](https://www.sciencedirect.com/special-issue/322127/open-urban-data-science) MF is co-editing
- outdated WIP [draft](https://martinfleischmann.net/geopandas_paper/)
- GeoPlanar moved under geopandas org
- https://github.com/geopandas/geoplanar
- SSI Software Maintenance Fund
## 2025-03-27
- Shapely 2.1 release
- proposal to release on Sunday or Monday
- 1.0.2; 1.1.0 releases
- focus on 1.1.0 with Shapely 2.1 parity
- API for coverage simplification
- https://github.com/geopandas/geopandas/issues/1387#issuecomment-2749322989
- new method is better
- geodesic area
- yes, but through pyproj and behind a global option
- Funding oppportunities:
- https://www.software.ac.uk/programmes/research-software-maintenance-fund
- Small Development Grants changed
## 2025-02-27
Attendees: Martin Fleischmann Joris van den Bossche, Brendan Ward, Matt Richards, Pieter Roggemans
- discussed issues around subclassing GeoDataFrame
- https://github.com/geopandas/geopandas/issues/3517
- Discussion that PRs like https://github.com/geopandas/geopandas/pull/3505 are fine, but we don't want to encourage subclassing as a pattern
- spherely
- PR for proof of concept: https://github.com/geopandas/geopandas/pull/3520
- basics work
- doesn't yet work: plotting, anything that uses spatial index
- How to opt in?
- Subclass
- Martin: would prefer to stick to term geometry (planar or spherical) instead of geography; Matt agrees
- in spherely it is explicitly called "geography"
- should we change that? TODO Joris to open an issue
- still want to have dtype == 'geometry' return true for any type of geometry (spherical or planar)
- to_crs to have a keyword
- What is spherical vs planar; "type", "dtype"?
- Summary:
- Single geometry dtype
- How to paramtrize it? `GeometryDtype(type="planar|"spherical")` (or `model=`), `GeometryDtype(spherical=True|False)`
- Need a keyword in constructors / to_crs
## 2025-01-30
Attendees: Luca Marconato, Martin Fleischmann Joris van den Bossche, Pieter Roggemans
- Geometry engine selection API
- https://github.com/geopandas/geopandas/issues/2769
- GeoPandas 1.1
- Do after shapely 1.1 to include
- Spherely
- Pyogrio
- https://github.com/geopandas/pyogrio/pull/486
- Shapely 2.1
- Dask Geopandas
- Spatial partitioning operations in dask-geopandas may be affected by the new dask-expression backend of dask-dataframe (as it removed .attrs). The problem was discussed in the more general context of dask.dataframe. Luca: report bugs or possible follow-ups in dask-geopandas and dask-dataframe.
## 2024-11-28
Attendees: Joris van den Bossche, Brendan Ward
- SDG on SDSL approved ($5,000)
- Martin will take care of the management of this
- Spherely:
- trying to get to a 0.1.0 release in coming weeks
- Joris is adding basic plotting
- basic predicates are there (intersects, contains), basic overlays, not many options exposed yet
- a few constructive: boundary, centroid; buffer is still missing
- Pyogrio:
- need to fix CI
- can merge the big endian fix once we know CI is green
- can look into adding big endian tests later
- GeoPython:
- Joris submitted spherely talk
- GeoPandas:
- would like to do release in coming weeks
- fix for pandas string dtype: https://github.com/geopandas/geopandas/pull/3457
- may want to deal with some of the Arrow / parquet related issues
- how to integrate Spherely into GeoPandas
- could have global option to enable Spherely for geographic coordinates
- would need different geometry array types
- may want to consider letting users choose to do measures on the sphereoid (via spherely/S2) vs ellipsoid (via pyproj)
- Brendan has an implementation in cython against pyproj internals we might be able to adapt
## 2024-10-24
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward, Matt Richards, Pieter Roggemans
- spherely update
- Joris and Benoît have been working toward wrapping up 0.1 release
- have packages & wheels for Linux / Mac
- some API discussion re: parity with shapely classes / functions: https://github.com/benbovy/spherely/issues/58
- work in progress to create from WKT / WKB
- have most of the predicates and basic properties (centroid) in place
- We have to think about design with different engines (spherely, geoarrow, point, etc)
- NumFOCUS SDG round 3
- Submitted last-minute proposal for funding
- NumFOCUS funding support
- May want to be more forward with advertising that GeoPandas can accept donations
- can have "Sponsor this project" in Github sidebar like pandas: https://github.com/pandas-dev/pandas/
- 1.0.2/1.1 update?
- pyogrio - arrow - datetimes
- https://github.com/geopandas/pyogrio/issues/487
## 2024-09-26
cancelled
## 2024-08-29
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward, Matt Richards, Pieter Roggemans
- geopandas.lines_from_xy #3381
- in scope? - no, point to shapely functions from our docs
- matrix output of the spatial predicates
- allow returning the output of sindex.query as scipy.sparse.array and eventually expose this from predicate methods themselves
- ref #1674
- pandas.Series.geo accessor #3272
- fine to add, but we do not register the accessor by default to avoid confusion with users seeing the `.geo` api and thinking that is the main API, user needs to do registration manually
- SDG
- spherely update (deadline in November)
- packaging updates in progress, some wheels in place and conda-forge soon
- core functionality is next task
- need to add more functionality for I/O (e.g., WKT)
- plotting: need to tessalate and project coordinates
- Joris lightning talk about it at EuroSciPy
- 2024 round 3
- dask-geopandas
- invite Tom as a dask-geopandas maintainer? -> Joris will do
- infra
- We now have a NumFOCUS-backed Zoom account.
- pyogrio
- add back in build with manylinux_2_28, stop using zlib port for manylinux_2_28
- ok to leave out libkml
- log an issue on vcpkg for libspatialite if easy to reproduce build failure
- contextily
- default tiles
- shapely release cycle
## 2024-07-25
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward, Pieter Roggemans
- geopandas
- waiting on NumFOCUS re: geopandas email
- want to setup zoom account (per above), for now can use pandas zoom
- SDG
- spherely: Joris and Benoit will meet in Aug to work on this
- 2024 Round 3: plotting (if someone wanted to work on it); submission deadline Aug 30
- pyogrio
- switch conda to gdal-core and add instructions on other packages for additional drivers?
- Directly depending on libgdal-core (to do this may want to depend on gdal to get around libgdal-core only being >=3.9.1)
- direct people to use conda for some packages not in wheels (e.g., spatialite, postgres)? Yes, but add more documentation.
- allow /vsimem/ use directly (e.g., for interface with gdal package)
## 2024-06-20
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward, Nicholas YS Tan, Matt Richards
- GeoPandas 1.0
- Timeline:
- Next week monday?
- PRs with 1 approval already:
- Geopackage metadata - https://github.com/geopandas/geopandas/pull/2850
- spatial join with attributes - https://github.com/geopandas/geopandas/pull/3231
- let's get this in as-is
- CoW changes
- upstream issue with pandas to do with copying crs from GeometryArray back to parent DataFrame. Joris changing on pandas side
- Post 1.0 roadmap
- https://github.com/geopandas/geopandas/pull/3294
- New items to add?
- GeoArrow support
- One idea is to delay the conversion to shapely geometries until it is needed. Especially for points we could implement some methods for points natively, and there can be benefit in avoiding creating manny shapely objects
- Zoom account
- NumFOCUS requires generic geopandas email
- Swag store (under NumFOCUS)
- No response yet, even though it was in the same email as Zoom. Martin will ask again.
- NumFOCUS newsletter project updates
- Shall we include a note on 1.0?
- Spherely SDG
- may get started in Aug
- project should be done by end of Nov 2024
- GeoPandas Gitter:
- should remove from the readme; no longer used
- may want to use Discord, easier to setup that getting Slack through NumFOCUS
## 2024-05-30
Attendees: Martin Fleischmann, Brendan Ward
- GeoPandas 1.0
- https://github.com/geopandas/geopandas/issues/3312
- check if user is trying to set df['geometry'] when the active geometry column is something else, then raise a UserWarning
- raise a FutureWarning when user passes GeoSeries with a name != "geometry"? Probably not, folks are doing this intentionally
- https://github.com/geopandas/geopandas/pull/3007#issuecomment-2139516852
## 2024-04-25
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward
- GeoPandas 0.14.4
- Joris will finish and release
- GeoPandas 1.0
- https://github.com/geopandas/geopandas/issues/3201
- https://github.com/geopandas/geopandas/milestone/4
- Alignment:
- https://github.com/geopandas/geopandas/issues/3256
- interpolate, buffer: raise if no equal index
- offset_curve: ignores index (directly passed to shapely method)
- translate: passing array-like argument is not supported (passed to scalar shapely geometry object)
- writing to memory using Fiona appears to be broken
- need more tests
- pyogrio
- write memory
- see https://github.com/Toblerity/Fiona/pull/1331
- most pressing issue is writing to bytes
- arrow writer
- https://github.com/geopandas/pyogrio/pull/346
## 2024-03-28
- GeoPandas 1.0
- [release strategy](https://github.com/geopandas/geopandas/issues/3201#issuecomment-2016822012)
- need for 0.14.x?
- fiona 1.10 to be released end of April
- pandas compat is needed?
- CZI EOSS
- we did not get the grant
## 2024-02-28
Attendees: Brendan Ward, Wouter-Michiel Vierdag, Martin Fleischmann, Luca Marconato, Joris van den Bossche, Pieter Roggemans
- GeoPandas 1.0
- https://github.com/geopandas/geopandas/issues/3201
- File IO
- switch default to pyogrio
- Keywords for column selection https://github.com/geopandas/geopandas/pull/3133 -> deprecate
- Use Arrow by default if available? -> not yet
- sjoin index behavior
- https://github.com/geopandas/geopandas/issues/498 and https://github.com/geopandas/geopandas/pull/2144#issuecomment-1038910188
- Notes from some meetings ago:
- one option is to have `keep_right_index` as None / bool:
- None = existing behavior, always rename to `index_right`; raise deprecation warning if index has a name and so in future would retain that name
- True = always keep right index, use name if it has one otherwise use `index_right`
- False = always drop right index
- What would the future behaviour be?
- https://github.com/geopandas/geopandas/issues/1832
- pyogrio 0.8
- Spherely
- Conferences
- GeoPython
- EuroPython
- Spatial Data Science across Languages
## 2024-01-25
Attendees: Brendan Ward, Martin Fleischmann, Joris van den Bossche, Pieter Roggemans
- GSoC
- Registration is open, if we want to be part of it
- NumFOCUS told us to do that without them
- Shapely parity
- `contains_xy` and `intersects_xy` [#3114](https://github.com/geopandas/geopandas/pull/3114)
- do we want to include it? the API may be weird.
- leave it out for now
- ignore `get_dimensions` and `get_num_points`
- 0.14.x
- need to backport compatibility PRs and fix the regression one of them caused
- Spherely SDG
- Martin will ping Benoit about the status
- pyogrio 0.8
- use_arrow=True: When? How? No conclusion, but these thoughts were mentioned:
- Geopandas 1.0 comes close and pyogrio would become the default IO engine. If use_arrow=True is default by then, there isn't a new migration needed for users when that switch is made? But... is it ready?
- There have been some bugs that were found/fixed recently, also still in GDAL, are there still bugs?
- GDAL uses arrow under the hood in e.g. ogr2ogr since 3.8, so quite some exposure now?
- Idea was to use arrow if pyarrow is installed, disadvantage is that this can lead to surprises: depending on the env used, slightly different behaviour
- If truly default, pyarrow becomes a +- hard dependency
- But, pandas 3 will also have pyarrow as hard dependency and is planned for april???
- Review capacity in shapely
## 2024-01-04
Attendees: Brendan Ward, Matt Richards, Martin Fleischmann ,Joris van den Bossche
- Shapely parity
- https://github.com/geopandas/geopandas/issues/2010
- Leave out the prepare-related functions
- to/from_geojson not needed (we have other geojson related functionality), to/from_ragged_array too low level
-
- GeoPandas 1.0 roadmap
- geopandas.datasets removal
- switch default IO to pyogrio
- need to handle include / exclude params in same way as Fiona
- expose list_layers as pandas DataFrame of layer name and type
- for [mask PR](https://github.com/geopandas/geopandas/pull/3062): how to handle errors if user passes GeometryCollection with overlapping polygons; if we can handle the error cleanly then just add docstring to user that they need to pass a singular geometry that is either a GeometryCollection (add notes for effect of geometry collection vs union); don't union automatically. We changed our mind: split this into 2 PRs, merge the PR as it is (automatic union), then later PR to address both Fiona / Pyogrio performance issues
- include pyproj as optional dependency?
- GeoPython 2024 (May 27-29)
- deadline 15/01
- PySAL folks are coming (Serge Rey, Levi)
- Geopandas 0.14.2 for overlay regression
- https://github.com/geopandas/geopandas/pull/3074
- Let's cut a release (Joris will do that)
- Meetings / mailing lists
- intent to set up a slack/discord instead of gitter
- Standard PR review process
- If there is consensus on the implementation, authored by a committer then a single review is fine (if it is a simple PR)
- If it is a small bugfix/ maint /ci fixes, a single committer review is fine
- New features / api changes require a 2 person review
## 2023-11-30
Attendees: Brendan Ward, Martin Fleischmann, Pieter Roggemans, Joris van den Bossche
- CZI proposal
- GeoPandas 1.0
- pyogrio: look into writing with Arrow
## 2023-10-26
- Luca Marconato from scverse
- Discussed coordinate system and coordinate transformations in SpatialData/NGFF. Example notebook: https://spatialdata.scverse.org/en/latest/tutorials/notebooks/notebooks/examples/transformations.html
- Discussed spatial indexing, sorting and rasterization vs multiscale chunked representation. The new releases https://developmentseed.org/blog/2023-10-23-lonboard and https://github.com/holoviz/datashader/releases/tag/v0.16.0 seem enough to solve the spatialdata challenges.
- Circles vs points. Circles are not supported upstream but there is some discussion on enabling this.
- Dask geopandas: the developers would appreciate contributions; we will start using it the spatialdata package and report/contribute.
- pyogrio:
- 0.7.0 released (https://github.com/geopandas/pyogrio/releases/tag/v0.7.0). Do we directly do a 0.7.1? (https://github.com/geopandas/pyogrio/pull/318) -> Brendan will do the release
- Do some announcement about it (once conda-forge is out)
- Release infrastructure:
- https://github.com/marketplace/actions/pypi-publish#trusted-publishing
- https://github.com/geopandas/pyogrio/issues/317
- Security contact
- Similar work:
- [Fiona #1308](https://github.com/Toblerity/Fiona/pull/1308)
- this might be the blog post referenced: https://sethmlarson.dev/security-for-package-maintainers
- [Shapely #1924](https://github.com/shapely/shapely/issues/1924)
- [pandas](https://github.com/pandas-dev/pandas/security/policy)
- Add a security.md to GeoPandas projects
- use internal Github reporting (enabled for pyogrio)
- Enable security scorecard Github action?
- https://securityscorecards.dev/
- GeoPandas 1.0
- Methods vs attributes for shapely functionality (eg is_ccw?)
- CZI Letter of Intent submitted
- results next week
- NumFOCUS SDG awaiting results
## 2023-09-29
Attendees: Brendan Ward, Martin Fleischmann, Pieter Roggemans, Joris van den Bossche
- upcoming pyogrio v0.7.0 release
- coming soon
- GeoPandas 1.0 changes
- drop support of pygeos and shapely<2
- [PR](https://github.com/geopandas/geopandas/pull/3013)
- pyogrio default
- needs shim for mask keyword
- expose features like "list_layers"?
- use pyogrio for write driver detection from extension
- document additional keywords on the GeoPandas side
- `layer`, `columns`
- pyproj optional? (at runtime, and geopandas-base on conda-forge)
- shall we make these changes now to give downstream enough time to test against main?
- consider making an alpha release to make it easier for users to test with `pip install --pre`
- unary_union
- https://github.com/geopandas/geopandas/pull/3007
- sjoin index behavior
- https://github.com/geopandas/geopandas/issues/498 and https://github.com/geopandas/geopandas/pull/2144#issuecomment-1038910188
- one option is to have `keep_right_index` as None / bool:
- None = existing behavior, always rename to `index_right`; raise deprecation warning if index has a name and so in future would retain that name
- True = always keep right index, use name if it has one otherwise use `index_right`
- False = always drop right index
- What would the future behaviour be?
- xyzservices and contextily changes related to Stamen
- NumFOCUS summit & SDSL info
- CZI
- Letters of Intent by Oct 17
- https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/
- Broad scope / work items?
- Maintenance backlog / project sustainability
- maybe some things around keeping up with Shapely / GEOS
- NumFOCUS SDG on spherely was submitted
## 2023-08-31
Attendees: Matt Richards, Brendan Ward, Martin Fleischmann, Joris van den Bossche
- Make pyogrio the default?
- biggest outstanding issue is datetime handling; see [PR](https://github.com/geopandas/pyogrio/pull/253)
- pyogrio doesn't have a mask keyword: can use shapely to do the masking (on the pyogrio side?)
- Warn for the `mask` keyword not going to be supported with pyogrio?
- Let's implement under the hood by passing bbox + doing the exact filter
- use global variable to set default engine?
- for 0.14 if both are installed, use pyogrio as default; also may want to have a global variable you can override; allow setting `engine=None` to go with global default.
- Wait for 1.0 to make change to default
- emphasize pyogrio more in the documentation / user guide
- add list_layers to GeoPandas
- return as DataFrame
- would be nice to have additional metadata
- add read_info to GeoPandas?
- GeoSeries.astype(object) [issue](https://github.com/geopandas/geopandas/issues/2948), is this fixable on the pandas side or should we fix it?
- Fix on pandas side, should be reverted
- Wider CI failures + warnings should not be user facing
- Others should be fixed on geopandas side
- Happy to xfail these tests until we get around to fixing them
- Migration from PyGEOS to Shapely 2.0 [issue](https://github.com/geopandas/geopandas/issues/2691) proposes a 1.0 in early 2024. \
Are there other things we should should aim to resolve before 1.0 / would block 1.0 / things that would be hard to change after 1.0?
- Issues tagged with API in the title e.g. (sjoin index right, set geometry inconsistency #1038), others?
- Discuss sjoin index next meeting
- [API/COMPAT: unary_union behaviour with shapely 2.0 ](https://github.com/geopandas/geopandas/issues/2579)
- Plotting refactor - is it okay to break things there (notably legends) after 1.0?
- [Use GPKG as the default driver for to_file?](https://github.com/geopandas/geopandas/issues/1607)
- Now we infer from the extension, it's probably fine to keep current behaviour
- Pandas arrow backed
- Pandas 3.0 will make pyarrow a requirement, but only used by default for string types
- may want to have a CI build to enable arrow string types and copy-on-write
- do we need to explicitly test that our methods which carry non geometry data preserve dtypes correctly?
- Read file support to load into arrow backed dtypes?
- Funding
- SDG round 3
- Benoit is working on a proposal for `spherely`
- CZI
- https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/
- biomed links via covid modelling and scverse/spatialdata
## 2023-07-27
Attendees: Martin Fleischmann, Brendan Ward
- User Survey 2023?
- last one was 2020
- prepare new one for September that could affect what is planned for 1.0 and what later?
- ideas:
- what is adoption of pyogrio? Are there compatibility issues still in terms of making default instead of Fiona
- what is adoption of shapely 2.0?
- is there still demand for native python GIS file I/O?
- are installation issues better?
- postgis support: how important? could this be handled in some other adapter package instead of within GeoPandas? (which is buggy) - could we use Ibis? (https://github.com/geopandas/geopandas/issues/1164)
- open issue at: https://github.com/geopandas/geopandas-user-surveys
- aim for mid-Sept
- NumFOCUS Project Summit in Sept in Amsterdam
- identify issues to discuss with other projects in the ecosystem
- GDAL: write API for Arrow
- geodatacubes: geozarr?
- NumFOCUS SDG round 3
- submission deadline September 1, 2023
- if we are going to do this, needs to be written before next meeting
- maybe another push at S2 (if Benoit has a capacity)?
- Martin will check w/ Benoit
- typing
- should new PRs contain type hints?
- start gradually including them where easy
- pandas type unions are private; can we use them?
- GeoParquet:
- allow user to pass in metadata if metadata not in parquet file to get around exception requiring the metadata; don't allow override
- allow reasonable guesses and raise warning: if has geometry column with what looks like WKB, try to decode that, set CRS to None
## 2023-07-06
Attendees: Martin Fleischmann, Joris van den Bossche, Matt Richards, Brendan Ward
- Shapely parity
- shapely.node - https://github.com/geopandas/geopandas/pull/2925
- hold off for now; wait for windowing node method from GEOS
- build_area and polygnize - https://github.com/geopandas/geopandas/issues/2949
- minimum_rotated_rectangle - https://github.com/geopandas/geopandas/pull/2541
- minimum_rotated_rectangle or oriented_envelope?
- go with minimum_rotated_rectangle as method only; add alias if people ask
- Seed vs rng in sample_points
- we may want to change the keyword. Do we need deprecation period (I guess so now).
- https://github.com/geopandas/geopandas/pull/2913
- queue for next release, check back about consensus of using rng (in scikit-learn)
- Twitter ownership transition
- create a gmail address that is used for social sites, then store password in 1password
- Joris: follow up with NumFOCUS re: 1password account for GeoPandas
- also transfer domain name to NumFOCUS and then host this email out of that?
- next meeting
- leave at current scheduled time
## 2023-06-01
Attendees: Martin Fleischmann, Joris van den Bossche, Pieter Roggermans, Brendan Ward
- Scientific Python Developer Summit news
- [SPEC0](https://scientific-python.org/specs/spec-0000/) - minimum supported versions -> adopt this officially instead of the NEP
- drop Python 3.8
- [SPEC4](https://scientific-python.org/specs/spec-0004/) - nightly wheels
- try to get shapely nightly wheels -> Joris
- geopandas -> Martin
- consider for pyogrio or Fiona?
- SPEC on random number generator: https://github.com/scientific-python/specs/pull/180
- Small Development Grants
- shapely parity will kick in this month
- proposal on S2 for the September cycle??
- deadline Sept 1
- will reach out to Benoit if he has a capacity
- GeoPandas:
- 0.13.1 bug-fix release
- Reading from urls is broken in some cases: https://github.com/geopandas/geopandas/issues/2908, https://github.com/geopandas/geopandas/pull/2912
- consider reverting to download pre-emptively unless identify URL contains an extension of a type that allows reading part of a dataset (e.g., GPKG)
- only pass to pyogrio if there is an extension in the URL
- also fix in pyogrio to not add /vsicurl/ if no extension (may not be needed for GeoJSON)? May need to look at other options for vsicurl
- short term decision:
- pre-emptively download in geopandas unless we are certain /vsicurl will be able to read them
- ideally later on fiona/pyogrio get updated to better handle URLs, so we can again just pass them through
- Shapely:
- [__eq__ and NaN values PR](https://github.com/shapely/shapely/pull/1760)
- ideally behavior should be one of equals, equals_identical, equals_exact
- consider geometry equal if NaNs in same place; use `equals_identical`
- maybe split into bugfix and leave bigger change for 2.1?
- [equals exact PR](https://github.com/shapely/shapely/pull/1231)
- let PR add keyword and not add normalize as a default
- Next meeting:
- reschedule from June 29
- scverse/spatialdata
## 2023-04-27
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward, Matt Richards
- NumFOCUS sponsored status
- update documentation and ReadMe
- https://github.com/geopandas/geopandas/pull/2881
- governance repo
- community repo
- announce on Twitter and Mastodon (?)
- once the geopandas page is live on NumFOCUS?
- onboarding call
- linking of Github donate button to Numfocus
- get zoom account
- get slack account
- add Numfocus attribution for subrepos?
- leadership
- NumFOCUS SDG on Shapely parity: approved!
- Martin plans to start on it in June
- GeoPandas 0.13 release
- Joris will do the release one of the coming days
- pyogrio 0.6.0 released!
- anecdote: cuspatial
## 2023-03-30
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward
- NumFOCUS SDG
- Martin submitted proposal for Shapely parity; should know mid-April
- NumFOCUS sponsored status
- almost there. The agreement is being signed these days.
- GeoPandas
- Release 0.13: https://github.com/geopandas/geopandas/issues/2692
- Sample/grid PRs
- split simple random sampling into separate PR
- make_grid in other PR
- GeoJSON crs PRs:
- add keyword, but leave current behaviour (False / no reprojection)
- Move to ruff for linting
- Geodatasets
- on PyPI and conda-forge
- Shapely:
- Largest Empty Circle:
- https://github.com/libgeos/geos/issues/855
- https://github.com/shapely/shapely/pull/1307#issuecomment-1485218990
- Please take a look!
- pyogrio:
- create a bugfix release to pull latest release of GDAL
- try to fast-track options for reading: https://github.com/geopandas/pyogrio/issues/216
- add a mask for writing to mark NULL values; would allow us to handle Pandas and Arrow nullable values
- still missing from pyogrio:
- keywords from fiona
- agreed not to implement `mask` (filtering by feature) due to consistency of with / without GEOS in GDAL
## 2023-01-26
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward
- follow-up on [xyz-data](https://github.com/martinfleis/xyzdata) and removing NaturalEarth data
- Some questions: only refer to existing links, or also host data? Initially try to only have links to others
- rename to `geodatasets` and move under geopandas community
- Data versioning? Keep simple for now
- use calendar versioning for releases
- NumFOCUS Sponsored status
- some paperwork to follow
- NumFOCUS SDG strategy 2023
- there may be some capacity this year and we can ask for 2 grants/year
- deadlines:
- March 3, 2023
- June 2, 2023
- September 1, 2023
- Ideas:
- shapely 2.0 parity (first round)
- spherely (maybe 2nd / 3rd round)
- pending bug fix releases:
- pyogrio 0.5.1: try to release 1/26/2023
- shapely 2.0.1
- minimum_rotated_rectangle:
- shapely pre 2.0 had a custom version, shapely 2.0 uses incorrect version from GEOS: https://github.com/shapely/shapely/issues/1670
- PR at https://github.com/shapely/shapely/pull/1708 to fix the difference between shapely custom version
- geopandas 0.13: aim for end of Feb
- add deprecation warning for accessing underlying array below GeometryArray -> generally deprecate .data in favor of to_numpy() or np.asarray + if pygeos is used warn that it will change to shapely objects
- add documentation of calling shapely function on GeoSeries / migration guide
- update text of the main warning
## 2023-01-05
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward, Benoît Bovy
- GeoPandas got accepted as NumFOCUS Fiscally Sponsored project!
- setup Open Collective and Github sponshorship
- GeoPandas 0.13 release (https://github.com/geopandas/geopandas/issues/2692)
- PyGEOS -> Shapely migration (https://github.com/geopandas/geopandas/issues/2691)
- Features: sampling, feature parity
- interface for different geometry engines
- we will need to figure out a way of switching between shapely and s2shapely engines and later maybe even cuSpatial
- long-term solutions for the political issues related to `naturalearth_lowres`
- (thoughts from Matt (probably can't attend))
- Current usages:
- cx indexing documentation
- aggregation with dissolve documentation, uses country <-> continent relationship
- interactive mapping example, plotted alongside cities data
- user_guide/data_structures -> this is completely replaceable with e.g. nybb
- io read_file mask kwarg, use `naturalearth_lowres` to filter `naturalearth_cities`
- io row filter, column filter, ignore geometry, where kwarg example -> completely replaceable
- user guide/mapping matplotlib plotting examples
- Options:
- Find an equivalent countries dataset from another provider "with no issues" - I don't think this is long term plausible
- Expose a political lense as an option to a user - this was not positively recieved when suggested in #2382, needs to be continually updated / monitored
- Remove completely and replace with something else
- For example, Australia's bureau of statistics produce national/ state borders and greater capital city area layers which would probably provide an analogue to the dynamics of cities <-> countries <-> continents, but there's probably also European/ American data that may be more ubiquitous to the average user (the one advance of Australia is it has no land borders to be disputed, but so does e.g. the UK)
- Remove from user facing but keep in tests / aliased in gpd.datasets
- Keeping as is
- use GitHub discussion for non-actionable issues
- figuring out better communication platform than Gitter?
- Ecosystem:
- pyogrio 0.5.0 release
-
## 2022-11-24
Attendees: Martin Fleischmann, Joris van den Bossche, Brendan Ward
- NaturalEarth data boundary disputes
- should not change from NaturalEarth
- ideally create a separate Python package that downloads & caches NaturalEarth; no longer ship these data in public API
- examples:
- https://github.com/ropensci/rnaturalearth
- https://scitools.org.uk/cartopy/docs/latest/reference/generated/cartopy.io.shapereader.NEShpDownloader.html?highlight=naturalearth
- Cartopy: https://github.com/SciTools/cartopy/blob/22cdafca511744143c5b673598a1889f169c1e3d/lib/cartopy/io/shapereader.py#L286-L302
- freeze tests to current data but don't expose these within public API
- NumFOCUS SDG 2023
- next round is assumed to close early feb 2023
- ideas: go after highest priorities on roadmap, e.g., Shapely 2.0 parity, dask-geopandas
- GeoPython 2023
- https://2023.geopython.net
- Basel, March 6-8
- submission Dec 16
- possible talks / workshops: vector data cubes, joint w/ R, Shapely 2.0, S2 Geometry
- Mastodon account
- Martin to create a fosstodon.org account
- Last call for changes on Shapely 2.0
- Geopandas issue with geoparquet because of WKB flavor: https://github.com/geopandas/geopandas/issues/2654
- Add parameter to shapely to_wkb for this for GEOS >= 3.10
- Next GeoPandas release: focus items?
- Shapely 2.0 compat (to_crs looses z values) -> small bug fix release?
- geoparquet 1.0:
- geometry_type => geometry_types
- need to check compat with GDAL, may need to include both keys
- Cancel next meeting?
- consider moving to Jan 5, 2023
- New contributor meeting
- Consider doing a review sprint to get through review on outstanding PRs
- If time, some geopandas issues to discuss?
## 2022-10-27
Attendees: Brendan Ward, Martin Fleischmann, Joris van den Bossche, Matt Richards
- NumFOCUS application
- submitted
- https://docs.google.com/document/d/1axg8QK_onmUemh2ylsNvaGToM9NNvCAlguRkU2S8hcs/edit
- decision by November 30
- GeoPandas 0.12 released with shapely 2.0 support
- migration is a little challenging if underlying array is shapely or pygeos geometries
- could also have .data property raise a warning if will change from array of pygeos geometries to shapely geometries
- Do we want to make shapely method calls compatible with geopandas?
- `polygon.contains(points)`
- shapely.contains(polygon, points)
- https://github.com/shapely/shapely/blob/8c66df52c9c2e04594cc7226708fbd8d7ba7722a/shapely/geometry/base.py#L596-L598 -> if bool() is removed, this would work automatically
- **TODO**: Joris will make PR to try to get this into Shapely 2.0
- Roadmap prioritisation
- focus on shapely parity to support migration from pygeos to shapely?
- then for folks migrating from pygeos they can just use the geopandas methods instead
- https://github.com/geopandas/geopandas/issues/2010Wednesday November 9th 4PM EST
- everything that is on a geometry object (method or function) should be on a GeoSeries as well
- get / count coordinates don't follow those so need to do something different
- for things that don't exist in Shapely 1.8 raise a `NotImplementedError`
- alignment?
- https://github.com/geopandas/geopandas/issues/1832
- for now, leave default as is
- **TODO**: improve the warning
- Shapely 2.0
- Targeting final release toward end of Nov
- point operations vs xy: https://github.com/shapely/shapely/pull/1548
- creating Point objects is more expensive than the predicate, so use xy directly
- precedent already set with constructing linestrings: accepts both coordinates and point arrays
- what to call ragged arrays: https://github.com/shapely/shapely/pull/1559#issuecomment-1281120178
- Pyogrio:
- merged wheel-building PRs: now build for GDAL to 3.5, Arm64
- need to release: 0.4.3 or 0.5 or something else
- see if we can add append support to justify 0.5 release
- How to deal with the scope of each subproject?
- we need to be able to define which enhancement is in the scope and which beyond and properly communicate that
- see https://github.com/geopandas/geopandas/pull/2590 for example of the latest discussion on that
- challenges around large PRs that were not previously discussed
- need to more explicitly state in contributing guide to open an issue to discuss prior to opening PR
- GeoPandas project website
- https://github.com/geopandas/community/issues/17
- https://github.com/geopandas/community/issues/6
- S2 Geometry development
- https://github.com/paleolimbot/s2geography/pull/3
- aim to discuss further at next GeoPandas dev meeting
- Dollars-4-Doers donation from SwissRe
- would be possible now but NumFOCUS was not excited about it so it is postponed while waiting for the Sponsored level
- Pangeo Showcase
- present on Wednesday November 9th 4PM EST?
- GeoParquet 1.0beta1 vs 0.5 to include in metadata
- GEOS:
- GEOS line substring: https://github.com/libgeos/geos/pull/708
- pygeos=> shapely subdivide function
- maybe copy the Trac issue to GEOS GH issue
- This is useful on the PostGIS side, still interest in seeing this
- coverage simplification: may want to chain operations against a GEOS coverage object vs black box
- C API for clustering? https://github.com/libgeos/geos/pull/688
## 2022-09-29
Attendees: Brendan Ward, Martin Fleischmann, Joris van den Bossche
- NumFOCUS application
- Governance documents
- https://github.com/geopandas/governance/pull/1
- Size of Steering Council
- for PySAL it is 3
- for now leave it "up to 5"
- Initial approval of governance documents / membership of council?
- Joris will follow up directly with Kelsey Jordahl
- add page to GeoPandas doc with summary of Governance and crosslink back
- Application
- https://docs.google.com/document/d/1axg8QK_onmUemh2ylsNvaGToM9NNvCAlguRkU2S8hcs/edit
- (contact Brendan for write privileges in short term)
- open questions:
- Comprehensive or the Grantor-Grantee fiscal sponsorship model (https://numfocus.org/projects-overview)
- pandas: Comprehensive model
- GDAL: Grantor-Grantee (but already has OSGeo)
- probably want Comprehensive model since the project isn't based out of another organization
- List of signatories
- Physical mail address (asked NumFOCUS)
- Thought(Joris): some of the text about project management and communication channels (q28) might also be useful to include on the website / contribute pages?
- update the Community page in the docs
- update the Readme of the Community repo
- GeoPandas Roadmap proposal
- https://github.com/geopandas/geopandas/pull/2568
- add something related to plotting based on GSoC writeup
- make PyProj optional?
- spatialpandas asked for this
- Goals for 1.0 re: dependencies:
- remove Fiona as required dependency (still required for pip)
- without GDAL / PyProj is advanced usage, want installing with `--no-deps` to still work
- Where do we want to put a "project-level" roadmap if distinguished from geopandas one?
- Main website should do better job of highlighting the sub projects (pyogrio, dask-geopandas, etc)
- could use geopandas.org for the broader project, add or subpath for geopandas subproject docs?
- need to figure out what ReadTheDocs can handle
- nanoarrow:
- smaller package than pyarrow to support basic conversion w/ numpy arrays and pandas data frames
- under development now
- Dollars-4-Doers donation from SwissRe
- probably need to wait until NumFOCUS application is approved
- Connecting GeoPandas and Pangeo
- Joris will follow up on this to present
- Connections to NVIDIA RAPIDS cuSpatial
- if cuSpatial supports enough parity with what we use from GEOS, can we use that as an optional backend?
- S2 Geometry development
- ESA/NASA organizing a workshop on open innovation
## 2022-09-01
Attendees: Martin Fleischmann, Brendan Ward, Joris van den Bossche, Matt Richards
- Shapely 2.0, pygeos and a strategy to phase-out different geometry engines
- https://github.com/geopandas/geopandas/pull/2275#issuecomment-1206347135
- Decision: release as 0.12 with Shapely 2.0 support once 2.0b1 is released; can merge PR right after updating to latest Shapely
- warn during import if detect shapely 2.0 (full release, not beta) and pygeos are both installed; provide instructions on how to set env var
- Requirements for [NumFOCUS fiscal sponsorship](https://numfocus.org/projects-overview):
- application questionnaire: https://docs.google.com/document/d/1axg8QK_onmUemh2ylsNvaGToM9NNvCAlguRkU2S8hcs/edit
- (contact Brendan for write privileges in short term)
- application deadline 0ct 15, notification Nov 30
- comprehensive model vs grantor-grantee model
- Joris can check re: other NumFOCUS projects
- May need to follow up with NumFOCUS to clarify
- Need 5 signatories
- Roadmap
- GeoPandas 1.0:
- only Shapely 2.0, no PyGEOS / Shapely 1.8x shims
- feature parity with shapely, at least for easy ones that are element-wise operations
- preparation of geometries; need good automatic behavior
- are there any API changes we want to make / remove?
- re-enable documentation page in main repo?
- Also project-level roadmap:
- I/O, scaling, S2 geographic
- link to Geopandas roadmap from higher-level roadmap
- inspiration:
- [numpy](https://github.com/numpy/numpy/blob/main/doc/neps/roadmap.rst)
- [pandas](https://pandas.pydata.org/about/roadmap.html)
- Governance
- "NumFOCUS requires fiscally sponsored projects to have an explicit governance structure listed publicly on the project website or documentation."
- initial draft: https://docs.google.com/document/d/1N2BbZe1PujL69req9wAA0_xUb_EPoOSoWxt2CuTpilg/edit?usp=sharing
- (contact Brendan for write privileges in short term)
- insipiration:
- [numpy](https://numpy.org/doc/stable/dev/governance/governance.html)
- [pandas](https://github.com/pandas-dev/pandas-governance)
- [jupyter](https://github.com/jupyter/governance/blob/master/governance.md)
- [matplotlib](https://matplotlib.org/governance/)
- [conda-forge](https://conda-forge.org/docs/orga/governance.html)
- https://gitlab.com/rconf/userknowledgebase/-/issues/78
- https://scikit-learn.org/stable/governance.html
- PySAL: https://github.com/pysal/governance
- need to define:
- location: add to community repo, in order to apply to all GeoPandas subprojects? Or within main repo docs?
- See Jupyter model: dedicated repo for governance, associated documentation page in main repo
- Put into dedicated repo
- project roles and associated mechanics: steering council, lead developer, etc
- Steering council:
- example: for PySAL there are 20 devs and 3 serve on the council on annual basis; self-nominations and voting each year
- need to decide period of membership on steering council
- process for updating governance docs
- will need to be updated after acceptance by NumFOCUS:
- add [NumFOCUS subcommittee](https://jupyter.org/governance/governance.html#numfocus-subcommittee)
- add [Intitutional partners and funding section](https://jupyter.org/governance/governance.html#institutional-partners-and-funding)
- Code of conduct
- PSF has group that can receive code of conduct reports
- May also be able to get NumFOCUS to do this: https://numfocus.org/code-of-conduct
- General desire to have reports go to people that are not also on the steering council