No project description provided
Project description
RetailTree
RetailTree is a Python library designed for efficient management and querying of spatial data utilizing a tree-based data structure. Specifically, RetailTree employs a VP (Vantage Point) tree for optimized spatial data management.
Key Features
- Nearest Neighbor Search: RetailTree enables finding the nearest neighbors in 2D space.
- Tree-Based Structure: Utilizes a VP tree for optimized spatial data management.
- Top, Right, Left, and Bottom Annotations: Supports retrieval of annotations based on their relative positions.
- Annotations within Angle Range: Provides functionality to retrieve annotations within a specified angle range relative to a reference point.
Installation
You can install retailTree via pip:
pip install retailtree
Usage
Import necessary modules and functions
# Imports
from retailtree import RetailTree, Annotation
from retailtree.utils.dist_func import manhattan, euclidean
import json
Sample Usage 1: Creating Annotations with Annotation Class using a sample JSON file
# Define the path to the JSON file containing annotations
file_path = './tests/test_data/test_data.json'
# Open and load the JSON file
with open(file_path, 'r') as file:
annotations = json.load(file)
# Initialize a RetailTree object
rt = RetailTree()
# Iterate over the loaded annotations and create Annotation objects
for ann in annotations:
# Create an Annotation object with the required properties
ann_obj = Annotation(id=ann['id'], x_min=ann['x_min'], y_min=ann['y_min'], x_max=ann['x_max'], y_max=ann['y_max'])
# Add the created Annotation object to the RetailTree
rt.add_annotation(ann_obj)
OR
Sample Usage 2: Creating Annotations with Annotation Class
# Create annotation object
ann1 = Annotation(id=1, x_min=2, y_min=1, x_max=3, y_max=2)
ann2 = Annotation(id=2, x_min=1, y_min=2, x_max=2, y_max=3)
ann3 = Annotation(id=3, x_min=2, y_min=2, x_max=3, y_max=3)
ann4 = Annotation(id=4, x_min=3, y_min=2, x_max=4, y_max=3)
ann5 = Annotation(id=5, x_min=2, y_min=3, x_max=3, y_max=4)
annotations = [ann1, ann2, ann3, ann4, ann5]
# Create retailtree object
rt = RetailTree()
# Adding annotations to retailtree
for ann in annotations:
rt.add_annotation(ann)
Building the Tree and Querying
Building the Tree
# Build the retail tree structure using the euclidean distance function
rt.build_tree(dist_func=euclidean)
Querying the Tree
# Retrieve and print annotations within a radius.
print(rt.neighbors(id=3, radius=1))
# Retrieve and print the Top, Bottom, Left, and Right neighboring annotations.
print(rt.TBLR(id=3, radius=1, overlap=0.5))
# Retrieve and print neighboring annotations of the annotation.
print(rt.neighbors_wa(id=3, radius=2, amin=0, amax=180))
# Retrieve and print the coordinates of the annotation.
print(rt.get(id=3).get_coords())
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
retailtree-1.3.tar.gz
(9.2 kB
view details)
Built Distribution
retailtree-1.3-py3-none-any.whl
(11.8 kB
view details)
File details
Details for the file retailtree-1.3.tar.gz
.
File metadata
- Download URL: retailtree-1.3.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d9103d39e6f639aa429d37e4e1b86544573ba0e07cbac2ec9d465d01f4a9ebf |
|
MD5 | ed0e67fc4a3b374b0adf60ee75f897fd |
|
BLAKE2b-256 | 5a298c25b50f281b6ac60cd12cf0dde788b6620fc57b28047d3ceebca996ca3c |
File details
Details for the file retailtree-1.3-py3-none-any.whl
.
File metadata
- Download URL: retailtree-1.3-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0b4a1a7a687cb704dfe5d4ca6736b5f8b0f905214c1af66908cc3586cfd277f |
|
MD5 | 60bef2c91e883ab9394212d9645c2b41 |
|
BLAKE2b-256 | e03630117014053f7e9f07d039cfba94885a6151e1e087c9b94e864398a83562 |