représentation de carte - package fieldsSOS

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Céline MIR
Messages : 15
Enregistré le : 15 Déc 2006, 17:46

représentation de carte - package fieldsSOS

Messagepar Céline MIR » 26 Juil 2008, 16:03

Bonjour à toutes et tous,

Je ne suis pas une pro de R et je vous soumets donc mon problème en espérant que vous pourrez m'aider...

J'ai à représenté sur une carte des points dont la couleur rend compte d'une variation de fréquence. J'utilise pour cela le package fields, et là je suis confrontée à un problème très frustrant... j'obtiens bien une carte mais la résolution est vraiment mauvaise!! Comment puis je faire pour avoir une figure exploitable ?

Voici ce que je fais jusqu'à présent:

Code : Tout sélectionner

install.packages("fields")
require(fields)
data<-read.table(file="E:/ANALYSES/carto.csv", header=T, sep=";")


mon fichier de données est de type:
pop longitude latitude frequence
C196 68.421 33.552 0.677
C197 70.268 34.396 0
C201 66.875 36.317 0
C207 67.166 36.888 0
C216 70.3 34.15 0
C45 69.147 34.235 0
C49 70.15 35 0
C54 68.421 33.552 0
C55 66.16 36.926 0
etc
avec 800 lignes (il s'agit d'une représentation mondiale)

Code : Tout sélectionner

world(lwd=0.01)
#j'ai defini 6 classes de frequences
N=6
#0 à 0.1 darkviolet
#+0.1 à 0.3 dodgerblue2
#+0.3 à 0.5 chartreuse2
#+0.5 à 0.7 gold
#+0.7 à 0.9 orange1
#+0.9 à 1 red1

col<-ifelse(data$frequence<=0.1, "darkviolet", (ifelse(data$frequence<=0.3 & data$frequence>0.1, "dodgerblue2",
(ifelse(data$frequence<=0.5 & data$frequence>0.3, "chartreuse2", (ifelse(data$frequence<=0.7 & data$frequence>0.5, "gold",
(ifelse(data$frequence<=0.9 & data$frequence>0.7, "darkorange1", "red1")))))))))

points(data$longitude, data$latitude, pch=18, cex=0.5, col=col)


Et là j'ai une figure toute moche!
J'ai essayé d'utiliser une commande de type

Code : Tout sélectionner

 jpeg(filename="E:/ANALYSES/BigplotCIM.jpg", width=1600, height=5000, units="px", quality=100, res=900)

mais à ce moment là plus rien ne marche...

Est ce que l'un(e) d'entre vous pourrait ma'ider s'il vous plait? je m'arrache les cheveux dessus ! :cry:

Par avance merci infiniment de votre aide

Céline

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 26 Juil 2008, 19:10

Dans le package fields, l'aide de world() dit que:

Code : Tout sélectionner

Description

Plots quickly, medium resolution outlines of large land masses and bodies of water.


Donc si le pb est la mauvaise résolution de la carte, il faut récupérer d'autres fonds de carte de meilleure résolution. Il y a par exemple les packages maps et mapdata, et la fonction map. Il y en a bcp d'autres et R peut lire des couches SIG de multiples formats dont ArcView (shapefiles) et MapInfo. Voir par exemple les packages maptools et rgdal.

Exemple avec maps / mapdata. Données points dans data.frame Data:

Code : Tout sélectionner

library(maps)
library(mapdata)
## trace fond de carte
map("worldHires", ".")

## points
with(Data, points(longitude, latitude, col = "red"))



Exemple avec données chargées sur http://aprsworld.net/gisdata/world/
et sauvegardées sur mon disque dur dans d:/sig/world


Code : Tout sélectionner

## Importation
library(rgdal)
W <- readOGR(dsn = "D:/SIG/World/world.shp", layer = "world")

## Tracé
## carte
plot(W)

## points
with(Data, points(longitude, latitude, col = "red"))


Si c'est la qualité du graphique qui vous pose pb, il vaut mieux employer un format vectoriel comme pdf ou postscript (au lieu de jpeg). Sous MS Windows, windows (ou win.metafile) donne souvent de bons résultats également.

Renaud

Céline MIR
Messages : 15
Enregistré le : 15 Déc 2006, 17:46

Messagepar Céline MIR » 28 Juil 2008, 06:38

Merci beaucoup Renaud!

Ta réponse me sauve la vie! Ca marche impeccablement!!

Merci encore

Céline


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité