Skip to content

Problème lorsqu'un patch est numéroté `0`

Problème avec la fonction brk_dispersal: lorsque le patch est numéroté 0, le calcul de la convolution est fausse:

D'après Dorian: "C'est juste avant que tu calcules la convolution entre les sources d'émission et le noyau de dispersion : la matrice des sources d'émission (sources_matrix) est censée être composée de 1 pour les pixels émetteurs et 0 pour le reste. Il y a néanmoins un problème lorsque le patch "0" émet (dans les données sfMaize65 c'est la 1ere parcelle), sources_matrix se retrouve constitué uniquement de 1 et la dispersion sera homogène, etc.. "

Le petit test suivant permet de le vérifier:

1 - le jeu de donné sfMaize65 a une ligne 0

library("briskaR")
data("sfMaize65")
> sfMaize65
Simple feature collection with 460 features and 2 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 464160.4 ymin: 6256650 xmax: 469159 ymax: 6261649
CRS:           +proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
First 10 features:
                        geometry maize label
0 MULTIPOLYGON (((468645.4 62...     0     0
1 MULTIPOLYGON (((466508.9 62...     0     1
2 MULTIPOLYGON (((467108.9 62...     1     2

2 - on peut faire la suite pour vérifier:

squareFrame_sfMaize65 <- st_squared_geometry(list(sfMaize65), buffer = 200) 
stack_dispersal <- brk_dispersal(sfMaize65,
                                 size_raster = 2^8,
                                 kernel = "geometric",
                                 kernel.options = list("a" =  -2.63),
                                 squared_frame = squareFrame_sfMaize65)
raster::plot(stack_dispersal[[1:6]])

qui donne un truc homogène pour le premier polygone:

image