Pixel depth interoperabilty

941
2
03-17-2021 07:37 AM
santiagoramos
New Contributor II

Hello everyone,

 

I have a doubt I would like to clarify. Is there such a thing as pixel depth interoperability? 

What I want to know is if when executing a geoprocessing tool on a raster with an specific pixel depth, setting the output pixel type to a different depth would that make any difference to the final result? Or the results would be based on the input raster pixel depth?

Sorry if this is a silly question, I haven't found enough information about this topic.

Best regards,

Santiago 

Tags (3)
0 Kudos
2 Replies
Tim_McGinnes
Occasional Contributor III

As far as I know, you can't choose a output pixel depth when using most geoprocessing tools. There are some exceptions, for example the Copy Raster tool.

The pixel depth (8 bit\16 bit etc.) and type (integer\floating etc.) can however be changed automatically by a tool. This is discussed for example on this page

For certain tools, the type of the output is determined by the types of all of the inputs. For example, if the tool takes several input rasters, and all of them are integer save for one that is floating point, the output raster would be floating point. When the output is floating point, fewer of the raster storage environments may be supported.

And if you add NoData to an existing raster it can also change the pixel depth: Link

Accordingly, when NoData is added to a raster that already has a full bit range (meaning that there is at least one cell in the raster extent occupying all the values in the bit range, for example, when 0 to 255 are all represented), it is promoted to the next higher bit depth. For example, a hillshade grid with cell values of 0 to 255 (which would otherwise fit within the 8 bit range), that also contains some NoData cells, is represented as unsigned 16 bit.

If you choose to change a rasters bit depth then it can lead to loss of precision (going to integer from floating or unsigned to signed for example). There may be other issues as well.

Hope that helped!

0 Kudos
santiagoramos
New Contributor II

Hi @Tim_McGinnes,

Thank you for your answer! Sorry, I didn't get back at it earlier. 

From what you mentioned, a change in the pixel depth given if the values exceed the maximun capacity, happens automatically. In my case, I am working with raster files covering 50.000+km2, with a 32 bit depth data type and using the flow direction and flow accumulation tools from the spatial analyst. It happens that although I set the output data type to 64 bit of pixel depth it seems like it is yielding values limited to the 32 bit, like it wouldn't be able to process the data as 64 bit. So another question I have is what does happen when we change the output data type? Is it like an embedded 'Copy Raster' function executed at the end of the process? 

If I get any further updates I will comment them here, or if you have any other ideas, they are very welcomed.

Best regards,

Santiago

0 Kudos