At least 40 people have been killed and 21 are missing in Sri Lanka after floods and landslides triggered by heavy rains wreaked havoc this week, in one of its worst weather related disasters the country has seen in recent years.

Twenty-one people were killed in the central tea-growing district of Badulla when a landslide crashed onto their homes overnight, the Disaster Management Centre (DMC) said in a statement.

Videos uploaded to social media show houses being washed away as flood waters cascade through towns. Temporary shelters have been set up for affected families.

The country is now bracing itself for more severe weather on Friday as Cyclone Ditwah moves along its eastern coast.

Ditwah began as a deep depression off its eastern coast but later intensified into a cyclone. It is expected to make landfall in India.