Skip to main content

A tool for parsing and visualizing AGV layouts from LIF files.

Project description

๐Ÿš€ LIFReader: Visualize and Understand AGV Layouts ๐Ÿ—บ๏ธ

License Python Version Dependencies Code Style

โœจ Overview

LIFReader is a powerful Python tool designed to parse, visualize, and analyze AGV (Automated Guided Vehicle) layouts defined in the Layout Interchange Format (LIF). Imagine effortlessly transforming complex AGV track layouts into clear, insightful visualizations โ€“ that's what LIFReader empowers you to do!

Inspired by the VDA 5050 standard, LIFReader provides a streamlined way to understand and work with AGV systems. Whether you're an integrator, system designer, or researcher, LIFReader offers a valuable toolkit for navigating the world of automated vehicle layouts.

๐ŸŒŸ Key Features

  • Effortless LIF Parsing: Seamlessly converts LIF files into a structured graph representation.
  • Stunning Visualizations: Transforms AGV layouts into easily understandable visual maps using Matplotlib.
  • Fully Configurable: Customize visualization settings (colors, node sizes, labels) via a simple config.json file.
  • Logging Support: Track script activity with comprehensive logging for debugging and analysis.
  • Lightweight and Modular: Easy to integrate into existing projects and workflows.

๐Ÿ› ๏ธ Installation

Get LIFReader up and running in a few simple steps:

  1. Clone the repository:

    git clone https://github.com/your-username/LIFReader.git
    cd LIFReader
    
  2. Install the dependencies:

    pip install networkx matplotlib pydantic
    

๐Ÿš€ Quick Start

Ready to visualize your AGV layout? Follow these steps:

  1. Configure config.json:

    • Update the lif_file path in config.json to point to your LIF file.
    • Customize graph appearance in the graph_settings section.
  2. Run the script:

    python main.py
    

    โœจ Voila! โœจ You'll see a Matplotlib window displaying your AGV layout. An image file is created by the script to the file path you provided in the filepaths section.

โš™๏ธ Configuration

The config.json file puts you in control! Here's a breakdown of the key settings:

  • file_paths: Specify file locations.
    • lif_file: Path to your LIF JSON file.
    • output_graph: (Optional) Path to save the visualization as a PNG image.
  • graph_settings: Customize the look and feel of the graph.
    • node_size: Size of nodes.
    • node_color: Color of nodes.
    • with_labels: Show/hide node labels.
    • edge_color: Color of edges.
    • edge_width: Width of edges.
    • edge_alpha: Edge transparency.
    • edge_style: Edge line style ("solid", "dashed", etc.).
    • edge_connectionstyle: Edge curvature ("-" for straight lines).
  • logging: Configure logging behavior.
    • log_level: Set the logging level ("INFO", "DEBUG", "WARNING", "ERROR").
    • log_file: Specify the log file path.
  • command_line_args: Enable or disable features.
    • lif: Enable LIF parsing.
    • visualize: Enable graph visualization.

๐Ÿ—๏ธ Project Structure

LIFReader is thoughtfully organized for clarity and maintainability:

LIFReader/
โ”œโ”€โ”€ lif_reader/
โ”‚ โ”œโ”€โ”€ init.py
โ”‚ โ”œโ”€โ”€ json_reader.py
โ”‚ โ”œโ”€โ”€ graph/
โ”‚ โ”‚ โ”œโ”€โ”€ init.py
โ”‚ โ”‚ โ”œโ”€โ”€ graph_renderer.py
โ”‚ โ”‚ โ”œโ”€โ”€ lif_graph.py
โ”‚ โ”œโ”€โ”€ models/
โ”‚ โ”‚ โ”œโ”€โ”€ init.py
โ”‚ โ”‚ โ”œโ”€โ”€ action.py
โ”‚ โ”‚ โ”œโ”€โ”€ action_parameter.py
โ”‚ โ”‚ โ”œโ”€โ”€ control_point.py
โ”‚ โ”‚ โ”œโ”€โ”€ edge.py
โ”‚ โ”‚ โ”œโ”€โ”€ layout.py
โ”‚ โ”‚ โ”œโ”€โ”€ lif.py
โ”‚ โ”‚ โ”œโ”€โ”€ load_restriction.py
โ”‚ โ”‚ โ”œโ”€โ”€ meta_information.py
โ”‚ โ”‚ โ”œโ”€โ”€ node.py
โ”‚ โ”‚ โ”œโ”€โ”€ station.py
โ”‚ โ”‚ โ”œโ”€โ”€ trajectory.py
โ”‚ โ”‚ โ”œโ”€โ”€ vehicle_type_edge_property.py
โ”‚ โ”‚ โ”œโ”€โ”€ vehicle_type_node_property.py
โ”‚ โ”œโ”€โ”€ utils/
โ”‚ โ”‚ โ”œโ”€โ”€ init.py
โ”‚ โ”‚ โ”œโ”€โ”€ config_loader.py
โ”œโ”€โ”€ files/
โ”‚ โ”œโ”€โ”€ example2.json
โ”œโ”€โ”€ logs/
โ”‚ โ”œโ”€โ”€ lif_reader.log
โ”œโ”€โ”€ config.json
โ”œโ”€โ”€ main.py
โ”œโ”€โ”€ requirements.txt
โ”œโ”€โ”€ setup.py
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md


๐ŸŽฏ Contributing

LIFReader thrives on community contributions! Whether you have bug fixes, new features, or documentation improvements, we welcome your input.

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Create a new Pull Request.

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgements

  • This project was created according to VDMA.
  • Thanks to the open-source community for providing valuable libraries and resources.

โญ๏ธ Support & Call-to-Action

If you find this project useful, please consider:

  • Starring the repository โญ๏ธ
  • Forking the project to contribute enhancements
  • Following for updates on future improvements

Your engagement helps increase visibility and encourages further collaboration!


Happy coding! ๐Ÿš€โœจ

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

lifreader-1.0.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

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

lifreader-1.0.0-py3-none-any.whl (19.4 kB view details)

Uploaded Python 3

File details

Details for the file lifreader-1.0.0.tar.gz.

File metadata

  • Download URL: lifreader-1.0.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for lifreader-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1ca6433d339c09c9bc613a31d5b489fdd05904903f678336319e915ce2e16bc2
MD5 928963dc505470a19f1021fcbaa92443
BLAKE2b-256 26443731f6f9a20c683d06dc68fa6b602bb8412d5d7096f01193cebf1afa4603

See more details on using hashes here.

Provenance

The following attestation bundles were made for lifreader-1.0.0.tar.gz:

Publisher: python-publish.yml on DadaNanjesha/LIFReader

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lifreader-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: lifreader-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for lifreader-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d49ff4bf81514835b3d1d2ef75f436d3ccc9156b48d7dcec71a1db13799a201b
MD5 c77bc5ac118f1df7e6578fdb1816c49e
BLAKE2b-256 a8032228e5fe2dc08e275c5a7c21f46294c978f04c1b28ec790b64e340b88a2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for lifreader-1.0.0-py3-none-any.whl:

Publisher: python-publish.yml on DadaNanjesha/LIFReader

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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