Skip to main content

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.31
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), radius=1, sigma=0.5)
ballB = GranularBall(center=(37.5670, 126.9800), radius=1, 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

fgb_opram-0.1.31.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

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

fgb_opram-0.1.31-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file fgb_opram-0.1.31.tar.gz.

File metadata

  • Download URL: fgb_opram-0.1.31.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for fgb_opram-0.1.31.tar.gz
Algorithm Hash digest
SHA256 8e1291530b9b41f9fbd449b2812b2c19c7688da4639ded9e5f4442d4ac27bbae
MD5 ecd695bf19f2afa1b16d2ef57cbc986a
BLAKE2b-256 07fb4d6901d7dac380565580edb3d101e2def3c439442a2f13a70c8ca33ae56f

See more details on using hashes here.

File details

Details for the file fgb_opram-0.1.31-py3-none-any.whl.

File metadata

  • Download URL: fgb_opram-0.1.31-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for fgb_opram-0.1.31-py3-none-any.whl
Algorithm Hash digest
SHA256 ca9ba2dde693c617a998c6c618bdd36ccefc6427864f787b6c1a8866a1f47811
MD5 a19342505fbfb2b4f15fc0a6f1dd8d8f
BLAKE2b-256 0043f979e1b646848c123d3a6bb573fc3a27936bd05ff2d4df8e29a13cad8daa

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