There is no easy way to do this - especially if the dam is an obscure one, or one that Wolfram doesn't have much data about. Why? Well we'd have to know a lot of entry points - such as, the outflow of the river, the height of the dam, the length of the dam etc. For much larger/well known dams, it is possible for us to get data relatively easily using the Dam
Entity.
Here is what it might look like if you want to find the area and volume of dams on a particular (well-known) river.
DamsOn[River_] :=
EntityClass["Dam", "River" -> SemanticInterpretation[River]] // EntityList
AssortDamsOn[River_] :=
ReverseSortBy[Table[{i, DamData[i, "Volume"]}, {i,DamsOn[River]}], Last]
Alternatively, if you want the volume of all of the tributaries as well
mississippiRiver =
EntityClass["River",
"Outflow" -> Entity["River", "MississippiRiver::mnr4z"]] // EntityList;
DamsMississippi =
FilteredEntityClass["Dam",
EntityFunction[
y, ! MissingQ[y["Position"]] &&
ContainsAny[y["River"],
Append[mississippiRiver,
Entity["River", "MississippiRiver::mnr4z"]]]]] // EntityList;
And we can create a beautiful graph of it using
GeoRegionValuePlot[EntityValue[DamsMississippi, "Volume", "EntityAssociation"],
AspectRatio -> 1, MissingStyle -> Transparent,
GeoBackground -> "Satellite"]
You also might want to look into CNNs for this sort of stuff. There are two excellent blog posts on predicting the scale of a satellite image - https://community.wolfram.com/groups/-/m/t/1732295 and https://community.wolfram.com/web/community/groups/-/m/t/1379645