#1 Tue 07 August 2012 01:31
- celdia
- Participant occasionnel
- Date d'inscription: 19 Feb 2011
- Messages: 39
Import de fichiers raster dans R
Bonjour,
Je cherche à importer et afficher mes fichiers raster au format grid (hdf) que j'ai téléchargé à partir d'un site d'acquisition de données satellites. Je les ai convertis d'abord au format geotiff, mais j'ai du mal à trouver le code (exact) me permettant d'importer le fichier qui se trouve dans un répertoire sur mon PC dans R, même après avoir regardé le manuel de la librairie Raster de R (je sais bien que la fonction writeRaster parait être la plus proche). L'exemple qui s'y trouve concerne des données pré-existantes dans un package de R,alors que moi j'ai mes données dans mon propre répertoire. Ou bien faut-il créer un raster squelette avant, possédant les caractéristiques (lignes, colonnes, resolution, bounding box...) de mon raster à importer, alors dans ce cas comment faire la correspondance avec ce dernier pour avoir les valeurs des cellules.
Merci d'avance de votre aide.
Hors ligne
#2 Tue 07 August 2012 10:24
Re: Import de fichiers raster dans R
Tu peux importer un raster, soit via la librairie raster soit via rgdal
via la librairie raster: r <- raster("C:/monraster.tif")
via rgdal : r <- readGDAL("C:/monraster.tif")
geodata au cerema et petits billets en géomatique
Hors ligne
#3 Tue 07 August 2012 11:10
- celdia
- Participant occasionnel
- Date d'inscription: 19 Feb 2011
- Messages: 39
Re: Import de fichiers raster dans R
Ok merci baobazz, ça marche la librairie rgdal.
A+
Hors ligne
#4 Tue 07 August 2012 12:18
- celdia
- Participant occasionnel
- Date d'inscription: 19 Feb 2011
- Messages: 39
Re: Import de fichiers raster dans R
J'ai également réussi à l'ouvrir avec la librairie raster.
Mais je n'ai pas les valeurs de mes cellules. Pourtant R me dit que les valeurs existent mais non disponibles.
Comment puis je faire pour avoir les valeurs des cellules dans mon fichier source.
Code:
r<-raster("E:projetSILAT_golfe/epaisseurs optiques/MOD08_D3.A2004057.051.2010283120930.pscs_000500502491.Optical_Depth_Land_And_Ocean_Mean.G3.gridSubsetter.tif") Geospatial Data Abstraction Library extensions to R successfully loaded Loaded GDAL runtime: GDAL 1.8.1, released 2011/07/09 Path to GDAL shared files: K:/Mes Documents/R/win-library/2.13/rgdal/gdal Loaded PROJ.4 runtime: Rel. 4.7.1, 23 September 2009, [PJ_VERSION: 470] Path to PROJ.4 shared files: K:/Mes Documents/R/win-library/2.13/rgdal/proj > r class : RasterLayer dimensions : 4, 4, 16 (nrow, ncol, ncell) resolution : 1, 1 (x, y) extent : 0, 4, -4, 0 (xmin, xmax, ymin, ymax) coord. ref. : +proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8139999999999999,-0.38 +units=m +no_defs values : E:\projetSILAT_golfe\epaisseurs optiques\MOD08_D3.A2004057.051.2010283120930.pscs_000500502491.Optical_Depth_Land_And_Ocean_Mean.G3.gridSubsetter.tif > plot(r) > hasValues(r) [1] TRUE > res(r) [1] 1 1 > projection(r) [1] "+proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8139999999999999,-0.38 +units=m +no_defs" > values(r) [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Merci
Hors ligne
#5 Tue 07 August 2012 13:34
- celdia
- Participant occasionnel
- Date d'inscription: 19 Feb 2011
- Messages: 39
Re: Import de fichiers raster dans R
J'ai vu la fonction runif. Est-ce les valeurs renvoyées par cette fonction correspondent aux valeurs des cellules de mon fichier raster. j'ai essayé de l'appliquer et ça me donne le résultat ci dessous. Mais j'hésite encore si ces valeurs ont un lien avec celles de mon fichier raster importé.
Code:
values(r)<-runif(ncell(r)) > values(r) [1] 0.11898588 0.61223071 0.58332753 0.64063591 0.64186141 0.35136701 [7] 0.14824016 0.06588647 0.61240760 0.43859993 0.50244764 0.80128720 [13] 0.22126722 0.44944315 0.59367399 0.95473992 > r class : RasterLayer dimensions : 4, 4, 16 (nrow, ncol, ncell) resolution : 1, 1 (x, y) extent : 0, 4, -4, 0 (xmin, xmax, ymin, ymax) coord. ref. : +proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8139999999999999,-0.38 +units=m +no_defs values : in memory min value : 0.06588647 max value : 0.9547399
Merci
Hors ligne
#6 Tue 07 August 2012 14:09
Re: Import de fichiers raster dans R
Non, runif va te générer une série de valeurs aléatoires
pour avoir les valeurs, il faut utiliser la fonction values.
elles s'affichent aussi dans un résumé:
Code:
summary(r)
mais dans ton cas, il est indiqué:
Code:
values : E:\projetSILAT_golfe\epaisseurs optiques\MOD08_D3.A2004057.051.2010283120930.pscs_000500502491.Optical_Depth_Land_And_Ocean_Mean.G3.gridSubsetter.tif
C'est bizarre.
Pourrais-tu donner un nom plus simple à ton fichier et voir si ça change qqch?
Dernière modification par baobazz (Tue 07 August 2012 14:10)
geodata au cerema et petits billets en géomatique
Hors ligne
#7 Tue 07 August 2012 14:36
- celdia
- Participant occasionnel
- Date d'inscription: 19 Feb 2011
- Messages: 39
Re: Import de fichiers raster dans R
Oui, ça donne toujours la même chose:
Code:
r<-raster("E:projetSILAT_golfe/epaisseurs optiques/AOD_260204.tif") > r class : RasterLayer dimensions : 4, 4, 16 (nrow, ncol, ncell) resolution : 1, 1 (x, y) extent : 0, 4, -4, 0 (xmin, xmax, ymin, ymax) coord. ref. : +proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.8139999999999999,-0.38 +units=m +no_defs values : E:\projetSILAT_golfe\epaisseurs optiques\AOD_260204.tif > summary(r) Cells: 16 Min. NA 1st Qu. NA Median NA Mean NaN 3rd Qu. NA Max. NA NA's 16
Je comprends pas alors pourquoi?
Mais je précise que mon fichier était au format hdf à l'origine et je l'ai converti en au format Geotiff à partir de QGIS à l'aide de la calculatrice Raster. Est-ce comme ça?
Dernière modification par celdia (Tue 07 August 2012 14:46)
Hors ligne
#8 Fri 17 August 2012 16:52
- celdia
- Participant occasionnel
- Date d'inscription: 19 Feb 2011
- Messages: 39
Re: Import de fichiers raster dans R
Bonjour,
Je me permets de communiquer la solution au problème que j'avais pour mon raster.
En fait, c'était le géo-référencement de ma couche qui n'a pas été bien réalisé pendant la reprojection.
J'obtient maintenant ma couche raster avec les valeurs:
Code:
r<-raster("E:/projetSILAT_golfe/donnees/essai.tif") > summary(r) Cells: 16 Min. 0.1270 1st Qu. 0.1623 Median 0.1820 Mean 0.1812 3rd Qu. 0.2005 Max. 0.2190 > values(r) [1] 0.163 0.151 0.146 0.127 0.200 0.181 0.170 0.160 0.198 0.187 0.177 0.183 [13] 0.202 0.219 0.217 0.218
Hors ligne
#10 Wed 29 April 2015 11:36
- Nana92410
- Participant occasionnel
- Date d'inscription: 13 Apr 2015
- Messages: 25
Re: Import de fichiers raster dans R
Bonjour,
je relance la sujet car je souhaiterais faire la même chose avec des fichiers raster que j'ai crée sur Qgis qui sont en format .tif.
J'ai installer le packages Rgdal mais j'ai un message d'erreur quand j'essaye les deux manières d'importer mon fichier ........
Pourtant j'ai bien changer mon répertoire courant ........ Mais je débute dans tout ça donc bon j'ai un peu de mal ......
Si quelqu'un peut m'aider je serais preneuses x) ( ( voici en pièce jointe le code que j'ai essayé ) )
Merciii !
Nanouille
Hors ligne
#11 Wed 29 April 2015 11:42
- Nana92410
- Participant occasionnel
- Date d'inscription: 13 Apr 2015
- Messages: 25
Re: Import de fichiers raster dans R
Nanouille
Hors ligne
#13 Wed 29 April 2015 18:35
- Nana92410
- Participant occasionnel
- Date d'inscription: 13 Apr 2015
- Messages: 25
Re: Import de fichiers raster dans R
Hiiiin pas bête je vais essayer en rechangeant de nom alors merci ! Au départ c'était nomé "2010-2013" j'ai cru que le problème venait des chiffres .... Pour le chemin je suis sure pourtant
J'essaye demain merci
Nanouille
Hors ligne
#14 Thu 30 April 2015 09:19
- Nana92410
- Participant occasionnel
- Date d'inscription: 13 Apr 2015
- Messages: 25
Re: Import de fichiers raster dans R
Merci Mathieu R c'était l'accent super ça marche donc
Par compte je n'arrive pas à sortir ce que je voulais x) ( à savoir combien de pourcentage il y a telle valeur .... ) Et quand je fais "summary " je n'ai que le min et le max c'est normal ??
"Min. -99990
1st Qu. 0
Median 0
3rd Qu. 0
Max. 999990
NA's 0
"
>_< Le min et le max je les ai déja dans Qgis du coup je n'ai aucune info supplémentaire ........ >_<
Nanouille
Hors ligne
#15 Mon 04 May 2015 09:58
Re: Import de fichiers raster dans R
Oui, c'est normal.
pour savoir combien de cellules ont telle valeur, tu peux utiliser ça :
Code:
length(which(values(r)==10))
En remplaçant 10 par ta valeur
geodata au cerema et petits billets en géomatique
Hors ligne
#16 Tue 05 May 2015 10:08
- Nana92410
- Participant occasionnel
- Date d'inscription: 13 Apr 2015
- Messages: 25
Re: Import de fichiers raster dans R
Oooo Super c'est ce que je cherchais !!!!!! Je vais essayer ça merci beaucoup
Nanouille
Hors ligne
#17 Tue 05 May 2015 11:00
- Nana92410
- Participant occasionnel
- Date d'inscription: 13 Apr 2015
- Messages: 25
Re: Import de fichiers raster dans R
Super je pense que ça marche !!!! C'est exactement ce que je voulais !! ( Je vais tout de même vérifier sur plusieurs valeur si ça correspond à peux prés au observation mais là j'ai testé 3 valeurs ça me parait pas trop mal ! )
Merci beaucoup Mathieu *_*
Nanouille
Hors ligne
#18 Wed 28 March 2018 12:59
- stelio
- Juste Inscrit !
- Date d'inscription: 27 Mar 2018
- Messages: 2
Re: Import de fichiers raster dans R
Bonjour à tous, je suis novice dans le domaine.
J'ai un petit souci. J'ai des cibles(14) superposées sur un raster, je souhaite donc par la suite découper et extraire chaque cibles et son raster mais j'arrive pas
quelqu'un peut-il me donner un coup de pouce?
Voici le script et les différents raster et cibles obtenus
[img]https://imageshack.com/a/img922/9252/HEGNqW.png[/img]
[img]https://imageshack.com/a/img923/362/CK5fef.png[/img]
[img]https://imageshack.com/a/img922/91/e6XqXA.png[/img]
[img]https://imageshack.com/a/img923/3369/6BLulc.png[/img]
Merci, Stelio
Dernière modification par stelio (Wed 28 March 2018 15:15)
Hors ligne
#19 Thu 29 March 2018 11:10
Re: Import de fichiers raster dans R
Tu peux boucler sur tes cibles et faire pour chaque cible :
Code:
cr <- crop(raster, extent(cible), snap="out") cibler <- rasterize(cible, cr) mr <- mask(x=cr, mask=cibler)
mr contient un raster croppé sur une cible, que tu peux éventuellement exporter avec writeRaster dans un fichier.
Si tu veux juste extraire les valeurs du raster dans une liste, tu peux aussi utiliser extract :
Code:
extract(raster, cible)
Hors ligne