Salut à toutes et à tous!
Un marcheur aléatoire se déplace dans une grille géospatialisée. Aux débuts du projet on s'intéressait à définir les probabilités de saut d'une case à l'autre avec une version discrétisée d'une loi de proba continue: le marcheur pouvait sauter plusieurs cases, la probabilité associée au passage à ce saut étant fonction de la distance géographique entre les deux cases (en fait entre les deux centroides des deux cases). Puisqu'on avait régulièrement besoin de calculer des distances entre deux coordonnées, j'ai beaucoup utilisé une classe LongitudeLattiude à travers le projet, mais suivant les bons conseils d'une forumeuse bien connue de ces contrées, j'ai pris soin de mettre des templates sur tout ce qui pouvait concerner le référentiel spatial.
Les besoins changeant (didju que j'aime pouvoir enfin dire cette phrase...) , il a fallu passer à une version où l'espace d'arrivée du marcheur aléatoire est restreint à 5 cases: case de départ + les 4 cases nord/sud/est/ouest.
Un peu naïvement j'ai voulu "juste" ajouter la résolution spatiale du quadrillage en longitude/latitude pour pouvoir à partir des cordonnées d'une case X, trouver les coordonnées des 4 voisines. Par "coordonnées de la case", j'entends "coordonnées du centroide de la case".
Les ordinateurs ne calculant décidément pas juste, il m'a fallu reprojeter les points obtenus après addition de la latitude (longitude) avec une formule un peu relou. Le tout étant décidément très peu efficace, le temps de simulation a (évidemment ? ) explosé.
Comment vous y prendriez-vous ?
Est-ce que le moment est arrivé de repasser à un référencement type matrice (numéro de ligne / numéro de colonne) plutôt que de m'embêter à recalculer des coordonnées à tout va ?
En vous remerciant d'avance!
Partager