I'm a forest owner and have information about my forest areas in ESRI shapefile format, in ETRS-TM35FIN coordinate system. I managed to create a text dump about the forest area in the following style:

```
Shape:10 (Polygon)  nVertices=831, nParts=1
  Bounds:(365190.963,6785661.028, 0)
      to (372638.972,6788929.792, 0)
     (366426.668,6787577.830, 0) Ring
     (366426.948,6787576.866, 0)
     (366427.680,6787575.980, 0)
     (366428.396,6787574.551, 0)
     ...
     (366426.668,6787577.830, 0)

```

(the data has been anonymized, by the way, so if it doesn't look like valid data in ETRS-TM35FIN system, I subtracted a random offset from x/y values, same for each x, same for each y)

I also downloaded a GeoTIFF file which contains the amount of trees in m3 / hectare for each pixel.

I would like to calculate the average m3 / hectare value inside my forest area, discarding all information about neighboring forest areas.

How to do this? Is there some existing software that is able to load GeoTIFF data and calculate averages within ESRI shapefile polygons? Do I have to write the software on my own? I'm a very capable software developer, so given pointers to the right direction (i.e. suitable libraries), I'm probably able to write the software required to calculate the average.

I'd like to restrict answers to free and very cheap software, i.e. I'm not willing to pay more than $100 for the required software, and I suspect many GIS software systems are far more expensive than that.