pygeofilter
pygeofilter is a pure Python parser implementation of OGC filtering standards
Decision gist · record as of 2026-08-14
Yes. The package fills a specific, well-defined role in OGC-compliant geospatial applications. It is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and carries low installation friction. Install it if you need to parse or evaluate OGC filter standards; skip it if your application does not work with OGC APIs or CQL.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction installation with four runtime dependencies (click, dateparser, lark, pygeoif).
- Active maintenance with a release 67 days ago; repository shows 89 stars and recent activity.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions; you must include a copy of the license and copyright notice.
last release 2026-06-08 (67 days) · last repo commit 2026-06-22 · 89 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 75,738 downloads/mo, #14,682 on PyPI
Alternatives
Verify before relying
pip install pygeofilter
from pygeofilter.parsers.ecql import parse as parse_ecql
filters = parse_ecql('id = 10')
from pygeofilter import get_repr
print(get_repr(filters))- Whether all advertised backends (Django, SQLAlchemy, GeoPandas, Elasticsearch, OpenSearch) are fully functional or some remain experimental
- Performance characteristics when parsing or evaluating large or deeply nested filter expressions
- Whether optional backend dependencies are automatically installed or must be manually specified
What it is and what it does
pygeofilter is a pure Python parser that converts OGC (Open Geospatial Consortium) filter standards into a unified abstract syntax tree representation. It handles multiple input formats—CQL as defined in CSW 2.0, CQL JSON from OGC API Features Part 3, JSON Filter Expressions (JFE), and FES—allowing you to parse geographic and attribute filtering queries from different sources into a common intermediate form.
Once parsed, the AST can be evaluated and transformed into backend-specific queries. The package includes pre-built evaluators for Django ORM, SQLAlchemy, GeoPandas, Elasticsearch, OpenSearch, and native Python object filtering, so you can apply the same parsed filter expression across different data stores. It also provides an Evaluator base class and a command-line utility for testing and inspecting parsed expressions.
Use it for
- Parse and apply OGC-compliant filter expressions in a web service that needs to support multiple query languages
- Convert CQL queries from OGC API Features clients into Django ORM or SQLAlchemy filters for database queries
- Build a geospatial search API that accepts CQL JSON and evaluates filters against GeoPandas DataFrames or Elasticsearch indices
- Inspect and debug filter expressions by converting them to a readable AST representation via the command-line tool
- Implement custom filtering logic by extending the Evaluator class to handle domain-specific filter backends
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package fills a specific, well-defined role in OGC-compliant geospatial applications. It is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and carries low installation friction. Install it if you need to parse or evaluate OGC filter standards; skip it if your application does not work with OGC APIs or CQL.
Install
pygeofilter on PyPI
Before you install
Low friction installation with four runtime dependencies (click, dateparser, lark, pygeoif). Active maintenance with a release 67 days ago; repository shows 89 stars and recent activity.
License in practice
MIT license permits commercial and private use with minimal restrictions; you must include a copy of the license and copyright notice.
Quickstart
pip install pygeofilter
from pygeofilter.parsers.ecql import parse as parse_ecql
filters = parse_ecql('id = 10')
from pygeofilter import get_repr
print(get_repr(filters))
Verify before relying
- Whether all advertised backends (Django, SQLAlchemy, GeoPandas, Elasticsearch, OpenSearch) are fully functional or some remain experimental
- Performance characteristics when parsing or evaluating large or deeply nested filter expressions
- Whether optional backend dependencies are automatically installed or must be manually specified
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesclickdateparserlarkpygeoif |
| Maintenance | Actively maintained 67 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 75,738 / month, #14,682 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/Engineering :: GIS |
Evidence: pygeofilter-0.4.0-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “OGC filter parsing”
- pygeofilterParses OGC filtering standards (CQL, CQL JSON, JFE, FES) into an…
- owslibOWSLib provides Python client access to Open Geospatial Consortium…
- titiler-coreProvides FastAPI-based building blocks to create dynamic tile servers…
Give your agent the search over MCP, or paste the wish link into any chat.
More GIS packages
Shapely provides Python tools for creating, manipulating, and analyzing 2D geometric objects (points, lines, polygons) using the GEOS library, with both scalar and vectorized NumPy-based operations.
pyproj provides a Python interface to PROJ, enabling cartographic projections and coordinate system transformations for geospatial applications.
GeoPandas extends pandas DataFrames to handle geographic data, combining pandas operations with shapely geometry and spatial analysis capabilities that would otherwise require a spatial database.
Install it if you work with geographic data in Python and want to avoid setting up a spatial database or learning a separate GIS tool.
geopy is a Python client for geocoding and distance calculation that converts addresses to coordinates and vice versa using multiple web-based geocoding services, and computes geodesic and great-circle distances between geographic points.
Install it if you need geocoding or distance calculations in your application.
Pyogrio provides fast, bulk-oriented read and write access to vector spatial data formats (Shapefile, GeoPackage, GeoJSON, etc.) via GDAL/OGR bindings, typically for use with GeoPandas GeoDataFrames.
h3 provides Python bindings to Uber's H3 geospatial indexing library, converting geographic coordinates into hierarchical hexagonal grid cells and performing spatial operations on them.
See also pygeoif · GeoAlchemy2 · cql2 · django-filter · fastapi-filter · promql-parser · django-elasticsearch-dsl-drf · owslib · geojson · djangorestframework-filters