A track monitoring system for mounting to a vehicle on a track comprising at least one rail, the track monitoring system comprising: a position and attitude measurement unit configured to determine a geographical position and attitude of the system during at least one pass of the vehicle on the track; a storage medium for storing track geometry data; a laser imaging and/or scanning unit configured to determine a position of the at least one rail relative to the track monitoring system, and a position of the at least one rail and surroundings relative to the track monitoring system during the at least one pass; a processor configured to determine, in the at least one pass, a first geographically referenced rail position based on the geographical position and attitude of the rail monitoring system and the position of the at least one rail relative to the system; determine, in the at least one pass, a second geographically referenced rail position based on the geographical position and attitude of the rail monitoring system and the position of the at least one rail and surroundings relative to the rail monitoring system; determine a third geographically referenced rail position based on the first and the second geographically referenced rail positions, and corresponding geographically referenced track geometry data; acquire, in a further pass, track geometry data associated with each position of the rail relative to the rail monitoring system, and the output of the position and attitude measurement unit; characterised in that the processor is further configured to update, based on the third geographically referenced position of the rail, the track geometry data acquired in the further pass, and store updated track geometry data to the storage medium. a position and attitude measurement unit configured to determine a geographical position and attitude of the system during at least one pass of the vehicle on the track; a storage medium for storing track geometry data; a laser imaging and/or scanning unit configured to determine a position of the at least one rail relative to the track monitoring system, and a position of the at least one rail and surroundings relative to the track monitoring system during the at least one pass; a processor configured to determine, in the at least one pass, a first geographically referenced rail position based on the geographical position and attitude of the rail monitoring system and the position of the at least one rail relative to the system; determine, in the at least one pass, a second geographically referenced rail position based on the geographical position and attitude of the rail monitoring system and the position of the at least one rail and surroundings relative to the rail monitoring system; determine a third geographically referenced rail position based on the first and the second geographically referenced rail positions, and corresponding geographically referenced track geometry data; acquire, in a further pass, track geometry data associated with each position of the rail relative to the rail monitoring system, and the output of the position and attitude measurement unit; determine, in the at least one pass, a first geographically referenced rail position based on the geographical position and attitude of the rail monitoring system and the position of the at least one rail relative to the system; determine, in the at least one pass, a second geographically referenced rail position based on the geographical position and attitude of the rail monitoring system and the position of the at least one rail and surroundings relative to the rail monitoring system; determine a third geographically referenced rail position based on the first and the second geographically referenced rail positions, and corresponding geographically referenced track geometry data; acquire, in a further pass, track geometry data associated with each position of the rail relative to the rail monitoring system, and the output of the position and attitude measurement unit; update, based on the third geographically referenced position of the rail, the track geometry data acquired in the further pass, and store updated track geometry data to the storage medium.