Hi Mohammad,
A mapping between weather station identifier codes and location is available here. You could also use WL to find the nearest city to the position. Multiple stations could map the the same city though.
SeedRandom[12];
samplePositions =
allWeatherStations //
RandomSample[#, 50] & //
Map[{# -> EntityValue[#, "Position"]} &] //
DeleteCases[#, {_ -> _Missing}] & //
Map[#[[1, 1]] -> Flatten@{#[[1, 2]], GeoNearest["City", #[[1, 2]]]} &]
samplePositions // Take[#, 5] & // InputForm // Column[{#}] &
(*
{Entity["WeatherStation", "ESSV"] -> {GeoPosition[{57.663000000000004, 18.346}], Entity["City", {"Visby", "Gotland", "Sweden"}]},
Entity["WeatherStation", "NGFO"] -> {GeoPosition[{-5.667, 176.133}], Entity["City", {"Lolua", "Nanumea", "Tuvalu"}]},
Entity["WeatherStation", "KSSF"] -> {GeoPosition[{29.337, -98.471}], Entity["City", {"SanAntonio", "Texas", "UnitedStates"}]},
Entity["WeatherStation", "WMO94520"] -> {GeoPosition[{-28.979, 148.99}], Entity["City", {"Moree", "NewSouthWales", "Australia"}]},
Entity["WeatherStation", "CWQK"] -> {GeoPosition[{48.298, -123.532}], Entity["City", {"Sooke", "BritishColumbia", "Canada"}]}}
*)