Re: [R] Converting 16-bit to 8-bit encoding?

From: Matt Shotwell <>
Date: Thu, 21 Apr 2011 12:24:59 -0500

OK. I'm going to copy this back to R-help too.

With R, we can convert a file of 8-bit integers to 16-bit integers like so:

# Create a test file of 8-bit integers:
con <- file("test.8", "wb")
writeBin(sample(-1L:4L, 1024, TRUE), con, size=1) close(con)

# Convert test.8 to test.16

icon <- file("test.8", "rb")
ocon <- file("test.16", "wb")
while(length(dat <- readBin(icon, "integer", 1024, size=1)) > 0)
     writeBin(dat, ocon, size=2)


This assumes (without considering a more formal description of the format) that the file and your computing platform agree on how multi-byte signed integers are represented.

Hope that will get you going.

On 04/21/2011 11:02 AM, Brian Buma wrote:
> Apologies. The 8-bit file (the one that needs to be converted) is just
> a series of integers, -1 to 4, which is no doubt why they are encoded in
> 8 bit. They don't need to be changed numerically, just put in a 16-bit
> encoding. No meta info, headerless. All the data is MODIS satellite
> imagery.
> I have been using the "raster" program to visualize things, and
> processing (when I get that far) will be done in that program mainly.
> I've used that program on a different project, and it seemed to work
> well. The actual program that can't handle two different inputs is
> Timesat, a phenology-program (not R). I was thinking that R could
> probably do this conversion quick and easy (fairly), but haven't figured
> out how to yet.
> As an example, I have an NDVI file (flat binary, 16bit encoding)- so a
> string of numbers, 4450, 4650, etc... The associated quality file is
> another string, 1,1,2,1,0, etc. It's encoded as an 8bit file.
> Conceptually, all it needs (I think) is to be read in and resaved in the
> less memory-efficient 16-bit format.
> Thanks! Sorry if the explanation isn't clear.
> On Thu, Apr 21, 2011 at 9:50 AM, Matt Shotwell
> < <>> wrote:
> On 04/21/2011 10:36 AM, Brian Buma wrote:
> Hello all-
> I have a question related to encoding. I'm using a seperate
> program which
> takes either 16 bit or 8 bit (flat binary files) as inputs (they
> are raster
> satellite imagery and the associated quality files), but can't
> handle both
> at the same time. Problem is the quality and the image come in
> different
> formats (quality- 8bit, image- 16bit). I need to switch the
> encoding on the
> I think some more detail about these files is necessary. What do
> these 16/8 bit quantities represent? Are these files just a sequence
> of such quantities, or is there meta information (i.e. image dimension)?
> quality files to 16 bit, without altering anything else (they
> are img files
> right now). I imagine this is a fairly simply process, but I
> haven't been
> Does 'img files' indicate that these files are formatted according
> to a standard?. Finally, are you using some R code to manipulate
> these files? Have an example, including data?
> able to find a package or anything which can tell me how to do
> it- perhaps
> I'm searching the wrong terms, but I did look. Is there any
> methods to do
> this quickly? Ideally, the solution would involve reading in a
> list of
> files and replacing the original with the new, 16 bit version,
> as I have
> over 300 files to convert. I hope that's clear. Thanks in advance!
> --
> Matthew S Shotwell Assistant Professor School of Medicine
> Department of Biostatistics Vanderbilt University
> --
> Brian Buma
> PhD Candidate
> Ecology and Evolutionary Biology / CIRES
> University of Colorado, Boulder
> <>

Matthew S Shotwell   Assistant Professor           School of Medicine
                      Department of Biostatistics   Vanderbilt University

______________________________________________ mailing list
PLEASE do read the posting guide
and provide commented, minimal, self-contained, reproducible code.
Received on Thu 21 Apr 2011 - 17:29:43 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 21 Apr 2011 - 17:50:32 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive