Tu as raison. Cela vient d'un changement de syntaxe dans l'usage des rasters.
Ce concept de grid n'était pas bien défini dans Ocelet. Il a été utilisé pendant un temps mais nous l'avons remplacé par quelque chose de plus cohérent avec le reste du langage : une liste d'entités.
Autrement dit quand on a une relation entre entités contenant des Cell (ce qui constitue un raster), on peut obtenir la liste des entités de ce raster, et manipuler cela comme une liste habituelle.
Concrètement, dans le modèle Olrik il faut remplacer :
fix r_zegri = new ZeGrille
r_zegri.connect(r_vgrille.grid,lze)
par
fix r_zegri = new ZeGrille
r_zegri.connect(r_vgrille.allCellule,lze)
Cette fonction allCellule
est équivalente à getAllCellule()
et ce que l'on obtient est de type List<Cellule>
. Son nom vient du fait que l'on a une relation entre entités nommées Cellule
dans le modèle Olrik. Si les entités s'appelaient autrement, Pixel
par exemple, on obtiendrait la liste des entités du raster avec la fonction getAllPixel()
ou simplement allPixel
qui renverrait une liste de type List<Pixel>
.
Cette nouvelle syntaxe n'est pas encore bien documentée sur le site, on va y remédier.
Il y a une autre chose qui a changé pour que Olrik fonctionne avec cette nouvelle version d'Ocelet, c'est la façon d'enregistrer le raster dans un fichier .tif.
Il y a un nouveau datafacer RasterExport
qui sert à cela. Le datafacer RasterFile
sert à lire des fichier raster ou des séries de fichiers raster, et RasterExport
sert à les enregistrer. Les opérations de lecture et d'écriture ont donc été séparées.
Dans Olrik, il faut remplacer :
fix rfile = new MntFile
rfile.export(r_vgrille.grid,"output/resultat.tif","EPSG:32740")
par ceci :
fix rfile = new RasterExport
rfile.export(r_vgrille.allCellule,"output/resultat.tif","EPSG:32740")
Pour plus d'info là dessus tu peux consulter la documentation sur RasterExport
Have fun !