4

I'm using ArcGIS 10.2. I need to convert two rasters from 8bit unsigned to an 8bit signed raster so I can do a subtraction and get both positive and negative values.

I've tried to use the copy raster tool that allows you to set the raster pixel type, but it always comes out the other side as an unsigned raster.

I tried converting my GRID to a .tiff, then using the copy command, but the Copy Raster tool will only output a GRID. After converting and copying I still got an unsigned raster output.

enter image description here

2

Esri GRIDs are either 32bit signed integer or floating point. You don't need to do anything before subtracting. Paraphrased from the same help page @radouxju linked to:

Format     Description                   Supported data types 
Esri Grid  A proprietary Esri format     32-bit signed integer
           that supports 32-bit integer  32-bit floating point
           and 32-bit floating-point 
           raster grids. 

The "Bit depth capacity for supported export formats" table further down the page doesn't mean that GRIDs can be exported as 8 bit signed, it means that they have the bit depth capacity to store 8 bit signed data.

As to the copy raster tool only exporting GRIDs - it looks like you didn't add a '.tif' extension to your output path. The help states if you don't use an extension, the output will be a GRID.

  • Gahh I tried .tiff with an extra f. When I opened the layer properties it stated the raster was 8 Bit unsigned in GRID format. Since I was subtracting 2006 impervious surface from the 2011 layer and there were no negative numbers am I to assume that there was no afforestation or other removed impervious surface? – Roy May 7 '15 at 16:33
  • You could also download the NLCD 2006 to 2011 Percent Developed Imperviousness Change (66MB) dataset – user2856 May 7 '15 at 21:57
  • bingo! I'd only seen the 2001 to 2006 layer available. Thanks! – Roy May 7 '15 at 23:52
1

The valid range of values for 8bit unsigned is 0 - 255. The range for 8bit signed is -128 to 127. If you have values larger than 127 in the input you will need to use 16bit signed.

Try the outputs as 16_BIT_SIGNED. Set the scale_pixel_value to NONE.

  • I'm using NLCD percent impervious surface data which has a range of 0-100 integers only. – Roy May 6 '15 at 19:51
  • @Roy, What is the NoData value for your dataset? – Aaron May 6 '15 at 21:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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