Currently, i have a 32 bit float raster (.TIFF) and would like to convert it to JP2000 format. Is there a way to do this?

I have tried Copy Raster tool and Raster to Other format tool but both produce the error:

000446: Output file format with specified pixel type or number of bands or colormap is not supported.

My raster is single band without color map and 32 bit float. Here is the statistic of my raster:

  • Minimum: 493.33380126953
  • Maximum: 493.33380126953
  • Mean: 662.78674316406
  • Std Dev: 49.161709494491

And my desire precision is 3

  • I suggest you do a google search for "Convert tiff to jp2000". I got hundreds of pages on how to do it. Questions here need to show some research effort. I am going to recommend this question be closed due to lack of content. If you add content, the question will stay open - what have you tried? Where are you stuck? – jbalk Feb 13 '17 at 7:37
  • Sorry, i have updated my question since i think that the problem is come from "32 bit float" and is included in the question already – Thành Đào Ngọc Feb 13 '17 at 8:12
  • You have an ArcPy tag so please include a code snippet and the error that it produces (which should include a line number). If it is a tool dialog giving the error then please provide the parameter values and switch the ArcPy tag for ArcGIS Desktop. – PolyGeo Feb 13 '17 at 8:27
  • I have remove the arcpy tag and use arcgis instead, thank you very much. About the parameter it just require the input TIF and specify the output extension so i did not write down in the question. – Thành Đào Ngọc Feb 13 '17 at 9:05
  • @Luke I re-opened this, if you want to add a brief answer. – PolyGeo Feb 13 '17 at 10:52

Although the JPEG 2000 standard supports any bit depth (including 32 bit float), ArcGIS Desktop only supports 8 and 16 bit unsigned integer JPEG 2000 rasters.

To create an integer raster retaining N decimal places that you can convert to JPEG2000 use the following expression in the raster calculator:

Int("your_raster" * 10 ** N + 0.5)

For 3 decimal places (N=3):

Int("your_raster" * 10 ** 3 + 0.5)

However, this will produce values greater than the range of a 16bit unsigned int (0 - 65535). You'll either have to multiply by 10 and retain 1 decimal place precision, rescale your data, or find another format (or software that can write 32bit JP2).

| improve this answer | |
  • So is there a way to convert my raster to 16 bit unsigned and then to JP2000 Mr.Luke ? – Thành Đào Ngọc Feb 15 '17 at 2:42
  • Thank you very much Mr Luke, I have updated my above question – Thành Đào Ngọc Feb 15 '17 at 5:43
  • It still produce the ERROR 000446: Output file format with specified pixel type or number of bands or colormap is not supported. although now pixel is 16 bit unsigned int Mr Luke – Thành Đào Ngọc Feb 16 '17 at 3:15
  • Make sure you specify the pixel type parameter ad 16_BIT_UNSIGNED in the Copy Raster tool – user2856 Feb 16 '17 at 4:01
  • i'm sorry that i didn't notice that. I have provide the pixel type and the error is gone but my output (i store it in file format .jp2 not in geodatabase) is not correct since its MINIMUM become zero – Thành Đào Ngọc Feb 16 '17 at 4:32

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.