2013-01-02 3 views
0

Je suis en train de charger les données SIG avec "format binaire de projection d'homolosine Interrompue Goode" dans R, mais je ne sais pas comment le faire.Lire les données SIG avec "format binaire de projection d'homolosine de Goode interrompu" en utilisant R

L'exemple de données peut obtenir à partir du lien suivant: ftp://ftp.glcf.umd.edu/glcf/Continuous_Fields_Tree_Cover/Global/gl-goodes-treecover/gl-goodes-deciduous.bin.gz

J'ai essayé d'utiliser la fonction « read.ENVI » dans le package R « caTools », mais il ne fonctionne pas.

> library(caTools) 
Loading required package: bitops 
> r <- read.ENVI("gl-goodes-deciduous") 
Error in read.ENVI("gl-goodes-deciduous") : 
    read.ENVI: Could not open input header file: gl-goodes-deciduous.hdr 

Une suggestion? Merci ~

+0

Je ne vois pas pourquoi vous vous attendez à ce que cela fonctionne, ce fichier est simplement binaire brut. Vraisemblablement quelque part il y a des instructions sur la mise en page du fichier, et/ou des métadonnées supplémentaires que les conducteurs de format pourraient comprendre. Le fichier ici donne quelques indices, peut-être: ftp://ftp.glcf.umd.edu/glcf/Continuous_Fields_Tree_Cover/Global/AVHRR_DECIDUOUS_1992_1993/AVHRR_DECIDUOUS_1992_1993.GLOBAL.met – mdsumner

+0

Il y a un fichier .glcf dans le même dossier que le .bin.gz fichier avec les métadonnées requises. Bien que le nombre de lignes * pixels par ligne dans ce fichier dépasse de 163 octets la taille du fichier gunzip, ce qui me fait penser que le fichier .bin a une sorte d'en-tête ... – Spacedman

+0

Je reçois des valeurs dans [0,80] avec ce , ne s'ennuie pas assez pour faire le reste. :) d <- readBin ("gl0101bs", "nombre entier", taille = 1, n = 17347 * 40031) – mdsumner

Répondre

4

Si vous avez une machine qui peut lire l'ensemble du fichier binaire 600M + sans étouffer alors génial. Sinon, vous pouvez utiliser la compétence du paquetage raster pour utiliser les images GDAL sur le disque.

d'abord créer un fichier appelé gl-goodes-deciduous.vrt qui ressemble à ceci:

<VRTDataset rasterXSize="40031" rasterYSize="17347"> 
<VRTRasterBand dataType="Byte" band="1" subClass="VRTRawRasterBand"> 
    <SourceFilename relativetoVRT="1">gl-goodes-deciduous.bin</SourceFilename> 
    <ImageOffset>0</ImageOffset> 
    <PixelOffset>1</PixelOffset> 
    <LineOffset>40031</LineOffset> 
    <ByteOrder>MSB</ByteOrder> 
    </VRTRasterBand> 
</VRTDataset> 

Cela donne l'info assez bibliothèque GDAL pour lire les données. Vous pouvez également lire les documents sur VRT pour obtenir les coordonnées correctes. Puis, en R, ouvrez la VRT et tracer un échantillon res bas de celui-ci:

> require(raster) 
> r = raster("gl-goodes-deciduous.vrt") 
> plot(r,maxpixels=100*100) 

ProTip: Chaque fois qu'il ya un fichier .tif disponible, utilisez que, car il pourrait être un GeoTIFF avec toutes les métadonnées requises construit Je suis un peu inquiet que Ncols Ncolumns soit plus court que le fichier de 163 octets, mais peut-être qu'il y a un pied de page, ou peut-être que ImageOffset devrait être 163 pour le compenser.

+0

+1! juste une question dans l'en-tête xml, comment avez-vous défini rasterXSize = "40031" rasterYSize = "17347"? – agstudy

+0

C'est ce qu'il dit dans le fichier dans le dossier du site FTP: ftp://ftp.glcf.umd.edu/glcf/Continuous_Fields_Tree_Cover/Global/gl-goodes-treecover/gl-goodes-treecover.glcf dans la section pour gl -goodes-décidu (semble être le même pour toutes les images) – Spacedman

Questions connexes