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.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

fgb_opram-0.1.0.tar.gz (9.7 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.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

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

Hashes for fgb_opram-0.1.0.tar.gz
Algorithm Hash digest
SHA256 46f21c3a43ff1a2c4138945a8cc6e931579e8df5c13c4d6d68c8443451ca8f5c
MD5 ba2bd2a36d6de207d24c3dcdb6c68fc1
BLAKE2b-256 385d3567204ef6fae6e732697c05bbff9d5285ffd7f5d8dfcd8757c91ce6200e

See more details on using hashes here.

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

Hashes for fgb_opram-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8c6712892c65a91d9492508cf221802f799e881295c3fe372aa407720356730b
MD5 86cde6e1b3ec61963ff07da95192dcf8
BLAKE2b-256 69a41d0c183e1807797c216a1d1baa90619ca6fe8594ebd5b599713ab6d242af

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