Fuzzy Granular-Ball and OPRAm-based spatial query answering framework
Project description
FGB-OPRAm (Fuzzy Granular-Ball and OPRAm Spatial Query Answering)
Package Name: fgb-opram
Version: 0.1.0
Author: Bongjae Kwon bongjae.kwon@snu.ac.kr
GitHub: https://github.com/bongjaekwon/FGB-OPRAm-SQAUE
Overview
The fgb-opram package integrates the Fuzzy Granular-Ball model with OPRAm (Oriented Point Relation Algebra modulo m) directional calculus
and fuzzy RCC-8 (Region Connection Calculus) topology. It enables robust spatial query answering under uncertainty.
Key Features
- GranularBall: A class representing a fuzzy spatial region using a Gaussian membership function.
- fuzzy_overlap and compute_fuzzy_rcc8: Functions to compute fuzzy intersection, union, and RCC-8 topological relations between two regions.
- opram_direction, opram_converse, opram_composition: OPRAm-based directional reasoning utilities.
- SpatialQueryEngine: Engine that produces pairwise spatial relations (direction + topology) among multiple fuzzy regions.
- visualize_fuzzy_balls: A Matplotlib-based function to visualize two fuzzy regions and their overlap.
- GUI Example: A Tkinter-based window that redirects stdout to a scrolling text widget, demonstrating the entire pipeline.
Installation
From PyPI
pip install fgb-opram
From Source (Development Mode)
git clone https://github.com/bongjaekwon/FGB-OPRAm-SQAUE.git
cd FGB-OPRAm-SQAUE
pip install .
Usage Example
from fgb_opram import GranularBall, opram_direction, compute_fuzzy_rcc8
# Create two fuzzy regions
ballA = GranularBall(center=(37.5651, 126.9895), sigma=0.5)
ballB = GranularBall(center=(37.5670, 126.9800), sigma=0.5)
# Compute membership of a point
muA = ballA.membership((37.5675, 126.9810))
muB = ballB.membership((37.5675, 126.9810))
print(f"Ball A Membership: {muA:.4f}, Ball B Membership: {muB:.4f}")
# Compute fuzzy RCC-8 topological relations
rcc8_relations = compute_fuzzy_rcc8(ballA, ballB)
print("Fuzzy RCC-8 memberships:", rcc8_relations)
# Compute OPRAm direction (m=2 → 8 directions)
direction_label = opram_direction(ballA.center, ballB.center, m=2)
print("OPRAm-2 direction from A to B:", direction_label)
GUI Example
After installation, run the following command in your terminal to launch the GUI example:
fgb_opram_gui
This will open a Tkinter window that prints spatial reasoning results (memberships, overlap, RCC-8, OPRAm, etc.) into a scrolling text widget and displays a Matplotlib plot of two fuzzy regions.
License
This project is licensed under the MIT License. See the LICENSE file for details.
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
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 fgb_opram-0.1.0.tar.gz.
File metadata
- Download URL: fgb_opram-0.1.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46f21c3a43ff1a2c4138945a8cc6e931579e8df5c13c4d6d68c8443451ca8f5c
|
|
| MD5 |
ba2bd2a36d6de207d24c3dcdb6c68fc1
|
|
| BLAKE2b-256 |
385d3567204ef6fae6e732697c05bbff9d5285ffd7f5d8dfcd8757c91ce6200e
|
File details
Details for the file fgb_opram-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fgb_opram-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c6712892c65a91d9492508cf221802f799e881295c3fe372aa407720356730b
|
|
| MD5 |
86cde6e1b3ec61963ff07da95192dcf8
|
|
| BLAKE2b-256 |
69a41d0c183e1807797c216a1d1baa90619ca6fe8594ebd5b599713ab6d242af
|