transit_model
transit_model
is a Rust crate managing transit data by implementing the NTFS
model v0.9.1
(used in navitia). See the
section NTFS: Level of Support for more details about the
level of support of the NTFS standard.
This repository also provides :
- (incomplete) GTFS to NTFS and (soon) NTFS to GTFS conversion.
- (incomplete) Generation of transfers. .
- Merge [NTFS] (https://github.com/CanalTP/ntfs-specification/blob/master/ntfs_fr.md).
Compile
Compile for KV1
The KV1 format needs a additional dependency called PROJ
which allows the transformation of localization coordinates.
crates.io provides a
proj
crate which is a binding to the C
library (version 6.1.0). This means you need PROJ version
6.1.0 installed on your system. See PROJ installation
instructions.
PROJ is configured as a feature
of the transit_model
crate. Once PROJ is installed on your machine, you need a
few more dependencies for building transit_model
.
apt install -y clang libssl-dev
cargo build --features=proj
Now, you should be able to use the converter kv12ntfs
. Enjoy!
Using PROJ
If you want to use PROJ in your code, you can if you
activate the proj
feature (cargo build --features=proj
). Then don't forget
to protect your code with #[cfg(feature="proj")]
.
Converting from GTFS to NTFS
NTFS needs a Dataset
and a Contributor
.
Default ones are provided by the command but you can pass a json file that contains some information for creating a Dataset
and a Contributor
as explained in the documentation.
Usage
Example
Tests
NTFS: Level of Support
transit_model
is partially supporting v0.9.1
of NTFS (see CHANGELOG in
French).
From the standard, some of the functionalities are not fully supported:
- Management of pathways introduced in version
v0.8
is not supported - No support for all periodic description (files
grid_calendars.txt
,grid_exception_dates.txt
,grid_periods.txt
andgrid_rel_calendar_line.txt
) - No support for Line Groups (files
line_groups.txt
andline_group_links.txt
)
License
Licensed under GNU General Public License v3.0