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)
close(icon)
close(ocon)
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
<matt.shotw...@vanderbilt.edu <mailto:matt.shotw...@vanderbilt.edu>> 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
brian.b...@colorado.edu <mailto:brian.b...@colorado.edu>
--
Matthew S Shotwell Assistant Professor School of Medicine
Department of Biostatistics Vanderbilt University
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.