I have a quick question about storage space in ArcGIS.

When I have limited storage space, I am trying to figure out which one on average takes up more space: multispectral images or classified GIS rasters?

My best guess is that since raster data typically takes up more storage space than vector data, for example, that the classified GIS rasters would take up more storage space.

  • There isn't any way to predict the storage of data without far more information than provided. – Vince Apr 11 '18 at 18:43

Assuming all rasters have the same x,y dimensions (number of pixels), that will depend on:

  • How many bands? More bands = more storage space, so multispectral rasters will probably take up more space

  • What is the raster data type? Byte data (8 bits, 1 byte per pixel) uses less storage than integer(12 or 16 bit, 2 bytes per pixel), which is in turn smaller than floating point (32 bits, 4 bytes per pixel).

If we imagine a modern multispectral image with 6 bands coded as 16 bit integer values, we have 6 bands * 4 bytes = 24 bytes per pixel. If we then classify this raster and represent class values as simple 8-bit values (limited to 0-255, but who has 256 classes?), we would have 1 band * 1 byte = 1 byte per pixel. So the multispectral raster would be 24 times larger on disk than the classified raster, for the same number of pixels.

On the other hand, if I had a 3-band multispectral file coded in 8-bit, then used these bands to calculate a vegetation index, and stored the results as decimal (float) values, I would go from 3 layers x 1 byte = 3 bytes per pixel to 1 layer x 4 bytes = 4 bytes per pixel, and my file size would increase, even though I have less bands.

The comparison of raster vs vector file size is much more complex. While raster file size is always number of pixels * number of bands * number of bytes per pixel, vector file size will depend on the number of polygons, the amount of nodes necessary for defining each polygon, the amount of attributes stored for each polygon, and the data type of each attribute (byte, integer, float, character). So there is no easy way to predict it.

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