A Python script converting CFR (InfoFer) XML files to a SQLite database
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Kenneth Bruen 4fd2698947
Initial commit
3 years ago
datafiles Initial commit 3 years ago
.gitignore Initial commit 3 years ago
README.md Initial commit 3 years ago
convert.py Initial commit 3 years ago

README.md

CFR XML to SQL

Un script Python pentru convertirea fișierelor XML oferite de S.C. Informatica Feroviară S.A. într-o bază de date SQLite.

Cum se folosește

  • se plasează fișierele .xml în folderul datafiles
  • (opțional) se completează fișierul datafiles/mapping.json cu numele companiilor
  • se rulează convert.py:
# Unix
./convert.py
# Windows
python convert.py

Scriptul este scris pentru Python 3.

Schemă bază de date

Schema este validă pentru versiunea 2.

Coloanele fără tip de date sunt luate direct din XML (deci cel mai probabil tip text).

Tabel Meta

Coloană Tip de date Descriere
Versiune int Versiunea bazei de date (schema aceasta descrie versiunea 2)

Tabel Companii

Coloană Tip de date Descriere
Id int pk
NumeLegal text Numele oficial al companiei (ex: S.C. Companie S.R.L)
NumeComun text Numele după care este cunoscută compania (în general numele oficial fără prefix sau sufix; ex: Companie)

Tabel Trenuri

Coloană Tip de date Descriere
Number int pk
IdCompanie int fk Companii->Id
CategorieTren R/IR/etc.
KmCum int Lungimea totală a traseului în metri
Lungime int Lungimea trenului
Numar
Operator ? - Uneori conține un număr unic pentru un anumit operator, alteori este gol
Proprietar
Putere
Rang
Servicii
Tonaj

Tabel Trase

Coloană Tip de date Descriere
NumarTren int fk Trenuri->Number
Id int Id trasă (1, 2, ...)
Tip
CodStatieInitiala int fk Statii->CodStatie
CodStatieFinala int fk Statii->CodStatie

Tabel Statii

Coloană Tip de date Descriere
CodStatie int pk Codul folosit în setul de date
Denumire text Numele stației (ex: București Nord Gr.A)

Tabel ElementeTrasa

Coloană Tip de date Descriere
NumarTren int fk Trenuri->Number + Trase->NumarTren
IdTrasa int fk Trase->Id
Secventa int Ordinea secvenței în trasă (1, 2, ...)
Ajustari
CodStaDest fk Statii->CodStatie
CodStaOrigine fk Statii->CodStatie
DenStaDestinatie
DenStaOrigine
Km int Distanța în metri între stații (ex: 3022 -> 3022 m / 3 km)
Lungime int Lungimea trenului
OraP int Ora plecării (numărul de secunde de la 00:00:00 în ziua primei plecări)
OraS int Ora sosirii (numărul de secunde de la 00:00:00 în ziua primei plecări)
Rci
Rco
Restrictie
StationareSecunde int Numărul de secunde de staționare în stația origine
TipOprire
Tonaj
VitezaLivret int Viteza între stația origine și destinație în km/h