J'ai une question concernant l'agrégation spatiale dans R. Ce que j'essaie de faire est d'agréger un ensemble de données ponctuelles à une grille. Je ne sais cependant pas comment procéder, car j'ai peu d'expérience avec ce genre de choses. J'espérais que n'importe lequel d'entre vous pourrait avoir des conseils utiles / une solution possible.
Mon point de vue est un ensemble de données contenant des données géoréférencées sur les événements de conflit en Afrique (voir www.acleddata.com). Les points sont géoréférencés avec des coordonnées de latitude / longitude et contiennent des données sur le type d'événement et l'heure. Ce que je veux faire, c'est agréger ces points sur une grille de 1 x 1 degré.
Ainsi, une cellule de grille devrait contenir les informations des points de données si un événement se produisait dans cette cellule de grille. Le produit final de ceci devrait être une trame de données ou quelque chose que je peux exporter vers un fichier csv car les données sont destinées à être utilisées dans un ensemble de données de panel pour une analyse statistique.
Jusqu'à présent, j'ai chargé et tracé les données et le fichier de formes à l'aide du code ci-dessous. Je crois que je devrais utiliser la fonction over du package sp pour agréger mais je ne sais pas comment. J'espère que l'un de vous pourra vous aider.
Le code que j'ai utilisé jusqu'à présent peut être trouvé ici avec le résultat visuel correspondant là-bas .
Les suggestions pour cela dans QGIS sont également les bienvenues.
la source
Réponses:
Les données téléchargées contiennent des erreurs de localisation franches, donc la première chose à faire est de limiter les coordonnées à des valeurs raisonnables:
Le calcul des coordonnées et des identificateurs des cellules de la grille consiste simplement à tronquer les décimales à partir des valeurs de latitude et de longitude. (Plus généralement, pour les rasters arbitraires, centrez-les d'abord et mettez-les à l'échelle pour unifier la taille des cellules, tronquez les décimales, puis redimensionnez et recentrez à leur position d'origine, comme indiqué dans le code
ji
ci-dessous.) Nous pouvons combiner ces coordonnées en identificateurs uniques, les attacher à la trame de données d'entrée et écrire la trame de données augmentée sous forme de fichier CSV. Il y aura un enregistrement par point:Vous souhaiterez peut-être plutôt une sortie qui résume les événements dans chaque cellule de la grille. Pour illustrer cela, calculons les nombres par cellule et sortons-les, un enregistrement par cellule:
Pour les autres résumés, modifiez l'
function
argument dans le calcul decounts
. (Vous pouvez également utiliser un tableur ou un logiciel de base de données pour résumer le premier fichier de sortie par identifiant de cellule.)Pour vérifier, cartographions les nombres en utilisant les centres de la grille pour localiser les symboles de la carte. (Les points situés dans la mer Méditerranée, en Europe et dans l'océan Atlantique ont des emplacements suspects: je soupçonne que beaucoup d'entre eux résultent d'un mélange de latitude et de longitude dans le processus de saisie des données.)
Ce workflow est maintenant
Complètement documenté (au moyen du
R
code lui-même),Reproductible (en relançant ce code),
Extensible (en modifiant le code de manière évidente), et
Raisonnablement rapide (l'ensemble de l'opération prend moins de 10 secondes pour traiter ces 53052 observations).
la source
Eh bien, ce que vous voulez, c'est une base appelée "jointure spatiale", qui associe deux fichiers de formes et alloue la somme (nombre de comptages) à la table d'attributs résultante. Si vous recherchez "Spatial Join in R", vous trouverez de nombreux exemples même ici sur GIS.Stackexchange. J'ai rapidement googlé et trouvé par exemple ce code posté sur une liste de diffusion.
Si vous souhaitez obtenir une jointure d'attribut spatial dans QGIS, procédez comme suit:
Si la jointure échoue (ne fonctionne pas pour moi à chaque fois), alors restez sur SEXTANTE et recherchez la boîte à outils SAGA, qui a également de très bonnes fonctions de jointure.
la source
R
excelle. Utiliser des fichiers de formes,rgdal
QGIS et Sextante, c'est un peu comme recommander à quelqu'un de louer une usine industrielle automatisée moderne afin de clouer deux planches ensemble :-).