tr_mapping = {
    'BETRIEBSTAG': 'TRIP_DATE',
    'FAHRT_BEZEICHNER': 'TRIP_ID',
    'BETREIBER_ID': 'OPERATOR_ID',
    'BETREIBER_ABK': 'OPERATOR_SHORT_NAME',
    'BETREIBER_NAME': 'OPERATOR_NAME',
    'PRODUKT_ID': 'TRANSPORT_TYPE',
    'LINIEN_ID': 'LINE_ID', # TRAIN_NB
    'LINIEN_TEXT': 'LINE_TYPE', #RE, IC, IR
    'UMLAUF_ID': 'CYCLE_ID',
    'VERKEHRSMITTEL_TEXT': 'TRANSPORT_TYPE',
    'ZUSATZFAHRT_TF': 'IS_ADDITIONAL_TRIP',
    'FAELLT_AUS_TF': 'HAS_TRIP_FAILED',
    'BPUIC': 'BPUIC', #UNKOWN
    'HALTESTELLEN_NAME': 'STOP_STATION_NAME',
    'ANKUNFTSZEIT': 'ARRIVAL_TIME',
    'AN_PROGNOSE': 'ACTUAL_ARRIVAL_TIME', #When AN_PROGNOSE_STATUS == GESCHAETZT
    'AN_PROGNOSE_STATUS': 'ACTUAL_ARRIVAL_TIME_STATUS',
    'ABFAHRTSZEIT': 'DEPARTURE_TIME',
    'AB_PROGNOSE': 'ACTUAL_DEPARTURE_TIME',
    'AB_PROGNOSE_STATUS':'ACTUAL_DEPARTURE_TIME_STATUS',
    'DURCHFAHRT_TF': 'PASS_THROUGH' #true if the transport does not stop there
}

def translate(df):
    return df.rename(columns=tr_mapping)