A Python package for integrating OpenGMS geographic model services.
Project description
PyGeoModel
PyGeoModel is a Python package for integrating OpenGMS geographic model services into Python-based urban data science workflows. It provides programmatic access to model-service discovery, metadata inspection, service invocation, task records, and result management. For exploratory notebook-based analysis, PyGeoModel also provides an optional Jupyter interface built on the same core API.
Installation
pip install PyGeoModel
Use the package in Python with:
from pygeomodel import GeoModeler
Core API
from pygeomodel import GeoModeler
modeler = GeoModeler()
models = modeler.search_models("photovoltaic")
model = modeler.get_model("Roof Photovoltaic Carbon Emission Reduction Potential Assessment Model")
print(model.description)
print(model.inputs)
print(model.outputs)
Model services can be invoked programmatically:
result = modeler.invoke(
"Roof Photovoltaic Carbon Emission Reduction Potential Assessment Model",
params={
"system_efficiency": 0.8,
"start_time": 201801,
"end_time": 201812,
"roof_vector_path": "data/rooftops.zip",
},
)
result.to_json("execution_record.json")
OpenGMS execution requires an access token:
export OGMS_TOKEN="your-token"
Optional endpoint overrides:
export OGMS_BASE_PORTAL_URL="http://222.192.7.75"
export OGMS_BASE_MANAGER_URL="http://222.192.7.75/managerServer"
export OGMS_BASE_DATA_URL="http://222.192.7.75/dataTransferServer"
Notebook Interface
modeler.show_models()
modeler.invoke_model("SWAT_Model")
The notebook interface renders model search, metadata inspection, parameter entry, task execution, and output display. It uses the same search_models(), get_model(), and invoke() functions as the programmatic API so GUI operations can be converted into Python dictionaries and execution records.
Recommendation and Q&A Records
recommendation = modeler.suggest_model(return_result=True)
recommendation.to_json("recommendation_record.json")
answer = modeler.ask_model("SWAT_Model", "What input data are required?")
answer.to_json("qa_record.json")
The recommendation service automatically builds notebook/data context and calls the configured Dify workflow. DIFY_API_KEY is required for suggest_model() because the context-aware recommendation logic is implemented in that workflow. Q&A uses OpenGMS model metadata and, when configured, an OpenAI-compatible web-enabled model.
Relation to OpenGMS
OpenGMS provides the model-service platform and online execution infrastructure. PyGeoModel is a Python client package that exposes OpenGMS model-service discovery, metadata inspection, task invocation, and result records to Python and notebook workflows.
Development
Run the lightweight test suite with:
python -m unittest discover -s tests
The source distribution should not include real API keys, local .env files, bytecode caches, generated C files, .pyd binaries, or previous build artifacts.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pygeomodel-1.0.5.tar.gz.
File metadata
- Download URL: pygeomodel-1.0.5.tar.gz
- Upload date:
- Size: 3.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1b6645370abefe14ab0fbb00cd0114f157b81b6f7ee14373382c9630ff02381
|
|
| MD5 |
8aa8e8728ae7e1129b893177e3593f51
|
|
| BLAKE2b-256 |
f6be36fca87be1a208e67ef68c773d8acbe52d3de0645c84cfb0d4ae30498fa4
|
File details
Details for the file pygeomodel-1.0.5-py3-none-any.whl.
File metadata
- Download URL: pygeomodel-1.0.5-py3-none-any.whl
- Upload date:
- Size: 4.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e42650ea440671cd93f75f2a053b0e5ff92a9caa92efcb7323422b3ad31e96cc
|
|
| MD5 |
8b6a929d130ec0824d9d445afe3d86af
|
|
| BLAKE2b-256 |
c98fc9339a0ca8586706c88064c81a003136c3dfa1189ebfdf9c47c012ce2aea
|