Skip to main content

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())

Metadata

Release files for retailtree 1.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for retailtree 1.3.3
File Size Uploaded
retailtree-1.3.3.tar.gz 9.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for retailtree 1.3.3
File Interpreter ABI Platform
retailtree-1.3.3-py3-none-any.whl Python 3 none any Details

Total release size: 21.7 kB

Release files / retailtree-1.3.3.tar.gz

Download URL retailtree-1.3.3.tar.gz
Size 9.5 kB
Tags Source
SHA-256 checksum
How to use checksums
30ad76a6002ed683361abf93b5cfb0d0466490b7311afc08de0a1d77f8e735d3
BLAKE2b-256 checksum
How to use checksums
35ee800f5590350f39c067b2f45f18d309a8b4e1dd3b33c05ebf4d2049185f31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 3, 2025.

Transparency log

Release files / retailtree-1.3.3-py3-none-any.whl

Download URL retailtree-1.3.3-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bcea44a7a6003507196eca3d787bed46af740604bed22830e65ad7c4a121baa5
BLAKE2b-256 checksum
How to use checksums
801ea4322ce280d09eb720b45eb5cd82d10a2ad1efc21f8b56b06fae8298ad78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 3, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.3 This release

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3

2 release files

1.2

2 release files

1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page