Skip to main content

The XLeitstelle model-driven application schema app.

Project description

XMAS-App

pipeline status Latest Release

The XLeistelle model-driven application schema app is a Python web application to edit and create data according to geo-spatial standards of the XLeistelle, e.g. XPlanung, XTrasse. It is based on NiceGUI for a graphical user interface and XPlan-Tools for the data model and respective functionality.

While it could be advanced to a standalone application, its current focus is integration in QGIS to provide attribute forms etc.

Features

  • Render attribute forms for features.
  • Create and edit features in combination with the corresponding QGIS Plugin.
  • Import GML documents into a database.
  • Export GML, JSON-FG or GPKG files from a databse.
  • Delete plans from a database.
  • Display and edit relations of plan objects in a tree view.

Installation

Container Image

Container images are available in the registry. See here for configuration.

Python >= v3.11

GDAL and its Python bindings are required, so you need to make sure the GDAL system library and Python package versions match. QGIS installations come with GDAL and a Python environment that can readily be used to install the app.

Install with pip, e.g. via OSGeo4W Shell:

pip install xmas-app

Pixi

This project uses Pixi for package management. To install this repo with a self-contained environment, run

git clone https://gitlab.opencode.de/xleitstelle/xmas-app.git
cd xmas-app
pixi install

Running

Preconditions

A Postgres DB with PostGIS extension and adequate permissions for the used role. If required tables were not previously created with xplan-tools, they will be generated on initialization.

For convenience, you can run

docker compose -f compose.yaml up -d

This will spin up a readily usable XMAS-App container with a PostGIS backend.

Modes

QGIS Plugin mode

If XPlan-GUI was installed in the QGIS Python environment, it can be started from the plugin panel. Configuration parameters are handled by the plugin.

Standalone mode

Starting in standalone mode requires some configuration parameters which have to be provided as an .env file or via environment variables. The database connection parameters can be either user name, password etc. or a service definition.

Variable Description Required Example
PGDATABASE name of the database (x) coretable
PGHOST host of the database (x) localhost
PGPORT port of the database (x) 55432
PGUSER user of the database (x) foo
PGPASSWORD password of the database user (x) bar
PGSERVICE the databas service to use (x) coretable
APP_PORT the port on which the app should run x 1337
APPSCHEMA the default appschema x xplan
APPSCHEMA_VERSION the default appschema's version x 6.0
XMAS_DB_SCHEMA the database schema to use myschema

First activate the pixi shell

pixi shell

then run

xmas-app

Optional: batch import test data to the database using xplan-tools

Test data can be downloaded from https://gitlab.opencode.de/xleitstelle/xplanung/testdaten, e.g. a ZIP archive with BP_Plans in v 6.0.

To import all .gml files at once, extract the archive and use:

(on Linux/Mac/Wsl Bash):

for f in <pfad>/bp/*.gml; do
  xplan-tools convert "$f" postgresql://postgres:postgres@localhost:55432/postgres
done

(on Windows:):

for %f in (*.gml) do xplan-tools convert "%f" postgresql://postgres:postgres@127.0.0.1:55432/postgres

License

The code in this repository is licensed under the EUPL-1.2-or-later

© XLeitstelle, 2025

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

xmas_app-0.16.2.tar.gz (68.6 kB view details)

Uploaded Source

Built Distribution

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

xmas_app-0.16.2-py3-none-any.whl (81.9 kB view details)

Uploaded Python 3

File details

Details for the file xmas_app-0.16.2.tar.gz.

File metadata

  • Download URL: xmas_app-0.16.2.tar.gz
  • Upload date:
  • Size: 68.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.12 Linux/5.4.0-205-generic

File hashes

Hashes for xmas_app-0.16.2.tar.gz
Algorithm Hash digest
SHA256 bb24405d23612ea983d31d2b56ab5d2278e068efca7bfceb4a4e28d25f5be8bf
MD5 a720b2d3bc387e1b7669a9b2016764f8
BLAKE2b-256 ea726d75e5e67c0927f88f7a1737e4ed8e2d888b54f670ef5f6958626923ccc8

See more details on using hashes here.

File details

Details for the file xmas_app-0.16.2-py3-none-any.whl.

File metadata

  • Download URL: xmas_app-0.16.2-py3-none-any.whl
  • Upload date:
  • Size: 81.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.12 Linux/5.4.0-205-generic

File hashes

Hashes for xmas_app-0.16.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0204d67b2155707d62842680e03d8f2e3c774e8ccdb2a5a8dcc619868283f1c6
MD5 7d23d314e686a22d66c03d1fd168f8f9
BLAKE2b-256 eef76b92c25c976f87d6adbcaf863e5adbf738a9547bfd72e3a80ac44a8a88d1

See more details on using hashes here.

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