Выделив площадь подлежащую вычислению для чего использую простой графический элемент.
Получив массив значение пикселей растра начинаю расчет значений которые ячеек которые лежат внутри полигона остальные NoData:
For i = 0 To pRasterProps.Width - 1
For j = 0 To pRasterProps.Height - 1
Xr = pRasterProps.Extent.XMin + i * pRasterProps.MeanCellSize.x
Yr = pRasterProps.Extent.YMax - j * pRasterProps.MeanCellSize.y
pPoint.Project pRasterProps.SpatialReference
pPoint.PutCoords Xr, Yr
If bFunction(pPolygon, pPoint) = True Then
pPixelData(i, j) = CallcVal(pPixelData(i, j))
Else
pPixelData(i, j) = pRasterProps.NoDataValue
End If
Next j
Next i
функция bFunction определяет принадлежит ли текущий пиксель полигону
Function bFunction(pPolygon As IPolygon, pPoint As IPoint) As Boolean
Dim pCurve As ICurve
Dim TempPoint As IPoint
Set TempPoint = New Point
Dim distAlong As Double, distFrom As Double
Dim bRightHandSide As Boolean
Set pCurve = pPolygon
pCurve.QueryPointAndDistance 0, pPoint, False, TempPoint, distAlong, distFrom, bRightHandSide
bFunction = bRightHandSide
Set TempPoint = Nothing
Set pCurve = Nothing
End Function