{"id":13468528,"url":"https://github.com/geopandas/geopandas","last_synced_at":"2026-10-18T23:49:02.090Z","repository":{"id":37431603,"uuid":"11002815","full_name":"geopandas/geopandas","owner":"geopandas","description":"Python tools for geographic data","archived":false,"fork":false,"pushed_at":"2026-10-12T21:00:11.000Z","size":59883,"stargazers_count":5277,"open_issues_count":430,"forks_count":1068,"subscribers_count":108,"default_branch":"main","last_synced_at":"2026-10-17T02:09:44.470Z","etag":null,"topics":["geoparquet","geospatial","pandas","python","spatial"],"latest_commit_sha":null,"homepage":"http://geopandas.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geopandas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null},"funding":{"github":["numfocus"],"open_collective":"geopandas","custom":"https://numfocus.org/donate-for-geopandas"}},"created_at":"2013-06-27T17:03:47.000Z","updated_at":"2026-10-16T20:33:58.000Z","dependencies_parsed_at":"2026-10-09T23:04:33.724Z","dependency_job_id":"598d84fe-a6f6-42c8-83b7-0ef4a9ec9f1f","html_url":"https://github.com/geopandas/geopandas","commit_stats":{"total_commits":1850,"total_committers":236,"mean_commits":7.838983050847458,"dds":0.7821621621621622,"last_synced_commit":"d88e60fc281ecd3269532be24371abd4bec5ea3a"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/geopandas/geopandas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geopandas%2Fgeopandas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geopandas%2Fgeopandas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geopandas%2Fgeopandas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geopandas%2Fgeopandas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geopandas","download_url":"https://codeload.github.com/geopandas/geopandas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geopandas%2Fgeopandas/sbom","scorecard":{"id":423087,"data":{"date":"2025-08-11","repo":{"name":"github.com/geopandas/geopandas","commit":"c7035a1c087c8871d138f73e7c5022e3c486c6ca"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 18 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":8,"reason":"Found 25/29 approved changesets -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.txt:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/release_to_pypi.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yaml:1","Warn: no topLevel permission defined: .github/workflows/versioneer.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release_to_pypi.yml:9"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v1.1.1 not signed: https://api.github.com/repos/geopandas/geopandas/releases/228146706","Warn: release artifact v1.1.0 not signed: https://api.github.com/repos/geopandas/geopandas/releases/222288246","Warn: release artifact v1.0.1 not signed: https://api.github.com/repos/geopandas/geopandas/releases/163558259","Warn: release artifact v1.0.0 not signed: https://api.github.com/repos/geopandas/geopandas/releases/162018442","Warn: release artifact v1.0.0rc1 not signed: https://api.github.com/repos/geopandas/geopandas/releases/160947316","Warn: release artifact v1.1.1 does not have provenance: https://api.github.com/repos/geopandas/geopandas/releases/228146706","Warn: release artifact v1.1.0 does not have provenance: https://api.github.com/repos/geopandas/geopandas/releases/222288246","Warn: release artifact v1.0.1 does not have provenance: https://api.github.com/repos/geopandas/geopandas/releases/163558259","Warn: release artifact v1.0.0 does not have provenance: https://api.github.com/repos/geopandas/geopandas/releases/162018442","Warn: release artifact v1.0.0rc1 does not have provenance: https://api.github.com/repos/geopandas/geopandas/releases/160947316"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release_to_pypi.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/release_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release_to_pypi.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/release_to_pypi.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release_to_pypi.yml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/release_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release_to_pypi.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/release_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release_to_pypi.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/release_to_pypi.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yaml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/tests.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yaml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/tests.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yaml:102: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/tests.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/versioneer.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/versioneer.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/versioneer.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/versioneer.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/versioneer.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/versioneer.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/versioneer.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/geopandas/geopandas/versioneer.yml/main?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/release_to_pypi.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/versioneer.yml:21","Warn: pipCommand not pinned by hash: .github/workflows/versioneer.yml:25","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned","Info:   0 out of   3 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":2,"reason":"8 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2022-238 / GHSA-h3qr-fjhm-jphw","Warn: Project is vulnerable to: GHSA-g4m4-9q4c-mfw6","Warn: Project is vulnerable to: GHSA-q5fm-55c2-v6j9","Warn: Project is vulnerable to: PYSEC-2023-238 / GHSA-5wvp-7f3h-6wmm","Warn: Project is vulnerable to: PYSEC-2024-161","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-19T01:42:25.100Z","repository_id":37431603,"created_at":"2025-08-19T01:42:25.100Z","updated_at":"2025-08-19T01:42:25.100Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38332859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-17T02:00:06.547Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geoparquet","geospatial","pandas","python","spatial"],"created_at":"2024-07-31T15:01:12.885Z","updated_at":"2026-10-18T23:49:02.082Z","avatar_url":"https://github.com/geopandas.png","language":"Python","funding_links":["https://github.com/sponsors/numfocus","https://opencollective.com/geopandas","https://numfocus.org/donate-for-geopandas"],"categories":["Python","Machine Learning and AI","Simultaneous Localization and Mapping","Spatial Analysis","地理Geo处理","Data Processing/Anslysis","others","Geospatial Library","Geospatial Library (non-web)","کتابخانه هاي جغرافيا","Feature Extraction","Uncategorized","ГИС софтуер","Geolocation","🐍 Python","Language based Geospatial Libraries"],"sub_categories":["Data Science and Analytics","Vector Map","Synthetic Data","Python","NLP","کار با زمان و تقویم","Geolocation","Uncategorized","Библиотеки :snake:","Useful Python Tools for Data Analysis"],"readme":"[![pypi](https://img.shields.io/pypi/v/geopandas.svg)](https://pypi.python.org/pypi/geopandas/)\n[![Actions Status](https://github.com/geopandas/geopandas/workflows/Tests/badge.svg)](https://github.com/geopandas/geopandas/actions?query=workflow%3ATests)\n[![Coverage Status](https://codecov.io/gh/geopandas/geopandas/branch/main/graph/badge.svg)](https://codecov.io/gh/geopandas/geopandas)\n[![Join the chat at https://gitter.im/geopandas/geopandas](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/geopandas/geopandas?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n[![Binder](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gh/geopandas/geopandas/main)\n[![DOI](https://zenodo.org/badge/11002815.svg)](https://zenodo.org/badge/latestdoi/11002815)\n[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat\u0026colorA=E1523D\u0026colorB=007D8A)](https://numfocus.org)\n\nGeoPandas\n---------\n\nPython tools for geographic data\n\nIntroduction\n------------\n\nGeoPandas is a project to add support for geographic data to\n[pandas](http://pandas.pydata.org) objects.  It currently implements\n`GeoSeries` and `GeoDataFrame` types which are subclasses of\n`pandas.Series` and `pandas.DataFrame` respectively.  GeoPandas\nobjects can act on [shapely](http://shapely.readthedocs.io/en/latest/)\ngeometry objects and perform geometric operations.\n\nGeoPandas geometry operations are cartesian.  The coordinate reference\nsystem (crs) can be stored as an attribute on an object, and is\nautomatically set when loading from a file.  Objects may be\ntransformed to new coordinate systems with the `to_crs()` method.\nThere is currently no enforcement of like coordinates for operations,\nbut that may change in the future.\n\nDocumentation is available at [geopandas.org](http://geopandas.org)\n(current release) and\n[Read the Docs](http://geopandas.readthedocs.io/en/latest/)\n(release and development versions).\n\n[//]: # (numfocus-fiscal-sponsor-attribution)\n\nThe GeoPandas project uses an [open governance model](https://github.com/geopandas/governance/blob/main/Governance.md)\nand is fiscally sponsored by [NumFOCUS](https://numfocus.org/). Consider making\na [tax-deductible donation](https://numfocus.org/donate-for-geopandas) to help the project\npay for developer time, professional services, travel, workshops, and a variety of other needs.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://numfocus.org/project/geopandas\"\u003e\n    \u003cimg height=\"60px\"\n         src=\"https://raw.githubusercontent.com/numfocus/templates/master/images/numfocus-logo.png\"\n         align=\"center\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\nInstall\n--------\n\nSee the [installation docs](https://geopandas.readthedocs.io/en/latest/install.html)\nfor all details. GeoPandas depends on the following packages:\n\n- ``pandas``\n- ``shapely``\n- ``pyogrio``\n- ``pyproj``\n- ``packaging``\n\nFurther, ``matplotlib`` is an optional dependency, required for plotting.\nThose packages depend on several low-level libraries for geospatial analysis, which can be a challenge to install. Therefore, we recommend to install GeoPandas using the [conda package manager](https://conda.io/en/latest/). See the [installation docs](https://geopandas.readthedocs.io/en/latest/install.html) for more details.\n\nGet in touch\n------------\n\n- Ask usage questions (\"How do I?\") on [StackOverflow](https://stackoverflow.com/questions/tagged/geopandas) or [GIS StackExchange](https://gis.stackexchange.com/questions/tagged/geopandas).\n- Get involved in [discussions on GitHub](https://github.com/geopandas/geopandas/discussions)\n- Report bugs, suggest features or view the source code [on GitHub](https://github.com/geopandas/geopandas).\n- For a quick question about a bug report or feature request, or Pull Request, head over to the [gitter channel](https://gitter.im/geopandas/geopandas).\n- For less well defined questions or ideas, or to announce other projects of interest to GeoPandas users, ... use the [mailing list](https://groups.google.com/forum/#!forum/geopandas).\n\nExamples\n--------\n\n    \u003e\u003e\u003e import geopandas\n    \u003e\u003e\u003e from shapely.geometry import Polygon\n    \u003e\u003e\u003e p1 = Polygon([(0, 0), (1, 0), (1, 1)])\n    \u003e\u003e\u003e p2 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])\n    \u003e\u003e\u003e p3 = Polygon([(2, 0), (3, 0), (3, 1), (2, 1)])\n    \u003e\u003e\u003e g = geopandas.GeoSeries([p1, p2, p3])\n    \u003e\u003e\u003e g\n    0         POLYGON ((0 0, 1 0, 1 1, 0 0))\n    1    POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))\n    2    POLYGON ((2 0, 3 0, 3 1, 2 1, 2 0))\n    dtype: geometry\n\n![Example 1](doc/source/gallery/test.png)\n\nSome geographic operations return normal pandas objects.  The `area` property of a `GeoSeries` will return a `pandas.Series` containing the area of each item in the `GeoSeries`:\n\n    \u003e\u003e\u003e print(g.area)\n    0    0.5\n    1    1.0\n    2    1.0\n    dtype: float64\n\nOther operations return GeoPandas objects:\n\n    \u003e\u003e\u003e g.buffer(0.5)\n    0    POLYGON ((-0.3535533905932737 0.35355339059327...\n    1    POLYGON ((-0.5 0, -0.5 1, -0.4975923633360985 ...\n    2    POLYGON ((1.5 0, 1.5 1, 1.502407636663901 1.04...\n    dtype: geometry\n\n![Example 2](doc/source/gallery/test_buffer.png)\n\nGeoPandas objects also know how to plot themselves. GeoPandas uses\n[matplotlib](http://matplotlib.org) for plotting. To generate a plot of a\n`GeoSeries`, use:\n\n    \u003e\u003e\u003e g.plot()\n\nGeoPandas also implements alternate constructors that can read any data format recognized by [pyogrio](http://pyogrio.readthedocs.io/en/latest/). To read a zip file containing an ESRI shapefile with the [boroughs boundaries of New York City](https://data.cityofnewyork.us/City-Government/Borough-Boundaries/tqmj-j8zm) (the example can be fetched using the [`geodatasets`](https://geodatasets.readthedocs.io/en/latest/) package):\n\n    \u003e\u003e\u003e import geodatasets\n    \u003e\u003e\u003e nybb_path = geodatasets.get_path('nybb')\n    \u003e\u003e\u003e boros = geopandas.read_file(nybb_path)\n    \u003e\u003e\u003e boros = boros.set_index('BoroCode').sort_index()\n    \u003e\u003e\u003e boros\n                   BoroName     Shape_Leng    Shape_Area  \\\n    BoroCode\n    1             Manhattan  359299.096471  6.364715e+08\n    2                 Bronx  464392.991824  1.186925e+09\n    3              Brooklyn  741080.523166  1.937479e+09\n    4                Queens  896344.047763  3.045213e+09\n    5         Staten Island  330470.010332  1.623820e+09\n\n                                                       geometry\n    BoroCode\n    1         MULTIPOLYGON (((981219.0557861328 188655.31579...\n    2         MULTIPOLYGON (((1012821.805786133 229228.26458...\n    3         MULTIPOLYGON (((1021176.479003906 151374.79699...\n    4         MULTIPOLYGON (((1029606.076599121 156073.81420...\n    5         MULTIPOLYGON (((970217.0223999023 145643.33221...\n\n![New York City boroughs](doc/source/gallery/nyc.png)\n\n    \u003e\u003e\u003e boros['geometry'].convex_hull\n    BoroCode\n    1    POLYGON ((977855.4451904297 188082.3223876953,...\n    2    POLYGON ((1017949.977600098 225426.8845825195,...\n    3    POLYGON ((988872.8212280273 146772.0317993164,...\n    4    POLYGON ((1000721.531799316 136681.776184082, ...\n    5    POLYGON ((915517.6877458114 120121.8812543372,...\n    dtype: geometry\n\n![Convex hulls of New York City boroughs](doc/source/gallery/nyc_hull.png)\n\nHow to cite\n-----------\n\nTo cite GeoPandas please use the following [software paper](https://doi.org/10.1016/j.compenvurbsys.2026.102495) published in the Computers, Environment and Urban Systems.\n\n\u003e Fleischmann, M., Van den Bossche, J., Jordahl, K., Richards, M. J., McBride, J., Wasserman, J., Ward, B., \u0026 Wolf, L. J. (2026). GeoPandas: Fundamental data structures for vector spatial data in Python. _Computers, Environment and Urban Systems_, 130, 102495. https://doi.org/10.1016/j.compenvurbsys.2026.102495\n\nBibTeX:\n\n```bibtex\n@article{fleischmann2026GeoPandas,\n  title = {{{GeoPandas}}: {{Fundamental}} Data Structures for Vector Spatial Data in {{Python}}},\n  shorttitle = {{{GeoPandas}}},\n  author = {Fleischmann, Martin and Van den Bossche, Joris and Jordahl, Kelsey and Richards, Matthew John and McBride, James and Wasserman, Jacob and Ward, Brendan and Wolf, Levi John},\n  year = 2026,\n  month = dec,\n  journal = {Computers, Environment and Urban Systems},\n  volume = {130},\n  pages = {102495},\n  issn = {01989715},\n  doi = {10.1016/j.compenvurbsys.2026.102495},\n  urldate = {2026-08-01},\n  langid = {english},\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeopandas%2Fgeopandas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeopandas%2Fgeopandas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeopandas%2Fgeopandas/lists"}