A tool for parsing and visualizing AGV layouts from LIF files.
Project description
๐ LIFReader: Visualize and Understand AGV Layouts ๐บ๏ธ
โจ 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.jsonfile. - 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:
-
Clone the repository:
git clone https://github.com/your-username/LIFReader.git cd LIFReader -
Install the dependencies:
pip install networkx matplotlib pydantic
๐ Quick Start
Ready to visualize your AGV layout? Follow these steps:
-
Configure
config.json:- Update the
lif_filepath inconfig.jsonto point to your LIF file. - Customize graph appearance in the
graph_settingssection.
- Update the
-
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.
- Fork the repository.
- Create a feature branch (
git checkout -b feature/your-feature). - Commit your changes (
git commit -am 'Add some feature'). - Push to the branch (
git push origin feature/your-feature). - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ca6433d339c09c9bc613a31d5b489fdd05904903f678336319e915ce2e16bc2
|
|
| MD5 |
928963dc505470a19f1021fcbaa92443
|
|
| BLAKE2b-256 |
26443731f6f9a20c683d06dc68fa6b602bb8412d5d7096f01193cebf1afa4603
|
Provenance
The following attestation bundles were made for lifreader-1.0.0.tar.gz:
Publisher:
python-publish.yml on DadaNanjesha/LIFReader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lifreader-1.0.0.tar.gz -
Subject digest:
1ca6433d339c09c9bc613a31d5b489fdd05904903f678336319e915ce2e16bc2 - Sigstore transparency entry: 181967581
- Sigstore integration time:
-
Permalink:
DadaNanjesha/LIFReader@b416da7ff763e929eb7f57a562ce1138d127d1fe -
Branch / Tag:
refs/tags/1.0.2 - Owner: https://github.com/DadaNanjesha
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@b416da7ff763e929eb7f57a562ce1138d127d1fe -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d49ff4bf81514835b3d1d2ef75f436d3ccc9156b48d7dcec71a1db13799a201b
|
|
| MD5 |
c77bc5ac118f1df7e6578fdb1816c49e
|
|
| BLAKE2b-256 |
a8032228e5fe2dc08e275c5a7c21f46294c978f04c1b28ec790b64e340b88a2a
|
Provenance
The following attestation bundles were made for lifreader-1.0.0-py3-none-any.whl:
Publisher:
python-publish.yml on DadaNanjesha/LIFReader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lifreader-1.0.0-py3-none-any.whl -
Subject digest:
d49ff4bf81514835b3d1d2ef75f436d3ccc9156b48d7dcec71a1db13799a201b - Sigstore transparency entry: 181967584
- Sigstore integration time:
-
Permalink:
DadaNanjesha/LIFReader@b416da7ff763e929eb7f57a562ce1138d127d1fe -
Branch / Tag:
refs/tags/1.0.2 - Owner: https://github.com/DadaNanjesha
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@b416da7ff763e929eb7f57a562ce1138d127d1fe -
Trigger Event:
release
-
Statement type: