Suite

Comment convertir un raster flottant en raster entier ?


J'utilise Normaliser l'indice de végétation par différence (NDVI) dérivé des bandes satellite Landsat 3 et 4 qui ont des valeurs flottantes allant de -1,0 à 1,0. Je veux voir la table attributaire qui n'est pas possible dans QGIS. J'ai essayé l'expression suivante dans la calculatrice raster de qgis mais cela n'a pas fonctionné:

Int("float_raster" * 100)

la raison de multiplier par 100 est de conserver les 2 chiffres au niveau de droite dans la table attributaire qui peuvent être vus en divisant à nouveau par 100 dans la table attributaire.

Comment puis-je mettre à l'échelle pour voir le meilleur contraste dans la palette de couleurs en utilisant qgis 2.40


Je pense que cela a été répondu ici Comment arrondir les valeurs de pixels d'un raster dans QGIS?

Fondamentalement, QGis Raster Calculator ne fait pas de conversion float <-> int. Utilisez plutôt gdal_translate.


RasterOptions : Options globales pour le package raster

Définissez, inspectez, réinitialisez, enregistrez un certain nombre d'options globales utilisées par le package raster.

La plupart de ces options sont utilisées lors de l'écriture de fichiers sur le disque. Ils peuvent être ignorés par des fonctions spécifiques si l'argument correspondant est fourni comme argument à ces fonctions.

L'emplacement par défaut est renvoyé par rasterTmpDir . C'est le même que celui du répertoire R temp mais vous pouvez le changer (pour la session en cours) avec rasterOptions(tmpdir="path") .

Pour définir de façon permanente l'une de ces options, vous pouvez les ajouter à votre installation R>/etc/Rprofile.site> . Par exemple, pour modifier le répertoire par défaut utilisé pour enregistrer les fichiers temporaires, ajoutez une ligne comme celle-ci : options(rasterTmpDir='c:/temp/') à ce fichier. Tous les fichiers raster temporaires de ce dossier datant de plus de 24 heures sont supprimés lors du chargement du package raster.

La fonction tmpDir renvoie l'emplacement des fichiers temporaires


Syntaxe

Le jeu de données TIN à traiter.

L'emplacement et le nom du raster en sortie. Lors du stockage d'un jeu de données raster dans une géodatabase ou dans un dossier tel qu'une grille Esri, aucune extension de fichier ne doit être ajoutée au nom du jeu de données raster. Une extension de fichier peut être fournie pour définir le format du raster lors de son stockage dans un dossier, comme .tif pour générer un GeoTIFF ou .img pour générer un fichier au format ERDAS IMAGINE.

Si le raster est stocké sous forme de fichier TIFF ou dans une géodatabase, son type et sa qualité de compression raster peuvent être spécifiés à l'aide des paramètres d'environnement de géotraitement.

Le type de données du raster en sortie peut être défini par les mots clés suivants :

  • FLOAT —Le raster en sortie utilisera une virgule flottante 32 bits, qui prend en charge des valeurs comprises entre -3,402823466e+38 et 3,402823466e+38. C'est la valeur par défaut.
  • INT —Le raster en sortie utilisera une profondeur de bits entière appropriée. Cette option arrondira les valeurs Z au nombre entier le plus proche et écrira un entier dans chaque valeur de cellule raster.

La méthode d'interpolation utilisée pour créer le raster.

  • LINEAR —Calcule les valeurs des cellules en appliquant une interpolation linéaire aux triangles TIN. C'est la valeur par défaut.
  • NATURAL_NEIGHBORS —Calcule les valeurs des cellules en utilisant l'interpolation des voisins naturels des triangles TIN

La méthode d'échantillonnage et la distance utilisées pour définir la taille de cellule du raster en sortie.

Facteur par lequel les valeurs Z seront multipliées. Ceci est généralement utilisé pour convertir les unités linéaires Z afin qu'elles correspondent aux unités linéaires XY. La valeur par défaut est 1, ce qui laisse les valeurs d'altitude inchangées.


Arguments

logique. Si TRUE , les cadres de délimitation sont comparés

logique. Si TRUE , le nombre de lignes et de colonnes des objets est comparé

logique. Si TRUE , les systèmes de référence de coordonnées sont comparés.

logique. Si TRUE , les résolutions sont comparées (redondant lors de la vérification de l'étendue et de la colonne de ligne)

logique. Si TRUE , les origines sont comparées

logique. Si TRUE , les rotations sont comparées

logique. Si TRUE , les valeurs des cellules sont comparées

numérique entre 0 et 0,5. Si elle n'est pas fournie, la valeur par défaut est utilisée (voir rasterOptions . Elle définit la différence (par rapport à la résolution de la cellule) qui est autorisée pour que les objets soient considérés comme « égaux », s'ils ont une origine ou une résolution non entière. Voir all.equal .

logique. Si TRUE , une erreur se produira si les objets ne sont pas les mêmes

logique. Si TRUE , un avertissement sera donné si les objets ne sont pas les mêmes. Uniquement pertinent lorsque stopiffalse est VRAI


Arguments

Personnage. Type de fichier de sortie. Voir writeFormats . Si cet argument n'est pas fourni, il est tenté de le déduire de l'extension de nom de fichier. Si cela échoue, le format par défaut est utilisé. Le format par défaut est 'raster', mais cela peut être modifié à l'aide de rasterOptions

type de données Caractère. Type de données de sortie (par exemple 'INT2S' ou 'FLT4S'). Voir dataType . Si aucun type de données n'est spécifié, 'FLT4S' est utilisé, sauf si cette valeur par défaut a été modifiée avec rasterOptions

écraser : Logique. Si VRAI, "nom de fichier" sera écrasé s'il existe

progression : Caractère. Définissez une valeur pour afficher une barre de progression. Les valeurs valides sont "text" et "window".

NAflag : numérique. Pour écraser la valeur par défaut utilisée pour représenter NA dans un fichier

bandorder : Personnage. « BIL », « BIP » ou « BSQ ». Pour les formats de fichiers « natifs » uniquement. Pour certains autres formats, vous pouvez utiliser l'argument 'options' (voir ci-dessous)

options : Caractère. Options GDAL spécifiques au format de fichier. Par exemple, lors de l'écriture d'un fichier geotiff, vous pouvez utiliser : options=c("COMPRESS=NONE", "TFW=YES")

Vous pouvez utiliser options=c("PROFILE=BASELINE") pour créer un tif simple sans balises GeoTIFF. Cela peut être utile lors de l'écriture de fichiers à lire par des applications intolérantes aux balises non reconnues.

Les fichiers NetCDF ont les arguments supplémentaires facultatifs suivants : varname , varunit , longname , xname , yname , zname , zunit

prj : Logique. Si TRUE , le crs est écrit dans un fichier .prj. Cela peut être utile lors de l'écriture dans un fichier ASCII ou un autre type de fichier qui ne stocke pas les crs

setStatistics : logique. Si TRUE (valeur par défaut), les valeurs de cellule min et max sont écrites dans le fichier (si le format le permet)

si TRUE , écrivez un fichier séparé pour chaque couche. Vous pouvez fournir un vecteur de noms de fichiers correspondant au nombre de couches. Ou vous pouvez fournir un nom de fichier unique qui obtiendra un suffixe unique (voir ci-dessous)

'numbers' ou 'names' pour déterminer le suffixe que chaque fichier obtient lorsque bylayer=TRUE soit un nombre compris entre 1 et nlayers(x) ou names(x)


Usage

points (un objet SpatialPoints*, ou une matrice à deux colonnes (ou data.frame)), SpatialLines*, SpatialPolygons*, ou un objet Extent

numérique ou caractère. La ou les valeurs à transférer. Il peut s'agir d'un nombre unique ou d'un vecteur de nombres ayant la même longueur que le nombre d'entités spatiales (points, lignes, polygones). Si x est un Spatial*DataFrame, il peut s'agir du nom de colonne de la variable à transférer. S'il est manquant, l'indice d'attribut est utilisé (c'est-à-dire des nombres de 1 au nombre d'entités). Vous pouvez également fournir un vecteur avec la même longueur que le nombre d'entités spatiales, ou une matrice où le nombre de lignes correspond au nombre d'entités spatiales

fonction ou personnage. Pour déterminer les valeurs à affecter aux cellules couvertes par plusieurs entités spatiales. Vous pouvez utiliser des fonctions telles que min, max ou mean , ou l'une des valeurs de caractère suivantes : 'first' , 'last' , 'count' . La valeur par défaut est 'last' . Dans le cas de SpatialLines*, la 'longueur' est également autorisée (actuellement pour les systèmes de coordonnées planaires uniquement).

Si x représente des points, fun doit accepter un argument na.rm, soit explicitement, soit par l'intermédiaire de « points ». Cela signifie que fun=length échoue, mais fun=function(x. )length(x) fonctionne, bien qu'il ignore l'argument na.rm. Pour utiliser l'argument na.rm, vous pouvez utiliser une fonction comme celle-ci : fun=function(x, na.rm)if (na.rm) length(na.omit(x)) else (length(x), ou utilisez un fonction qui supprime les valeurs NA dans tous les cas, comme cette fonction pour calculer le nombre de valeurs uniques par cellule de grille "richesse": fun=function(x, . ) . Si vous souhaitez compter le nombre de points dans chaque cellule de la grille, vous pouvez utiliser fun='count' ou fun=function(x. ) .

Vous pouvez également transmettre plusieurs fonctions à l'aide d'une instruction telle que fun=function(x, . ) c(length(x),mean(x)) , auquel cas l'objet renvoyé est un RasterBrick (plusieurs couches).

numérique. Valeur à mettre dans les cellules qui ne sont couvertes par aucune des fonctionnalités de x . La valeur par défaut est NA

logique. Si TRUE, les valeurs de l'objet Raster en entrée sont « masquées » par les caractéristiques spatiales de x . C'est-à-dire que les cellules qui chevauchent spatialement les caractéristiques spatiales conservent leurs valeurs, les autres cellules deviennent NA . La valeur par défaut est FAUX. Cette option ne peut pas être utilisée lorsque update=TRUE

logique. Si TRUE , les valeurs de l'objet Raster* sont mises à jour pour les cellules qui chevauchent les caractéristiques spatiales de x . La valeur par défaut est FAUX. Ne peut pas être utilisé lorsque mask=TRUE

numérique (normalement un entier) ou caractère. Uniquement pertinent lorsque update=TRUE . Sélectionnez, par leurs valeurs, les cellules à mettre à jour avec les valeurs des entités spatiales. Les valeurs de caractères valides sont 'all' , 'NA' et '!NA' . La valeur par défaut est « tous »

personnage. Nom du fichier de sortie (facultatif)

Si TRUE , les valeurs NA sont supprimées si fun respecte l'argument na.rm

logique. Si TRUE , la fraction de chaque cellule de la grille couverte par les polygones est renvoyée (et les valeurs de field, fun, mask et update sont ignorées. La fraction couverte est estimée en divisant chaque cellule en 100 sous-cellules et en déterminant la présence/absence du polygone au centre de chaque sous-cellule

Logique. Si TRUE , la rétroaction sur le nombre de polygones est supprimée. La valeur par défaut est FAUX


Comment convertir un raster flottant en raster entier ? - Systèmes d'information géographique

Vous consultez actuellement une version archivée de Topic R for Geospatial Analysis and Mapping. Si des mises à jour ou des révisions ont été publiées, vous pouvez les trouver sur R pour Geospatial Analysis and Mapping.

R est un langage de programmation ainsi qu'un environnement informatique permettant d'effectuer une grande variété d'analyses de données, de statistiques et de visualisation. L'une des raisons de la popularité de R est qu'il englobe une érudition ouverte et transparente et une recherche reproductible. Il est possible de combiner le contenu et le code dans un seul document, de sorte que les données, les analyses et les graphiques sont liés dans un même récit, qui peut être partagé avec d'autres pour recréer des analyses et réévaluer les interprétations. Différent des outils comme ArcGIS ou QGIS qui sont spécifiquement conçus pour les données spatiales, la fonctionnalité SIG n'est qu'une des nombreuses choses offertes par R. Et tandis que les utilisateurs d'outils SIG dédiés interagissent généralement avec le logiciel via une interface graphique pointer-cliquer, R nécessite un script en ligne de commande. De nombreux utilisateurs de R s'appuient aujourd'hui sur RStudio, un environnement de développement intégré (IDE) qui facilite l'écriture de code R et est livré avec une série de fonctionnalités pratiques, telles que l'aide intégrée, la visionneuse de données, la complétion de code et la coloration de la syntaxe. En utilisant R Markdown, une variante particulière du langage Markdown, RStudio facilite également la création de documents qui intègrent et exécutent des extraits de code R dans un texte et le rendu à la fois de documents statiques (comme PDF), ainsi que de pages html interactives. , une fonctionnalité particulièrement utile pour les travaux SIG exploratoires et la cartographie.

Engel, C. (2019). R pour l'analyse géospatiale et la cartographie. Le corpus de connaissances des sciences de l'information géographique et de la technologie (Édition 1er trimestre 2019), John P. Wilson (éd.). DOI : 10.22224/gistbok/2019.1.3.

Cette entrée a été publiée pour la première fois le 10 février 2019. Aucune édition antérieure n'existe.

Réduction: une syntaxe de formatage de texte brut et un outil logiciel qui convertit le formatage de texte brut en HTML à utiliser dans un site Web.

fonctionnalités simples: Une manière standardisée d'encoder des données vectorielles géographiques. Il spécifie un modèle de stockage et d'accès commun. Une caractéristique simple est définie comme ayant à la fois des attributs spatiaux et non spatiaux.

R est un langage de programmation ainsi qu'un environnement informatique permettant d'effectuer une grande variété d'analyses de données, de statistiques et de visualisation. Soutenu par la Fondation R à but non lucratif pour l'informatique statistique et une grande communauté d'utilisateurs, il a connu une popularité croissante au cours de la dernière décennie. L'un de ses points forts est sa modularité. Les « packages » peuvent être téléchargés et installés individuellement pour étendre les fonctionnalités de base R. Il existe des milliers de ces packages pour de nombreux domaines d'intérêt particuliers, parmi lesquels un large éventail de packages géospatiaux pour le traitement, l'analyse et la visualisation de données spatiales. Le référentiel officiel des packages R est le Comprehensive R Archive Network (CRAN), et c'est là que tous les packages SIG discutés dans cette entrée peuvent être trouvés.

Différent des outils comme ArcGIS ou QGIS qui sont spécifiquement conçus pour les données spatiales, la fonctionnalité SIG n'est qu'une des nombreuses choses offertes par R. Et tandis que les utilisateurs d'outils SIG dédiés interagissent généralement avec le logiciel via une interface graphique pointer-cliquer, R nécessite un script en ligne de commande.

L'une des raisons de la popularité de R est qu'il englobe une érudition ouverte et transparente et une recherche reproductible. Il est possible de combiner le contenu et le code dans un seul document, de sorte que les données, les analyses et les graphiques sont liés dans un même récit, qui peut être partagé avec d'autres pour recréer des analyses et réévaluer les interprétations. Cela rend la recherche transparente, d'autant plus qu'un nombre croissant de revues et d'agences de financement s'attend à ce que la recherche soit reproductible.

De nombreux utilisateurs de R s'appuient aujourd'hui sur RStudio, un environnement de développement intégré (IDE) qui facilite l'écriture de code R et est livré avec une série de fonctionnalités pratiques, telles que l'aide intégrée, la visionneuse de données, la complétion de code et la coloration de la syntaxe. En utilisant R Markdown, une saveur particulière de la Réduction langage, RStudio permet également de créer particulièrement facilement des documents qui intègrent et exécutent des extraits de code R dans un texte et de rendre à la fois des documents statiques (comme le PDF), ainsi que des pages html interactives, une fonctionnalité particulièrement utile pour le travail exploratoire et la cartographie des SIG .

Figure 1. Exemple d'utilisation de R Studio.

R et RStudio sont tous deux open source et disponibles gratuitement pour une variété de systèmes d'exploitation, y compris Windows, macOS et Linux. Une version alternative gratuite de R (R Open) est distribuée par Microsoft avec des améliorations de performances prenant en charge le calcul parallèle et la reproductibilité du code.

3.1 Objets vectoriels

Il existe actuellement deux approches principales utilisées dans R pour gérer les données vectorielles géographiques. Ils sont implémentés dans deux packages, sp (Bivand et al 2013) et sf (Pebesma 2018). Le package sp est historiquement le plus ancien. Son développement a commencé au début des années 2000 dans une tentative de standardiser la façon dont les données spatiales seraient traitées dans R et pour permettre une meilleure interopérabilité entre les différents packages d'analyse qui utilisent des données spatiales. Le package (publié pour la première fois sur CRAN en 2005) fournit des classes et des méthodes pour créer des points, des lignes et des polygones. (sp implémente également des grilles raster, bien qu'elles soient rarement utilisées aujourd'hui, en particulier depuis qu'un package raster dédié a été publié en 2010.)

L'implémentation d'objets spatiaux dans sp suit une pensée plus « orientée objet ». Les objets spatiaux dans sp ont des « emplacements » qui contiennent différents types d'informations, principalement les coordonnées de la boîte englobante et du système de coordonnées de référence (CRS). Cette structure de base est ensuite étendue, en fonction des particularités de l'objet spatial (point, ligne ou polygone), pour contenir des coordonnées géographiques, un identifiant unique pour chaque élément, des informations sur l'ordre de traçage, le cas échéant, et plus encore. Il existe également un emplacement « données » pour les données d'attribut.

De plus, le package sp contient certaines fonctions à manipuler avec des objets sp, par exemple pour récupérer le cadre de délimitation ou pour définir ou récupérer le CRS. Des centaines de packages R font aujourd'hui référence aux types de données spatiales implémentées dans sp.

Le package sf le plus récent a été publié pour la première fois sur CRAN fin 2016. Il implémente une norme formelle appelée "Fonctionnalités simples” qui spécifie un modèle de stockage et d'accès particulier pour les géométries vectorielles spatiales. Cette norme a été largement adoptée, non seulement par les bases de données spatiales telles que PostGIS, mais également par les formats standard ouverts tels que GeoJSON. sf implémente cette norme nativement dans R, donc les données sont structurées et conceptualisées très différentes des objets sp.

Les objets sf sont stockés sous forme de table (dans R appelée « bloc de données »), où chaque ligne représente une caractéristique et les colonnes stockent ses attributs. Une colonne spéciale du tableau est désignée pour contenir les coordonnées géographiques. Chaque cellule de cette colonne « géométrie » particulière contient une liste avec les paires de coordonnées qui correspondent à l'entité de cette ligne. Des informations supplémentaires, telles que le SCR, la zone de délimitation et le type de géométrie sont stockées sous forme de métadonnées dans le bloc de données.

Étant donné que les objets spatiaux sf sont essentiellement des trames de données R avec des propriétés spéciales et que les trames de données sont très courantes et largement utilisées dans R, il est possible de tirer parti d'une série de fonctions dont R dispose déjà pour travailler avec des trames de données.

sp et sf ne sont pas la seule façon dont les objets vectoriels spatiaux sont conceptualisés dans R. D'autres packages spatiaux peuvent utiliser leurs propres définitions de classe pour les données spatiales, par exemple le package spatstat, qui se concentre sur l'analyse des motifs de points, et définit les siens (ppp - point motif) objet. Il existe des fonctions disponibles qui peuvent convertir d'un type d'objet géographique à un autre.

3.2 Objets raster

Le package le plus courant pour gérer les données raster spatiales dans R est appelé raster. En raison de leur structure régulière, les objets raster peuvent être construits, si une série de paramètres sont donnés, y compris le nombre de colonnes et de lignes (dimension), la taille de cellule (résolution), le cadre de délimitation (étendue) et le SCR, comme ainsi que les valeurs des cellules, le cas échéant. Comme les objets sp, les objets raster dans R stockent ces informations dans des slots.

Avec l'utilisation croissante de fichiers raster de haute qualité, haute résolution et donc volumineux, travailler avec de tels fichiers peut être un défi. Les fichiers sont généralement chargés dans la mémoire de l'ordinateur lorsqu'ils sont traités, ce qui peut être un facteur limitant, en particulier dans un environnement de bureau, de sorte que les opérations peuvent devenir très lentes, voire impossibles. Le package raster est conçu et écrit de manière à permettre l'accès et le traitement de très gros rasters sans qu'il soit nécessaire de charger l'intégralité du fichier en mémoire. Il peut fonctionner directement avec des jeux de données raster stockés sur disque et ne charge que des informations sur la structure des données en mémoire. Ces informations sont ensuite utilisées lors des opérations de calcul pour traiter les données par morceaux.

Le package raster peut fonctionner à la fois avec des fichiers raster monocouches et multicouches, tels que des images satellites multibandes ou une série chronologique de valeurs de température pour une zone géographique donnée. Pour les ensembles de données de dimension supérieure, par exemple les séries chronologiques d'images satellites multibandes, le nouveau package stars est disponible, qui cible des cubes de données raster (et vectorielles) plus généraux et tente de s'intégrer fortement avec le package sf.

3.3 Lecture et écriture de données spatiales

Comme de nombreux outils SIG open source, R s'appuie sur la bibliothèque d'abstraction géospatiale (GDAL) pour lire et écrire des données spatiales. Cela signifie qu'une grande variété de formats spatiaux, y compris GeoJSON, KML, ESRI Shapefiles, GeoTiffs, et bien d'autres, peuvent être lus dans R, et de même être écrits sur le disque. sf est directement lié à GDAL, tandis que sp nécessite un package séparé. Le paquetage rgdal, qui fournit des liaisons pour GDAL, est le plus couramment utilisé. Il est également possible de lire et d'écrire directement dans des bases de données spatiales telles que PostGIS, et le package sf, par exemple, fournit des fonctionnalités pour le faire.

Une série de packages R sont liés à des référentiels externes pour les données spatiales et permettent de télécharger des données directement dans des objets R à partir de là. Les exemples sont rnaturalearth pour l'ensemble de données cartographiques du domaine public Natural Earth, getlandsat pour la collecte continue d'images satellite produites par Landsat 8, ou osmdata pour télécharger et importer des données OpenStreetMap.

Au lieu de lire les données dans R, il existe également des packages R qui contiennent des ensembles de données spatiales. Ces packages peuvent être un point de départ utile pour le débutant car ils présentent souvent des cas d'utilisation. Le package spData, par exemple, contient un large éventail de données stockées dans une gamme de formats de fichiers.

Le géotraitement des objets sp repose sur le package rgeos (séparé), qui sert d'interface aux fonctions de topologie pour les objets sp à l'aide de la bibliothèque GEOS, une bibliothèque C++ open source pour les opérations de topologie sur les géométries. Le package sf comprend de nombreuses fonctions de géotraitement, car il est directement lié à GEOS. Ces opérations incluent des manipulations de propriétés spatiales, par ex. relations topologiques, jointures spatiales, agrégation ou extraction basées sur l'emplacement, les mesures de distance et les opérations géométriques, comme les tampons ou les centroïdes.

Le package raster déjà mentionné inclut des opérations raster pour les statistiques locales, zonales, focales et globales. Il implémente des fonctions pour effectuer des manipulations de données raster courantes dans les SIG. Cela inclut non seulement l'algèbre cartographique, mais également les transformations d'images, telles que la reprojection, le changement de résolution, le recadrage, le rééchantillonnage, les reclassifications, etc.

Pour l'analyse statistique, une variété de packages R sont disponibles. Pour n'en citer que quelques-uns, spdep fournit des fonctions pour analyser la dépendance spatiale, par exemple le test I de Moran pour l'autocorrélation spatiale résiduelle gstat fournit des fonctionnalités de base pour l'analyse géostatistique univariée et multivariable, y compris la modélisation de variogramme, le krigeage et bien d'autres (Pebesma, 2004) package assez complet pour analyser les modèles de points spatiaux (Baddeley et al 2015). Il contient des milliers de fonctions pour l'analyse exploratoire des données, l'ajustement du modèle, la simulation, l'échantillonnage spatial, les diagnostics de modèle, l'inférence formelle et le traçage.

R est devenu de plus en plus polyvalent en matière de cartographie. Il est possible de fournir une grande variété de cartes géographiques, des cartes imprimées statiques de qualité publication aux cartes Web hautement interactives. De nombreux packages déjà mentionnés, tels que sp, sf, spatstat ou raster, incluent leur fonction de traçage particulière qui est adaptée aux objets spatiaux respectifs que le package utilise. Parmi les premiers packages de cartographie dédiés à produire des cartes vectorielles se trouve le package de cartes, qui comprend également des données cartographiques intégrées, un moyen pratique pour les novices de commencer.

Une alternative largement utilisée est ggplot2, un puissant package de traçage pour R. Il n'est pas spécifiquement conçu pour la cartographie, mais il a une large communauté d'utilisateurs et est fréquemment utilisé pour produire des cartes de haute qualité. ggplot fonctionne avec la notion de « couches » qui peuvent être ajoutées une par une, ce qui permet aux utilisateurs de superposer différentes visualisations d'un ensemble de données (par exemple, un nuage de points et une ligne ajustée) ou différents ensembles de données (comme différentes couches de la même zone géographique) . En raison de sa popularité, ggplot propose une série de packages complémentaires. Un package de cartographie à utiliser avec ggplot est ggmap, qui suit la syntaxe de couche de ggplot et facilite le téléchargement de fonds de carte en mosaïque à partir de différents services, comme Google Maps et Openstreet Maps. Il y a aussi quelques inconvénients. Afin de tracer des objets sp avec ggplot, ils doivent être convertis au cours d'une étape préalable, cependant ggplot (ggplot2 version 3.0.0 et supérieure) peut lire et tracer directement le format sf. ggplot ne prend pas non plus en charge nativement les objets raster, ils doivent donc également être rendus. rasterVis, par exemple, fournit une fonction wrapper pour tracer des objets raster avec ggplot2.

L'une des bibliothèques open source les plus utilisées pour générer des cartes Web est Leaflet, qui est écrite en langage JavaScript. En règle générale, les cartes Web sont composées de fonds de carte en mosaïque avec des superpositions de type vectoriel et/ou des marqueurs de lieu ajoutés et ont des capacités interactives, telles que le panoramique et le zoom. Le package dépliant R enveloppe la bibliothèque JavaScript et facilite la création et l'affichage de ces cartes Web dans R.

L'emballage du dépliant est très flexible et permet de peaufiner et d'ajuster de nombreux éléments de la carte. Plusieurs packages R sont construits au-dessus du package de brochure, prenant en charge certains de ces paramètres, par exemple en supposant une mise en page par défaut pour la légende, donc moins de codage est nécessaire pour produire une carte avec des capacités interactives. Des exemples sont les packages mapview et tmap, de bons points d'entrée pour le débutant. Il est également possible de créer facilement des cartes animées (par exemple pour une visualisation aisée de séquences spatio-temporelles).

Enfin, le cadre brillant de R offre une grande flexibilité pour générer des cartes vraiment interactives, car il peut prendre les entrées de l'utilisateur sous plusieurs formes (via des curseurs, des cases à cocher, des sélections déroulantes, etc.) valeurs d'entrée modifiées) et renvoient la sortie dans divers formats, y compris des visualisations et des cartes.

Depuis sa mise en œuvre initiale en tant que langage de programmation statistique, R a parcouru un long chemin et est devenu très polyvalent dans la prise en charge de l'analyse spatiale. De nouveaux progiciels SIG améliorés sont développés en permanence et, par conséquent, certains progiciels sont plus matures que d'autres. Comme les utilisateurs de tout logiciel ouvert, les utilisateurs de R sont confrontés au défi de maintenir leur code à jour avec les nouvelles versions et les packages nouveaux et mis à jour, bien qu'il existe des stratégies pour atténuer cela, par exemple le package de point de contrôle de Microsoft. La mémoire de l'ordinateur peut également poser une limite, mais des efforts constants sont déployés pour améliorer les performances et la possibilité de se connecter à des bases de données externes peut atténuer certains de ces problèmes. R s'intègre bien avec d'autres outils SIG open source tels que PostGIS, SAGA, QGIS et GRASS.

Les « vues de tâches », créées et gérées par les membres de la communauté R, fournissent un aperçu des packages R pertinents pour un sujet particulier. La vue des tâches sur « Analyse des données spatiales » est un point de départ très utile pour un aperçu de la gamme de packages R spatiaux disponibles. De nombreux forfaits incluent des « vignettes ». Ce sont souvent des mini-tutoriels très utiles qui démontrent et expliquent les utilisations pratiques du logiciel autour de problèmes sélectionnés. Vous trouverez ci-dessous les packages référencés précédemment, ceux qui sont couramment utilisés lors de la réalisation de projets d'analyse spatiale et de cartographie.

Tableau 1. Une liste partielle des packages R pertinents pour l'analyse spatiale et la cartographie. Tous les packages sont disponibles en téléchargement sur le Comprehensive R Archive Network (CRAN)
Paquet La description
sp classes et méthodes pour les données spatiales
nf fonctionnalités simples pour R
raster analyse et modélisation de données géographiques
étoiles tableaux ordonnés évolutifs et spatio-temporels
rgdal liaisons pour la bibliothèque d'abstraction de données "géospatiales"
géos interface vers Geometry Engine Open Source (GEOS)
spData jeux de données pour l'analyse spatiale
données osm importer des données OSM en tant qu'entités simples ou objets spatiaux
obtenirLandsat obtenir des données Landset 8 à partir d'ensembles de données publics Amazon
terre naturelle données de carte du monde de Natural Earth
spatstat analyse de motifs de points spatiaux, ajustement de modèles, tests de simulation
gstat modélisation, prédiction et simulation géostatistiques spatiales et spatiotemporelles
spdep dépendance spatiale : schémas de pondération, statistiques et modèles
Plans dessiner des cartes géographiques
ggplot2 visualisations de données utilisant la grammaire des graphiques
ggmap visualisation spatiale avec ggplot2
rasterVis méthodes de visualisation pour les données raster
brochure créer des cartes Web interactives avec la bibliothèque JavaScript "Leaflet"
vue de la carte visualisation interactive des données spatiales dans R
tmap cartes thématiques
brillant cadre d'application Web pour R
point de contrôle installer des packages à partir d'instantanés sur le serveur de point de contrôle pour la reproductibilité

En particulier pour ceux qui débutent dans les scripts et la programmation, il y a une courbe d'apprentissage, mais cela vaut la peine de pouvoir automatiser les tâches et de créer du code reproductible.

Baddeley, A., Rubak, E., & Turner, R. (2016). Motifs ponctuels spatiaux : méthodologie et applications avec R. Boca Raton Londres New York : CRC Press, Taylor & Francis Group.

Bivand, R., Pebesma, E. J., & Gómez-Rubio, V. (2013). Analyse de données spatiales appliquées avec R (Deuxième édition). New York : Springer. DOI : 10.1007/978-1-4614-7618-4


Méthodes et fonctionnalités

NetLogoR peut être utilisé pour coder des modèles basés sur des rasters et des modèles individuels. Il fournit de nouvelles classes R pour représenter des agents modèles et des fonctions pour créer et exécuter des SE-ABM. Le package contient également deux vignettes (un guide de programmation et un dictionnaire) et trois exemples de modèles. NetLogoR 0.3.5 est disponible sur CRAN sous la licence publique générale GNU (ver. 3, 2007).

NetLogoR propose 3 nouvelles classes R : worldMatrix et worldArray pour représenter les paysages sous forme de cellule de grille, et agentMatrix pour représenter les individus en mouvement. Remarque pour les utilisateurs de NetLogo : worldMatrix et worldArray sont deux types de « mondes » constitués de « patchs » (cellules) et agentMatrix représente les « tortues ». Représenter des paysages en R, Raster* (Hijmans 2018 ) et des classes matricielles (R Core Team), peut être très efficace et pratique. Cependant, ces objets ne correspondent pas au système de coordonnées utilisé par NetLogo, ce qui nécessite la création des classes worldMatrix et worldArray pour représenter des paysages correspondant à ceux créés dans NetLogo. Une worldMatrix est une extension d'une matrice qui peut être considérée comme un paysage quadrillé composé de cellules carrées (c'est-à-dire de cellules matricielles). Les cellules, ou « patchs », dans un worldMatrix ont deux coordonnées spatiales représentant l'emplacement de leur centre. Ces coordonnées sont toujours entières et incrémentées de 1 en se déplaçant vers le haut ou vers la droite. Les coordonnées peuvent être négatives s'il y a des cellules situées à gauche ou en dessous de la cellule [0, 0]. Ces classes world* n'utilisent pas de systèmes de coordonnées géographiques. La fonction NetLogoR createWorld() crée un worldMatrix en spécifiant l'étendue du paysage. Le worldArray est utilisé pour représenter le paysage lorsque l'utilisateur souhaite stocker plus d'une valeur par cellule, similaire à la classe RasterStack (Hijmans 2018 ). La fonction NetLogoR stackWorlds() prend une collection de plusieurs worldMatrix et les empile ensemble pour créer un worldArray. NetLogoR fournit également des fonctions de traduction pour créer des objets monde* à partir de Raster*. Le worldMatrix et le worldArray sont des paysages sur lesquels les agents modèles (cellules ou individus en mouvement) vont exister.

La classe agentMatrix stocke l'emplacement des individus en mouvement ainsi que toute autre information sur eux qui peut être numérique (par exemple, l'âge) ou caractère (par exemple, le nom). Les informations sur les caractères sont stockées en interne à l'aide de facteurs. La classe agentMatrix a été créée comme une alternative plus rapide, mais plus simple, à la classe SpatialPointsDataFrame (Pebesma et Bivand 2005, Bivand et al. 2013), qui correspond également au système de coordonnées NetLogo. Semblable au monde*, les objets agentMatrix n'ont pas de systèmes de coordonnées géographiques attachés. La fonction NetLogoR createTurtles() crée un agentMatrix en spécifiant le nombre d'individus à créer et leur localisation (soit des coordonnées précises, soit le monde sur lequel ils vont évoluer). Remarque : les individus en mouvement sont appelés « tortues » dans NetLogo et d'autres langages de programmation (par exemple, Logo, Python) d'où le nom de certaines fonctions NetLogoR (c'est-à-dire *turtles() ou Turtles*()). De plus, l'utilisateur peut spécifier le cap (c'est-à-dire la direction), le nom de la race et la couleur des individus lors de leur création. La fonction NetLogoR turtlesOwn() permet de créer ultérieurement de nouvelles variables pour stocker des informations supplémentaires sur les individus dans l'objet agentMatrix.

Parallèlement à ces nouvelles classes R, NetLogoR propose une centaine de fonctions pour créer et exécuter des SE-ABM. Les fonctions utilisent les classes world* et agentMatrix et agissent sur les cellules du paysage (« patchs ») et les individus en mouvement (« tortues ») pour les modifier ou effectuer des statistiques en les utilisant. Il existe des fonctions pour créer ou supprimer des agents modèles (par exemple createTurtles(), die()), pour sélectionner certains agents en particulier (par exemple inRadius(), patchAhead()), pour déplacer des individus dans le paysage (par exemple fd(), uphill ()), pour récupérer ou modifier des informations sur l'agent (par exemple setXY(), of()), pour effectuer des statistiques sur l'agent (par exemple subHeadings(), NLdist()), ou pour convertir des classes (par exemple raster2world(), Turtles2spdf() ). Les principales fonctions de NetLogoR avec leurs descriptions sont présentées dans le tableau 1. Nous avons également développé des méthodes pour que les classes NetLogoR puissent récupérer et modifier des valeurs à l'aide de crochets, la manière traditionnelle d'indexer des objets dans R, et des méthodes pour tracer ces nouvelles classes.

Fonction NetLogoR La description Équivalents NetLogo
noir Déplacer les individus vers l'arrière des directions de leur cap saut en arrière
peut bouger Indiquer si un individu peut se déplacer sur une distance donnée sans quitter l'étendue du monde peut bouger?
celluleDePxcorPycor Signaler les numéros de cellule tels que définis pour l'objet Raster* pour les coordonnées de patch données N / A
effacer les correctifs Réinitialiser la valeur de tous les patchs patchs-clairs
createOTortues Créez des individus et placez-les au centre du monde avec leurs titres uniformément répartis create-ordered-turtles create-ordered<breeds>
créerTortues Créer des individus avec un ensemble de variables définies créer-tortues créer-<breeds>
créerMonde Créez un monde de patchs N / A
mourir Tuer des individus sélectionnés mourir
diffuser Valeurs diffuses entre les patchs où chaque patch donne une part égale d'une partie de sa valeur à ses patchs voisins diffus diffus4
une descente Déplacer les individus vers leur patch voisin avec la valeur la plus faible descente descente4
dx Déclarez de combien la coordonnée x de l'individu changerait s'il avançait de la distance donnée avec son cap actuel dx
mourir Déclarez de combien la coordonnée y de l'individu changerait s'il avançait de la distance donnée avec son cap actuel mourir
visage Définir la direction des individus vers les agents donnés visage facexy
fd Déplacez les individus vers l'avant avec leurs titres comme directions saut en avant
éclore Créer de nouveaux individus à partir d'individus parents Éclosion d'éclosion-<breeds>
domicile Ramener les individus à la maison domicile
dans le cône Signalez les agents dans le « cône de vision » devant chaque individu en cône
dansRayon Signaler les agents à des distances données des autres agents dans le rayon
inspecter Afficher toutes les valeurs des variables pour les individus sélectionnés inspecter
estclasseNL Indiquer si l'agent est de la classe testée est-agent ? est-ensemble d'agents ? est-patch ? est-patch-set? est-tortue ? est-tortue-set?
la gauche Faire pivoter le cap des individus vers la gauche la gauche
maxNof Rapporter les n agents qui ont les valeurs les plus élevées pour la variable indiquée max-n-of
maxUnDe Déclarez l'agent qui a la valeur la plus élevée pour la variable indiquée max-un-de
maxPxcor Signaler la coordonnée x maximale dans le monde max-pxcor
maxPycor Signaler la coordonnée y maximale dans le monde max-pycor
minNof Rapporter les n agents qui ont les valeurs les plus faibles pour la variable indiquée min-n-of
minOneOf Déclarer l'agent qui a la valeur la plus faible pour la variable indiquée min-un-de
minPxcor Signaler la coordonnée x minimale dans le monde min-pxcor
minPycor Signaler la coordonnée y minimale dans le monde min-pycor
déménager à Déplacer les individus vers les emplacements des agents déménager à
voisins Rapporter les coordonnées des patchs voisins autour des agents voisins voisins4
NLall Indiquez si tous les agents ont leur variable égale à une valeur donnée tous?
NLany Indiquer si un agent est vide tout?
NLcount Déclarer le nombre d'agents compter
NLdist Report the distances between agents distance distancexy
NLset Assign values to agents’ variables ensemble
NLwith Report the agents which have their variable equal to a given value avec
NLworldIndex Convert Raster* cell numbers in patch coordinates N / A
nOf Report n agents randomly selected n-of
noPatches Report an empty patch object no-patches
noTurtles Report an empty individual object no-turtles
de Report the agents values for the indicated variable de
oneOf Report one agent randomly selected one-of
autre Report agents except some specific ones autre
pièce Identify the patches at given locations pièce
patchAhead Identify the patches at given distances of individuals in their headings directions patch-ahead
patchAt Identify the patches at given x- and y-distances of individuals patch-at at-points
patchDistDir Identify the patches at given distances and directions of individuals patch-at-heading-and-distance
patchs Report the coordinates of all the patches in the world patchs
patchHere Identify the patches under the individuals locations patch-here
patchLeft Identify the patches at given distances of individuals and left rotation angles from their headings patch-left-and-ahead
patchRight Identify the patches at given distances of individuals and right rotation angles from their headings patch-right-and-ahead
patchSet Report the unique coordinates of all the patches provided patch-set
pExist Indicate if the patch exist within the world's extent membre
PxcorPyxcorFromCell Report the patches coordinates given the Raster* cell numbers N / A
randomPxcor Report n random x patch coordinates within the world's extent random-pxcor
randomPyCor Report n random y patch coordinates within the world's extent random-pycor
randomXcor Report n random x-coordinates within the world's extent random-xcor
randomXYcor Report n random x- and y-coordinates within the world's extent N / A
randomYcor Report n random y-coordinates within the world's extent random-pycor
raster2world Convert a Raster* object into a world object of NetLogoR (worldMatrix or worldArray) N / A
droite Rotate the individuals’ heading to the right droite
setXY Set the individuals’ coordinates setxy
sortOn Return the agents sorted according to their value sort-on
spdf2turtles Convert a SpatialPointsDataFrame into an object of NetLogoR storing individuals (agentMatrix) N / A
sprout Create new individuals on specific patches sprout
stackWorlds Stack multiple worldMatrix to create a worldArray N / A
subHeadings Compute the difference between headings subtract-headings
tExist Indicate if an individual membre
towards Report the directions of agents towards other agents towards towardsxy
tortue Identify an individual tortue
turtle2spdf Convert an object of NetLogoR storing individuals (agentMatrix) into a SpatialPointsDataFrame N / A
turtlesAt Identify the individuals that are located on patches at x- and y-distances of agents turtles-at <breeds>-at at-points
turtleSet Report the unique individuals of all the individuals provided turtle-set
turtlesOn Identify the individuals that are located on the same patches as other agents turtles-on <breeds>-onturtles-here <breeds>-here
turtlesOwn Create a new variable for the individuals turtles-own <breeds>-own
montée Move the individuals to their neighboring patch with the highest value uphill uphill4
withMax Report the agents which have their variable equal to the maximum value with-max
withMin Report the agents which have their variable equal to the minimum value with-min
world2raster Convert a world object of NetLogoR (worldMatrix or worldArray) into a Raster* object N / A
worldHeight Report the height of the world in patch number world-height
worldWidth Report the width of the world in patch number world-width

Note for experienced NetLogo users: Most of the NetLogoR functions are a direct translation of the NetLogo's primitives. SeeTableau 1 for the NetLogo equivalent functions to the main NetLogoR functions presented. NetLogoR also contains functions that did not exist in Netogo but which were essential to build models in R (e.g. createWorld()). On the other hand, there are also NetLogo primitives that we did not translate into NetLogoR functions. For some of these, functions from the R software or from other packages already existed to perform similar actions so we did not create duplicates (e.g. the R functions such as sample() and runif() can be used to replace the NetLogo primitives random and random-float). For some others, we felt that the NetLogo primitives were too specific to the software and their absence would not prevent users to build models. These primitives are mostly the ones controlling the NetLogo visual interface (e.g. pen-down) and those related to the agent category ‘link’ that we did not implement. Links are connections between agents to represent relationships. We think these can be handled inside the agentMatrix. Future updates of the NetLogoR package may implement links as a new type of agent if it appears to be necessary.


Global Patterns of Carbon Dioxide Emissions from Soils on a 0.5 Degree Grid Cell Basis (DB-1015)

The Carbon Dioxide Information Analysis Center is a part of the Environmental Sciences Division of the OAK RIDGE NATIONAL LABORATORY (ORNL) and is located in Oak Ridge, Tennessee 37831-6290. The ORNL is managed by University of Tennessee-Battelle, LLC for the U.S. DEPARTMENT OF ENERGY under contract DE-AC05-00OR22725

CO2 = Carbon Dioxide CDIAC = Carbon Dioxide Information Analysis Center
FTP = file transfer protocol
QA = quality assurance
GIS = geographic information system
ARC/INFO is a registered trademark of the Environmental Systems Research Institute, Inc., Redlands, CA 92372.

Raich, J. W. and C. S. Potter. 1995. Global Patterns of Carbon Dioxide Emissions from Soils. Global Biogeochemical Cycles 9(1)23-36. doi: 10.3334/CDIAC/lue.db1015

We use semi-mechanistic, empirically based statistical models to predict the spatial and temporal patterns of global carbon dioxide emissions from terrestrial soils. Emissions include the respiration of both soil organisms and plant roots. At the global scale, rates of soil CO2 efflux correlate significantly with temperature and precipitation they do not correlate well with soil carbon pools, soil nitrogen pools, or soil C:N. Wetlands cover about 3% of the land area but diminish predicted CO2 emissions by only about 1%. The estimated annual flux of CO2 from soils to the atmosphere is estimated to be 76.5 Pg C yr-1, 1-9 Pg greater than previous global estimates, and 30-60% greater than terrestrial net primary productivity. Historic land cover changes are estimated to have reduced current annual soil CO2 emissions by 0.2-2.0 Pg C yr-1 in comparison with an undisturbed vegetation cover. Soil CO2 fluxes have a pronounced seasonal pattern in most locations, with maximum emissions coinciding with periods of active plant growth. Our models suggest that soils produce CO2 throughout the year and thereby contribute to the observed wintertime increases in atmospheric CO2 concentration. Our derivation of statistically based estimates of soil CO2 emissions at a 0.5-degree latitude-by- longitude spatial and monthly temporal resolution represents the best-resolved estimate to date of global CO2 fluxes from soils and should facilitate investigations of net carbon exchanges between the atmosphere and terrestrial biosphere.

(Reproduced with permission of the American Geophysical Union.)

Keywords: Carbon release, climate change, soils, carbon dioxide emissions, global patterns.

  • descriptive text file (db1015.txt)
  • ASCII format of ANNUAL grid (rp-modelb_ann.dat)
  • ASCII format of JANUARY grid(rp-modelb_jan.dat)
  • ASCII format of FEBRUARY grid (rp-modelb_feb.dat)
  • ASCII format of MARCH grid (rp-modelb_mar.dat)
  • ASCII format of APRIL grid (rp-modelb_apr.dat)
  • ASCII format of MAY grid (rp-modelb_may.dat)
  • ASCII format of JUNE grid (rp-modelb_jun.dat)
  • ASCII format of JULY grid (rp-modelb_jul.dat)
  • ASCII format of AUGUST grid (rp-modelb_aug.dat)
  • ASCII format of SEPTEMBER grid (rp-modelb_sep.dat)
  • ASCII format of OCTOBER grid (rp-modelb_oct.dat)
  • ASCII format of NOVEMBER grid (rp-modelb_nov.dat)
  • ASCII format of DECEMBER grid (rp-modelb_dec.dat)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - Annual" (annual.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - January" (jan.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - February" (feb.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - March" (mar.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - April" (apr.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - May" (may.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - June" (jun.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - July" (jul.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - August" (aug.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - September" (sep.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - October" (oct.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - November" (nov.gif)
  • Graphic Map, "Global Patterns of Carbon Dioxide Emissions from Soils - December" (dec.gif)

This database contains global, spatially explicit (0.5-degree grid cells) and temporally explicit (monthly and annual) model output of soil CO2 émissions. The calculated emissions include the respiration of both soil organisms and plant roots. Maps representing the soil emissions data are available for download and viewing as *.gif files.

The model (model B) used for these calculations is described in Raich and Potter (1995). The model is based on a stepwise linear multiple regression of 977 individual aggregated records of geographically referenced data on daily and/or monthly rates of CO2 flux rates from intact soils, temperature, precipitation, potential evapotranspiration, vegetation type, soil moisture status, and organic carbon and nitrogen contents of soil. These data points represent grid cells from every continent except Antarctica. Temperature and soil moisture status, as predicted by precipitation, were the only variables significantly correlated with soil CO2 efflux. Temperature and precipitation were, therefore, used as driving variables. The remaining model parameters for the mechanistic aspect of the model are (1) the soil CO2 efflux rate when temperature is zero and moisture not limiting, (2) the temperature coefficient and (3) the half-saturation coefficient of the precipitation function. These were obtained by Raich and Potter (1995) using least squares estimates with both Quasi-Newton and Simplex methods as described in Wilkinson (1990).

  1. Soil CO2 fluxes were presumed to be zero at average monthly air temperatures less than -13.3 degrees Celsius
  2. For all temperatures greater than 33.5 degrees Celsius, soil CO2 fluxes were set equal to the rate predicted at 33.5 degrees Celsius.

Raich and Potter (1995) evaluated their model predictions against previously published annual soil respiration rates from specific locations and with published predictions by an annual model (Raich and Schlesinger, 1992) through linear regressions of predicted versus observed (or previously published predicted) soil emissions. Correlation coefficients were close to 0.5, intercepts not significantly different from zero and slopes not significantly different from one, indicating that the reliability of the predictions was not diminished by the monthly timescale and that the model provides quantitatively meaningful estimates of annual soil emissions.

One of the roles of the Carbon Dioxide Information Analysis Center (CDIAC) is quality assurance (QA) of data. The QA process is an important component of the value-added concept of assuring accurate, usable information for researchers, because data received by CDIAC are rarely in condition for immediate distribution, regardless of source. The following summarizes the QA checks performed on the Model B output presented in the data files:

  1. To get correct latitude/longitude locations for soil emissions, we plotted the predicted emissions over maps of vegetation types at the one degree grid cell level by Matthews (1985), and on the half degree grid cell level by Post et. Al. (1996), and Olsen et al. (CDIAC, 1985). For the soil emission plots the 0.5 degree latitude band containing the Greenwich meridian and the 0.5 degree longitude band around the equator had to be skipped to achieve proper coastline alignment.
  2. When Model B output per grid cell (g C/m 2 /yr or /month) was multiplied by grid cell area (m 2 ) (calculated according to the program from the Goddard Institute for Space Studies (see IV)), and these products summed, total global soil emission was found to be 80.4 Pg C/yr, while the published Model B value was 77.1 Pg C/yr (Table 1 & p 27 in Raich and Potter, 1995). Using the landmask information, provided by the authors, reduced the total global soil emission to 77.8 Pg C/yr.
  3. The contributors of the model output (authors of the paper) are in agreement with CDIAC analysts about the necessity of reporting the above mentioned two points.

Matthews, E. 1985. Atlas of Archived Vegetation, Land-Use and Seasonal Albedo Data Sets. Goddard Space Flight Center Institute for Space Studies. N.Y, N.Y.

Olson, J. S., J. A. Watts and L. J. Allison. 1985. Major World Ecosystem Complexes Ranked by Carbon in Live Vegetation: A Database. NDP017. Carbon Dioxide Information Analysis Center, Oak Ridge National Laboratory. Oak Ridge, Tennessee.

Post, W. M., A. W. King and S. D. Wullschleger, 1996. Soil Organic Matter Models and Global Estimates of Soil Organic Carbon. Nato ASI Series Vol 138: 201-222.

Raich, J. W. and C. S. Potter. 1995. Global Patterns of Carbon Dioxide Emissions from Soils. Global Biogeochemical Cycles 9(1)23-36.
Raich, J. W. and W. H. Schlesinger. 1992. The Global Carbon Dioxide Flux in Soil Respiration and its Relationship to Vegetation and Climate. Tellus. Sér. B 44:81-99.

Wilkinson, L. 1990. SYSTAT: The System for Statistics. version 5.0, SYSTAT: Evanston, Ill.

  1. FTP to cdiac.ornl.gov (128.219.24.36).
  2. Enter "ftp" as the user id.
  3. Enter your electronic mail address as the password (e.g., [email protected]).
  4. Change to the directory "pub/db1015" (i.e., use the command "cd pub/db1015").
  5. Set ftp to get ASCII files by using the ftp "ascii" command.
  6. Retrieve the ASCII database documentation file by using the ftp "get db1015.txt" command.
  7. Retrieve the ASCII data files by using the ftp "mget *.dat" command.
  8. Set ftp to get grpahics files by using the ftp "binary" command.
  9. Retrieve the graphics files (maps) files by using the ftp "mget *.gif" command.
  10. Exit the system by using the ftp "quit" command.

Carbon Dioxide Information Analysis Center
Laboratoire national d'Oak Ridge
B.P. Box 2008
Oak Ridge, Tennessee 37831-6290, U.S.A.

Telephone: 1-865-574-3645
Telefax: 1-865-574-2232
E-mail: [email protected]

  1. rp-modelb_ann.dat
  2. rp-modelb_jan.dat
  3. rp-modelb_feb.dat
  4. rp-modelb_mar.dat
  5. rp-modelb_apr.dat
  6. rp-modelb_may.dat
  7. rp-modelb_jun.dat
  8. rp-modelb_jul.dat
  9. rp-modelb_aug.dat
  10. rp-modelb_sep.dat
  11. rp-modelb_oct.dat
  12. rp-modelb_nov.dat
  13. rp-modelb_dec.dat
  14. landmask.dat
  1. db1015.txt
  1. ann.gif
  2. jan.gif
  3. feb.gif
  4. mar.gif
  5. apr.gif
  6. may.gif
  7. jun.gif
  8. jul.gif
  9. aug.gif
  10. sep.gif
  11. oct.gif
  12. nov.gif
  13. dec.gif

The db1015.txt (File 1) file is an ASCII text equivalent of this document.

Fourteen flat ASCII data files are provided with this data package.

The 'rp-modelb.*' files (13 files):

Thirteen global 0.5 degree lat/lon output files were produced by Model B as described in Raich and Potter (1995):

  • Twelve files representing the monthly CO2 flux from soil.
  • One file representing the annual CO2 flux from soil.

Predicted CO2 flux from soil is expressed in units (integer format) of grams carbon (*100) per square meter of soil area.

Note: (*100) conserves two decimal places for unit grams.

A 0.5 degree lat/lon file with grid cell area information on land/water designations. This file was used by the authors in the global summation of soil emissions.

The data files are in ASCII GRID (text) format for ARC/INFO. Each file contains a single ASCII array with integer values. Coordinates listed below are in decimal degrees.

The ASCII file consists of header information containing a set of keywords, followed by cell values in row-major order. The file format is:

where xxx is a number, and the keyword NODATA_VALUE is optional and defaults to -9999. Row 1 of the data is at the top of the grid, row 2 is just under row 1 and so on. The end of each row of data from the grid is terminated with a carriage return in the file.


To import this file into ArcInfo use the following command at an ARC prompt:
ASCIIGRID
Arguments
- the ASCII file to be converted.
- the name of the grid to be created.
- the data type of the output grid.
INT - an integer grid will be created.
FLOAT - a floating-point grid will be created.

A FORTRAN program designed to read and print the contents of these ASCII data is also included below.


Le R paquet landscapemetrics

The core of landscapemetrics comprises functions to calculate landscape metrics and uses raster data as input. Therefore, the package is mainly based on the well-established raster package (Hijmans 2019 ), but the use of next-generation frameworks is also possible (étoiles package, Pebesma 2019 ).

At present, landscapemetrics primarily includes the so-called FRAGSTATS-style metrics (Kupfer 2012 , McGarigal et al. 2012 ), but other types of metrics are planned for future updates. The current software version includes metrics on all available levels, namely patch-, class- and landscape-level. Patch-level metrics describe every patch in a landscape (a patch being defined as contiguous cells belonging to the same land-cover class). Class-level metrics describe all patches belonging to a certain land-cover class. Lastly, landscape-level metrics describe the characteristics of the entire landscape (McGarigal et al. 2012 ). Additionally, landscape metrics can be classified according to the characteristics of the landscape they (conceptually) describe (McGarigal et al. 2012 , Šímová and Gdulová 2012 ). landscapemetrics includes area and edge metrics, shape metrics, core area metrics, aggregation metrics, diversity metrics, as well as complexity metrics. For a full list of all metrics, see the package documentation (<https://r-spatialecology.github.io/landscapemetrics>).

Improvements over existing software tools

Though popular, FRAGSTATS has certain drawbacks (Table 1). As a stand-alone software, it requires data import to the software for integration into large workflows. If the resulting metrics are the basis for further analysis, they must then be exported to yet another program. Additionally, the analysis of several input layers or the use on high-performance clusters is rather laborious. Aussi, FRAGSTATS is not open-source software and only available for les fenêtres operating systems. This can complicate transparency and reproducibility of the analysis workflow, and collaboration among researchers using different computing platforms.

Les caractéristiques FRAGSTATS SDMTools landscapemetrics
open-source software non Oui Oui
cross-platform compatibility non Oui Oui
available metric levels p, c, l p, c p, c, l
parametrization of metrics Oui non Oui
tidy data format non non Oui
easy integration into workflows non non Oui
utility functions échantillonnage non various
restrictions due to numeric precision yes 1 non non

Contrastingly, R is open-source and available for most common operating systems (including Windows, macOS and Linux). The existing R paquet SDMTools calculates a limited number of landscape metrics, and thereby overcomes some of the above-mentioned limitations of FRAGSTATS. But, as this package was primarily developed for species distribution modelling rather than landscape analysis, it cannot fully replace FRAGSTATS (Tableau 1). The use of the package for landscape analysis is rather cumbersome. To calculate patch-level metrics, the data must first be converted to a matrix and a loop through all land-cover classes implemented (Example 1). Par ailleurs, SDMTools does not permit a sub-selection of metrics and no further parameterization of metrics is possible. Additionally, the user must specify the cell resolution manually for all area- and distance-related calculations, introducing a possible error source. Also, the output format makes integration of the results into large workflows difficult. Lastly, to our knowledge, SDMTools is not actively developed anymore.

landscapemetrics provides an extensive collection of widely used landscape metrics for discrete land-cover maps, including most of the commonly used metrics used in landscape analysis (Cushman et al. 2008, Schindler et al. 2008, Lustig et al. 2015), as well as some recent ones (e.g. joint entropy, Nowosad and Stepinski 2019 ). Parce que landscapemetrics is written in the R programming language, it operates across operating platforms. Given the variety of R packages, this also enables the user to run the software easily in parallel or on high-performance clusters. To ensure integration into large workflows, landscapemetrics is based on a well-established spatial framework in R (mainly the raster package). This allows pre-processing of data, calculation of metrics, and further analysis of the results, all within the same software environment. This also facilitates its usage with other spatial objects in R (par exemple. sp spatial points, Pebesma and Bivand 2005 ). Additionally, the use of raster data has advantages in having all required spatial information included and eliminating possible error sources, such as a mis-specified cell size. To simplify integration further, the output of all metric functions is tidy (sensu Wickham 2014) and type stable, meaning the returning data frame is identically structured regardless of the level or metric (Table 2). This facilitates reproducible workflows (Sandve et al. 2013). The package is open-source, which allows users to comprehend and improve upon existing metrics, as well as to contribute new functions. All functions were designed to calculate landscape metrics in a straightforward way (Example 1). Lastly, the package provides several utility functions (Table 3) to facilitate visualization, extraction, sampling and development of metrics.

Layer <integer> Level <character> Class <integer> ID <integer> Metric <character> Value <double>
ID of landscape Level of metric ID of class NA for landscape level ID of patch NA for class and landscape level Abbreviation of metric Value of metric
Area of application Function name La description
Visualization show_patches() Plot patches in the landscape
Visualization show_cores() Plot core areas in the landscape
Visualization show_lsm() Plot landscape filling cells with patch level metric value
Visualization show_correlation() Show correlation between metrics
Échantillonnage sample_lsm() Sample metrics in a buffer around sample points
Échantillonnage extract_lsm() Extract landscape metric of patches enclosing sample points
Échantillonnage window_lsm() Moving window analysis
Building block get_adjacencies() Get class cell adjacencies
Building block get_boundaries() Get boundary cells of patches
Building block get_circumscribingcircle() Get diameter of the smallest circumscribing circle around patches
Building block get_nearestneighbour() Get minimum Euclidean distance between classes
Building block get_patches() Patch delineation
Divers check_landscape() Check if input fulfils package requirements
Divers list_lsm() List all available metrics
Divers spatialize_lsm() Assign patch metric to each cell

Calculation of landscape metrics

The first step of every analysis should be a check if the input raster is suitable for landscapemetrics using check_landscape(). The function checks if the coordinate reference system is projected, if the cell units are in meters, if the classes are decoded as integer values, and if the number of different values is reasonable (in other words if discrete land-cover classes are present). In case the input is not or only partially suitable, a corresponding warning is produced. This means that a calculation of metrics is still possible, but some results must be interpreted with caution (e.g. area- and distance-related metrics).

To get an overview of all available metrics, landscapemetrics provides the function list_lsm(). It is possible to specify metrics by name, level, and/or type. Of course, all specifications can be combined. Also, rather than a data frame, it is possible to return a vector with function names. For example, the vector format makes it straightforward to get only the function names of all patch- and class-level aggregation metrics for later use by list_lsm(level = c("patch", "class"), type = "aggregation metric", simplify = TRUE).

All functions to calculate landscape metrics are consistently named in landscapemetrics. Functions to calculate a given metric have the prefix ‘lsm_’ followed by an abbreviation for the level (‘p’, ‘c’ or ‘l’ for patch-, class- and landscape-level, respectively) and lastly for the metric itself. For example, the class area for each land-cover class is calculated simply by lsm_c_ca(). All functions can handle several landscapes as input (either a list of RasterLayers or a RasterStack/RasterBrick).

Several metrics, regardless of the level, can easily be combined into one data frame because the resulting output is always an identically structured data frame (Table 2). Therefore, the results of the desired metrics can be combined using, for example, rbind(lsm_p_area(x), lsm_l_ai(x)). Because all output is tidy following widely accepted data science standards, further analysis of the resulting data frame is possible without laborious data import/export or formatting (see Use case).

Many functions provide additional parametrization, such as the edge depth or the cell neighbourhood rule for patch delineation. For example, to change the patch delineation rule for the patch area, only the argument directions must be changed from its default using the ‘queen's case’ (eight neighbouring cells) to the ‘rook's case’ (four neighbouring cells), i.e. lsm_p_area(x, directions = 4). Of course, all arguments are consistently named across metrics.

The calculate_lsm() wrapper can be used to calculate several metrics simultaneously. Similar to list_lsm(), this wrapper allows specifying a subset of metrics using the name, level, and/or type, such as calculate_lsm(x, level = “landscape”, type = “diversity metric”). Alternatively, a vector (e.g. previously created using list_lsm()) with function names can be provided as what-argument. The returning data frame is identical to the output of all single metric functions.

result_patch <- list() # preallocate list

classes <- unique(landscape) # all present classes

landscape_matrix <- as.matrix(landscape) # convert to matrix

landscape_matrix[landscape_matrix != i] <- 0 # binarize landscape

landscape_matrix[landscape_matrix == i] <- 1 # binarize landscape

ccl <- ConnCompLabel(landscape_matrix) # get patches

result_patch[[i]] <- PatchStat(ccl, cellsize = 1) # patch metrics

.id = “classID”) # combine to one df

patchID != 0) # only present classes

area_SDM <- result_patch[, c(1, 2, 7)] # select only area

perim_SDM <- result_patch[, c(1, 2, 9)] # select only perimeter

area_lsm <- lsm_p_area(landscape) # calculate patch area

perim_lsm <- lsm_p_perim(landscape) # calculate patch perimeter

Example 1. Comparison of SDMTools et landscapemetrics workflows to calculate patch area and patch perimeter. SDMTools requires a loop through all present land-cover classes and a binarization of the input to 1 for the current class and 0 for all other classes. Also, the desired metrics must be filtered from the resulting data frame

Utility functions

An additional advantage of landscapemetrics over existing software tools for landscape analysis lies in its utility functions (Table 3). These functions are designed to facilitate the application, visualization, extraction, sampling and development of landscape metrics.

Visualization functions, which help to understand and communicate metrics, start with the prefix ‘show_’ followed by the subject to visualize. It is possible to include either all classes in one plot (class = “global”), all classes but each plotted separately (class = “all”) or just selected classes (class = c(1, 3)). Patches in a landscape can be visualized by show_patches() (Fig. 1B), or to visualize only the core area, there is show_cores() (Fig. 1C). Additionally, patches can be filled with the value of any patch level metric, such as the patch area using show_lsm(x, what = “lsm_p_area”). It is also possible the get the result as a RasterLayer, using spatialize_lsm(). In the returning RasterLayer, each cell has the value of the corresponding patch for any chosen metric. Correlations between metrics can be problematic (Cushman et al. 2008, Schindler et al. 2008, Nowosad and Stepinski 2018 b) and the selection of mainly uncorrelated metrics can be a challenge. Providing a data frame with metric results, show_correlations() returns a correlation matrix plot.

Visualization of an example landscape (a) using the utility functions show_patches() (b) and show_cores() (c) for a selected class.

There are several functions to sample landscape metrics. Sample locations can be provided either as a matrix including x- and y-coordinates or as sp-objects and for all sampling functions, the metrics can be specified similar to list_lsm(). The function extract_lsm() returns the patch-level metric values of each patch in which sample points are located. To calculate metrics in a buffer around sample points, sample_lsm() can be used, allowing to specify the shape (circle, square or rectangle) and the area of buffers around sample points, and then calculates the specified metrics. Landscape metrics are known to be scale dependent (Lausch and Herzog 2002 , Wu 2004 , Lustig et al. 2015) and using a moving window can be an approach to deal with this (Su et al. 2011 ). The moving window assigns to each focal cell in the landscape the metric value of its local neighbourhood specified by a neighbourhood matrix (McGarigal et al. 2012 ). The resulting raster describes the landscape in regard to the local variability of the chosen metric (Hagen-Zanker 2016 ). Within landscapemetrics, a moving window approach can be applied by using window_lsm(). The local neighborhood can be specified using, for example, window <- matrix(1, nrow = 5,ncol = 5), followed by window_lsm(x, window = window, what = c("lsm_l_pr", "lsm_l_joinent")).

Dernièrement, landscapemetrics provides several building-blocks to develop and contribute new metrics. These functions all start with the prefix ‘get_’ and are mainly computationally fast C/C++ implementations of common raster procedures. Of these, get_patches() is the most fundamental, as it returns all connected cells as patches and is used in most metrics. Another useful function is get_adjacencies(), which returns the adjacency matrix of all cells, and is easier to use, faster and more memory efficient than its equivalent in the raster package (Example 2). Finally, get_nearestneigbhour() returns the minimum Euclidean distance between patches of the same class, and get_circumscribingcircle() returns the diameter of the smallest circumscribing circle around each patch.


Voir la vidéo: Convertir raster en shapefile et calcul de surface. Convert raster in shapefile and area statistic (Octobre 2021).