Comment lire les fichiers * .adf dans R?

9

Je souhaite charger des fichiers .adf dans R. Les données proviennent de cette page: http://www.fao.org/geonetwork/srv/en/metadata.show?id=14057

J'ai essayé le code suivant que j'ai trouvé après quelques recherches sur Internet. Le problème est que, dans la classe RasterLayer, j'obtiens des valeurs négatives qui ne devraient pas être là. Je ne sais pas pourquoi cela se produit, alors j'espère que quelqu'un pourra m'aider!?

Code:

library(rgdal)
library(RColorBrewer)
dpath<- path...

x <- new("GDALReadOnlyDataset", dpath)
getDriver(x)
getDriverLongName(getDriver(x))
xx<-asSGDF_GROD(x)
r <- raster(xx)

La sortie pour «r» est:

classe r: RasterLayer dimensions: 2160, 4320, 9331200 (nrow, ncol, ncell) résolution: 0,08333333, 0,08333333 (x, y) étendue: -180, 180, -90, 90 (xmin, xmax, ymin, ymax) coord. réf. : + proj = longlat + ellps = WGS84 + towgs84 = 0,0,0,0,0,0,0,0 + no_defs source de données: en mémoire noms: band1 valeurs: -997, 16 (min, max)

Le «16» dans les valeurs se réfère aux 16 classes de durée de la période de croissance. Mais je me demande d'où viennent ces «-997». Peut-être quelque chose de mal avec la coord. ref?

Voici également un résumé des données de «xx»:

Résumé des données: Min. 1er Qu. Médiane Moyenne 3e Qu. Max. NA -997 3 5 -9 8 16 7123158

Et si nous regardons de plus près les données de xx:

table (xx $ band1)

-997 1 2 3 4 5 6 7 8 9 10 11 12 31711 429643 83011 166674 207228 270161 240958 183342 118608 98795 88473 73743 56022 13 14 15 16 16 30104 45521 52216 31832

Il y a vraiment juste ce truc '-997' dedans. Je pense que les AN sont des océans, alors y a-t-il un problème avec le chargement des données ou est-ce que je ne comprends tout simplement pas les données?

Franz Krah
la source
1
Veuillez changer le titre en quelque chose d'intelligent et précis.
mdsumner
fwiw, il n'est pas nécessaire d'utiliser directement rgdal, juste raster (dpath)
mdsumner

Réponses:

3

Vous avez presque raison:

NODATA est réglé sur -32768 pour les océans. De plus, -997 est défini pour les grands lacs qui ne sont pas exclus par le littoral.

Étant donné que le contenu en pixels (période de croissance) n'a aucun sens sur les lacs, vous pouvez également traiter en toute sécurité -997 comme NODATA.

AndreJ
la source