2017-11-03 2 views
0

I mit R arbeite und verwenden Sie die folgenden Bibliotheken: Raster, sp, rgeos, rgdalRasterebene 64-Bits in eine Rasterebene 8-Bits mit R

habe ich eine Rasterebene von einem SpatialPointsDataFrame. Dieses Raster kann leicht exportiert werden mit

raster::writeRaster(ras8b, 
       filename="filepath", format="GTiff" , 
       datatype='INT1U') 

Das Problem, das ich in laufen ist die folgende: ich einen 8BitsPerPixel GeoTiff benötigen. Aber der Code, den ich verwende, speichert das Raster auf einem 64 BitsPerPixel Raster.

Ich habe versucht, das Problem bereits nach mehreren Optionen zu lösen, die ich auf StackOverflow gefunden habe. Zum Beispiel: RasterLayer 16-bits into a RasterLayer 8-bits

Diese erste Option gab mir ein 8 BitsPerPixel-Raster, aber keine Werte, nur NAs.

Oder ich die Rasterebene in R umgewandelt nach diesem Beitrag auf ganzzahlige: https://gis.stackexchange.com/questions/175383/round-does-not-return-an-integer-raster-in-r/175384

Aber R setzt die Raster als 64 BitsPerPixel Raster zu speichern.

Jemand hat eine Lösung? Wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen. Vielen Dank. Freundliche Grüße.

+0

Am Ende werde ich das Problem nicht innerhalb von R gelöst, sondern auf die Kommandozeile wie folgt: gdal_translate -ot Byte-of-GTiff-Pfad \ Input.tif Pfad \ output.tif –

Antwort

0

scheint zu funktionieren:

library(raster) 
r <- raster(ncol=10,nrow=10) 
r[] <- 1:100 
x <- writeRaster(r, 'test.tif', datatype='INT1U', overwrite=TRUE) 
dataType(x) 
#[1] "INT1U" 

library(rgdal) 
GDALinfo('test.tif') 
# GDType hasNoDataValue NoDataValue blockSize1 blockSize2 
#1 Byte   TRUE   255   10   10 

Aber beachten Sie, dass dieses Format wird nur Werte von 0 - 255. Alle anderen Werte NA

+0

Danke Robert für deine Antwort. Ich habe mein Problem herausgefunden: Habe zu viele Bibliotheken geladen, was den Export als 8bit pro Pixel Bild behindert hat. –