The basis of what I am trying to do is determine what percent of forest cover is within a set of 1x1 km grid cells in arcmap. I originally attempted to do this using fishnet, tabulate area tool, and a vector layer for forest cover, but I got the error message "maximum record length has been exceeded" (if anyone knows a way to get around this without converting the vector layer to a raster, please feel free to also let me know). So, I decided to convert the vector forest cover layer to a raster and try to use the zonal statistics tool. Here, I run into problems where it seems that the numbers do not add up correctly.

I originally converted a vector forest cover layer to a raster layer. I have questions about the input for the zonal statistics table. For "input raster or feature zone data" I use my fishnet of 1x1 km2 cells, to identify the boundaries within which I want to determine the percent forest cover from the raster layer. Next, I put FID into the zone field, and I put the forest cover raster layer into the "input value raster" field. I choose mean to get the total number of pixel cells/area of forest in each grid cell. To then determine the percent forest in each grid cell, I know I could do this by just taking the number of cells of forest cover, dividing by 1000000 (in full grid cells, the total number of pixels in a 1x1 km2 grid cell) and multiplying by 100. But when I do this, the numbers for each grid cell do not appear correct, so I think something is going wrong along the way. I need help determining why the pixels are not adding up correctly.

Zonal Statistics input

  • How many features are you working with? Also, what format are your polygons in (shapefiles, gdb, etc.)? If you are using shapefiles, you may be running into a dBASE limit for your attributes. You can export your data to a file geodatabase to see if that resolves things. – Baltok Jan 22 at 21:19
  • Hi, thanks for your quick response! It is a polygon. I'm sorry, I'm not super well versed in GIS, so is there a way you can explain how to export the polygon layer to a file geodatabase, or direct me somewhere where I could receive more specific directions? Thanks so much! – Jordan Rogan Jan 22 at 22:47
  • Create File Geodatabase Link After creating the geodatabase, in ArcMap, right click on the layer in the Table of Contents, go to Data->Export Data in the pop up menu. In the Export dialog, go to the Browse button and navigate to the geodatabase you created. Type in a name for your layer (no spaces or special characters besides underscores). Click Save, then click OK. Add it to the Table of Contents and you should be good to go. You can have multiple layers in the geodatabase. – Baltok Jan 23 at 16:36
  • Hi, I created a file geodatabase as you mentioned and I didn't run into the "maximum record length has been exceeded" problem, so it worked, thank you! However, when I went to check to see that it added up correcly (I decided to use a file with all land cover classes, not just forest) some of the grid cells did not have land cover classes that the resulting table from tabulate area said were in the corresponding cell. I'm wondering if I am inputting the wrong values into the tabulate area dialog? Or misinterpreting the table? I can't add screenshots here so maybe I can ask a new question.. – Jordan Rogan Jan 24 at 16:49
  • You can check visually in ArcMap in a sample area to see if indeed those land classes are in the specified grid cells. How are you chopping up your fishnet grids by land cover classes? If both are vectors, you can use Intersect. Once you have that, you can calculate geometry for area, and divide it against your original grid cell area to get the proportions. – Baltok Jan 24 at 17:18

Try reclassifying your raster (Spatial Analyst > Reclass > Reclassify) so that every pixel that used to have a value (forested) gets a value of 1, and everything that didn't becomes 0.

Then, you could use Zonal Statistics with Sum to calculate how many forested pixels are in each zone (add up all the ones). Divide by the total number of pixels per zone and multiply by 100 as you say.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.