2017-07-13 3 views
1

Je veux multiplier les valeurs de précipitation (mm) de chaque pixel d'une trame par la zone correspondant à chacun de ces pixels conformément à la règleR Comment multiplier les valeurs des pixels raster avec les vraies surfaces de ces pixels?

Au début, je multiplié directement la trame par la zone de pixel moyenne (Superficie totale/nombre de pixels). Mais si nous travaillons à l'échelle mondiale avec la projection WGS84, en réalité la zone de pixels à l'équateur et dans les régions de haute latitude est très différente? C'est pourquoi je pose cette question.

Nous vous remercions d'avance pour votre aide

+0

Je pense que cela est une question mieux posée à gis. stackexchange.com – loki

+1

comment calculez-vous l'aire de chaque pixel? 'raster :: area'? – maRtin

Répondre

1

Vous pouvez calculer la valeur de chaque pixel par unité de surface (ici en mètres) en utilisant:

rows = init(raster , v='y') # latitude bands 
PI = 3.14159265359 # PI number 
earth_radius = 6371007.181 # radius of earth in meter 
raster_resolution = xres(raster) # resolution of the raster layer 

new_raster <- raster * ((raster_resolution * (PI/180) * earth_radius) * (raster_resolution * (3.14159265359/180) * earth_radius * cos(rows/180*PI)))