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).
cargo build --release
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!
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")]
.
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.
{
"contributor": {
"contributor_id" : "your_contributor_id",
"contributor_name" : "your_contributor_name",
"contributor_license" : "your_contributor_license",
"contributor_website" : "your_contributor_website"
},
"dataset": {
"dataset_id" : "your_dataset_id",
"dataset_desc" : "optional_dataset_desc",
"dataset_system" : "optional_dataset_system"
}
}
target/release/gtfs2ntfs -h
target/release/gtfs2ntfs -i path/to/input/directory -c path/to/config.json -p PREFIX -o path/to/output/directory
cargo test
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
)
Licensed under GNU General Public License v3.0