I assume that what you call “DEM of the lake” is DEM of lake bottom and surrounding area.
If this a case, it is a few steps procedure main ones being calculation of lake bank altitude and average lake depth.
- Convert lake polygon to polyline, using feature to line tool
Set environment settings snap raster to DEM, cell size = one for DEM
and convert polyline to raster using any numeric field, output to
raster “BANK”. Use raster calculator expression:
Con(~IsNull(”BANK”),”DEM”)
Output to raster “bankZ”.
- Right click on bankZ, SOURCE and scroll to see mean value. This is
average altitude of lake bank (meanZ).
Create numeric field in polygon and populate it by meanZ. Convert
polygon to raster using that field, output “surfaceZ”.
Use raster calculator to calculate lake depth accounting for
imperfections in DEM and lake delineation.
Con(“surfaceZ”>”DEM”, “surfaceZ”-“DEM”,0)
Mean value of output is average lake depth. Now you can compute lake volume because lake area equal area of your polygon. Be careful with units