readGDAL or raster for reading bit map files

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

readGDAL or raster for reading bit map files

alaios
Dear all,
I have asked yesterday of how I can read a simple bitmap file in R cran.

I was suggest to use either readGDAL or raster for loading my bitmap


a. I have done it with readGDAL like

    store<-readGDAL(fname='lena256.bmp')
    and it works,... but it converts my matrix-like notion of a bitmap to a large vector

b. Raster also returns a class that I can not understand.

So 1, I want to load it and keep the image as a matrix (so every cell in the matrix will correspond to a pixel)
2. I want to be able to plot the image based on that matrix that I have loaded too.

Could you please explain me how I can do those?

B.R
Alex

        [[alternative HTML version deleted]]


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: readGDAL or raster for reading bit map files

Michael Sumner-2
Just do

m <- as.matrix(store)

or

m <- as.image.SpatialGridDataFrame(store)$z

image(m)

They give the same result with different orientations.  Note that both
assume a single-band raster, e.g. you only have a "greyscale" bitmap
(for example).

The details behind all this is given in the documentation for the sp
package. See ?image for the basic image plot for a matrix.

Cheers, Mike.


On Thu, Nov 24, 2011 at 11:50 PM, Alaios <[hidden email]> wrote:

> Dear all,
> I have asked yesterday of how I can read a simple bitmap file in R cran.
>
> I was suggest to use either readGDAL or raster for loading my bitmap
>
>
> a. I have done it with readGDAL like
>
>     store<-readGDAL(fname='lena256.bmp')
>     and it works,... but it converts my matrix-like notion of a bitmap to a large vector
>
> b. Raster also returns a class that I can not understand.
>
> So 1, I want to load it and keep the image as a matrix (so every cell in the matrix will correspond to a pixel)
> 2. I want to be able to plot the image based on that matrix that I have loaded too.
>
> Could you please explain me how I can do those?
>
> B.R
> Alex
>
>        [[alternative HTML version deleted]]
>
>
> ______________________________________________
> [hidden email] 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.
>
>



--
Michael Sumner
Institute for Marine and Antarctic Studies, University of Tasmania
Hobart, Australia
e-mail: [hidden email]

______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: readGDAL or raster for reading bit map files

alaios
Thanks a lot!
That worked. I have two R related questions
when I use the
  store<-readGDAL(fname='lena256.bmp')
this returns the struct below


> str(store)
Formal class 'SpatialGridDataFrame' [package "sp"] with 6 slots
  ..@ data       :'data.frame': 65536 obs. of  1 variable:
  .. ..$ band1: int [1:65536] 255 255 255 255 255 255 255 255 255 255 ...
  ..@ grid       :Formal class 'GridTopology' [package "sp"] with 3 slots
  .. .. ..@ cellcentre.offset: Named num [1:2] 0 -722925
  .. .. .. ..- attr(*, "names")= chr [1:2] "x" "y"
  .. .. ..@ cellsize         : num [1:2] 2835 2835
  .. .. ..@ cells.dim        : int [1:2] 256 256
  ..@ grid.index : int(0)
  ..@ coords     : num [1:2, 1:2] 0 722925 -722925 0
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : NULL
  .. .. ..$ : chr [1:2] "x" "y"
  ..@ bbox       : num [1:2, 1:2] -1418 -724342 724342 1418
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:2] "x" "y"
  .. .. ..$ : chr [1:2] "min" "max"
  ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
  .. .. ..@ projargs: chr NA


How the "R" when I run image(store) plots the lena correct. Where it store how the file was originally?
Also when I do

str(as.matrix(store))
this takes only the data and transforms them to the original matri

str(as.matrix(store))
 int [1:256, 1:256]

How it does that?

Looks as "magic" to me....

B.R
Alex



________________________________
 From: Michael Sumner <[hidden email]>

Cc: "[hidden email]" <[hidden email]>
Sent: Thursday, November 24, 2011 2:25 PM
Subject: Re: [R] readGDAL or raster for reading bit map files

Just do

m <- as.matrix(store)

or

m <- as.image.SpatialGridDataFrame(store)$z

image(m)

They give the same result with different orientations.  Note that both
assume a single-band raster, e.g. you only have a "greyscale" bitmap
(for example).

The details behind all this is given in the documentation for the sp
package. See ?image for the basic image plot for a matrix.

Cheers, Mike.



> Dear all,
> I have asked yesterday of how I can read a simple bitmap file in R cran.
>
> I was suggest to use either readGDAL or raster for loading my bitmap
>
>
> a. I have done it with readGDAL like
>
>     store<-readGDAL(fname='lena256.bmp')
>     and it works,... but it converts my matrix-like notion of a bitmap to a large vector
>
> b. Raster also returns a class that I can not understand.
>
> So 1, I want to load it and keep the image as a matrix (so every cell in the matrix will correspond to a pixel)
> 2. I want to be able to plot the image based on that matrix that I have loaded too.
>
> Could you please explain me how I can do those?
>
> B.R
> Alex
>
>        [[alternative HTML version deleted]]
>
>
> ______________________________________________
> [hidden email] 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.
>
>


--
Michael Sumner
Institute for Marine and Antarctic Studies, University of Tasmania
Hobart, Australia
e-mail: [hidden email]
        [[alternative HTML version deleted]]


______________________________________________
[hidden email] 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.
Reply | Threaded
Open this post in threaded view
|

Re: readGDAL or raster for reading bit map files

Michael Sumner-2
It is by magic, otherwise known as R classes and methods. See

sp:::as.matrix.SpatialGridDataFrame

There's a lot of background here so I suggest you start with the
general R documentation, and the sp package documentation, including

vignette("sp")

and these

citation("sp")

Cheers, Mike.

On Fri, Nov 25, 2011 at 1:49 AM, Alaios <[hidden email]> wrote:

> Thanks a lot!
> That worked. I have two R related questions
> when I use the
>   store<-readGDAL(fname='lena256.bmp')
> this returns the struct below
>
>> str(store)
> Formal class 'SpatialGridDataFrame' [package "sp"] with 6 slots
>   ..@ data       :'data.frame': 65536 obs. of  1 variable:
>   .. ..$ band1: int [1:65536] 255 255 255 255 255 255 255 255 255 255 ...
>   ..@ grid       :Formal class 'GridTopology' [package "sp"] with 3 slots
>   .. .. ..@ cellcentre.offset: Named num [1:2] 0 -722925
>   .. .. .. ..- attr(*, "names")= chr [1:2] "x" "y"
>   .. .. ..@ cellsize         : num [1:2] 2835 2835
>   .. .. ..@ cells.dim        : int [1:2] 256 256
>   ..@ grid.index : int(0)
>   ..@ coords     : num [1:2, 1:2] 0 722925 -722925 0
>   .. ..- attr(*, "dimnames")=List of 2
>   .. .. ..$ : NULL
>   .. .. ..$ : chr [1:2] "x" "y"
>   ..@ bbox       : num [1:2, 1:2] -1418 -724342 724342 1418
>   .. ..- attr(*, "dimnames")=List of 2
>   .. .. ..$ : chr [1:2] "x" "y"
>   .. .. ..$ : chr [1:2] "min" "max"
>   ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
>   .. .. ..@ projargs: chr NA
>
> How the "R" when I run image(store) plots the lena correct. Where it store
> how the file was originally?
> Also when I do
> str(as.matrix(store))
> this takes only the data and transforms them to the original matri
> str(as.matrix(store))
>  int [1:256, 1:256]
> How it does that?
> Looks as "magic" to me....
> B.R
> Alex
> ________________________________
> From: Michael Sumner <[hidden email]>
> To: Alaios <[hidden email]>
> Cc: "[hidden email]" <[hidden email]>
> Sent: Thursday, November 24, 2011 2:25 PM
> Subject: Re: [R] readGDAL or raster for reading bit map files
>
> Just do
>
> m <- as.matrix(store)
>
> or
>
> m <- as.image.SpatialGridDataFrame(store)$z
>
> image(m)
>
> They give the same result with different orientations.  Note that both
> assume a single-band raster, e.g. you only have a "greyscale" bitmap
> (for example).
>
> The details behind all this is given in the documentation for the sp
> package. See ?image for the basic image plot for a matrix.
>
> Cheers, Mike.
>
>
> On Thu, Nov 24, 2011 at 11:50 PM, Alaios <[hidden email]> wrote:
>> Dear all,
>> I have asked yesterday of how I can read a simple bitmap file in R cran.
>>
>> I was suggest to use either readGDAL or raster for loading my bitmap
>>
>>
>> a. I have done it with readGDAL like
>>
>>     store<-readGDAL(fname='lena256.bmp')
>>     and it works,... but it converts my matrix-like notion of a bitmap to
>> a large vector
>>
>> b. Raster also returns a class that I can not understand.
>>
>> So 1, I want to load it and keep the image as a matrix (so every cell in
>> the matrix will correspond to a pixel)
>> 2. I want to be able to plot the image based on that matrix that I have
>> loaded too.
>>
>> Could you please explain me how I can do those?
>>
>> B.R
>> Alex
>>
>>        [[alternative HTML version deleted]]
>>
>>
>> ______________________________________________
>> [hidden email] 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.
>>
>>
>
>
>
> --
> Michael Sumner
> Institute for Marine and Antarctic Studies, University of Tasmania
> Hobart, Australia
> e-mail: [hidden email]
>
>
>



--
Michael Sumner
Institute for Marine and Antarctic Studies, University of Tasmania
Hobart, Australia
e-mail: [hidden email]

______________________________________________
[hidden email] 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.