Como ler arquivos * .adf no R?

9

Desejo carregar arquivos .adf no R. Os dados são desta página: http://www.fao.org/geonetwork/srv/en/metadata.show?id=14057

Eu tentei o seguinte código que encontrei depois de algumas pesquisas na internet. O problema é que, na classe RasterLayer, recebo valores negativos que não deveriam estar lá. Não sei por que isso acontece, então espero que alguém possa me ajudar !?

Código:

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

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

A saída para 'r' é:

classe r: Dimensões do RasterLayer: 2160, 4320, 9331200 (nrow, ncol, ncell) resolução: 0,08333333, 0,08333333 (x, y) extensão: -180, 180, -90, 90 (xmin, xmax, ymin, ymax) coord. ref. : + proj = longlat + ellps = WGS84 + towgs84 = 0,0,0,0,0,0,0 + fonte de dados no_defs: nos nomes da memória: valores da banda1: -997, 16 (min, max)

O '16' nos valores refere-se às 16 classes de duração do período de crescimento. Mas me pergunto de onde vêm esses '-997'. Talvez algo de errado com a coord. ref?

Aqui também está um resumo de dados de 'xx':

Resumo dos dados: mín. 1st Qu. Mediana Média 3ª Qu. Máx. NA -997 3 5 -9 8 16 7123158

E se olharmos os dados em xx mais de perto:

tabela (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 30104 45521 52216 31832

Há realmente apenas essa coisa de '-997' nela. Eu acho que as NAs são onças, então há algo errado com o carregamento de dados ou eu simplesmente não entendo os dados?

Franz Krah
fonte
11
Altere o título para algo inteligente e preciso.
Mdsumner
fwiw, não há necessidade de usar rgdal diretamente em tudo, basta raster (Dpath)
mdsumner

Respostas:

3

Você está quase certo:

NODATA está definido como -32768 para oceanos. Além disso, -997 está definido para grandes lagos que não são excluídos pelo litoral.

Como o conteúdo de pixels (período de crescimento) não faz sentido nos lagos, você também pode tratar -997 como NODATA.

AndreJ
fonte