Skip to main content

Read OpenDRIVE files.

Project description

pyxodr

Tests Python 3.7+

Read OpenDRIVE files into a class structure that represents road objects as arrays of (x,y,z) coordinates rather than parameterised functions.

This class structure implements an API which should act as a middle layer between OpenDRIVE files and other applications, used to create road networks from their coordinates.

               

Installation

Install with pip:

pip install pyxodr

Testing

Testing is done on the OpenDRIVE example files. I have not included them in this repository as ASAM requires you enter your details to access them, so I assume they don't want them publically distributed through any means other than their own website. You can access them here.

You can also test on the networks for the OpenSCENARIO example files, obtainable here.

Once you've downloaded these files, create an example_networks subdirectory under tests and place them there.

.
├── docs
├── pyxodr
│   ├── geometries
│   ├── road_objects
│   └── utils
└── tests
    ├── example_networks
       ├── Ex_Lane-Border
          ...
       └── UC_Simple-X-Junction-TrafficLights
    ├── output_plots

and then you should be able to run the (Pytest) tests as normal:

pytest tests

Note: with version 1.7.0 of the OpenDRIVE spec, the Ex_LHT-Complex-X-Junction file throws a connection position ValueError on plotting with this module. I think this is due to a mistake in the file; older versions of this file work without throwing an error, and I believe that the direction of the reference line of road id==3 was reversed without swapping the corresponding contactPoint(s) - e.g. in road id==34, where it is listed as a successor with contactPoint=="start" despite the reference lines now traveling in opposite directions. If I'm incorrect about this and this is an error with the code, please raise an issue.

TODO

Large components of the OpenDRIVE spec are not currently supported, including:

  • Super Elevation / Road Shape (8.4.2 & 8.4.3)
  • Road surfaces (8.5)
  • Road markings (9.6)
  • Junction groups (10.7)
  • Objects (11)
  • Signals (12)
  • Railroads (13)
  • elementDir / elementS for road & junction linking.

Some of these will be supported in the future. Pull requests implementing (or partially implementing) any of these are welcome. Additionally if you find anything else unsupported by this repo which is not covered by the above list (and there will be lots), please raise an issue.

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

pyxodr-0.1.3.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

pyxodr-0.1.3-py3-none-any.whl (36.1 kB view details)

Uploaded Python 3

File details

Details for the file pyxodr-0.1.3.tar.gz.

File metadata

  • Download URL: pyxodr-0.1.3.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pyxodr-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e8625d976b08973a81daa0a9586042d0eb4d9f89fa76a3202481dcebd0600d9e
MD5 0029c240a18bf60c38f9f0d376f7b5bd
BLAKE2b-256 50a8d277c2180027974b373a037ff08a8f8293b393573693a0e82c89b40e415c

See more details on using hashes here.

File details

Details for the file pyxodr-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pyxodr-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 36.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pyxodr-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e77a0b29ad05dfdab7bafb8f82523cf6681ee4ece91fe0d87badf996b06a010d
MD5 a0c1d8ed48d51adb327c4df51f4b130d
BLAKE2b-256 577676e744f0299d0f2e1521cf0c951ace0f73b24c41050332e8777dd5ba9589

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page