Alors vous avez peut-être lu plus bas, que je m’intéressais aux SMA (Sytèmes multi-agents), et plus particulièrement aux possibilités liées a la géographie… J’ai donc creusé depuis deux semaines les possibilités liées au xSIG et aux SMA. Et mon premier problème a été de vouloir intégrer un Modèle Numérique de Terrain dans netlogo. Eh oui, car d’habitude je travaille sur des GeoTiff, mais je n’ai pas trouvé comment les intégrer directement. Le format lut par défaut étant l’ASCII… Je suis donc parti à l’attaque de mes GeoTiff avec mon petit utilitaire gdal_translate pour passé de GeoTiff à ASCII. Mais le second problème qui s’est immédiatement présenté est la présence de valeur 0 pour les zones sans informations, ou pour la mer. J’avais bien essayé de faire un masque avec GRASS, mais le résultat était de remplacer le 0 par des « -nan », ce qui provoquait des erreurs en chaine dans netlogo. Je suis donc repartie de mon geotiff sans masque et ai appliqué la transformation suivante.
gdal_translate -of "AAIGrid" -a_nodata -9999 dtmBanyuls10m.tif ASCII/dtmBanyuls.asc
Si vous êtes un peu familier de gdal vous vous demander si -a_nodata va fonctionner? Et la réponse est non, car les datas existent… Mais j’ai réussi à contourner le problème en ouvrant le ficher.asc avec nano (un petit utilitaire en mode console parce que le mode graphique n’était pas capable de l’ouvrir). Et j’ai remplacé sur la ligne nodata -9999 par 0.
ce qui me permet ensuite d’ouvrir l’ASCII dans Qgis de manière propre et de même dans netlogo.
avec un bémol sur le système de projection… je n’ai pas réussi à lui donner toutes les références du système de projection. Je travaille normalement en lambert93, mais j’ai du réduire les informations contenues dans le ficher prj pour le moment…
Chemin faisant, je me rends compte que le volume de données que j’essaye de traiter est trop gros pour mes tests de construction de monde virtuel. Il faut donc couper cour a grand moment de solitude devant l’ordinateur en diminuant la fenêtre de travail.
gdal_translate -of "AAIGrid" -a_nodata -9999 -projwin 705858 6153107 711560 6148784 dtmBanyuls10m.tif ASCII/dtmBanyuls2.asc
Voilà qui est mieux, mais c’est encore un peu lourd. Sans trop y réfléchir je me veux resempler le raster … je choisie R pour me replonger dans le cour que j’ai suivie au muséum d’histoire naturelle la semaine dernière.
library("sp")
library("raster")
library("rgdal")
ras<-raster("dtmBanyuls2.asc")
rstA2 <- aggregate (rst, fact=6, fun=mean)
writeRaster ( rstD22b, filename="rst1010.asc", overwrite=TRUE) #ecriture du raster
Bon on pouvais visiblement passer par gdalwrap… Et le gains en vitesse d’execustion n’est pas notable … Il faut en suite modifier le fichier .prj associé (je n’ai pas encore trouvé de solution plus élégante) et ne conserver que :
GEOGCS["GCS_RGF93",DATUM["D_RGF_1993",
SPHEROID["GRS_1980",6378137,298.257222101]],
PRIMEM["Greenwich",0],
UNIT["Degree",0.017453292519943295]]
Si vous avez des idées à ce sujet je suis preneur.





Follow Me!