web-dev-qa-db-fra.com

Lecture d'un fichier ASC dans R

J'essaie actuellement d'extraire des informations de divers fichiers "ASC" dans R afin d'effectuer une analyse des données. 

Le problème est que je ne suis pas sûr de savoir comment lire exactement dans les fichiers. J'ai essayé une fonction read.table standard, mais tous les nombres étaient exactement les mêmes (-9999.00). Afin d'éviter toute possibilité de corruption des données, j'ai lu un autre fichier ASC et obtenu les mêmes résultats. La seule chose que je sais avec certitude, c'est que la taille du fichier entre eux est exactement la même.

Est-il possible que je puisse lire ces fichiers? Tout paquet R que je peux regarder?

J'ai attaché ceci:

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

et mes sorties étaient

    > 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
17
arifyali

Mise à jour: Il est possible de lire des fichiers .asc (aussi appelés ESRI ASCII Raster fichiers) avec la fonction raster directement à partir du package "raster". L'aide dit:

Si x est un nom de fichier, les variables supplémentaires suivantes sont reconnues:

natif: logique. La valeur par défaut est FALSE sauf lorsque le paquet rgdal est manquant. Si TRUE, la lecture et l'écriture des fichiers ... et Arc ASCII sont effectuées à l'aide de pilotes natifs (paquet raster), plutôt que via rgdal ....

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

Modifier 2 [obsolète]: 

Une alternative est la fonction raster(), ayant le paquet rgdal correctement installé.

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

Modifier 1 [obsolète]: 

Le paquetage adehabitat est maintenant obsolète. Actuellement, il émet un avertissement lors du chargement:

Son utilisation est dangereuse car les bugs ne seront plus corrigés . Il est maintenant recommandé d'utiliser les packages adehabitatMA, adehabitatLT, adehabitatHR et adehabitatHS.
...

Réponse originale [obsolète]: 

Utilisez la fonction import.asc du package R adehabitat (voir page 92): 

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

#plot asc object.
library(raster)
r = raster(asc)
plot(r)
19
Andre Silva

Le paquet SDMTools a la fonction read.asc, qui fonctionne sous R 3.2.4. Cependant, du moins dans mon cas, en utilisant read.table avec toutes les valeurs par défaut travaillées hors de la boîte.

2
Waldir Leoncio

Utilisez le paquet Laf, c'est incroyablement rapide.

2
ssword

J'ai utilisé la commande x = read.csv ("C:\...\Dropbox/MVZ // aet2009sep.asc", sep = ";")

J'ai trouvé cela après avoir utilisé l'importation manuellement avec le bouton d'importation dans la fenêtre Environnement.

0
Gerardo Nunez