Mehr

Konvertieren von LANDSAT-8 TIFF in Matrix-, Datenrahmen- oder SpatialGridDataFrame-Formate

Konvertieren von LANDSAT-8 TIFF in Matrix-, Datenrahmen- oder SpatialGridDataFrame-Formate


Ich muss die Reflexionswerte von LANDSAT-8-Daten für steiles Gelände korrigieren und finde es in ArcGIS zu mühsam und klobig. Die Daten, die ich habe, sind: LANSDAT-8 DEM (ASTER) Neigung und Ausrichtung (abgeleitet mit DEM in ArcGIS) Sonnenhöhe und Azimut (aus L8 MTL-Datei erhalten)

All dies ist auf ein Polygon meines Untersuchungsbereichs zugeschnitten.

Zwei Methoden, die ich verwenden wollte, waren die Cosinus- und Minneart-Korrekturen. Ich habe ein Paket für R namens "landsat" gefunden - http://cran.r-project.org/web/packages/landsat/index.html, das eine Funktion namens "topocorr" enthält - http://www.inside-r. org/packages/cran/landsat/docs/topocorr, die das unkorrigierte Bild, die Neigung, das Seitenverhältnis, den Azimut und die Höhe aufnimmt, erzeugt dann ein korrigiertes Bild.

Ich habe jedoch Schwierigkeiten, es zu verwenden, da der Eingabedatentyp für das Eingabebild die Formate "Matrix, Datenrahmen oder SpatialGridDataFrame" ist.

Wie kann ich L8-Daten in dieses Format konvertieren?


Wie von @mdsumner hervorgehoben, können Sie einen SpatialGridDataFrame direkt mit readGDAL im rgdal-Paket lesen. Sie können Rasterobjekte auch problemlos in einen SpatialGridDataFrame oder eine Matrix umwandeln. Wenn sich Ihre Bilder in separaten Dateien befinden, würde ich empfehlen, sie als Stapel einzulesen und dann zu einem SpatialGridDataFrame zu zwingen.

require(raster) require(rgdal) # Verwenden von readGDAL zum Lesen von Rastern (wenn im Multiband-Stack-Format) y = readGDAL(system.file("pictures/Rlogo.jpg">

Rasterpaket installieren, dann Band für Band laden. Dann können Sie das landsat-Paket verwenden. Ex:

Bibliothek(raster) setwd(L8 Ordner) b1=raster("L8b1.tif") b2=raster("L8b2.tif") image=stack(b1,b2)

Schau das Video: Landsat 8 DN to Refelectance