[R] imaging and contouring
Nicolas Degallier
nicolas.degallier at ird.fr
Tue Apr 4 16:19:44 CEST 2006
Dear R'Helpers and Colleagues,
I have looked in the documentation, asked to some colleagues in the
lab, but was unable to solve the following difficulty.
I am running R on a iMac G5 with OS 10.4.
The file below (73 rows x 144 col) shows the values of a climatic
index on the globe with a grid of 2,5 ° x 2,5 ° (NA = no value):

With image() and map() and running the following function:
dessin_i<-function(nomfichier="ERA40NA.dat",lat=73,long=144)
{ #définition de la fonction
library(maps)
a <- read.table(nomfichier) #lecture du fichier
z <- array(0,dim=c(long,lat)) #création d'un tableau de 0
z <- t(a) #transposition de la matrice a en z
z1<-rbind(z[65:long,],z[1:64,]) #centrage de la carte sur greenwich
nlat<-seq(-90,90,2.5) #définition des latitudes / ordonnées de 2,5°
en 2,5°
nlong <- seq(-180,177.5,2.5) #définition des longitudes /abcisses de
2,5° en 2,5°
image(nlong,nlat,z1,col=rainbow
(100),xlab="longitude",ylab="latitude") #traçage
map(add=TRUE) #superposition de la carte des continents et pays
}
And then:
>dessin_i()
I got the following figure (anonymous ftp):
ftp://ftp.lodyc.jussieu.fr/ndelod/ND_Fig1.pdf
running the following:
dessin_c<-function(nomfichier="ERA40NA.dat",lat=73,long=144)
{ #définition de la fonction
library(maps) #chargement du package maps
a <- read.table(nomfichier) #lecture des données
z <- array(0,dim=c(long,lat)) #création d'un tableau de 0
z <- t(a) #transposition de la matrice a en z
z1<-rbind(z[65:long,],z[1:64,]) #centrage de la carte sur greenwich
nlat<-seq(-90,90,2.5) #définition des latitudes / ordonnées de 2,5°
en 2,5°
nlong <- seq(-180,177.5,2.5) #définition des longitudes /abcisses de
2,5° en 2,5°
contour(nlong,nlat,z1,col=rainbow
(100),xlab="longitude",ylab="latitude") #traçage
map(add=TRUE) #superposition de la carte des continents et pays
}
and:
>dessin_c()
I got the following figure (anonymous ftp):
ftp://ftp.lodyc.jussieu.fr/ndelod/ND_Fig2.pdf
Finally, running:
dessin_f<-function(nomfichier="ERA40NA.dat",lat=73,long=144)
{ #définition de la fonction
library(maps) #chargement du package maps
a <- read.table(nomfichier) #lecture des données
z <- array(0,dim=c(long,lat)) #création d'un tableau de 0
z <- t(a) #transposition de la matrice a en z
z1<-rbind(z[65:long,],z[1:64,]) #centrage de la carte sur greenwich
nlat<-seq(-90,90,2.5) #définition des latitudes / ordonnées de 2,5°
en 2,5°
nlong <- seq(-180,177.5,2.5) #définition des longitudes /abcisses de
2,5° en 2,5°
filled.contour(nlong,nlat,z1,col=rainbow
(100),xlab="longitude",ylab="latitude") #traçage
map(add=TRUE) #superposition de la carte des continents et pays
}
and:
>dessin_f()
I got the following figure (anonymous ftp):
ftp://ftp.lodyc.jussieu.fr/ndelod/ND_Fig3.pdf
It may be similar to what I am looking for, i.e. the first figure
with smoothed contours and a scale of the colors/values but I have
been unable (or didn't found the right options) to put the map in the
right place.
Is it possible and how to do it:
1) to use "filled.contour()" without the scale?
2) to put again the map and the coloured contours adjusted?
3) to obtain the colours of the first figure with "filled.contour"
function?
A subsidiary question is yet: how to obtain levels lines thicker and/
or in other colour only for specified values of z1?
Many thanks in advance.
Sincerely,
Nicolas Degallier
UMR 7159 / IRD UR182
Laboratoire d'Océanographie et du Climat, Expérimentation et
Approches Numériques (LOCEAN)
Tour 45-55, 4e ét., case 100, 4 place Jussieu
75252 Paris Cedex 5 France
tél: (33) 01 44 27 51 57
fax: (33) 01 44 27 38 05
E-mail: <Nicolas.Degallier at ird.fr>
pdf reprints (anonymous ftp): ftp://ftp.lodyc.jussieu.fr/ndelod
More information about the R-help
mailing list