Skip to main content

GeoPandas AI is an extension of GeoPandas allowing you to interact with your spatial data in natural language.

Project description

GeoPandas AI

GeoPandas AI is a powerful Python library that brings natural language processing capabilities to your geospatial data analysis workflow. It allows you to interact with GeoDataFrames using natural language queries, making geospatial analysis more accessible and intuitive.

Features

  • Natural language interaction with GeoDataFrames
  • Support for multiple LLM providers through LiteLLM
  • Various output types including:
    • GeoDataFrames
    • DataFrames
    • Text responses
    • Plots
    • Interactive maps
    • Lists
    • Dictionaries
    • Numeric values (integers, floats)
    • Boolean values

Installation

pip install geopandas-ai

Quick Start

import geopandasai as gpdai

# Configure your LLM provider (example using Google's Vertex AI)
gpdai.set_active_lite_llm_config({
    "model": "vertex_ai/gemini-2.0-flash",
    "vertex_credentials": json.dumps(json.load(open("google-credentials.json", "r")))
})

# Load your geospatial data
gdfai = gpdai.read_file("your_data.geojson")

# Ask questions about your data
result = gdfai.chat("how many points are in this dataset?")
print(result)

# Get specific types of results
count = gdfai.chat("how many points?", result_type=gpdai.ResultType.INTEGER)
points_only = gdfai.chat("Keep only geometry of type point", result_type=gpdai.ResultType.GEODATAFRAME)
map_view = gdfai.chat("Plot the points", result_type=gpdai.ResultType.MAP)

Configuration

GeoPandas AI uses LiteLLM to support multiple LLM providers. You can configure your preferred provider in two ways:

  1. Using the set_active_lite_llm_config function:
from geopandasai.config import set_active_lite_llm_config

set_active_lite_llm_config({
    "model": "your_model_name",
    # Add provider-specific configuration
})
  1. Using environment variables:
export LITELLM_CONFIG='{"model": "your_model_name", ...}'

Please refer to https://docs.litellm.ai/docs/providers for more details on configuring LiteLLM.

Available Result Types

The library supports various result types through the ResultType enum:

  • DATAFRAME: Returns a pandas DataFrame
  • GEODATAFRAME: Returns a GeoDataFrame
  • TEXT: Returns a text response
  • PLOT: Returns a matplotlib figure
  • MAP: Returns a folium map
  • LIST: Returns a list
  • DICT: Returns a dictionary
  • INTEGER: Returns an integer
  • FLOAT: Returns a float
  • BOOLEAN: Returns a boolean

Examples

Basic Queries

# Count features
count = gdfai.chat("how many features?", result_type=ResultType.INTEGER)

# Filter data
filtered = gdfai.chat("show only points with population > 1000", result_type=ResultType.GEODATAFRAME)

# Get statistics
stats = gdfai.chat("what's the average population?", result_type=ResultType.FLOAT)

Visualization

# Create a plot
plot = gdfai.chat("create a scatter plot of population vs area", result_type=ResultType.PLOT)

# Generate an interactive map
map = gdfai.chat("show all points colored by population", result_type=ResultType.MAP)

Data Transformation

# Convert to list
list_data = gdfai.chat("convert to list", result_type=ResultType.LIST)

# Convert to dictionary
dict_data = gdfai.chat("convert to json", result_type=ResultType.DICT)

Caching

GeoPandas AI includes a caching system to improve performance and reduce API calls. The library provides two types of caches:

  1. InMemoryResultCache: Stores results in memory (default)
  2. FileResultCache: Persists results to disk

Using Caching

from geopandasai import set_cache_instance, FileResultCache, InMemoryResultCache

# Use in-memory cache (default)
set_cache_instance(InMemoryResultCache())

# Or use file-based cache
set_cache_instance(FileResultCache(cache_dir="./.geopandasai_cache"))

The cache automatically stores:

  • Query results
  • Generated code
  • Any intermediate results

This helps in:

  • Reducing API calls
  • Improving response times for repeated queries
  • Saving costs when using paid LLM providers

Accessing Generated Code

After each query, you can access the generated Python code that was used to produce the result:

# Make a query
result = gdfai.chat("how many points are in this dataset?")

# Access the generated code
print(gdfai.last_output.source_code)

This is useful for:

  • Understanding how the AI interpreted your query
  • Learning from the generated code
  • Debugging unexpected results
  • Reusing the generated code in your own scripts

Requirements

  • Python 3.8+
  • GeoPandas
  • LiteLLM
  • Matplotlib
  • Folium

License

MIT + Commercial Platform Restriction (see LICENSE.md)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

geopandas_ai-0.0.3.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

geopandas_ai-0.0.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file geopandas_ai-0.0.3.tar.gz.

File metadata

  • Download URL: geopandas_ai-0.0.3.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for geopandas_ai-0.0.3.tar.gz
Algorithm Hash digest
SHA256 486816383e835dc7c556986b31e80610244d0535c0cf64b6af76306b8509429c
MD5 5ffff4ff3902ea6001b9d1ffe1843b1e
BLAKE2b-256 2093b58ec941bedb941ce27a2282df1ea3f3410657c5e6d6bb0768885ae8f084

See more details on using hashes here.

Provenance

The following attestation bundles were made for geopandas_ai-0.0.3.tar.gz:

Publisher: python-publish.yml on GaspardMerten/geopandas-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file geopandas_ai-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: geopandas_ai-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for geopandas_ai-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e7768e2268bed7dd33ea26dfcb8a70650dc3d6b4d0f5496c068f04c7ba89fe16
MD5 5c045218f1a03a34d3fb16a5e936fa88
BLAKE2b-256 85afd205d07e10fd0d7b6f035f89634a567d65c662846d8bdd50a8c967b0c433

See more details on using hashes here.

Provenance

The following attestation bundles were made for geopandas_ai-0.0.3-py3-none-any.whl:

Publisher: python-publish.yml on GaspardMerten/geopandas-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page