Чтение ASC файла в R

В настоящее время я пытаюсь извлечь информацию из различных файлов "ASC" в R, чтобы выполнить анализ данных.

Проблема в том, что я не уверен, как именно читать файлы. Я попытался использовать стандартные функции read.table, но все числа были точно такими же (-9999.00). Чтобы исключить возможность повреждения данных, я прочитал в другом ASC файле и получил те же результаты. Единственное, что я знаю наверняка, это то, что размер файла между ними точно такой же.

В любом случае, я могу прочитать эти файлы? Любой пакет R, на который я могу смотреть?

Я связал это:

    x = read.table("Dropbox/MVZ/aet2009sep.asc")
    y = read.table("Dropbox/MVZ/aet2009oct.asc")

и мои выходы были

    > head(x, n =20)
         V1        V2
    1         ncols    3486.0
    2         nrows    4477.0
    3     xllcorner -374495.8
    4     yllcorner -616153.3
    5      cellsize     270.0
    6  NODATA_value   -9999.0
    7      -9999.00   -9999.0
    8      -9999.00   -9999.0
    9      -9999.00   -9999.0
    10     -9999.00   -9999.0
    11     -9999.00   -9999.0
    12     -9999.00   -9999.0
    13     -9999.00   -9999.0
    14     -9999.00   -9999.0
    15     -9999.00   -9999.0
    16     -9999.00   -9999.0
    17     -9999.00   -9999.0
    18     -9999.00   -9999.0
    19     -9999.00   -9999.0
    20     -9999.00   -9999.0

    head(y, n =20)
         V1        V2
    1         ncols    3486.0
    2         nrows    4477.0
    3     xllcorner -374495.8
    4     yllcorner -616153.3
    5      cellsize     270.0
    6  NODATA_value   -9999.0
    7      -9999.00   -9999.0
    8      -9999.00   -9999.0
    9      -9999.00   -9999.0
    10     -9999.00   -9999.0
    11     -9999.00   -9999.0
    12     -9999.00   -9999.0
    13     -9999.00   -9999.0
    14     -9999.00   -9999.0
    15     -9999.00   -9999.0
    16     -9999.00   -9999.0
    17     -9999.00   -9999.0
    18     -9999.00   -9999.0
    19     -9999.00   -9999.0
    20     -9999.00   -9999.0

Ответы

Ответ 1

Обновление: можно читать файлы .asc (также называемые растровыми файлами ESRI ASCII) с помощью raster функции непосредственно из пакета 'растр'. Помощь говорит:

Если x является именем файла, распознаются следующие дополнительные переменные:

родной: логичный. По умолчанию FALSE, за исключением случаев, когда пакет rgdal отсутствует. Если TRUE, чтение и запись... и файлов Arc ASCII выполняется с помощью собственных драйверов (растрового пакета), а не с помощью rgdal....

library(raster)
r = raster("C:\\...\\Dropbox/MVZ/aet2009sep.asc")
plot(r)

Редактировать 2 [устарело]:

Альтернативой является функция raster() с правильно установленным пакетом rgdal.

library(rgdal)
r = raster("C:\\...\\Dropbox/MVZ/aet2009sep.asc")
plot(r)

Редактировать 1 [устарело]:

Пакет adehabitat теперь устарел. В настоящее время выдает предупреждение при загрузке:

Использовать его опасно, так как ошибки больше не будут исправляться. В настоящее время рекомендуется использовать пакеты adehabitatMA, adehabitatLT, adehabitatHR и adehabitatHS.
...

Оригинальный ответ [устарел]:

Используйте функцию import.asc из пакета R adehabitat (см. Стр. 92):

library(adehabitat)
asc = import.asc("C:\\...\\Dropbox/MVZ/aet2009sep.asc")

#plot asc object.
library(raster)
r = raster(asc)
plot(r)

Ответ 2

Пакет SDMTools имеет функцию read.asc, которая работает под R 3.2.4. Однако, по крайней мере, в моем случае, используя read.table со всеми значениями по умолчанию, выполненными из коробки.

Ответ 3

Используйте пакет Laf, это безумно быстро.

Ответ 5

Вы выяснили проблему? У меня та же проблема, и я попробовал все, что выложили здесь, но пока есть только -9999. Спасибо.