One byte isn't sufficient for Elevation, as it can be higher than 256 even without taking what's underground into consideration.
The number of bytes you need per tile depends on the number of pieces of info you want to store for the tile, so instead of asking Japa to pull a guess out of a hat, state what you want to have available and determine the size of that.
Basic stuff:
- Elevation
- Rainfall
- Vegetation
- Drainage
- Salinity
- Savagery
- Evilness
- Volcanism
Most of those can affect the biome. At a guess, though, you only want Elevation.
Stuff on the tile:
- Tree trunk/branches, etc. Stored in a sparse enum that requires 2 bytes
- Tile "floor" material
- Vegetation, if any (tree trunk just says that, but not that it's an apple tree)
- Flowers and other "contaminants" both up in the trees and on the ground
- Tile material (soil/stone, air, water, magma, etc.)
- Critters occupying tile (and I'm not sure there's a limit to that list)
- Items stored on the tile (and a QSP can contain thousands)
- Smoke/mist, etc. Not sure where that is stored, but I would guess not as part of the above.
- "Ordinary" contaminats, such as blood (including critter producing it, as e.g. troll blood has a different color from insect ichor), vomit, booze, etc. I don't know if this list has a limit either.
The above is from the top of my head, so there should be stuff missing.
I'd start looking at the data provided by DFHack "probe" command for tile stuff and look at the various DF structures that may be of interest.