To create the sum (or percent) of woodland area from a polygon layer, I would convert the polygons to a fine resolution - say 1 meter - raster, then use the GRASS raster module r.resamp.stats to get a coarse resolution raster with 1 km. pixels. Use the "sum" method to get the total number of woodland pixels from the fine resolution grid into the coarse resolution.
The GRASS functions:
# Import woodland polygons into GRASS and convert to raster # Assumes the woodlands shapefile in projected in some meters based CRS v.in.ogr input=woodlands.shp output=woodlands g.region -p vect=woodlands res=1 v.to.rast woodlands output=woodlands_rast type=area # Now get the coarse resolution raster with g.region -p res=1000 r.resamp.stats woodlands_rast output=woodlands_coarse method=sum # Get percent by dividing by total area of each pixel and multiply by 100 r.mapcalc "woodland_pcent = (woodlands_coarse / 1000000)*100"
Note that there are some purpose built software for habitat analysis. For example you might want to check the LecoS plugin