Suite

Rasterize produit un raster plein de valeurs NA


J'ai du mal à convertir un polygone en raster. Le raster souhaité est créé, mais toutes ses valeurs sont égales à NA.

require(rgdal) require(raster) #télécharger un fichier de formes avec les données du recensement de 2010 tmp_dl <- tempfile() download.file("http://files.hawaii.gov/dbedt/op/gis/data/blkgrp10.shp.zip ", tmp_dl) unzip(tmp_dl, exdir=tempdir()) HIshp <- readOGR(tempdir(), "blkgrp10") #ajouter un nouvel attribut/champ avec la densité de population de chaque polygone p_areas <- sapply([email protected], fonction (i)[email protected]) p_pops <- [email protected]$POP10 [email protected][,3] = p_pops/p_areas names([email protected])[3] <- "POPDENS" #voici le format raster dont j'ai besoin pour le résultat new_ras <- raster(nrow = 1520, ncol = 2288) extent(new_ras) <- c(-159.816, -154.668, 18.849, 22.269) crs(new_ras) <- "+proj=longlat +ellps=WGS84 +towgs84 =0,0,0,0,0,0,0,0 +no_defs" rasterize(HIshp, new_ras, field="POPDENS")

Et voici le triste résultat :

> classe rasterize(HIshp, new_ras) : RasterLayer dimensions : 1520, 2288, 3477760 (nrow, ncol, ncell) résolution : 0.00225, 0.00225 (x, y) étendue : -159.816, -154.668, 18.849, 22.269 (xmin, xmax, ymin, ymax) coord. réf. : +proj=utm +zone=4 +datum=NAD83 +units=m +no_defs +ellps=GRS80 +towgs84=0,0,0 source de données : dans les noms de mémoire : valeurs des couches : NA, NA (min, max)

Comment puis-je faire en sorte que les valeurs soient converties correctement ?


Tout d'abord, reprojetez les données vectorielles sur WGS84 (degrés Lat/Long) :

HI_WGS84 <- spTransform(HIshp, CRS("+proj=longlat +elips=WGS84"))

Puis pixellisez un nouveau résultat :

new_ras <- raster(nrow=1520, ncol=2288) crs(new_ras) <- crs(HI_WGS84) extent(new_ras) <- c(-159.816, -154.668, 18.849, 22.269) HI_popdens <- rasterize(HI_WGS84, new_ras, field="POPDENS") tracé(HI_popdens)


Eh bien, vous avez deux problèmes potentiels :

1) "HIshp" est dans une projection "UTM Zone 4" et le raster que vous avez défini est dans une projection géographique (lat/long). Vous pouvez utiliser "spTransform" pour reprojeter "Hishp" afin qu'il s'aligne sur "new_ras".

2) Vous devez définir l'attribut dans "HIshp" que vous souhaitez représenter les valeurs raster (c'est-à-dire, rasterize(HIshp, new_ras, field="POPDENS").


Voir la vidéo: GDAL Tutorial #4: Rasterize and Polygonize (Octobre 2021).