Skip to content

imxInsights

imxInsights logo imxInsights logo

PyPI - Python Version PyPI - Status

GitHub Documentation Status PRs Welcome PyPI - License

Documentation: https://open-imx.github.io/imxInsights/

Source Code: https://github.com/open-imx/imxInsights

THIS LIBRARY is a personal project and therefore no responsibility for the functionality, accuracy, or usage of this library. THE PUBLIC retains full ownership and responsibility for the codebase.

Warning!

  • The goal of imxInsights is to extract information from imx files. Please note that modifying, adding, deleting, or altering data is beyond the scope of this module.
  • imxInsights explicit supports imx versions 1.2.4, 5.0.0, 10.0.0, 11.0.0 and 12.0.0.

Audience

The intended audience for imxInsights consists of end users with basic Python knowledge. Therefore, the module offers a minimalistic API that is thoroughly documented. We leverage the remarkable makedocs plugins to effortlessly generate a polished website from documentations and markdown files.

Features

  • ✅ IMX file import (1.2.4, 5.0.0, 12.0.0)
  • ✅ IMXExtension objects
  • ✅ GML & RailConnection Shapely geometry
  • ✅ Parent-child as objects
  • ✅ IMX data as Pandas DataFrame
  • ✅ IMX objects as GeoJSON (WGS or RD)
  • ✅ IMX compare between different IMX versions (situations, timeline)
  • ✅ Comparison result as Pandas DataFrame & GeoJSON
  • ✅ Color changes for better comparison
  • ✅ Excel compare output
  • ✅ Excel container compare chain

Open-IMX Initiative

imxInsights is part of the Open-IMX initiative, which is dedicated to enhancing the accessibility and usability of IMX data. This initiative aims to provide a collaborative environment for developers, data analysts and railway professionals to effectively work with IMX data.

🗪 Discord Community Channel 🤝

💥 We invite you to join the 👉 open-imx community on Discord.

This repository host the imx 12.0 implementation

Transitioning from version 1.2.4 / 5.0.0 to 12.0.0 of this library necessitates extensive changes and significant code rewriting due to fundamental shifts in how imx files are utilized.

New concept, breaking changes!

This project is currently under active development and is not yet in its final form. As such, there may be frequent changes, incomplete features, or potential instability.

- We recommend using the stable and feature richer 0.1.0 release on for imx versions "1.2.4" and "5.0.0".

Backlog and Roadmap

https://github.com/orgs/open-imx/projects/5/

Contributing

We welcome contributions from everyone! If you're interested in contributing to the project, please refer to our contribution guidelines for more information. For any questions or discussions, feel free to ask in our Discord channel.

Dependencies

dateparser, types-dateparser, deepdiff, jinja2, lxml, types-lxml, loguru, networkx, types-networkx, pandas, pandas-stubs, pyproj, shapely, types-shapely, tqdm, tqdm-stubs, xlsxwriter, geojson

Development dependencies

bumpversion, hatch, mkdocs, mkdocs-material, mkdocstrings, pre-commit, pytest, pytest-asyncio, pytest-cov, ruff, filelock, distlib, mypy