Skip to main content

Orange GIS

Orange GIS is an Orange add-on for loading, transforming, analysing, and visualising geospatial data. The distribution name is orange-gis; its Python package is orangecontrib.orange_gis because Python module names cannot contain hyphens.

Version 0.4 targets Orange 3.40 and Python 3.11 or newer. It contains 30 Orange widgets, including local-LLM toponym extraction through Ollama.

Installation

When the package is published, install orange-gis through Orange's Options → Add-ons interface. For a local wheel, select the generated orange_gis-0.4.0-py3-none-any.whl in the same interface.

For development, always run pip with the Python interpreter that belongs to the target Orange installation:

& "<orange-python>" -m pip install -e ".[dev]"

The core package does not force-install Orange Text and its large language resources. Install Orange3-Text separately through Options → Add-ons for the workshop's word-cloud flow and the Toponym to Corpus widget, or use:

& "<orange-python>" -m pip install "orange-gis[text]"

Without Orange Text, the remaining Orange GIS widgets still load; Toponym to Corpus displays a focused installation message when used.

GeoPandas and standalone Orange

GeoPandas remains the supported spatial-table backend in 0.4. Removing it would not remove the compiled GEOS, PROJ, and GDAL/OGR capabilities needed by the GIS widgets. Orange GIS therefore declares GeoPandas together with Shapely, PyProj, and Pyogrio explicitly and uses Pyogrio for vector-file I/O.

On most supported Windows, macOS, and Linux/Python combinations pip installs binary wheels. If the Orange Add-ons installation fails, check the exact Orange Python environment instead of installing packages into another Python:

& "<orange-python>" -m pip install --only-binary=:all: `
  "shapely>=2,<3" "pyproj>=3.6,<4" "pyogrio>=0.8,<1" "geopandas>=1,<2"
& "<orange-python>" -m orangecontrib.orange_gis.diagnostics

The first command deliberately fails when a compatible binary wheel is not available; it does not attempt a fragile local GDAL build. The diagnostic command reports the interpreter and the import status of Orange, GeoPandas, Pyogrio, Shapely, and PyProj.

The dependency design and the criteria for any future non-GeoPandas backend are documented in docs/DEPENDENCY_STRATEGY.md.

Local Ollama toponym extraction

The Ollama Toponym Extraction widget sends text only to the configured Ollama server. The default is the local API at http://127.0.0.1:11434; no cloud API key or Python Ollama client is required.

Before the first run:

  1. Install Ollama from https://ollama.com/download and restart Orange.
  2. Download the default multilingual model with ollama pull qwen3:4b, or enter another installed model tag in the widget.
  3. Connect an Orange table, select a string column, and run the widget.

Immediately before extraction, the widget checks the API and installed model list. It shows a specific popup when Ollama is not installed, when the local server is stopped, or when the selected model has not been downloaded. Ollama's structured-output JSON schema is used for the result. Models are not downloaded automatically because model files can be several gigabytes.

Map architecture

Interactive maps remain embedded in the Orange widget with QWebEngineView. One in-process HTTP service is shared by all open map widgets:

  1. The first map widget starts a server bound to 127.0.0.1 on a random port.
  2. Every widget receives a private session ID and random token.
  3. QWebEngineView loads the map over HTTP.
  4. Marker events return as token-protected JSON POST requests.
  5. Closing the last map widget schedules automatic server shutdown.

There is no server subprocess, console window, iframe wrapper, temporary HTML file, or Qt WebChannel object.

Package layout

  • orangecontrib.orange_gis.geo: GeoDataFrame validation and CRS helpers
  • orangecontrib.orange_gis.llm: dependency-free local Ollama API client
  • orangecontrib.orange_gis.web: loopback map server and web panel
  • orangecontrib.orange_gis.widgets: 30 Orange widgets and resources
  • tests: metadata, map-server, table, and Ollama-client tests

All Qt imports go through AnyQt. Result-producing text widgets retain the source Orange table before appending their result columns.

Build and validation

& "<orange-python>" -m pytest
& "<orange-python>" -m build
& "<orange-python>" -m twine check dist/*

See PUBLISHING.md for the TestPyPI, clean-Orange, and PyPI Trusted Publishing release gates.

Metadata

Release files for orange-gis 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for orange-gis 0.4.0
File Size Uploaded
orange_gis-0.4.0.tar.gz 293.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for orange-gis 0.4.0
File Interpreter ABI Platform
orange_gis-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 613.9 kB

Release files / orange_gis-0.4.0.tar.gz

Download URL orange_gis-0.4.0.tar.gz
Size 293.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c0577edebd0bda54a97ce824915d0162e4fc99a55edfc4937b79400781506deb
BLAKE2b-256 checksum
How to use checksums
183036b82d05d5e3cbb214365c4d63866bbe228702b352a1d8ee740dcc2feacb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / orange_gis-0.4.0-py3-none-any.whl

Download URL orange_gis-0.4.0-py3-none-any.whl
Size 320.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cbf2c171711ac4426ecc2a92378485df69e185e5c65cb6e33c396eb6a8e4623c
BLAKE2b-256 checksum
How to use checksums
025ea570b7e77ad1bfc9f8dba0e9c45ce7ab2fddd03a62708a51081101794adf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page