Mehr

Unterschied zwischen raster() und readGDAL()?


Ich bin neu in der Arbeit mit Rastern und nachdem ich Probleme damit hatte, würde ich gerne den Unterschied zwischen diesen beiden Importfunktionen wissen.

zum Beispiel habe ich das gemacht

Bibliothek(raster) s<-raster("random.TIF")

Wenn Sie versuchen, es zu plotten, wird das richtige Bild zurückgegeben, aber versuchen Sie Folgendes:

s<-readGDAL("random.TIF")

gibt ein schwarzes Bild zurück.


Keine dieser Funktionen gibt ein farbiges Bild zurück, schwarz oder anders. Diese

Bibliothek(raster) s <-raster("random.TIF") s

Gibt zurückRasterLayer-Objekt (oder vielleicht ein RasterBrick, wenn in "random.TIF" mehrere Ebenen vorhanden sind). Diese Klasse (Objekttyp) ist im Rasterpaket definiert. Sie können es visualisieren mit

Grundstück(e)

Diese

Bibliothek(rgdal) x <- readGDAL("random.TIF") class(x)

Gibt zurückSpatialGridDataFrame. Diese Klasse (Objekttyp) ist im sp-Paket definiert. Du hast es wahrscheinlich getanGrundstück(e)aber das funktioniert nicht gut, da dies wahrscheinlich ein 'schwarzes Bild' zeigen würde. Eine geeignete Methode zum Zeichnen eines SpatialGridDataFrame ist

spplot(x)

sp und raster-Objekte spielen gut zusammen, aber sie sind unterschiedlich. Ein möglicher Ausgangspunkt ist die Lektüre: cran.r-project.org/web/packages/raster/vignettes/Raster.pdf


Raster oder gerasterte Datensätze (einschließlich x-y- oder x-y-z-Datensätze als Sonderfälle) entstehen in der Praxis häufig aus Quellen wie

  • Wetter- und Klimamodellierung
  • Fernerkundung durch Satelliten und Flugzeuge
  • GIS-verwaltete Daten, die in einem Raster verarbeitet und exportiert werden können.

Traditionell werden solche Daten in Spezialsoftware oder -umgebungen verwaltet und analysiert, wie ENVI oder ERDAS Imagine für Fernerkundungsdaten, ArcGIS, GRASS oder IDRSI für allgemeine GIS-basierte Daten oder GrADS, IDL oder NCL für Klimadaten oder mit Programmen, die in Fortran oder C (oder neuerdings Python) geschrieben wurden. Normalerweise würde ein Benutzer einen Großteil der grundlegenden Datenverarbeitung in der spezialisierten Umgebung oder Programmiersprache durchführen, die Daten dann zur Datenanalyse und -visualisierung nach R oder einem anderen Statistikpaket exportieren und dann die Daten zur weiteren Verarbeitung zurück in die spezialisierte Software verschieben.

Einzelne Teildisziplinen haben oft spezialisierte Formate für die Datenspeicherung, manchmal allgemeine oder gemeinschaftsweite Formate wie netCDF oder GRIB für Klimadaten, GeoTIFF oder HDF für Fernerkundungsdaten (letzteres insbesondere für Satellitendaten) oder „proprietäre“ Formate für spezifische Softwarepakete (zB ArcGIS). Diese Formate unterscheiden sich ausreichend voneinander, um das Lesen und Schreiben zu einer weniger als automatischen Aufgabe zu machen.

R und davor S+ haben Bibliotheken/Pakete enthalten, die den Dialog zwischen beispielsweise R und dem Open-Source-GIS von GRASS (d. h. spgrass6) unterstützen. In jüngerer Zeit jedoch ermöglichen die Pakete sp , sf und raster in R die Ausführung vieler typischer Analysen, die ein allgemeines GIS bieten würde, ohne dass eine Schnittstelle erforderlich ist – die Analyse kann direkt (und vollständig) in durchgeführt werden r.

Das Raster-Paket kann viele der Standardformate für den Umgang mit Raster-Daten lesen und schreiben, und hat auch die Möglichkeit, dies zu tun, ohne den gesamten Datensatz in den Speicher zu laden, was die Analyse sehr großer Datensätze erleichtert. In den hier beschriebenen Beispielen werden Daten, die als netCDF-Dateien gespeichert sind, der Hauptmodus, in dem große klima- und erdsystemwissenschaftliche Datensätze gespeichert werden, verwendet, um den Ansatz zum Lesen und Schreiben großer Datensätze mit dem ncdf4-Paket sowie zum Lesen und Analysieren zu veranschaulichen Daten mit dem raster-Paket, aber die gleichen Grundideen gelten beispielsweise für HDF-Dateien, die mit readGDAL() aus dem rgdal-Paket gelesen werden. Die Pakete sp und sf bieten zusammen mit ggplot2 Unterstützung für das Mapping und Plotten.


Geografische Entfernungen berechnen

Eine der gebräuchlichsten Operationen mit geografischen Daten ist vielleicht die Berechnung von Entfernungen zwischen zwei Orten oder Personen. Dies geschieht oft mit GPS-Koordinaten (Längen- und Breitengrad). Betrachten Sie Montpellier in Südfrankreich mit ungefähren Koordinaten N 43°36', E 4°00'. Wie groß ist die Entfernung von dieser Stadt zu einem Ort, der drei Grad östlich liegt (in der Nähe von Cannes)? Dies kann mit der geodätischen Distanz berechnet werden, die Winkelberechnungen beinhaltet. Es ist in der Funktion geod in pegas implementiert, die als Argumente zwei Koordinatenvektoren (oder eine Matrix mit zwei Spalten) verwendet und eine (symmetrische) Matrix mit den Entfernungen in Kilometern (km) zurückgibt:

Wie groß ist die Entfernung zwischen zwei Orten mit den gleichen Längengraden, aber auf dem Äquator?

Die Berechnungen müssen mit Koordinaten in Dezimalgrad durchgeführt werden, geographische Koordinaten werden jedoch normalerweise in Winkeleinheiten gespeichert. Zur Konvertierung dieser Daten bietet pegas auch die Funktion geoTrans an, die hinsichtlich des Eingabeformats recht flexibel ist und die Koordinaten in Dezimalgrad ausgibt:

Liegen die Koordinaten in UTM vor, können einfache euklidische Abstände verwendet werden, da die Quadrate des UTM-Systems annähernd flach sind (Abb. 8.1).

In natürlichen Populationen sind geografische Entfernungen nicht immer aussagekräftig, um die Verbindungen zwischen ihnen zu quantifizieren. Das Paket gdistance berechnet allgemeine Abstandsmatrizen unter Verwendung von GIS-Daten, die in der Klasse des Paket-Rasters enthalten sein müssen. Die Operation verläuft in mehreren Schritten. Der erste Schritt besteht darin, ein Raster mit den entsprechenden Variablen zur Berechnung der Entfernungen (Höhe, Landbedeckung, . ) zu haben. Der zweite Schritt besteht darin, Übergänge zwischen den Zellen des Rasters mit der Funktion Übergang und einer Funktion zu definieren, die definiert Übergänge in Abhängigkeit zum Beispiel von Landbedeckung und/oder Höhe usw. Der dritte Schritt besteht darin, die geografische Verzerrung mit der Funktion geoCorrection zu korrigieren, da die Übergänge zwischen den Zellen nicht die gleiche Entfernung aufweisen (insbesondere aufgrund der unterschiedlichen Größen der Zellen in Bezug auf den Breitengrad, siehe oben die beiden Beispiele für geodätische Entfernungsberechnungen). Der vierte Schritt besteht darin, Entfernungen zwischen einem Satz von Orten zu berechnen, wenn die Koordinaten auf dem Raster und die obigen Übergangsdefinitionen gegeben sind.


Das Bewerbung Ornament weist auf eine Auflösung einer Aussetzung hin und ist nicht durchstrichen. Sie lösen ein Gefühl der „Sehnsucht“ aus. Die Noten benötigen im Takt die tatsächliche Zeit im Verhältnis zu dem Notentyp, der verwendet wird, um sie darzustellen. Wenn das Ornament mehrere Noten enthält, sollten sie alle vom Auftraggeber Zeit in Anspruch nehmen.

Das Acciacatura ist die traditionelle Vorschlagsnote mit einem Schrägstrich, die normalerweise durch ein Achtel angezeigt wird. Diese Noten sollen keine Zeit in Anspruch nehmen und dazu dienen, die Tonlage zu schmücken, auf der sie sich befinden. Dies gilt für eine beliebige Anzahl von Noten im Ornament.

Die Bilder stammen aus Wikipedia und sollten daher unter die Wikimedia-Lizenz passen.


Unterschied zwischen raster() und readGDAL()? - Geografisches Informationssystem

Zwei gängige Datenformate basierend auf dem Raster-Datenmodell sind Raster und Bilder.

Raster sind ein ESRI-Dateiformat, das verwendet wird, um sowohl diskrete Features wie Gebäude, Straßen und Flurstücke als auch kontinuierliche Phänomene wie Höhe, Temperatur und Niederschlag zu speichern.

Denken Sie daran, dass die Grundeinheit des Raster-Datenmodells die Zelle ist. Zellen speichern Informationen darüber, wie die Dinge an einem bestimmten Ort auf der Erdoberfläche sind. Je nach Art der gespeicherten Daten können Zellenwerte entweder ganze Zahlen (ganze Zahlen) oder Gleitkommazahlen (Zahlen mit Dezimalstellen) sein. Es gibt zwei Arten von Rastern: eines speichert Ganzzahlen und das andere speichert Gleitkommazahlen.

Ein diskretes Gitter enthält Zellen, deren Werte ganze Zahlen sind, oft Codenummern für eine bestimmte Kategorie. Zellen können in einem diskreten Raster denselben Wert haben. In einem diskreten Landnutzungsraster wird beispielsweise jeder Landnutzungstyp durch eine andere ganze Zahl codiert, aber viele Zellen können denselben Code haben. Diskrete Raster verfügen über eine Attributtabelle, in der die Zellwerte und die zugehörigen Attribute gespeichert sind.

Ein kontinuierliches Gitter wird verwendet, um kontinuierliche Phänomene darzustellen, seine Zellenwerte sind Gleitkommazahlen. Jede Zelle in einem fortlaufenden Raster kann einen anderen Gleitkommawert haben. In einem kontinuierlichen Raster, das die Höhe darstellt, kann beispielsweise eine Zelle einen Höhenwert von 564,3 Metern speichern, während die Zelle links davon einen Höhenwert von 565,1 Metern speichern könnte. Im Gegensatz zu diskreten Rastern haben kontinuierliche Raster keine Attributtabelle.

Diskrete Raster repräsentieren diskrete Features wie Landnutzungskategorien mit ganzzahligen Werten. Kontinuierliche Raster stellen kontinuierliche Phänomene wie die Höhe mit Gleitkommawerten dar.

Die Attributtabellen diskreter Gitter haben das INFO-Format, das gleiche Format, in dem die Attributtabellen der Coverage-Feature-Class gespeichert werden. Wie bei Coverage-Attributtabellen wird die INFO-Tabelle eines diskreten Rasters in einem Infoordner gespeichert, der auf derselben Ebene wie das Raster in einem Arbeitsbereichsordner gespeichert wird. Wie bei Coverages gibt es einen Info-Ordner für alle Raster in einem Arbeitsbereichsordner. Um eine Unterbrechung oder Beschädigung der Verbindung zwischen Rasterdateien und dem Infoordner zu vermeiden, verwenden Sie zum Verschieben, Kopieren, Umbenennen und Löschen von Rastern immer ArcCatalog.

Der Arbeitsbereichsordner Raster enthält zwei Raster: Böden und Vegetation. Die Attributtabellen für beide Grids werden im Infoordner gespeichert. Hilfsdateien, die als grounds.aux und vegetation.aux bezeichnet werden, verknüpfen die Raster und ihre Attributtabellen.

Der Begriff "Bild" ist ein Sammelbegriff für Raster, deren Zellen oder Pixel Helligkeitswerte von reflektiertem sichtbarem Licht oder anderen Arten elektromagnetischer Strahlung, wie emittierte Wärme (Infrarot) oder Ultraviolett (UV) speichern. Luftbilder, Satellitenbilder und gescannte Papierkarten sind Beispiele für Bilder, die häufig in einem GIS verwendet werden.

Bilder können als Layer in einer Karte angezeigt oder als Attribute für Vektor-Features verwendet werden. Ein Immobilienunternehmen kann beispielsweise Fotos von verfügbaren Häusern als Attribut eines Home-Layers hinzufügen. Um als Ebene angezeigt zu werden, müssen Bilder jedoch auf reale Orte verweisen.

Zum Beispiel ist ein Luftbild, wie es von der Kamera kommt, nur ein statisches Bild, wie ein Bild eines Hauses. Es gibt keine Informationen darüber, welchen Teil der Welt das Foto aufgenommen hat, und das Foto kann Verzerrungen und Skalierungsschwankungen enthalten, die durch den Kamerawinkel verursacht werden. Zur korrekten Darstellung mit anderen Kartenebenen muss dem Luftbild ein Koordinatensystem zugewiesen werden und einige seiner Pixel müssen mit bekannten geographischen Koordinaten verknüpft werden.

Rasterbilder wie Luftbilder und gescannte Karten können auf reale Standorte referenziert und dann als Layer in einer GIS-Karte angezeigt werden.

Es gibt viele Bilddateiformate, die sich in der Art der Komprimierung unterscheiden, die verwendet wird, um die Dateigröße zu reduzieren. Einige der von der ArcGIS-Software unterstützten Bildformate sind . tif (Tagged Image File Format), . sid (LizardTech MrSID), . img (ERDAS Imagine) und .jpg (Joint Photographic Experts Group).


R. R-Skripte erstellen¶

Die R-Integration in QGIS unterscheidet sich von der von SAGA darin, dass es keinen vordefinierten Satz von Algorithmen gibt, die Sie ausführen können (mit Ausnahme einiger Beispiele). Stattdessen sollten Sie Ihre Skripte schreiben und R-Befehle aufrufen, ähnlich wie Sie es von R aus tun würden, und auf eine sehr ähnliche Weise wie wir es in dem Abschnitt über die Verarbeitung von Skripten gesehen haben. Dieser Abschnitt zeigt Ihnen die Syntax zum Aufrufen dieser R-Befehle von QGIS und wie Sie QGIS-Objekte (Layer, Tabellen) darin verwenden.

Das erste, was Sie tun müssen, ist, wie wir im Fall von SAGA gesehen haben, QGIS mitzuteilen, wo sich Ihre R-Binärdateien befinden. Sie können dies mit der R-Ordner Eintrag im Verarbeitungskonfigurationsdialog. Nachdem Sie diesen Parameter festgelegt haben, können Sie mit der Erstellung und Ausführung Ihrer eigenen R-Skripte beginnen.

zum Fenster Benutzer, normalerweise befindet sich die ausführbare R-Datei im C:ProgrammdateienRR-3.2 Mappe. Fügen Sie nur den Ordner hinzu und NICHT die binäre!

Auch hier ist dies unter Linux anders, und Sie müssen nur sicherstellen, dass der Ordner R in der Umgebungsvariablen PATH enthalten ist. Wenn Sie R starten können, tippen Sie einfach R in einer Konsole, dann können Sie loslegen.

Um einen neuen Algorithmus hinzuzufügen, der eine R-Funktion aufruft (oder ein komplexeres R-Skript, das Sie entwickelt haben und von QGIS verfügbar haben möchten), müssen Sie eine Skriptdatei erstellen, die dem Verarbeitungsframework mitteilt, wie diese Operation auszuführen ist und die entsprechenden R-Befehle dazu.

R-Skriptdateien haben die Erweiterung .rsx , und deren Erstellung ist ziemlich einfach, wenn Sie nur über Grundkenntnisse der R-Syntax und der R-Skripterstellung verfügen. Sie sollten im R-Skriptordner gespeichert werden. Sie können diesen Ordner im R settings-Gruppe (verfügbar im Dialogfeld "Verarbeitungseinstellungen"), genau wie beim Ordner für normale Verarbeitungsskripte.

Schauen wir uns eine sehr einfache Skriptdatei an, die die R-Methode aufruft spsample um ein zufälliges Gitter innerhalb der Grenzen der Polygone in einem bestimmten Polygon-Layer zu erstellen. Diese Methode gehört zu den Kartentools Paket. Da fast alle Algorithmen, die Sie in QGIS integrieren möchten, Geodaten verwenden oder generieren, sind Kenntnisse über Geodatenpakete wie Kartentools und vor allem, sp , ist obligatorisch.

Die ersten Zeilen, die mit einem doppelten Python-Kommentarzeichen ( ## ), teilen Sie QGIS die Eingaben des in der Datei beschriebenen Algorithmus und die Ausgaben mit, die er erzeugen wird. Sie arbeiten mit exakt der gleichen Syntax wie die bereits gesehenen Processing-Skripte, daher werden sie hier nicht noch einmal beschrieben.

Bitte schauen Sie in die R Einführung und der R-Syntax Schulungshandbuch-Kapitel für weitere Informationen zum Schreiben eigener R-Skripte-

Wenn Sie einen Eingabeparameter deklarieren, verwendet QGIS diese Informationen für zwei Dinge: Erstellen der Benutzeroberfläche, um den Benutzer nach dem Wert dieses Parameters zu fragen und Erstellen einer entsprechenden R-Variablen, die später als Eingabe für R-Befehle verwendet werden kann.

Im obigen Beispiel deklarieren wir eine Eingabe vom Typ Vektor genannt polyg . Beim Ausführen des Algorithmus öffnet QGIS den vom Benutzer ausgewählten Layer in R und speichert ihn in einer Variablen namens polyg . Der Name eines Parameters ist also auch der Name der Variablen, die wir in R verwenden können, um auf den Wert dieses Parameters zuzugreifen (daher sollten Sie es vermeiden, reservierte R-Wörter als Parameternamen zu verwenden).

Räumliche Elemente wie Vektor- und Rasterebenen werden mit dem readOGR() und Backstein() Befehle (Sie müssen sich nicht darum kümmern, diese Befehle zu Ihrer Beschreibungsdatei hinzuzufügen – QGIS wird dies tun), und sie werden gespeichert als Räumlich*DataFrame Objekte. Tabellenfelder werden als Strings gespeichert, die den Namen des ausgewählten Felds enthalten.

Tabellen werden mit dem geöffnet read.csv() Befehl. Wenn eine vom Benutzer eingegebene Tabelle nicht im CSV-Format vorliegt, wird sie vor dem Import in R konvertiert.

Darüber hinaus können Rasterdateien mit dem readGDAL() Befehl statt Backstein() mit der ##usereadgdal .

Wenn Sie ein fortgeschrittener Benutzer sind und nicht möchten, dass QGIS das Objekt erstellt, das den Layer repräsentiert, können Sie das ##Passdateinamen -Tag, um anzugeben, dass Sie stattdessen eine Zeichenfolge mit dem Dateinamen bevorzugen. In diesem Fall liegt es an Ihnen, die Datei zu öffnen, bevor Sie eine Operation an den darin enthaltenen Daten durchführen.

Mit den obigen Informationen können wir nun die erste Zeile unseres ersten Beispielskripts verstehen (die erste Zeile beginnt nicht mit einem Python-Kommentar).

Die Variable Polygon enthält bereits a SpatialPolygonsDataFrame -Objekt, sodass es verwendet werden kann, um die spsample Methode, genau wie die Anzahl Punkte eins, das die Anzahl der Punkte angibt, die dem erstellten Beispielraster hinzugefügt werden sollen.

Da wir eine Ausgabe vom Typ Vektor namens . deklariert haben aus , müssen wir eine Variable namens . erstellen aus und speichern Räumlich*DataFrame Objekt darin (in diesem Fall a SpatialPointsDataFrame ). Sie können einen beliebigen Namen für Ihre Zwischenvariablen verwenden. Stellen Sie einfach sicher, dass die Variable, die Ihr Endergebnis speichert, denselben Namen hat, den Sie verwendet haben, um sie zu deklarieren, und dass sie einen geeigneten Wert enthält.

In diesem Fall ist das Ergebnis aus dem spsample Methode muss explizit in a . umgewandelt werden SpatialPointsDataFrame Objekt, da es selbst ein Objekt der Klasse ist ppp , die keine geeignete Klasse ist, um an QGIS zurückgegeben zu werden.

Wenn Ihr Algorithmus Raster-Layer generiert, hängt die Art der Speicherung davon ab, ob Sie die you ##dontuserasterpaket Möglichkeit. Wenn Sie es verwendet haben, werden Ebenen mit dem writeGDAL() Methode. Wenn nicht, die writeRaster() Methode aus dem Raster Paket verwendet wird.

Wenn Sie die ##Passdateinamen Option werden Ausgaben mit der Raster Paket (mit writeRaster() ), obwohl es nicht für die Eingänge verwendet wird.

Wenn Ihr Algorithmus keinen Layer, sondern ein Textergebnis in der Konsole erzeugt, müssen Sie angeben, dass die Konsole nach Abschluss der Ausführung angezeigt werden soll. Starten Sie dazu einfach die Befehlszeilen, die die zu druckenden Ergebnisse liefern, mit dem > (‘größer’) Zeichen. Die Ausgabe aller anderen Zeilen wird nicht angezeigt. Hier ist zum Beispiel die Beschreibungsdatei eines Algorithmus, der einen Normalitätstest für ein gegebenes Feld (Spalte) der Attribute einer Vektorebene durchführt:

Die Ausgabe der letzten Zeile wird gedruckt, die Ausgabe der ersten jedoch nicht (und auch die Ausgaben von anderen Befehlszeilen werden nicht automatisch von QGIS hinzugefügt).

Wenn Ihr Algorithmus irgendeine Art von Grafiken erstellt (mit dem Handlung() Methode), fügen Sie die folgende Zeile hinzu:

Dies veranlasst QGIS, alle grafischen R-Ausgaben in eine temporäre Datei umzuleiten, die geöffnet wird, sobald die R-Ausführung abgeschlossen ist.

Sowohl die Grafik- als auch die Konsolenergebnisse werden im Verarbeitungsergebnismanager angezeigt.

Weitere Informationen finden Sie in den Skriptdateien, die mit Processing bereitgestellt werden. Die meisten von ihnen sind ziemlich einfach und werden Ihnen helfen zu verstehen, wie Sie Ihre eigenen Skripte erstellen.

rgdal und Raster Bibliotheken werden standardmäßig geladen, sodass Sie die entsprechenden nicht hinzufügen müssen Bibliothek() Befehle (Sie müssen nur sicherstellen, dass diese beiden Pakete in Ihrer R-Distribution installiert sind). Andere zusätzliche Bibliotheken, die Sie möglicherweise benötigen, müssen jedoch explizit durch Eingabe geladen werden. Bibliothek(ggplot2) . Wenn das Paket noch nicht auf Ihrem Computer installiert ist, wird es von Processing heruntergeladen und installiert. Auf diese Weise wird das Paket auch in R Standalone verfügbar sein. Sei vorsichtig Wenn das Paket heruntergeladen werden muss, kann es beim ersten Ausführen des Skripts lange dauern.


Kapitel 6 Verwenden von R als GIS: Arbeiten mit Raster- und Vektordaten

Eine häufige GIS-Aufgabe in der Archäologie besteht darin, Raster- und Vektordaten in Beziehung zu setzen – z. B. Standortstandorte mit Umgebungsvariablen wie Höhe, Neigung und Ausrichtung in Beziehung zu setzen. Es ist üblich, dies zu tun, indem Werte für die Punktpositionen in einem Shapefile von Standorten berechnet werden, und oft von Interesse, um Umgebungsvariablen über einige Aspekte der Standortvariabilität zu vergleichen - Funktion, Zeitraum, Größe usw. Hier nehmen wir etwas mehr robuster Ansatz, der eher die Gebiete um Standorte als ihre genauen Standorte betrachtet, einen Puffer um jeden Standort herum berechnet und dann den Durchschnitt der Werte mehrerer Umgebungsvariablen innerhalb dieser Puffer bildet. Der Einfachheit halber verwenden wir ein DEM und daraus abgeleitete Raster mit Neigung und Aspekt, aber es können auch andere Rasterdaten verwendet werden. Anhand eines fiktiven Datensatzes für ein kleines Gebiet in der Provence werfen wir einen Blick auf einige Werkzeuge zur Untersuchung räumlicher Daten und zeigen, dass sich die in der frühen Eisenzeit und der gallo-römischen Zeit besiedelten Gebiete in Bezug auf einige Variablen deutlich unterschieden. , aber bei anderen ähnlich.

Wir könnten zum Beispiel vermuten, dass die römische Kolonisierung des Gebiets auf der Getreideanbauproduktion für den Export beruhte und dass infolgedessen die gallo-römische Besiedlung relativ niedriges, flaches Land, das für solche Aktivitäten geeignet war, bevorzugt hätte. Wir konnten diese Hypothese testen, indem wir die in den beiden Perioden besetzten Gebiete in Bezug auf Höhe und Neigung vergleichen.

6.0.1.1 Erste Schritte: Datenimport und -format

Wir beginnen mit dem Laden einiger Pakete…

…und dann die Daten importieren und untersuchen.

6.0.1.2 Arbeiten mit einem DEM

Wir können die DEM verwenden, um DEM-Derivate zu berechnen.

Diese Zusammenfassungen sind nützlich, aber lassen Sie uns auch unser Raster-DEM zeichnen. Dies ist nicht unbedingt erforderlich, aber es ist beruhigend zu sehen, dass die Daten aussagekräftig sind. Wir werden nicht versuchen, den Plot zu hübsch zu machen, die angegebenen Optionen reichen gerade aus, um ihn als verständliches Terrain-DEM darzustellen.

6.0.1.3 Raster- und Punktdarstellung

Wir können überprüfen, ob unsere Daten den gleichen Raum einnehmen, und unsere Hypothese visuell bewerten, indem wir das Raster mit den übereinandergelegten Orten als Punkte zeichnen, wobei Farbe und Form je nach Zeitraum variieren. Da dies nur zu Erkundungszwecken dient, werden wir uns keine Sorgen machen, es zu hübsch zu machen.

Zufrieden damit, dass unsere Daten sinnvoll sind und vielleicht bereits einige Ideen zur Standortverteilung entwickelt haben, indem wir nur auf die Karte starren, können wir die Standortstandorte analytisch erkunden. Wir beginnen mit dem Erstellen eines Raster-Stacks, der aus den Rastern der drei zu untersuchenden Variablen besteht: Höhe, Neigung und Ausrichtung.

6.0.1.4 Rasterstapel

6.0.1.5 Verwenden von extract() zum selektiven Zusammenfassen von Rasterdaten

Wir können dann diesen Rasterstapel nehmen und Extract() verwenden, um die Werte von DEM, Steigung und Aspekt innerhalb eines Puffers um jeden Punkt zusammenzufassen.

Die Ergebnisse können auf verschiedene Weise untersucht werden. Hier erstellen wir Boxplots für jede der interessierenden Variablen. Wir werden jede Variable nach Periode darstellen, sodass jedes Ergebnis zwei Box-and-Whisker-Plots umfasst, eine für die frühe Eisenzeit und eine für die gallo-römische Zeit

6.0.1.6 Boxplotting zur explorativen Datenanalyse

Wie bei der explorativen Raster- und Punktzeichnung, die wir oben gemacht haben, werden wir uns nicht allzu viele Sorgen machen, diese Plots hübsch zu machen, sondern nur genug tun, um sie visuell leicht verständlich zu machen. Ich verwende das Gitterpaket für das Plotten, aber es gibt auch mehrere andere Möglichkeiten, dies zu tun. Etwas, das wir Gewohnheit hier einzugehen, weil es eine zusätzliche Komplikationsebene hinzufügt, ist auch die Charakterisierung des Umwelthintergrunds, d. h. die Bewertung der Frage, ob Siedlungsstandorte eine Zufallsstichprobe der verfügbaren Landschaft darstellen oder sich stattdessen auf bestimmte Arten von Standorten konzentrieren.

Wir können unsere Hypothese bereits beurteilen, indem wir diese Plots einzeln betrachten, aber da wir sie in Objekte geschrieben haben, können wir sie auch problemlos in einem einzigen Plot nebeneinanderstellen und die Ergebnisse betrachten.

Wir können nun alle visuellen Einschätzungen, die wir gemacht haben, quantitativ beurteilen: Es ist klar (die Kerben geben ein ungefähres 95%-Konfidenzintervall für die Mediane an), dass Teile der Landschaft mit unterschiedlicher Neigung und Höhe in den beiden Perioden bevorzugt wurden (und im Gegensatz dazu Aspekt wurde ähnlich betrachtet oder blieb vielleicht unwichtig).

6.0.1.7 Zusammenfassung

Was bedeutet das alles für die archäologische Fragestellung? Unsere Hypothese sieht auf den ersten Blick ziemlich zwingend aus. Es gibt einen deutlichen Wechsel zwischen der frühen Eisenzeit und der gallo-römischen Periode in den bevorzugten Landschaftsteilen, und das Muster ist robust. Dies sollte jedoch als explorative Analyse angesehen werden, und es gelten gängige GIS-Vorbehalte:

  • die Variablen, die wir betrachten, umfassen kaum eine erschöpfende Liste,
  • Bei so weit gefassten Kategorien besteht vielleicht die Gefahr eines ökologischen Fehlschlusses,
  • Es besteht immer ein gewisses Risiko, dass eine andere Variable, die mit den von uns untersuchten zusammenhängt oder zumindest mit ihnen kovariiert, ist tatsächlich der ursächliche,
  • Themen wie Datenqualität und Landschaftstaphonomie sollten berücksichtigt werden,
  • wir privilegieren Umweltvariablen, weil diese Daten leicht verfügbar sind,
  • usw.

Dies sind jedoch eher Probleme der Argumentkonstruktion als der Methode, und ich finde, dass dies ein leistungsstarkes Werkzeug ist, um Daten zu untersuchen und darüber nachzudenken, welche Argumente genauer getestet werden sollen. Solche Probleme könnten durch weitere Untersuchung der Daten (z. B. Untersuchung anderer Standortvariablen, Variieren der Puffergröße, Variieren der zur Beschreibung der Landschaft innerhalb des Puffers verwendeten Zusammenfassungsstatistiken), Hinzufügen anderer Daten (z. B. Raster der Entfernung von Bächen) angegangen werden , Bodenart und -tiefe usw.) und überlegen, was es braucht, um ein robusteres Argument aufzubauen.

Um abschließend zu überlegen, was wir durch die Verwendung von R als GIS auf diese Weise (anstelle von QGIS, ArcGIS usw.) gewinnen könnten, möchte ich vier der Schritte hervorheben, die wir durchlaufen haben:

  1. Subsetting-Daten
  2. Hinzufügen von Umgebungsvariablen (oder beliebigen räumlichen Variablen) als Rasterdaten und Zusammenfassung dieser in Bezug auf Standortstandorte
  3. Angabe analytischer Parameter (z. B. Puffergröße, zusammenfassende Statistik)
  4. Visualisierung der Verteilungen der Umweltvariablen für die Standorte

All dies bietet Flexibilität in den Einzelheiten der Analyse, und der gesamte Prozess ist in unterschiedlichen Permutationen oder mit unterschiedlichen Daten leicht wiederholbar.


Bibliographie

Bonham-Carter, G., 1994, Geographische Informationssysteme für Geowissenschaftler: Modellierung mit GIS, New York: Pergamon.

Ford, A., K.C. Clarke, G. Raines, 2009, "Modellierung von Siedlungsmustern der spätklassischen Maya-Zivilisation mit Bayes-Methoden und geographischen Informationssystemen", Annalen der Association of American Geographers , Bd. 99, Nr. 3, 1–25.

Hey, A., S. Tansley und K. Tolle, 2009, Das vierte Paradigma: Datenintensive wissenschaftliche Entdeckung, Redmond, WA: Microsoft Research.

Li, L. und M. F. Goodchild, 2011, "Ein Optimierungsmodell für den linearen Feature-Matching in der geografischen Datenzusammenführung", Internationale Zeitschrift für Bild- und Datenfusion , Bd.2, Nr.4, 309–328.

Longley, P. A., M. F. Goodchild, D. J. Maguire und D. W. Rhin, 2015, Geographische Informationswissenschaft und -systeme. Hoboken , New Jersey, Wiley.

Miller, H. J. und M. F. Goodchild, 2014, "Datengetriebene Geographie", GeoJournal, Band 80, Nr. 4, 449-461. DOI: 10.1007/s10708-014-9602-6.

Sui, D.Z., 2009, "Mashup und der Geist von GIS und Geographie", GeoWelt Nr.12, 15-17.

Turner, A., 2006, Einführung in die Neogeographie, Sebastopol, CA, O’Reilly.


4.2 Vorbereitung der Bodenkovariatenschichten

Bevor wir räumliche Vorhersagemodelle anpassen und Bodenkarten erstellen können, wird zunächst ein erheblicher Aufwand betrieben, um kovariate „Schichten“ vorzubereiten, die als unabhängige Variablen (d. h. „Prädiktorvariablen“) in der statistischen Modellierung verwendet werden können. Typische Operationen zum Generieren von Bodenkovariatenschichten umfassen:

Konvertieren von Polygonkarten in Raster,

Herunterskalieren oder Hochskalieren (Aggregation) von Rastern zur Anpassung an die Zielauflösung (d. h. Vorbereitung eines Stapel),

Herausfiltern fehlender Pixel / Reduzieren von Rausch- und Multikollinearitätsproblemen (Datenüberlappung),

Überlagern und Unterordnen von Rasterstapeln und -punkten,

Die folgenden Beispiele sollen einige Ideen zum Programmieren dieser Schritte unter Verwendung einer möglichst kurzen Syntax mit den schnellsten und robustesten Algorithmen liefern. Rasterdaten können oft sehr groß sein (z. B. Millionen von Pixeln), sodass die Verarbeitung großer Stapel von Fernerkundungsszenen in R sorgfältig geplant werden muss. Das vollständige R-Tutorial kann aus dem Github-Repository heruntergeladen werden. Anweisungen zur Installation und Einrichtung aller in diesem Beispiel verwendeten Software finden Sie im Kapitel 2 Softwareinstallation.

4.2.1 Polygonkarten in Raster umwandelnrast

Bevor wir eine Polygonkarte an andere Stapel von Kovariaten anhängen können, muss sie gerastert werden, d. h. in eine Rasterebene umgewandelt werden, die mit ihrer Begrenzungsbox (Ausdehnung) und räumlicher Auflösung definiert ist. Betrachten Sie zum Beispiel die Polygonkarte des Ebergötzen-Datensatzes aus dem Paket plotKML (Abb. 4.1):

Abbildung 4.1: Ebergotzen-Muttermaterial-Polygonkarte mit Legende.

Wir können dieses Objekt mit dem Raster-Paket in ein Raster konvertieren. Beachten Sie, dass wir, bevor wir die Operation ausführen können, das Zielgittersystem kennen müssen, d. h. die Ausdehnung des Gitters und seine räumliche Auflösung. Wir können dies aus einer vorhandenen Ebene verwenden:

Das eberg_grids25-Objekt ist ein SpatialPixelsDataFrame , bei dem es sich um eine räumlich gerasterte Datenstruktur des sp-Paketpakets handelt. Das Raster-Paket bietet auch Datenstrukturen für räumliche (gerasterte) Daten und speichert solche Daten als RasterLayer-Klasse. Rasterdaten können mit dem Befehl raster aus der Klasse SpatialPixelsDataFrame in einen Raster-Layer konvertiert werden. Mit dem CRS-Befehl des sp-Pakets kann eine räumliche Projektion eingestellt werden. Die EPSG-Projektion 31467 ist das deutsche Koordinatensystem (jedes Koordinatensystem hat eine zugehörige EPSG-Nummer, die von http://spatialreference.org/ bezogen werden kann).

Die Konvertierung von Polygon zu Raster ist jetzt über den Befehl rasterize möglich:

Abbildung 4.2: Ebergotzen-Muttermaterial-Polygonkarte gerastert auf 25 m räumliche Auflösung.

Das Konvertieren großer Polygone in R mit dem Raster-Paket kann sehr zeitaufwendig sein. Um die Rasterung von Polygonen zu beschleunigen, empfehlen wir dringend, stattdessen die Fastize-Funktion zu verwenden:

Die Funktion fastize ist um eine Größenordnung schneller und daher besser für die operative Arbeit geeignet. Sie funktioniert jedoch nur mit Simple Feature (sf)-Objekten, daher muss das sp-Polygonobjekt zuerst in ein sf-Objekt umgewandelt werden.

Ein weiterer effizienter Ansatz zum Rastern von Polygonen ist die Verwendung von SAGA GIS, das große Datenmengen verarbeiten kann und einfach parallel ausgeführt werden kann. Zuerst müssen Sie die Polygonkarte in das Shapefile-Format exportieren, was mit den Befehlen des rgdal-Paketpakets erfolgen kann:

Der Befehl writeOGR() schreibt einen SpatialPolygonsDataFrame (die Datenstruktur für Polygondaten in R) in ein ESRI-Shapefile. Hier schreiben wir nur das Attribut "ZONES_int" in das Shapefile. Es ist aber auch möglich, alle Attribute des SpatialPolygonsDataFrame in ein Shapefile zu schreiben.

Als nächstes können Sie das (zuvor installierte) SAGA GIS-Befehlszeilenprogramm (auf einem Microsoft Windows-Betriebssystem oder Linux-System) suchen:

und schließlich das Modul grid_gridding verwenden, um das Shapefile in ein Raster umzuwandeln:

Mit dem Befehl system() können wir einen Befehl des Betriebssystems (OS) aufrufen, hier verwenden wir ihn, um die Datei saga_cmd.exe von R auszuführen. Die Funktion paste0 wird verwendet, um einen String zusammenzufügen, der an den Befehl system() übergeben wird . Die Zeichenfolge beginnt mit dem OS-Befehl, den wir aufrufen möchten (hier saga_cmd.exe ), gefolgt von der Eingabe, die für die Ausführung des OS-Befehls erforderlich ist.

Beachten Sie, dass der Begrenzungsrahmen (in SAGA GIS) mit der Mitte des Eckpixels und nicht mit den Ecken definiert werden muss. Daher nehmen wir die Hälfte der Pixelgröße für Ausdehnungskoordinaten aus dem Rasterpaket. Beachten Sie auch, dass die Klassennamen während der Rasterung verloren gegangen sind (wir arbeiten mit Ganzzahlen in SAGA GIS), aber wir können sie z. B. wieder anhängen:

Abbildung 4.3: Ebergotzen-Zonen gerastert auf 25 m Auflösung und mit korrekten Faktorbeschriftungen.

4.2.2 Herunterskalieren oder Hochskalieren (Aggregation) von Rastern

Damit alle Kovariaten perfekt funktionieren Stapel, müssen wir auch die Auflösung einiger Kovariaten anpassen, deren Auflösung im Vergleich zur Zielauflösung entweder zu grob oder zu fein ist. Der Vorgang, Rasterebenen auf eine Zielrasterauflösung zu bringen, wird auch als Resampling. Betrachten Sie das folgende Beispiel aus der Fallstudie Ebergotzen:

In diesem Fall haben wir einige Layer, die wir für die räumliche Vorhersage in Kombination mit den in den vorherigen Abschnitten erstellten Karten verwenden möchten, deren Auflösung jedoch 100 m, also etwa 16-mal gröber ist. Die wahrscheinlich robusteste Methode zum Resampling von Rastern ist die Verwendung der gdalwarp-Funktion der GDAL-Software. Angenommen, Sie haben GDAL bereits installiert, müssen Sie nur das Programm auf Ihrem System finden und können dann gdalwarp erneut über den Systembefehl ausführen:

Der Befehl writeGDAL schreibt das TWISRT6-Grid, das im Grid-Stack eberg_grid gespeichert ist, in eine TIFF-Datei. Dieses TIFF wird anschließend von der gdalwarp-Funktion gelesen und unter Verwendung voncubicspline in eine 25-m-TIFF-Datei neu abgetastet, die Werte zwischen den ursprünglichen Gitterknoten mit glatten Oberflächen auffüllt. Beachten Sie, dass die Funktion paste0 im Befehl system() die folgende Zeichenfolge zusammenfügt:

We can compare the two maps (the original and the downscaled) next to each other by using:

Figure 4.4: Original TWI vs downscaled map from 100 m to 25 m.

The map on the right looks much smoother of course (assuming that this variable varies continuously in space, this could very well be an accurate picture), but it is important to realize that downscaling can only be implemented up to certain target resolution i.e. only for certain features. For example, downscaling TWI from 100 to 25 m is not much of problem, but to go beyond 10 m would probably result in large differences from a TWI calculated at 10 m resolution (in other words: be careful with downscaling because it is often not trivial).

The opposite process to downscaling is upscaling or aggregation. Although this one can also potentially be tricky, it is a much more straightforward process than downscaling. We recommend using the average method in GDAL for aggregating values e.g.:

Figure 4.5: Original TWI vs aggregated map from 100 m to 250 m.

4.2.3 Deriving DEM parameters using SAGA GIS

Now that we have established a connection between R and SAGA GIS, we can also use SAGA GIS to derive some standard DEM parameters of interest to soil mapping. To automate further processing, we make the following function:

To run this function we only need DEM as input:

which processes all DEM derivatives at once. We can plot them using:

Figure 4.6: Some standard DEM derivatives calculated using SAGA GIS.

This function can now be used with any DEM to derive a standard set of 7–8 DEM parameters consisting of slope and curvature, TWI and MrVBF, positive and negative openness, valley depth and deviation from mean value. You could easily add more parameters to this function and then test if some of the other DEM derivatives can help improve mapping soil properties and classes. Note that SAGA GIS will by default optimize computing of DEM derivatives by using most of the available cores to compute (parallelization is turned on automatically).

4.2.4 Filtering out missing pixels and artifacts

After bringing all covariates to the same grid definition, remaining problems for using covariates in spatial modelling may include:

Multicolinearity (i.e. data overlap),

In a stack with tens of rasters, the weakest layer (i.e. the layer with greatest number of missing pixels or largest number of artifacts) could cause serious problems for producing soil maps as the missing pixels and artifacts would propagate to predictions: if only one layer in the raster stack misses values then predictive models might drop whole rows in the predictions even though data is available for 95% of rows. Missing pixels occur for various reasons: in the case of remote sensing, missing pixels can be due to clouds or similar noise is often due to atmospheric conditions. Missing pixels (as long as we are dealing with only a few patches of missing pixels) can be efficiently filtered by using for example the gap filling functionality available in the SAGA GIS e.g.:

In this example we use the same input and output file for filling in gaps. There are several other gap filling possibilities in SAGA GIS including Close Gaps with Spline, Close Gaps with Stepwise Resampling and Close One Cell Gaps. Not all of these are equally applicable to all missing pixel problems, but having <10% of missing pixels is often not much of a problem for soil mapping.

Another elegant way to filter the missing pixels, to reduce noise and to reduce data overlap is to use Principal Components transformation of original data. This is available also via the GSIF function spc :

Figure 4.7: 11 PCs derived using input Ebergotzen covariates.

The advantages of using the spc function are:

All output soil covariates are numeric (and not a mixture of factors and numeric),

The last 1-2 PCs often contain signal noise and could be excluded from modelling,

In subsequent analysis it becomes easier to remove covariates that do not help in modelling (e.g. by using step-wise selection and similar),

A disadvantage of using spc is that these components are often abstract so that interpretation of correlations can become difficult. Also, if one of the layers contains many factor levels, then the number of output covariates might explode, which becomes impractical as we should then have at least 10 observations per covariate to avoid overfitting.

4.2.5 Overlaying and subsetting raster stacks and points

Now that we have prepared all covariates (resampled them to the same grid and filtered out all problems), we can proceed with running overlays and fitting statistical models. Assuming that we deal with a large number of files, an elegant way to read all those into R is by using the raster package, especially the stack and raster commands. In the following example we can list all files of interest, and then read them all at once:

One could now save all the prepared covariates stored in SpatialGridDataFrame as an RDS data object for future use.

To overlay rasters and points and prepare a regression matrix, we can either use the over function from the sp package, or extract function from the raster package. By using the raster package, one can run overlay even without reading the rasters into memory:

If the raster layers can not be stacked and if each layer is available in a different projection system, you can also create a function that reprojects points to the target raster layer projection system:

which can also be run in parallel for example by using the parallel package:

In a similar way, one could also make wrapper functions that downscale/upscale grids, then filter missing values and stack all data together so that it becomes available in the working memory (sp grid or pixels object). Overlay and model fitting is also implemented directly in the GSIF package, so any attempt to fit models will automatically perform overlay.

4.2.6 Working with large(r) rasters

As R is often inefficient in handling large objects in memory (such as large raster images), a good strategy to run raster processing in R is to consider using for example the clusterR function from the raster package, which automatically parallelizes use of raster functions. To have full control over parallelization, you can alternatively tile large rasters using the getSpatialTiles function from the GSIF package and process them as separate objects in parallel. The following examples show how to run a simple function in parallel on tiles and then mosaic these tiles after all processing has been completed. Consider for example the sample GeoTiff from the rgdal package:

We can split that object in 35 tiles, each of 5 x 5 km in size by running:

Figure 4.8: Example of a tiling system derived using the GSIF::getSpatialTiles function.

rgdal further allows us to read only a single tile of the GeoTiff by using the offset and region.dim arguments:

Figure 4.9: A tile produced from a satellite image in the example in the previous figure.

We would like to run a function on this raster in parallel, for example a simple function that converts values to 0/1 values based on a threshold:

This can now be run through the mclapply function from the parallel package (which automatically employs all available cores):

If we look in the tiles folder, this should show 35 newly produced GeoTiffs. These can be further used to construct a virtual mosaic by using:

Note we use a few important settings here for GDAL e.g. -overwrite -co "COMPRESS=DEFLATE" to overwrite the GeoTiff and internally compress it to save space, and -r "near" basically specifies that no resampling is applied, just binding of tiles together. Also, if the output GeoTiff is HUGE, you will most likely have to turn on -co "BIGTIFF=YES" otherwise gdalwarp would not run through. The output mosaic looks like this:

Figure 4.10: Final processed output.

This demonstrates that R can be used to compute with large rasters, provided that these operations can be parallelized. Suggested best practice for this is to: (1) design a tiling system that optimizes use of RAM and read/write speed of a disk, (2) prepare and test a function that can then be run in parallel, and (3) stitch back all tiles to create a single large raster using gdalwarp .

Note that such Fliesen und nähen can not be applied universally to all problems e.g. functions that require global geographical search or all data in the raster. In such cases tiling should be applied with overlap (to minimize boundary effects) or to irregular tiling systems (e.g. per watershed). Once an optimal tiling system and function is prepared, R is no longer limited to running efficient computing, but only dependent on how much RAM and how many cores you have available i.e. it becomes more of a hardware than a software problem.


R-bloggers

Posted on November 20, 2009 by joe in Uncategorized | 0 Comments

Recently (2008) the Europäische Weltraumorganisation produziert GlobCover ( ESA GlobCover Project, led by MEDIAS-France ), the highest resolution (300m) global land cover map to date. GlobCover uses 21 primary land cover classes and many more sub-classes. Land cover classification (LCC) schemes divide the earth into biomes. Biomes are the simplest way to classify vegetation which can be applied globally. LCC makes sense because the boundaries between different ecosystems (ecotones) are sharp. However, definitions vary and there is no agreed standard set of biomes. [1]

GlobCover Example

Puntarenas is a province on the pacific coast of Costa Rica. The province has a typical mix of tropical land cover. This includes some spectacular examples of Pacific Rainforest, notably on the Osa Peninsula. Puntarenas has an area of ≈ 11,000 sq. km or about 120,000 GlobCover pixels.

13 land cover types are present in the GlobCover map below. The barplot on the right shows the total amounts present in each class.

The GlobCover legend (above) has mixed land cover classes, where more than one biome occurs inside a map pixel. This is especially true in the man-made biomes (agriculture) . For example, there are three cropland land cover types depending on the relative amounts of other vegetation present.

GlobCover map making in R

R is a programming language, not a specialised geographic information system (GIS) such as GRASS or commercial packages. However applications of R to spatial problems is a growth industry. [2]

A GlobCover map similar to the above can be produced for any area of interest. Das Geospatial Data Abstraction Library (GDAL) should be installed on your system. FWTools is the place to go. You also need R Pakete sp und rgdal Eingerichtet. The regional GLOBCOVER map for Central America can be downloaded from ESA Hier. GlobCover is in GeoTiff format i.e. a Tiff image file which contains georeferencing information. The following GDAL command (from command line, or run from R using Schale) creates a 4° x 4° submap centred on Costa Rica.
gdalwarp GLOBCOVER_200412_200606_V2.2_CentralAmerica_Reg.tif -te -86 8 -82 12 costaRica.tif

costaRica.tif is read into R Verwendung der rgdal package:

library(rgdal) costa <- readGDAL("costaRica.tif")

costa has class SpatialGridDataFrame, which is a class defined in the package sp (loaded when rgdal is loaded).

Administative boundaries for Costa Rica were obtained from Global Administrative Areas www.gadm.org (see Revolution R blog post)

con <- url("http://gadm.org/data/rda/CRI_adm1.RData") load(con) close(con)

Costa Rican provinces are now contained in the object gadm der Klasse SpatialPolygonsDataFrame. The boundaries of Puntarenas province (excluding Cocos Island) are extracted as follows:

Polygons(list(Polygon([email protected][[6]]@Polygons[[27]]@coords),Polygon([email protected][[6]]@Polygons[[25]]@coords)),"puntarenas") temp <- SpatialPolygons(list(temp),proj4string=CRS(proj4string(gadm))) punt.sp <- SpatialPolygonsDataFrame(temp, data.frame(cbind(2,2), row.names=c("puntarenas"))) # puntarenas

Das overlay() method is used to extract the land cover map puntarenas von costa:

puntarenas <- costa puntarenas.overlay <- overlay(costa,punt.sp) # 1 in interior of puntarenas polygons, 0 outside puntarenas$band1 <- costa$band1*puntarenas.overlay

Unglücklicherweise overlay() is rather slow, because it applies point.in.polygon() to the entire raster. Schließlich puntarenas appears as a SpatialGridDataFrame which can be plotted using standard R tools such as image().

The code needed to generate the above plot is Hier.

Footnotes

[1] For example, the International Biosphere-Geosphere Programme (IGBP) land cover legend used 17 biomes. The University of Maryland map used 14 biomes. At much lower resolution, numerical weather forecasting models such as US National Center for Climate Prediction Global Forecasting System (NCEP-GFS) also use alternative schemes.

[2] Roger S. Bivand, Edzer J. Pebesma, and Virgilio Gómez-Rubio. Applied Spatial Data Analysis with R. Springer, New York, 2008