﻿{"id":9240,"date":"2021-02-16T10:04:41","date_gmt":"2021-02-16T09:04:41","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=9240"},"modified":"2021-06-07T18:33:52","modified_gmt":"2021-06-07T16:33:52","slug":"modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/","title":{"rendered":"Mod\u00e9lisation spatio-temporelle avec une \u00e9quation int\u00e9gro-diff\u00e9rentielle  (IDE) avec QGis et R"},"content":{"rendered":"\n<p>En \u00e9cologie on se retrouve, tr\u00e8s souvent, <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-dans-qgis-avec-postgis1\/\">face<\/a> \u00e0 des processus qui sont li\u00e9s \u00e0 l&rsquo;espace mais aussi qui \u00e9voluent dans le temps. Nous sommes maintenant habitu\u00e9s \u00e0 l&rsquo;analyse spatiale qui est devenu \u00e0 la port\u00e9e du plus grand nombre gr\u00e2ce aux <a href=\"https:\/\/www.sigterritoires.fr\/\">SIG<\/a>, tels QGis. Nous sommes beaucoup moins habitu\u00e9s \u00e0 l&rsquo;analyse temporelle qui est moins prise en compte par les SIG.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Analyse spatio-temporelle<\/h2>\n\n\n\n<p>Que dire alors de l&rsquo;analyse spatio-temporelle, c&rsquo;est \u00e0 dire de l&rsquo;analyse simultan\u00e9e d&rsquo;un processus variant dans l&rsquo;espace et dans le temps? Comme pour l&rsquo;analyse spatiale, un premier niveau pour aborder le processus qui nous int\u00e9resse est l&rsquo;analyse exploratoire des donn\u00e9es. Un deuxi\u00e8me niveau nous am\u00e8ne \u00e0 essayer de comprendre les param\u00e8tres qui contr\u00f4lent le processus pour remplir les trous dans les donn\u00e9es et r\u00e9duire le \u00ab\u00a0bruit\u00a0\u00bb de nos observations. Enfin, au plus haut du traitement, nous pouvons mod\u00e9liser statistiquement  le processus et obtenir un outil qui nous permette une vision compl\u00e9t\u00e9e de nos donn\u00e9es (boucher les trous dans l&rsquo;espace et le temps de nos observations), de trier les param\u00e8tres du processus et de quantifier leur importance, et finalement, de pr\u00e9voir l&rsquo;\u00e9tat futur de notre processus.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Si nous prenons seulement l&rsquo;aspect spatial des donn\u00e9es on comprendra mieux le sujet. Nous disposons, par exemple, de donn\u00e9es sur une population d&rsquo;oiseaux dont  le territoire progresse d&rsquo;ann\u00e9e en ann\u00e9e.  D&rsquo;un point de vue spatial nous aurons une distribution du nombre d&rsquo;individus. Le premier pas pour traiter ces donn\u00e9es sera l&rsquo;analyse exploratoire des donn\u00e9es (histogrammes, qqplots, polygones de Vorono\u00ef,&#8230;). On aura alors une id\u00e9e de l&rsquo;ad\u00e9quation de notre \u00e9chantillonnage et le processus sous-jacent qui nous int\u00e9resse. <\/p>\n\n\n\n<p>Le deuxi\u00e8me pas sera de passer de nos \u00e9chantillons ponctuels \u00e0 des donn\u00e9es surfaciques, soit par des interpolations simples (IDW, Spline,&#8230;) soit par des m\u00e9thodes statistiques (Krigeage,..). A ce point on disposera d&rsquo;une image de notre processus, nettoy\u00e9e des erreurs de mesure et du \u00ab\u00a0bruit\u00a0\u00bb des observations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mod\u00e9lisation des donn\u00e9es<\/h2>\n\n\n\n<p> On pourra alors utiliser des m\u00e9thodes de mod\u00e9lisation telles que les mod\u00e8les lin\u00e9aires, les mod\u00e8les lin\u00e9aires g\u00e9n\u00e9ralis\u00e9s (GLM), les mod\u00e8les lin\u00e9aires mixtes g\u00e9n\u00e9ralis\u00e9s (GLMM),les mod\u00e8les additifs g\u00e9n\u00e9ralis\u00e9s (GAM), les mod\u00e8les mixtes additifs g\u00e9n\u00e9ralis\u00e9s (GAMM)&#8230; qui nous permettent d&rsquo;inclure nos connaissances scientifiques sur le processus et d&rsquo;obtenir des pr\u00e9dictions moins biais\u00e9es. <\/p>\n\n\n\n<p>Les outils que nous aborderons dans cet article se situent un cran plus loin que ces mod\u00e8les (GLM, GAM,&#8230;) pour traiter des donn\u00e9es spatio-temporelles. En effet, les diff\u00e9rents mod\u00e8les lin\u00e9aires  correspondent \u00e0 ce que l&rsquo;on appelle l&rsquo;approche descriptive de la mod\u00e9lisation spatio-temporelle. Pour faire simple, on d\u00e9finit la corr\u00e9lation entre deux valeurs dans l&rsquo;espace et le temps. <\/p>\n\n\n\n<p>La mod\u00e9lisation IDE correspond \u00e0 ce que l&rsquo;on appelle l&rsquo;approche dynamique. Le mod\u00e8le consid\u00e8re que la valeur actuelle \u00e0 un endroit donn\u00e9 est \u00e9gale \u00e0 un \u00ab\u00a0facteur de propagation\u00a0\u00bb de la valeur \u00e0 ce point au moment pr\u00e9c\u00e9dent \u00e0 laquelle on ajoute une \u00ab\u00a0erreur d&rsquo;innovation\u00a0\u00bb.<\/p>\n\n\n\n<p>Bref, on est en plein dans un domaine qu&rsquo;on ne peut aborder \u00e0 la l\u00e9g\u00e8re. Il faut bien sacrifier du temps \u00e0 comprendre ce que l&rsquo;on fait, pourquoi et comment on le fait. Dans cet article j&rsquo;\u00e9viterai les explications math\u00e9matiques. Vous trouverez les liens qui renvoient vers ces explications. Pour rester dans le domaine habituel des SIG je ferai des simplifications pas toujours exactes \u00e0 100% du point de vue math\u00e9matique, je m&rsquo;en excuse d&rsquo;avance au pr\u00e8s des math\u00e9maticiens. <\/p>\n\n\n\n<p>Les mod\u00e8les d\u2019\u00e9quation int\u00e9gro-diff\u00e9rentielle (IDE) d\u00e9crivent la d\u00e9pendance conditionnelle entre le processus spatial \u00e0 un moment futur et le processus au moment pr\u00e9sent par l\u2019interm\u00e9diaire d\u2019un op\u00e9rateur int\u00e9gral. <\/p>\n\n\n\n<p>La non lin\u00e9arit\u00e9 ou la d\u00e9pendance temporelle dans la dynamique du mod\u00e8le est souvent int\u00e9gr\u00e9e en permettant aux param\u00e8tres  de varier temporellement, ou en ajustant un mod\u00e8le avec un op\u00e9rateur lin\u00e9aire invariant temporellement dans une fen\u00eatre coulissante. Les deux proc\u00e9dures ont tendance \u00e0 \u00eatre excellentes \u00e0 des fins de pr\u00e9vision sur de courts horizons temporels, mais elles prennent g\u00e9n\u00e9ralement beaucoup de temps de calcul.<\/p>\n\n\n\n<p>En termes moins techniques, les mod\u00e8les IDE sont des outils tr\u00e8s puissant pour pr\u00e9voir l&rsquo;\u00e9tat suivant d&rsquo;un syst\u00e8me spatio-temporel \u00e0 partir des donn\u00e9es des \u00e9tats pr\u00e9c\u00e9dents et de l&rsquo;\u00e9tat actuel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pour savoir ce qu&rsquo;est IDE<\/h2>\n\n\n\n<p>Pour comprendre les mod\u00e8les spatio-temporels dynamiques, reportez-vous au chapitre 5 de l&rsquo;ouvrage Spatio-Temporal Statistics with R de Christopher K. Wikle, Andrew Zammit-Mangion, et Noel Cressie, piubli\u00e9 par Chapman &amp; Hall\/CRC et <a href=\"https:\/\/spacetimewithr.org\/Spatio-Temporal%20Statistics%20with%20R.pdf\">disponible en t\u00e9l\u00e9chargement ici<\/a>.<\/p>\n\n\n\n<p>La documentation de la biblioth\u00e8que R d&rsquo;IDE <a href=\"https:\/\/cran.r-project.org\/web\/packages\/IDE\/vignettes\/IDE_intro.pdf\">est disponible ici.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Les traitements QGis et R<\/h2>\n\n\n\n<p>Au jour d&rsquo;aujourd&rsquo;hui, il n&rsquo;y a pas de traitement disponible directement avec QGis. Ni Grass, ni SAGA ni les autres fournisseurs de traitements habituels de QGis impl\u00e9mentent IDE.<\/p>\n\n\n\n<p>Par contre, un package R est d\u00e9di\u00e9 \u00e0 la mise en place de mod\u00e8les IDE. Si vous \u00eates un habitu\u00e9 de R, vous pouvez r\u00e9cup\u00e9rer les donn\u00e9es spatio-temporelles de QGis et les traiter dans RStudio.<\/p>\n\n\n\n<p>Nous avons vu comment migrer les donn\u00e9es de QGis vers RStudio  <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/migrer-un-script-r-de-qgis-vers-rstudio\/\">dans cet article.<\/a><\/p>\n\n\n\n<p>Pour faciliter l&rsquo;acc\u00e8s aux mod\u00e8les IDE directement dans QGis, nous avons d\u00e9velopp\u00e9 deux scripts R directement utilisables \u00e0 partir des traitements QGis.<\/p>\n\n\n\n<p>Pr\u00e9alablement, vous devez vous assurer que les traitements QGis 3.x sont bien configur\u00e9s pour l&rsquo;utilisation de scripts R.<\/p>\n\n\n\n<p>Vous trouverez comment faire<a href=\"https:\/\/www.sigterritoires.fr\/index.php\/utiliser-r-dans-les-traitements-qgis-3\/\"> dans cet article.<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">T\u00e9l\u00e9chargements des scripts R et des donn\u00e9es d&rsquo;exemple<\/h1>\n\n\n\n<p>Cliquez sur le bouton \u00ab\u00a0T\u00e9l\u00e9charger\u00a0\u00bb pour r\u00e9cup\u00e9rer un fichier zipp\u00e9, contenant deux scripts R et un fichier de donn\u00e9es qui vous permettra de suivre la d\u00e9marche de cet article.<\/p>\n\n\n\n<p>Si non, vous avez ici le code du script<\/p>\n\n\n<div class='stb-container stb-style-grey stb-caption-box stb-collapsed'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAAD41JREFUeNrsmnl0lOW9xz\/v7PtkliyTsGUhCQQCYYeyirSCQLXttcqil0Vse9uqrUvrbattbW0PiqJXa61el1YxgAQwyL6VsoNECCQhCZDNTJaZzL69M\/PeP3y5h+PBXhW8vbfH55znvGeemXne+fyW7+95f2cESZL4ZxgK\/knGlyBfgnxBQ\/UF7VsEdKTT6SJBEHoFQUjI657\/DyDmi5dafgRS385de++fNuUrm8+erZ8\/Zsyov3m9Xkem09ngcDr2BALBgqws52pAB8Su182F6yC\/pprTp3\/f3Ng0aP++A3MGDMyXIuGokF9YQDwWIycvL+X3BZTZ2Zm9CiktWSzmjvyCgVU+X6B\/YeHAe2RjJv6hIKFQeO65s+e+s\/LJlTfPmT2PaDxBVnYOfr+PPl+QRCJGPJ5Ar9OTYbOT5XCQm+tKxuMxlV6vae7fz7XZHwhYSkuLl\/8jQUZ977v3rJ8yeXp+SckQjEYT1du2sXXbNto6LhGPiYhikqQoggAqpRKLyUL5iArKR4ykfPhwFKkkOoO2tbAwf6NGo2nOzXM9+78K0tPTM2rXju3vlpUNy7U7MjFbLPz0kX9n647tpFJpJCkNgoSYEEmnkhj0OhSCmmAkQiwWJRGLkV9QyDe\/8S8MGzoEn7eP6TdMXV9UVPB7hULZrlQq3F84SDqdymptaVv\/7DNPTvnxgz9Do9bw\/Xvv5YPaWswmLXa7NTG4sKDLbLH0JGIJw\/nGhkKrxay227MIRyJEY3Eam5tparqI3+tl+owZLF6wmNxcl7\/X06uaN2\/OIovFvPELV63TZ84sX1+5dsqDD\/+CdEri17\/5LfVNzZgtZkaWFX\/44osvrlAqVUdEUSxubWl9UqczDjYZTUiSRDQWw9PrpbHpPLv37Gb3vv3s3bcfr7eP5ctWWAf2zwt4vd4pkUjYmpOT8wbwqa2sfOyxxz41RDyeKO5o63whO9tptmU4OHzkCG9WVuJwOhEEBV6fT9u\/X257hjXDf+TI0WddOf3GGY1mRTKZxBsI0enuJRSJoNeZGD6sjLy8bDo6P+TMB7U0NNYxduxYbWND48SsbKc3MzNz0xdW2S9cbLn\/pZf\/4BJQYndksmffLvRGAyqVCo1Gg88f1CxYtOCnt337G\/vycvNG6fUGkkkRUUzT0tZJd4+HhJgkGk8SCMYpKx3Bwtu\/TX5RPs2NTfzljdfIsNno6faMOHz46F+ArOseWqlUqvBcXf0tixbcSU52Nm3trTRdbMFkMiKlIZWCpJgi4AvisDsU2c4skmIcjVbP7j3bePrZ58jOyycz00lZ8WAqKsaQFkUmjJvK8ePHiEYi7Nm3h4qKUeTlDRhdVlZqBITr7pG2jo6bPjj9Qc7ad9agUqvx+XzEE3EEQYkkSUhpiMViJOJxcrJyUalVKFQCCgW8+ZfXudDSiccT4N3N1Ty16nf4A30YrCY0OgPjxkzEYjWhN1jYsXMbDruNaDSeffTo8WcB0\/X0iMrfF5jUPzePebNnk5mZRafbjUIAQSFASgLSRGMRADq73CTTKVRKJQqFwMD8fC51RQiFgqSTUTrcLdSe+YDCgiIS8RhFg0tw2DIRRRXnztXR6+lFTCZtFqsxA0heT484W1taJ7jdnaxc+ThebzdanfojCCn9kSxLEkkxDgg0NJynt7sLpaAmEU9y95Kl5Pd30flhK73uFjRaDWNHlWOz6LCa9dhtGahVSsxmI6m0RG3tafr160c8lhze0f7hPdcTJJnhsHk6uzpYtmwFWdnZ6LQaVIKSdDqFSq1AEATUKj2g5NKlVjZVV6NQgiSkGFxcxDNP\/oof\/XAp96y4m41VVUz6ykQQUlgsZjyeXmJiEqvVisFo5Oy5WkDByZPHXIJCSFy30EqlUoOamy4O7td\/EFUbNxKJhJg8ZTpWix53dwAJAa1Wj9Vmo8vdSUJMsHbd24wcWcHkyZMQRZGsrGwe\/PEDKBQK4vE4wUAQjVqHUqXkfOPZVCAQUmbYtOj1JoLBEJIEw4aNTIVD4RGAEkhds0eUSuXZcWPH\/K21tQWEFOPGTUSlUrPgjjv8v3z0kRdvmDrxeP3ZU9hsNrJy8jCYbPT2eHj66VX87cAhdFoDWq2BcFQkFImTTEoYDBY0ai3Hjx+JLF++\/Adr33rjtwohHQsFAygEBVarhTO1NcqOjjbtpymMVy2IS5cuZdOmTbjdblwuFxaLxVJz+uwDrS0tmf0HFrC28k1cLhdTpswQzWbjz5PJ5DMKIT2zob7RlZXtQhCU6HQGxJRIY3MrcVHC6bSj0elQqjQk4klaLl1kzbq32L17Z9+ihYv\/LSsrq9rn7Z3x3pZ3C4oGD+bmOXMxGSwMKsg\/63DYN\/5PMFcNrVdfffW\/r3a7nSVLlvjv\/eG9j4uJG\/\/wu5WPW8qHDqV8+Ggi4ZjZ6\/U99Oqrr952yy3z92zfsXNUliuXDJsZ0GBz2EhKCt7btosT79dgt1mJRHx0d3bQ0tKMu8vDwoUL2gA\/4NAbtAJAefkI1BoN+\/66Xcqw3xopLi6UrjnZvV6v4qmnnko1NjdLoXDYnD9gACNGjeeRnz9Ebe0pXK7cr82adeN9wWC4efLkie0N9TVYrVa0GgXRSIRkWkJr0BEKh9m\/fx9r1qxhc3U1Le1dFBSWMHPGjJcWLFggtrW1ZdTU1BQLCpg2dRqRSJRRoyYIQ4YMOQmkrxVEAagB038891yzIImrFyxcFnr5T88TDoYoKhpCJBwR5tx888MnTpwY1uXu3VReVho4feoYCgH0GjXBPg+tF5poOl9Pb68Hvc5CYWEZZUMrWLHsrrdWrXrqtcrKSpqaGsfs2LE1d\/r06YwePY6mpjpOnDjYrdVq669Vfi9DGICcqqoNqdoztWjVamNpSSmjxkzkwYfu5ZX\/fIlMZ47x0Ucfvdtut48Mh2J1Y0ePjNTVngJBIiMjA6vVit1up7CwkGHDhzMov4D+\/ftJSqXicFXVxuTiRYuNZ07X3BMORxQ\/e+Qx2lsv0d7ayl13LX3fZDLtvxYQQc4fA5AJ5ANjqrdUZ2zduunct761KHb69Cnq6mqZMnkmx44dJRqLaFavfuYr48ePHxgOR\/uGDy9NxWIhVGolao0arVaLRqNBrVYjSWm6unuEAwePrFi+fNmSwYMLHliz5s3pLzz\/MsXFJQgKgeam+qDT6Xj+mh6sBEFQyhBOGWI4MBQYNHr06PynnnyucNfu9wSVSiOEYzGOHNzLE088ydAhQ5FIc\/z4cfHd6o3K+vPNCrXWhFqtQ6VUkpY+slA6nUZMpgj6+zDopHROVqZi8Z1LmDZ1Jlu2VPHWmrd55unVb+bmuX4it5CinxdEA2QAA2SI8cAwoJ\/D4cwoKxuqmzBhkmL02Anq1c8+QUX5GObe\/HWqt2zk\/vvvp7CwCL\/Px\/unTnHw8EHON17C7\/cTi4lIpFGpFBh0BnJzMpkwYSJfnXUTKpWCw0cOY9QbOHTkIIvvXHpBCTqjyXhOpVa8otfr1\/+9c9cngehlb5QAY4FJQKkcZlpAePjhR1RlQ4fRfKFeyB9UpHi78s8gwMqVq9hctYGly+4mx+UCSSIhinR3d9Pr8YCURq\/Xk5Odg0ajRW\/Qs3\/vXwkEg2g0Wpqampnz9VtJJuL0eXqw2Wz4fQFyc7NX5+blPPRJrSPV38kRJaABjPLUXfH55B\/\/+ELM6XRITzyx0pKIx0GAufO+wWuvv8HBA3u4Y+EiHnzgPubPv4Wc3DxUKgWlJcX4fD60Gi0XLjZjMBh55eU\/MXvOPGprz9LS2szkyTORxASP\/vwntHcHGTBgILOmTyEQCN5rNptOmi2mP38WEEnWblHuBsZlS4jyesTn8\/nj8Xhq184dYiQa0d1513fMubku1le+yew589my9T2qNlUxdfoNvPDi84yqGMOAgQPYsX0by5av4DdPPM4PvvdDztU30NPrp7GxnnDEz7y5t9LefomLbV0MGFhES0szle908v17vktHh3txqaWo8mpe+STVSskAfUAn8CHQLVfgMBACuqLRaP0fX3rx2M6dO9q8np5I1Ttr49+6bQE3zZ7L\/r17WLrsu7S3t3O+oR5Xbj\/+\/MbrWK0OqjZsYHDhMN6urGJ4xUTKyysoKhyM05mFRqPBZDQzftw4vN4uxESchrozSKkU4XCkNJ1OOz9LjlyWXgdQAFQA5UAhYJdDzy8DBgCzIJBjMpmzf\/mrX7sOHTyouvHGWerSoWW8V72JcRMmEQr4aGg4z5AhQ+jp8TBowMDGi23tme7uroza0x+QYbFis5mZecNsCgryCQT9vLulmvqGOirKK5g7Zz42u2VvcUnhTVfzyCeBXFkML0vwEDnhB8mAannDgOwlCTCo1epsURT7z50339rW1qooKS4RSkqHcOr9k9K0adOFAwf2x\/r1G9BqNOrfKy4tvWPL1h3ZN06bQXNzI8FgiJk3zGLM2JGo1RqcTqfcvJCoqzuHz+ePzPrqjFt1Ou2OT5sjaVnqokCvHGohoEf2Qj7gAqwylEPOI1EUxSQgVr+7OQmoas+cEVKplABIe\/fukcLhMIDC4XCMvvOuJYq5X5vDiZOH8AdCGIxmotEQsWgIf1CBLTObFCkaG+s4deoUI0aMqNPptBc\/6xElLVs8LANcAE4Ce4Ed8vV94JIMefkU4JD3FQExlUqJslHS4XA4LRtvUCgUGltUmG91u1tpbr7E6Iqx5Lhy6PZ4qGtoI9M1kD5fmAMHDrF7zy5UKjXFJUUHN2x4p\/Gz5MjHYZXyD9AAesAsF8xsefaXPXTZO0a5+6GVp0reQ7isiEajUX377bdb9AaDsrioFHOGkcOHDmPQm5l38zzCsQDZmS6OHz+Gw5GJ290ZjEZD3\/nFo794SxTFz\/Wom5ZvnpItG5e95JHDTC9DWWQhyLgCVCuvq+SckmQ1TITD4axXXnllwn333ZdfPrKMynXr6OkL8M0pM9i4uZJeTy\/\/etcyTtW8z6KFd7KhqvL0unXrW+S9kp+3HSRdMa8Eisoe65Etrr5iauT3tJefRuXvxuVrARDzeDymdWvXOg1anbDg27fR7e6gpqaG225bxNGjx5g0cSrPrF4V3bRpY6fsUeHzhtYnVX6u2Fj42NrfM8TlG2YAo4GvARNXrVo1PJVMalrb2jSTJk0Rurs7EUWJ7du2uHfu2nkI2AjsAtzSVX705wX5JLArX0tXgfl47hlkOS\/Nzc0d0eV2Z40dNz6voCA\/c\/v27b12uz3a2Nh4GtgHnAO8H7XQJL4okGsZSvkclyELhEnOsdgV8t9zZRH8vwpytZIgXCUU+cwgX\/7z4UuQL0H++UD+awDc\/MMFLMO8WgAAAABJRU5ErkJggg==' alt='img'\/><\/div><div class='stb-caption-content'>Code du script ide_modele_invariant<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n<h2>modele IDE=group<\/h2>\n<h2>Layer=vector<\/h2>\n<h2>t=Field Layer<\/h2>\n<h2>val=Field Layer<\/h2>\n<h2>grid_size=number 50<\/h2>\n<h2>units=selection secs;mins;hours;days;weeks<\/h2>\n<h2>forecast=number 1<\/h2>\n<h2>itermax=number 100<\/h2>\n<h2>effectuer_la_validation_du_modele=boolean TRUE<\/h2>\n<h2>pas_de_temps_de_validation=number<\/h2>\n<h2>pourcentage_points_aleatoires_de_validation=number 10<\/h2>\n<h2>repertoire_resultats=optional folder<\/h2>\n<h2>nom_du_fichier= optional string<\/h2>\n<h2>Resultat_grille= output vector<\/h2>\n<h2>Resultat_observations= output vector<\/h2>\n<p>library(IDE)<br \/>\nlibrary(dplyr)<br \/>\nlibrary(\u00ab\u00a0sp\u00a0\u00bb)<br \/>\nlibrary(\u00ab\u00a0spacetime\u00a0\u00bb)<br \/>\nlibrary(\u00ab\u00a0sf\u00a0\u00bb)<br \/>\nlibrary(\u00ab\u00a0verification\u00a0\u00bb)<br \/>\nlibrary(\u00ab\u00a0scoringRules\u00a0\u00bb)<br \/>\nlibrary(\u00ab\u00a0tidyr\u00a0\u00bb)<br \/>\nlibrary(\u00ab\u00a0ggplot2\u00a0\u00bb)<br \/>\nlibrary(\u00ab\u00a0gridExtra\u00a0\u00bb)<br \/>\ndf&lt;-as.data.frame(Layer)<br \/>\ncoords&lt;-st_coordinates(Layer)<br \/>\ncrs&lt;-st_crs(Layer)$proj4string<br \/>\ndfc&lt;-cbind(df,coords)<br \/>\ndata&lt;-dplyr::select(dfc,t,all_of(val),X,Y)<\/p>\n<p>names(data)&lt;-c(\u00ab\u00a0t\u00a0\u00bb,\u00a0\u00bbcnt\u00a0\u00bb,\u00a0\u00bbX\u00a0\u00bb,\u00a0\u00bbY\u00a0\u00bb)<br \/>\ndata$cnt&lt;-as.double(data$cnt)<br \/>\ndata$X&lt;-as.double(data$X)<br \/>\ndata$Y&lt;-as.double(data$Y)<br \/>\nis.date &lt;- function(x) inherits(x, &lsquo;Date&rsquo;)<br \/>\nis.convertible.to.date &lt;- function(x) !is.na(as.Date(as.character(x),origin=\u00a0\u00bb0000-01-01&Prime;))<br \/>\nif (!sapply(data$t[1], is.date)&amp;&amp; !is.character(data$t[1])) {<br \/>\n  if (near(data$t[1], as.integer(data$t[1]))){<br \/>\n    data$t&lt;-as.Date(data$t,origin=\u00a0\u00bb0000-01-01&Prime;)<br \/>\n    trans=1<br \/>\n  }<br \/>\n}<br \/>\nif (!sapply(data$t[1], is.date)&amp;&amp; is.character(data$t[1])) {<br \/>\n  if (sapply(data$t[1], is.convertible.to.date)){<br \/>\n    data$t&lt;-as.Date(data$t)<br \/>\n    trans=2<br \/>\n  }<br \/>\n}<br \/>\nif (effectuer_la_validation_du_modele) {<br \/>\ntv&lt;-pas_de_temps_de_validation<br \/>\nt0&lt;-min(data$t)<br \/>\ntmax&lt;-max(data$t)<br \/>\nif (tv&lt;=t0) {<br \/>\n    tv&lt;-t0+1<br \/>\n    }<br \/>\nif (tv&gt;tmax) {<br \/>\ntv&lt;-tmax-1<br \/>\n}<br \/>\nif (tv==tmax &amp;&amp; forecast==0){<br \/>\nforecast=1<br \/>\n}<\/p>\n<blockquote><p>paste(\u00ab\u00a0pas de temps retenu pour validation=\u00a0\u00bb,tv)<br \/>\n}<br \/>\nmSTIDF &lt;- stConstruct(x = data, # data set<br \/>\nspace = c(\u00ab\u00a0X\u00a0\u00bb, \u00ab\u00a0Y\u00a0\u00bb), # spatial fields<br \/>\ntime = t) # time field<br \/>\nif (effectuer_la_validation_du_modele) {<\/p>\n<h1>\u00e9chantillonnage pour validation<\/h1>\n<h1>block pas de temps<\/h1>\n<p>mtot&lt;-length(mSTIDF)<br \/>\nmSTIDF$timeY &lt;- format(time(mSTIDF), \u00ab\u00a0%Y-%m-%d\u00a0\u00bb)<br \/>\nif (trans==1) {<br \/>\nvt&lt;-as.Date(tv,origin=\u00a0\u00bb0000-01-01&Prime;)<br \/>\n}else{<br \/>\nvt&lt;-as.Date(tv)<br \/>\n}<br \/>\nvalblock_idx&lt;-which(mSTIDF$timeY%in%c(as.character(vt)))<br \/>\npaste(\u00ab\u00a0Le bloc de validation du pas de temps comporte\u00a0\u00bb,length(valblock_idx),\u00a0\u00bbobservations\u00a0\u00bb)<br \/>\nobs_idx &lt;- setdiff(1:mtot, valblock_idx)<\/p>\n<h1>pourcentage d&rsquo;observations<\/h1>\n<p>pc&lt;-pourcentage_points_aleatoires_de_validation\/100<br \/>\nset.seed(1)<br \/>\nvalrandom_idx &lt;- sample(obs_idx,<br \/>\n                        pc * length(obs_idx),<br \/>\n                        replace = FALSE) %&gt;% sort()<br \/>\npaste(\u00ab\u00a0L&rsquo;echantillon aleatoire de validation comporte\u00a0\u00bb,length(valrandom_idx),\u00a0\u00bbobservations\u00a0\u00bb)<br \/>\nobs_idx &lt;- setdiff(obs_idx, valrandom_idx)<br \/>\npaste(\u00ab\u00a0Le mod\u00e8le sera calcul\u00e9 \u00e0 partir de\u00a0\u00bb,length(obs_idx),\u00a0\u00bbobservations\u00a0\u00bb)<br \/>\nobs&lt;-mSTIDF[obs_idx,]<br \/>\nblock&lt;-mSTIDF[valblock_idx,]<br \/>\nrandom&lt;-mSTIDF[valrandom_idx,]<br \/>\n}else{<br \/>\nobs&lt;-mSTIDF<br \/>\n}<br \/>\nif (units==0) {unit=\u00a0\u00bbsecs\u00a0\u00bb}<br \/>\nif (units==1) {unit=\u00a0\u00bbmins\u00a0\u00bb}<br \/>\nif (units==2) {unit=\u00a0\u00bbhours\u00a0\u00bb}<br \/>\nif (units==3) {unit=\u00a0\u00bbdays\u00a0\u00bb}<br \/>\nif (units==4) {unit=\u00a0\u00bbweeks\u00a0\u00bb}<br \/>\n\u00ab\u00a0calcul du modele IDE\u2026\u00a0\u00bb<br \/>\nIDEmodel &lt;- IDE(f = cnt ~ 1 ,<br \/>\n                data = obs,<br \/>\n                dt = as.difftime(1, units = unit),<br \/>\n                grid_size = grid_size,<br \/>\n                forecast=forecast)<br \/>\n\u00ab\u00a0Ajustement du modele\u2026\u00a0\u00bb<br \/>\nfit_results_obs &lt;- fit.IDE(IDEmodel,method=\u00a0\u00bbDEoptim\u00a0\u00bb,itermax=itermax)<br \/>\nkp&lt;-fit_results_obs$IDEmodel$get(\u00ab\u00a0k\u00a0\u00bb) %&gt;% unlist()<br \/>\n\u00ab\u00a0kernel parameters: \u00ab\u00a0<br \/>\nkp<br \/>\nco&lt;-coef(fit_results_obs$IDEmodel)<br \/>\n\u00ab\u00a0regression coefficients: \u00ab\u00a0<br \/>\ncoef(fit_results_obs$IDEmodel)<br \/>\nsigma2_eps&lt;-fit_results_obs$IDEmodel$get(\u00ab\u00a0sigma2_eps\u00a0\u00bb)<br \/>\n\u00ab\u00a0sigma2_eps :\u00a0\u00bb<br \/>\nsigma2_eps<br \/>\nabs_ev &lt;- eigen(fit_results_obs$IDEmodel$get(\u00ab\u00a0M\u00a0\u00bb))$values %&gt;%abs()<br \/>\n\u00ab\u00a0complex eigenvalues of the evolution matrix M\u00a0\u00bb<br \/>\nsummary(abs_ev)<br \/>\n\u00ab\u00a0Realisation des predictions\u2026\u00a0\u00bb<br \/>\n\u00ab\u00a0Grille complete\u00a0\u00bb<br \/>\nST_grid &lt;- predict(fit_results_obs$IDEmodel)<br \/>\nST_grid_df &lt;- ST_grid %&gt;%<br \/>\ndata.frame() %&gt;%<br \/>\nmutate(IDE_pred = ST_grid$Ypred,<br \/>\nIDE_predse = ST_grid$Ypredse,<br \/>\nIDE_predZse = sqrt(ST_grid$Ypredse^2 +<br \/>\nsigma2_eps))<br \/>\nST_grid_df$t&lt;-as.integer(format(ST_grid_df$t,\u00a0\u00bb%d\u00a0\u00bb))-1<br \/>\ncoords&lt;-dplyr::select(ST_grid_df,X,Y)<br \/>\nattr&lt;-dplyr::select(ST_grid_df,-X,-Y,-IDE_pred,-IDE_predse)<br \/>\nnames(attr)&lt;-c(\u00ab\u00a0t\u00a0\u00bb,\u00a0\u00bbVal\u00a0\u00bb,\u00a0\u00bbPredict\u00a0\u00bb,\u00a0\u00bbErreurY\u00a0\u00bb,\u00a0\u00bbErreurZ\u00a0\u00bb)<br \/>\nspdfN &lt;- SpatialPointsDataFrame(coords = coords, data = attr,proj4string=CRS(crs))<br \/>\nResultat_grille&lt;-st_as_sf(spdfN)<\/p>\n<p>\u00ab\u00a0Previsions observations\u00a0\u00bb<br \/>\npred_IDE_obs &lt;- predict(fit_results_obs$IDEmodel,<br \/>\nnewdata = obs)<\/p><\/blockquote>\n<p>obs_df &lt;- obs %&gt;%<br \/>\ndata.frame() %&gt;%<br \/>\nmutate(IDE_pred = pred_IDE_obs$Ypred,<br \/>\nIDE_predse = pred_IDE_obs$Ypredse,<br \/>\nIDE_predZse = sqrt(IDE_predse^2 +<br \/>\nsigma2_eps))<\/p>\n<p>obs_df$t&lt;-as.integer(format(obs_df$time,\u00a0\u00bb%d\u00a0\u00bb))-1<br \/>\ncoords&lt;-dplyr::select(obs_df,X,Y)<br \/>\nattr&lt;-dplyr::select(obs_df,sp.ID,t,cnt,IDE_pred,IDE_predse,IDE_predZse)<br \/>\nnames(attr)&lt;-c(\u00ab\u00a0ID\u00a0\u00bb,\u00a0\u00bbt\u00a0\u00bb,\u00a0\u00bbVal\u00a0\u00bb,\u00a0\u00bbPredict\u00a0\u00bb,\u00a0\u00bbErreurY\u00a0\u00bb,\u00a0\u00bbErreurZ\u00a0\u00bb)<br \/>\nattr$t&lt;-as.integer(attr$t)<br \/>\nspdfN &lt;- SpatialPointsDataFrame(coords = coords, data = attr,proj4string=CRS(crs))<br \/>\nResultat_observations&lt;-st_as_sf(spdfN)<br \/>\nif (effectuer_la_validation_du_modele) {<br \/>\nif (repertoire_resultats==\u00a0\u00bb) {<br \/>\nrepertoire_resultats=(paste(path.expand(&lsquo;~&rsquo;),\u00a0\u00bb\\Documents\u00a0\u00bb,sep=\u00a0\u00bb\u00a0\u00bb))<br \/>\n}<\/p>\n<blockquote><p>\u00ab\u00a0Predictions des donnees de validation\u00a0\u00bb<\/p>\n<h1>pr\u00e9dictions pour block pas de temps<\/h1>\n<p>pred_IDE_block &lt;- predict(fit_results_obs$IDEmodel,<br \/>\n                          newdata = block)<br \/>\nblock_df &lt;- block %&gt;%<br \/>\ndata.frame() %&gt;%<br \/>\nmutate(IDE_pred = pred_IDE_block$Ypred,<br \/>\nIDE_predse = pred_IDE_block$Ypredse,<br \/>\nIDE_predZse = sqrt(IDE_predse^2 +<br \/>\nsigma2_eps))<br \/>\nblock_df$t&lt;-as.integer(format(block_df$time,\u00a0\u00bb%d\u00a0\u00bb))-1<br \/>\ncoords&lt;-dplyr::select(block_df,X,Y)<br \/>\nattr&lt;-dplyr::select(block_df,sp.ID,t,cnt,IDE_pred,IDE_predse,IDE_predZse)<br \/>\nnames(attr)&lt;-c(\u00ab\u00a0ID\u00a0\u00bb,\u00a0\u00bbt\u00a0\u00bb,\u00a0\u00bbVal\u00a0\u00bb,\u00a0\u00bbPredict\u00a0\u00bb,\u00a0\u00bbErreurY\u00a0\u00bb,\u00a0\u00bbErreurZ\u00a0\u00bb)<br \/>\nattr$t&lt;-as.integer(attr$t)<br \/>\nspdfN &lt;- SpatialPointsDataFrame(coords = coords, data = attr,proj4string=CRS(crs))<br \/>\nsfn&lt;-st_as_sf(spdfN)<br \/>\nnomfic&lt;-paste(repertoire_resultats,\u00a0\u00bb\/\u00a0\u00bb,nom_du_fichier,\u00a0\u00bb_block.shp\u00a0\u00bb,sep=\u00a0\u00bb\u00a0\u00bb)<br \/>\nst_write(sfn, nomfic, driver=\u00a0\u00bbESRI <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/frshapefile-vs-geopackage-quel-format-choisir\/\">Shapefile<\/a>\u00a0\u00bb,append=FALSE)<\/p>\n<h1>pr\u00e9dictions pour pourcentage \u00e9chantillons<\/h1>\n<p>pred_IDE_random &lt;- predict(fit_results_obs$IDEmodel,<br \/>\n                           newdata = random)<br \/>\nalea_df &lt;- random %&gt;%<br \/>\ndata.frame() %&gt;%<br \/>\nmutate(IDE_pred = pred_IDE_random$Ypred,<br \/>\nIDE_predse = pred_IDE_random$Ypredse,<br \/>\nIDE_predZse = sqrt(IDE_predse^2 +<br \/>\nsigma2_eps))<br \/>\nalea_df$t&lt;-as.integer(format(alea_df$time,\u00a0\u00bb%d\u00a0\u00bb))-1<br \/>\ncoords&lt;-dplyr::select(alea_df,X,Y)<br \/>\nattr&lt;-dplyr::select(alea_df,sp.ID,t,cnt,IDE_pred,IDE_predse,IDE_predZse)<br \/>\nnames(attr)&lt;-c(\u00ab\u00a0ID\u00a0\u00bb,\u00a0\u00bbt\u00a0\u00bb,\u00a0\u00bbVal\u00a0\u00bb,\u00a0\u00bbPredict\u00a0\u00bb,\u00a0\u00bbErreurY\u00a0\u00bb,\u00a0\u00bbErreurZ\u00a0\u00bb)<br \/>\nattr$t&lt;-as.integer(attr$t)<br \/>\nspdfN &lt;- SpatialPointsDataFrame(coords = coords, data = attr,proj4string=CRS(crs))<br \/>\nsfn&lt;-st_as_sf(spdfN)<br \/>\nnomfic&lt;-paste(repertoire_resultats,\u00a0\u00bb\/\u00a0\u00bb,nom_du_fichier,\u00a0\u00bb_alea.shp\u00a0\u00bb,sep=\u00a0\u00bb\u00a0\u00bb)<br \/>\nst_write(sfn, nomfic, driver=\u00a0\u00bbESRI Shapefile\u00a0\u00bb,append=FALSE)<br \/>\npaste(\u00ab\u00a0Les graphiques sont dans le repertoire\u00a0\u00bb,repertoire_resultats)<\/p><\/blockquote>\n<p>setwd(repertoire_resultats)<br \/>\npdf(\u00ab\u00a0Rplots.pdf\u00a0\u00bb)<br \/>\nc1&lt;-cor(block_df$cnt,block_df$IDE_pred, method=\u00a0\u00bbpearson\u00a0\u00bb)<br \/>\ntitre&lt;-paste(\u00ab\u00a0Bloc-Predictions vs observations. Correlation=\u00a0\u00bb,c1 )<br \/>\np1&lt;-ggplot(block_df,aes(cnt, IDE_pred)) +<br \/>\n  ggtitle(titre) + geom_point() +<br \/>\n  stat_smooth(method=\u00a0\u00bblm\u00a0\u00bb, se=FALSE)<br \/>\nplot(p1)<br \/>\nc2&lt;-cor(alea_df$cnt,alea_df$IDE_pred, method=\u00a0\u00bbpearson\u00a0\u00bb)<br \/>\ntitre&lt;-paste(\u00ab\u00a0Aleatoire-Predictions vs observations. Correlation=\u00a0\u00bb,c2 )<br \/>\np2&lt;-ggplot(alea_df,aes(cnt, IDE_pred)) +<br \/>\n  ggtitle(titre) + geom_point() +<br \/>\n  stat_smooth(method=\u00a0\u00bblm\u00a0\u00bb, se=FALSE)<br \/>\nplot(p2)<br \/>\nBias &lt;- function(x,y) mean(x &#8211; y) # x: val. obs.<br \/>\nPCV &lt;- function(x,y) mean((x &#8211; y)^2) # y: predictions<br \/>\nSCV &lt;- function(x,y,v) mean((x &#8211; y)^2 \/ v) # v: pred. variances<br \/>\nCRPS &lt;- function(x, y, s) verification::crps(x, cbind(y, s))$CRPS<br \/>\nDiagblock &lt;- block_df %&gt;% summarise(<br \/>\nBias_bloc = Bias(IDE_pred, cnt),<br \/>\nPCV_bloc = PCV(IDE_pred, cnt),<br \/>\nSCV_bloc = SCV(IDE_pred, cnt, IDE_predZse^2),<br \/>\nCRPS_bloc = CRPS(cnt, IDE_pred, IDE_predZse)<br \/>\n)<br \/>\nDiagrandom &lt;- alea_df %&gt;% summarise(<br \/>\nBias_alea = Bias(IDE_pred, cnt),<br \/>\nPCV_alea = PCV(IDE_pred, cnt),<br \/>\nSCV_alea = SCV(IDE_pred, cnt, IDE_predZse^2),<br \/>\nCRPS_alea = CRPS(cnt, IDE_pred, IDE_predZse)<br \/>\n)<\/p>\n<blockquote><p>\u00ab\u00a0Diagnostics de la validation par bloc temporel\u00a0\u00bb<br \/>\nDiagblock<br \/>\n\u00ab\u00a0Diagnostics de la validation par echantillonnage aleatoire\u00a0\u00bb<br \/>\nDiagrandom<br \/>\nnval&lt;-length(block)<br \/>\npred_IDE_block &lt;- predict(fit_results_obs$IDEmodel,<br \/>\n            newdata = block,<br \/>\n            covariances = TRUE)<br \/>\nVeps &lt;- diag(rep(sigma2_eps, nval))<br \/>\nL_IDE &lt;- t(chol(pred_IDE_block$Cov + Veps))<br \/>\nIntIDE &lt;- coef(fit_results_obs$IDEmodel)<br \/>\nnsim &lt;- 100<br \/>\nE &lt;- matrix(rnorm(nval*nsim), nval, nsim)<br \/>\nSims_IDE &lt;- IntIDE + pred_IDE_block$newdata$Ypred + L_IDE %*% E<br \/>\nes1&lt;-es_sample(block$cnt, dat = as.matrix(Sims_IDE))<br \/>\npaste(\u00ab\u00a0Valeur de es_sample bloc=\u00a0\u00bb,es1)<br \/>\ndistances &lt;- block %&gt;%<br \/>\ncoordinates() %&gt;%<br \/>\ndist() %&gt;%<br \/>\nas.matrix()<br \/>\nweights &lt;- 0.5^distances<br \/>\nvs1&lt;-vs_sample(block$cnt, dat = as.matrix(Sims_IDE),<br \/>\nw = weights, p = 1)<br \/>\npaste(\u00ab\u00a0Valeur de vs_sample bloc=\u00a0\u00bb,vs1)<\/p><\/blockquote>\n<p>nval&lt;-length(random)<br \/>\npred_IDE_random &lt;- predict(fit_results_obs$IDEmodel,<br \/>\nnewdata = random,<br \/>\ncovariances = TRUE)<br \/>\nVeps &lt;- diag(rep(sigma2_eps, nval))<br \/>\nL_IDE &lt;- t(chol(pred_IDE_random$Cov + Veps))<br \/>\nIntIDE &lt;- coef(fit_results_obs$IDEmodel)<br \/>\nE &lt;- matrix(rnorm(nval<em>nsim), nval, nsim)<br \/>\nSims_IDE &lt;- IntIDE + pred_IDE_random$newdata$Ypred + L_IDE %<\/em>% E<br \/>\nes2&lt;-es_sample(random$cnt, dat = as.matrix(Sims_IDE))<\/p>\n<blockquote><p>paste(\u00ab\u00a0Valeur de es_sample al\u00e9a=\u00a0\u00bb,es2)<br \/>\ndistances &lt;- random %&gt;%<br \/>\ncoordinates() %&gt;%<br \/>\ndist() %&gt;%<br \/>\nas.matrix()<br \/>\nweights &lt;- 0.5^distances<br \/>\nvs2&lt;-vs_sample(random$cnt, dat = as.matrix(Sims_IDE),<br \/>\n          w = weights, p = 1)<br \/>\npaste(\u00ab\u00a0Valeur de vs_sample al\u00e9a=\u00a0\u00bb,vs2)<br \/>\nloglikIDE &lt;- -fit_results_obs$IDEmodel$negloglik()<br \/>\npIDE &lt;- 7<br \/>\nm&lt;-length(obs)<br \/>\nCriteria &lt;- data.frame(AIC = c(0), BIC = c(0),<br \/>\n                       row.names = c( nom_du_fichier))<br \/>\naic&lt;- -2*loglikIDE + 2*pIDE<br \/>\nCriteria[nom_du_fichier, \u00ab\u00a0AIC\u00a0\u00bb] &lt;- aic<br \/>\nbic&lt;- -2*loglikIDE + pIDE*log(m)<br \/>\nCriteria[nom_du_fichier, \u00ab\u00a0BIC\u00a0\u00bb] &lt;- bic<br \/>\nCriteria<br \/>\nplot.new()<br \/>\ngrid.table(Criteria)<br \/>\nBias_bloc = Bias(block_df$IDE_pred, block_df$cnt)<br \/>\nPCV_bloc = PCV(block_df$IDE_pred, block_df$cnt)<br \/>\nSCV_bloc = SCV(block_df$IDE_pred, block_df$cnt, block_df$IDE_predZse^2)<br \/>\nCRPS_bloc = CRPS(block_df$cnt, block_df$IDE_pred, block_df$IDE_predZse)<br \/>\nBias_alea = Bias(alea_df$IDE_pred, alea_df$cnt)<br \/>\nPCV_alea = PCV(alea_df$IDE_pred, alea_df$cnt)<br \/>\nSCV_alea = SCV(alea_df$IDE_pred, alea_df$cnt, alea_df$IDE_predZse^2)<br \/>\nCRPS_alea = CRPS(alea_df$cnt, alea_df$IDE_pred, alea_df$IDE_predZse)<br \/>\nresume &lt;- matrix(c(\u00ab\u00a0Correlation\u00a0\u00bb,c1,c2,\u00a0\u00bbBiais\u00a0\u00bb,Bias_bloc,Bias_alea,\u00a0\u00bbPCV\u00a0\u00bb,PCV_bloc,PCV_alea,\u00a0\u00bbSCV\u00a0\u00bb,SCV_bloc,SCV_alea,\u00a0\u00bbCRPS\u00a0\u00bb,CRPS_bloc,CRPS_alea,\u00a0\u00bbES\u00a0\u00bb,es1,es2,\u00a0\u00bbVS\u00a0\u00bb,vs1,vs2),ncol=3,byrow=TRUE)<br \/>\ncolnames(resume) &lt;- c(\u00ab\u00a0Score\u00a0\u00bb,\u00a0\u00bbBloc t\u00a0\u00bb,\u00a0\u00bbAleatoire\u00a0\u00bb)<br \/>\nresume &lt;- as.table(resume)<br \/>\nresume<br \/>\nplot.new()<br \/>\ngrid.table(resume,rows=NULL)<br \/>\ndev.off()<br \/>\n}else{<br \/>\npred_IDE_obs &lt;- predict(fit_results_obs$IDEmodel,<br \/>\n                          newdata = obs)<br \/>\nobs_df &lt;- obs %&gt;%<br \/>\ndata.frame() %&gt;%<br \/>\nmutate(IDE_pred = pred_IDE_obs$Ypred,<br \/>\nIDE_predse = pred_IDE_obs$Ypredse,<br \/>\nIDE_predZse = sqrt(IDE_predse^2 +<br \/>\nsigma2_eps))<br \/>\nobs_df$t&lt;-as.integer(format(obs_df$time,\u00a0\u00bb%d\u00a0\u00bb))-1<br \/>\ncoords&lt;-dplyr::select(obs_df,X,Y)<br \/>\nattr&lt;-dplyr::select(obs_df,sp.ID,t,cnt,IDE_pred,IDE_predse,IDE_predZse)<br \/>\nnames(attr)&lt;-c(\u00ab\u00a0ID\u00a0\u00bb,\u00a0\u00bbt\u00a0\u00bb,\u00a0\u00bbVal\u00a0\u00bb,\u00a0\u00bbPredict\u00a0\u00bb,\u00a0\u00bbErreurY\u00a0\u00bb,\u00a0\u00bbErreurZ\u00a0\u00bb)<br \/>\nattr$t&lt;-as.integer(attr$t)<br \/>\nspdfN &lt;- SpatialPointsDataFrame(coords = coords, data = attr,proj4string=CRS(crs))<br \/>\nsfn&lt;-st_as_sf(spdfN)<br \/>\n} <\/div><\/div><\/blockquote>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/06\/ideQgis_v1-4.zip\">ideQgis_v1-4<\/a><a href=\"https:\/\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/06\/ideQgis_v1-4.zip\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<p>(<a href=\"https:\/\/miniurl.be\/r-3mgn\">Voir les diff\u00e9rentes versions<\/a> )<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Les donn\u00e9es<\/h3>\n\n\n\n<p>Les donn\u00e9es sont extraites des D\u00e9nombrements du Relev\u00e9 des oiseaux nicheurs (BBS). Ces donn\u00e9es proviennent du Relev\u00e9 des oiseaux nicheurs de l\u2019Am\u00e9rique du Nord.<br>Nous consid\u00e9rons en particulier les d\u00e9nombrements annuels du troglodyte de Caroline (Thryothorus ludovicianus) pour la p\u00e9riode de 1967 \u00e0 2014. L\u2019unit\u00e9 d\u2019\u00e9chantillonnage du BBS est un parcours routier d\u2019environ 39,2 km. Dans chaque unit\u00e9 d\u2019\u00e9chantillonnage, les observateurs b\u00e9n\u00e9voles font 50 arr\u00eats et comptent les oiseaux pendant une p\u00e9riode de 3 minutes lorsqu\u2019ils ex\u00e9cutent leurs itin\u00e9raires (habituellement en juin). Il y a plus de 4000 routes dans l\u2019enqu\u00eate nord-am\u00e9ricaine, mais toutes ne sont pas disponibles chaque ann\u00e9e. Aux fins des analyses pr\u00e9sent\u00e9es ici, nous consid\u00e9rons que les d\u00e9nombrements des parcours totaux se produisent chaque ann\u00e9e (pendant la saison de reproduction) et d\u00e9finissons l\u2019emplacement spatial de chaque parcours comme \u00e9tant le centro\u00efde de la route. Ainsi, nous consid\u00e9rons que les donn\u00e9es sont discr\u00e8tes dans le temps, g\u00e9ostatistiques et irr\u00e9guli\u00e8res dans l\u2019espace, et non gaussiennes dans le sens qu\u2019elles sont des comptages.<\/p>\n\n\n\n<p>Copiez les fichiers shapefile dans un r\u00e9pertoire de donn\u00e9es et chargez la couche dans QGis.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"343\" data-attachment-id=\"9245\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?fit=2560%2C1374&amp;ssl=1\" data-orig-size=\"2560,1374\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?fit=640%2C343&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2.jpg?resize=640%2C343&#038;ssl=1\" alt=\"\" class=\"wp-image-9245\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?resize=1024%2C549&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?resize=300%2C161&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?resize=768%2C412&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?resize=1536%2C824&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?resize=2048%2C1099&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide2-scaled.jpg?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Les scripts<\/h3>\n\n\n\n<p>Comme leur nom l&rsquo;indique, il y a deux types de mod\u00e8les IDE:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>ceux que l&rsquo;on consid\u00e8re avec un noyau invariant dans l&rsquo;espace : le script ide_modele_invariant.rsx<\/li><li>ceux que l&rsquo;on consid\u00e8re avec un noyau qui varie dans l&rsquo;espace: le script ide_modele_variant.rsx<\/li><\/ul>\n\n\n\n<p>Nous verrons \u00e0 quoi cela correspond un peu plus bas.<\/p>\n\n\n\n<p>Ces scripts sont \u00e0 copier, avec leur fichier d&rsquo;aide, dans le r\u00e9pertoire C:\\Users\\xxxxx\\AppData\\Roaming\\QGIS\\QGIS3\\profiles\\default\\processing\\rscripts<\/p>\n\n\n\n<p>Si QGis est configur\u00e9 pour les scripts R vous trouverez ces deux scripts dans la fen\u00eatre Traitements-&gt;R-&gt;modele IDE<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide1-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"585\" data-attachment-id=\"9256\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide1-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide1-1.png?fit=449%2C585&amp;ssl=1\" data-orig-size=\"449,585\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide1-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide1-1.png?fit=449%2C585&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide1-1.png?resize=449%2C585&#038;ssl=1\" alt=\"\" class=\"wp-image-9256\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide1-1.png?w=449&amp;ssl=1 449w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide1-1.png?resize=230%2C300&amp;ssl=1 230w\" sizes=\"auto, (max-width: 449px) 100vw, 449px\" \/><\/a><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Les \u00e9l\u00e9ments du mod\u00e8le IDE<\/h1>\n\n\n\n<p>Le mod\u00e8le IDE est d\u00e9fini par <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"87\" data-attachment-id=\"9249\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide4\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?fit=589%2C87&amp;ssl=1\" data-orig-size=\"589,87\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?fit=589%2C87&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?resize=589%2C87&#038;ssl=1\" alt=\"\" class=\"wp-image-9249\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?w=589&amp;ssl=1 589w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?resize=300%2C44&amp;ssl=1 300w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/a><\/figure>\n\n\n\n<p>On va essayer de traduire ceci en langage courant:<\/p>\n\n\n\n<p>La valeur du processus qui nous int\u00e9resse (<strong><em>Y<\/em><\/strong>) \u00e0 un endroit donn\u00e9 <strong><em>s<\/em><\/strong> et \u00e0 un temps donn\u00e9 <strong><em>t<\/em><\/strong> r\u00e9sulte de trois \u00e9l\u00e9ments:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>la valeur prise par ce qu&rsquo;on appellera le noyau du mod\u00e8le (m(s,x;\u03b8p))<\/li><li>la valeur du processus au moment pr\u00e9c\u00e9dent<strong><em> t-1<\/em><\/strong><\/li><li>une \u00ab\u00a0erreur\u00a0\u00bb ou \u00ab\u00a0bruit\u00a0\u00bb ind\u00e9pendant du processus \u03b7t<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"548\" data-attachment-id=\"9251\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide5\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5.jpg?fit=1173%2C1005&amp;ssl=1\" data-orig-size=\"1173,1005\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5.jpg?fit=640%2C548&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5.jpg?resize=640%2C548&#038;ssl=1\" alt=\"\" class=\"wp-image-9251\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5.jpg?resize=1024%2C877&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5.jpg?resize=300%2C257&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5.jpg?resize=768%2C658&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5.jpg?w=1173&amp;ssl=1 1173w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Observations ou valeurs du processus?<\/h2>\n\n\n\n<p>Tout d&rsquo;abord, sachez que certaines notations ont leur importance. Ici on travaille pour obtenir Yt. Dans la litt\u00e9rature vous verrez deux types de notation: Yt ou Zt. Ceci  a son importance. Quand on parle de Z on parle de vos donn\u00e9es observ\u00e9es. Quand on parle de Y on parle du processus sous-jacent. La diff\u00e9rence vient du fait que ce que l&rsquo;on observe (Z) est toujours une image biais\u00e9e du processus sous-jacent (Y), ne serait-ce que par les erreurs de mesure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le noyau du mod\u00e8le<\/h2>\n\n\n\n<p>Dans le noyau du mod\u00e8le m(s, x; \u03b8p) la valeur m que l&rsquo;on va appliquer d\u00e9pend de trois \u00e9l\u00e9ments:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>le plus simple est <strong><em>s<\/em><\/strong>, c&rsquo;est \u00e0 dire la localisation dans l&rsquo;espace du point qui nous int\u00e9resse<\/li><li>puis, nous avons \u03b8p qui correspond \u00e0 quatre param\u00e8tres qui  d\u00e9terminent la redistribution du poids qui sera affect\u00e9 \u00e0 la valeur de Yt-1. Pour simplifier, si on a un processus avec une croissance de 10% entre t-1 et t, \u03b8p aura une valeur de 1.1 (ceci est une grosssse simplification)<\/li><li>le troisi\u00e8me \u00e9l\u00e9ment est x, la variation spatiale, et il va falloir s&rsquo;arr\u00eater un peu pour bien le comprendre.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">La variation spatiale<\/h2>\n\n\n\n<p>Reprenons les poids \u03b8p de notre exemple. Si partout dans notre espace de travail la croissance du processus Y est de 10%, on peut dire que notre noyau est spatialement invariant. Mais ceci peut ne pas \u00eatre le cas. Le pourcentage de diff\u00e9rence entre les deux pas de temps peut r\u00e9sulter d&rsquo;une fonction d\u00e9pendante de l&rsquo;endroit o\u00f9 l&rsquo;on se trouve (s). Dans ce cas, la valeur du noyau d\u00e9pendra toujours des param\u00e8tres \u03b8p, mais aussi de la valeur de la fonction x \u00e0 l&rsquo;endroit donn\u00e9 (s). On dira alors que notre noyau est variant.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Les param\u00e8tres \u03b8p<\/h2>\n\n\n\n<p>Le noyau du mod\u00e8le IDE peut \u00eatre associ\u00e9e \u00e0 une courbe gaussienne. Le premier des quatre param\u00e8tres theta_1 correspond \u00e0 la hauteur (amplitude) de la courbe en cloche. Le deuxi\u00e8me, theta 2, correspond \u00e0 l&rsquo;aperture de la cloche la rendant plus pointue ou plus \u00e9vas\u00e9e. Les deux autres param\u00e8tres, theta 3 et theta 4 correspondent \u00e0 un d\u00e9calage sur la dimension des x et des y, respectivement, en fonction de l&rsquo;endroit o\u00f9 l&rsquo;on se trouve.<\/p>\n\n\n\n<p>Le moment est venu de se jeter \u00e0 l&rsquo;eau. On va voir deux types de simulation. La premi\u00e8re en consid\u00e9rant que le noyau du mod\u00e8le ne varie pas spatialement, la deuxi\u00e8me en consid\u00e9rant que le noyau d\u00e9pend de l&rsquo;endroit o\u00f9 l&rsquo;on se trouve et donc qu&rsquo;il varie spatialement.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Exemple de simulation avec un noyau spatialement invariant<\/h1>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"541\" data-attachment-id=\"9247\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide3\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?fit=2291%2C1935&amp;ssl=1\" data-orig-size=\"2291,1935\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?fit=640%2C541&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?resize=640%2C541&#038;ssl=1\" alt=\"\" class=\"wp-image-9247\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?resize=1024%2C865&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?resize=300%2C253&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?resize=768%2C649&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?resize=1536%2C1297&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?resize=2048%2C1730&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide3.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Le mod\u00e8le d\u2019\u00e9quation int\u00e9gro-diff\u00e9rentielle  (IDE) est : (1)construit \u00e0 l\u2019aide de la fonction \u00ab IDE \u00bb, (2) ajust\u00e9 \u00e0 l\u2019aide de la fonction \u00ab IDE.fit \u00bb et (3)utilis\u00e9 pour la pr\u00e9vision \u00e0 l\u2019aide de la fonction \u00ab predict \u00bb.<\/p><\/blockquote><\/figure>\n\n\n\n<p>Si vous ouvrez dans un \u00e9diteur de texte le script ide_modele_invariant.rsx vous verrez ces trois \u00e9tapes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Construction du mod\u00e8le IDE<\/h2>\n\n\n\n<p>Tout d\u2019abord on d\u00e9finit les caract\u00e9ristiques du mod\u00e8le. Dans notre cas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IDEmodel &lt;- IDE(f = cnt ~  1  ,\n                data = mSTIDF,\n                dt = as.difftime(1, units = unit),\n                grid_size = grid_size,\n                forecast=forecast)<\/code><\/pre>\n\n\n\n<p>En plus de la \u00ab\u00a0formule\u00a0\u00bb (f=)  qui d\u00e9termine quels sont les colonnes de donn\u00e9es \u00e0 mod\u00e9liser (un attribut de la table, plus les coordonn\u00e9es de chaque point), la couche de donn\u00e9es (data=) mise \u00e0 un format R de donn\u00e9es spatio-temporelles (STIDF), nous avons \u00e0 rentrer trois param\u00e8tres.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le pas de temps dt et les unit\u00e9s<\/h2>\n\n\n\n<p>Contrairement \u00e0 ce que l&rsquo;on peut penser, ce n&rsquo;est pas si simple d&rsquo;indiquer le pas de temps de nos donn\u00e9es!!!<\/p>\n\n\n\n<p>Les outils de mod\u00e9lisation n\u00e9cessitent des pas de temps de m\u00eame longueur. Jusque-l\u00e0, tout para\u00eet simple. Sauf que si nos donn\u00e9es correspondent \u00e0 des observations mensuelles, le probl\u00e8me est que les mois n&rsquo;ont pas la m\u00eame longueur&#8230; de 28 \u00e0 31 jours. Et si nos donn\u00e9es sont annuelles, les ann\u00e9es n&rsquo;ont pas la m\u00eame longueur (bissextiles ou pas). Ceci fait que les unit\u00e9s de pas de temps acceptables pour les mod\u00e8les spatio-temporels vont de la seconde \u00e0 la semaine, pas plus.<\/p>\n\n\n\n<p>On est alors oblig\u00e9s de biaiser un peu pour traiter des donn\u00e9es mensuelles ou annuelles.<\/p>\n\n\n\n<p><strong><span style=\"text-decoration: underline;\">Le moyen le plus simple pour ne pas avoir \u00e0 jongler avec nos donn\u00e9es est de calculer un num\u00e9ro d&rsquo;ordre de nos observations est d&rsquo;utiliser cet ordre comme param\u00e8tre temporel. <\/span><\/strong><\/p>\n\n\n\n<p>Supposons que nous avons de donn\u00e9es annuelles entre 2001 et 2019. On calcule un champ avec une valeur de 1 pour 2001, 2 pour 2002, etc. Pour des mois, on fait de m\u00eame, au lieu d&rsquo;utiliser la vraie date, on \u00e9tablit une \u00e9chelle de 1 \u00e0 X correspondante.<\/p>\n\n\n\n<p><strong><span style=\"text-decoration: underline;\">Dans le cas o\u00f9 vous utiliserez le num\u00e9ro d&rsquo;ordre, il faut d\u00e9finir les unit\u00e9s avec la valeur \u00ab\u00a0days\u00a0\u00bb<\/span><\/strong>.<\/p>\n\n\n\n<p>Il n&rsquo;est pas possible de pr\u00e9voir tous les formats possibles de date et d&rsquo;heure. Si vous rencontrez des probl\u00e8mes, calculez un num\u00e9ro d&rsquo;ordre et d\u00e9finissez les unit\u00e9s comme \u00e9tant des jours. Ceci ne modifie en rien les r\u00e9sultats.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La grille de mod\u00e9lisation<\/h2>\n\n\n\n<p>Nos donn\u00e9es sont sous forme de points d\u2019\u00e9chantillonnage r\u00e9partis sur une zone d&rsquo;\u00e9tude. Pour la mise en place du mod\u00e8le nous d\u00e9finissons un maillage carr\u00e9 sur lequel on \u00e9valuera les param\u00e8tres du mod\u00e8le et ensuite on calculera les valeurs de Y. Le param\u00e8tre grid_size d\u00e9termine le nombre de mailles de la grille. N&rsquo;oubliez pas que le nombre de cellules d\u00e9terminera le temps de traitement&#8230; et il est d\u00e9j\u00e0 tr\u00e8s long sans faire appel \u00e0 des grilles trop grandes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Les pr\u00e9visions<\/h2>\n\n\n\n<p>Le mod\u00e8le que nous mettons en place va nous permettre de calculer les pr\u00e9dictions pour chaque cellule de la grille et chaque pas de temps pr\u00e9sent dans nos donn\u00e9es. Mais il peut nous permettre de pr\u00e9voir les valeurs pour les prochains pas de temps dans le futur. La valeur du param\u00e8tre <strong><em>forecast <\/em><\/strong>indique le nombre de pas de temps, \u00e0 partir du dernier de nos observations, \u00e0 calculer. Si nos donn\u00e9es sont annuelles et vont de 1994 \u00e0 2010, forecast= 2 fera que le mod\u00e8le calcule les donn\u00e9es des ann\u00e9es 2011 et 2012.<\/p>\n\n\n\n<p>Dans ces scripts nous n&rsquo;avons pas impl\u00e9ment\u00e9, pour ne pas surcharger inutilement l&rsquo;interface, un autre param\u00e8tre possible : hindcast. Celui-ci ag\u00eet comme forecast mais pour la p\u00e9riode ant\u00e9rieure \u00e0 nos donn\u00e9es. Si on ajoute dans le code, apr\u00e8s forecast  \u00ab\u00a0hindcast=2\u00a0\u00bb, le mod\u00e8le calculera les donn\u00e9es pour les deux ann\u00e9es ant\u00e9rieures \u00e0 nos donn\u00e9es, 1992 et 1993.<\/p>\n\n\n\n<p>Si vous souhaitez utiliser l&rsquo;option hindcast, il suffit de modifier le code du script avec la valeur que vous souhaitez.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IDEmodel &lt;- IDE(f = cnt ~  1  ,\n                data = mSTIDF,\n                dt = as.difftime(1, units = unit),\n                grid_size = grid_size,\n                forecast=forecast,hindcast=1)<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ajustement du mod\u00e8le IDE<\/h2>\n\n\n\n<p>Maintenant que nous avons d\u00e9fini quels param\u00e8tres on veut utiliser dans notre mod\u00e8le, on \u00ab\u00a0ajuste\u00a0\u00bb le mod\u00e8le \u00e0 partir des observations. Ceci est fait avec la commande fit.IDE<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fit_results &lt;- fit.IDE(IDEmodel,method=\"DEoptim\",itermax=itermax)<\/code><\/pre>\n\n\n\n<p>Le mod\u00e8le IDE calcul\u00e9  de l\u2019objet, ici l&rsquo;objet fit_results,  contient les estimations initiales des param\u00e8tres, ainsi que les pr\u00e9dictions pour tous les pas de temps des estimations des param\u00e8tres. Les param\u00e8tres dans ce cas sont la variance de l&rsquo;erreur de mesure, la variance de la perturbation al\u00e9atoire \u03b7t(s)(dont la structure de covariance est fixe), les param\u00e8tres du noyau, et les coefficients de r\u00e9gression \u03b2.<\/p>\n\n\n\n<p>Nous parlons bien des valeurs des diff\u00e9rents param\u00e8tres du mod\u00e8le pour chaque pas de temps et non des valeurs du processus \u00e0 chaque maille de la grille et chaque pas de temps.<\/p>\n\n\n\n<p>Ce calcul-l\u00e0 sera fait dans l&rsquo;\u00e9tape suivante.<\/p>\n\n\n\n<p>Dans cette \u00e9tape, le seul param\u00e8tre sur lequel vous pouvez intervenir est le nombre d&rsquo;it\u00e9rations pour l&rsquo;ajustement du mod\u00e8le. Il n&rsquo;y a pas de recette, tout d\u00e9pend de la complexit\u00e9 du mod\u00e8le et des observations disponibles.<\/p>\n\n\n\n<p>Par contre, il faut savoir que le temps de calcul de cette \u00e9tape est tr\u00e8s,tr\u00e8s long. Avec un ordinateur plut\u00f4t puissant, pour les donn\u00e9es d&rsquo;exemple fournies,le temps de calcul pour une centaine d&rsquo;it\u00e9rations tourne autour d&rsquo;une heure ou deux&#8230;<\/p>\n\n\n\n<p>Les r\u00e9sultats de chaque it\u00e9ration sont affich\u00e9s dans l&rsquo;onglet \u00ab\u00a0Journal\u00a0\u00bb  de l&rsquo;interface et dans la sortie console du script. Vous pourrez voir l\u00e0 \u00e0 partir de quelle it\u00e9ration on a atteint les valeurs finales, et si vous devez r\u00e9-ex\u00e9cuter le calcul, vous pouvez limiter le nombre d&rsquo;it\u00e9rations \u00e0 ce chiffre-l\u00e0.<\/p>\n\n\n\n<p>Dans le journal vous aurez aussi le d\u00e9tail des diff\u00e9rents calculs des param\u00e8tres.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Calcul des pr\u00e9dictions sur la maille d\u00e9finie<\/h2>\n\n\n\n<p>La derni\u00e8re \u00e9tape consiste \u00e0 utiliser l&rsquo;ajustement r\u00e9alis\u00e9 et pr\u00e9dire pour chaque n\u0153ud de la maille spatiale d\u00e9finie dans la premi\u00e8re \u00e9tape et pour chaque pas de temps souhait\u00e9s la valeur de ,notre processus Y.<\/p>\n\n\n\n<p>Ceci est fait avec la fonction \u00ab\u00a0predict\u00a0\u00bb<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ST_grid &lt;- predict(fit_results$IDEmodel)<\/code><\/pre>\n\n\n\n<p>Les lignes suivantes de code, apr\u00e8s celle-ci, transforment le format grid de R en une couche de points au format d\u00e9fini par l&rsquo;utilisateur dans le champ \u00ab\u00a0output\u00a0\u00bb.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Donn\u00e9es exemple<\/h1>\n\n\n\n<p>Passons \u00e0 la partie pratique, m\u00eame s&rsquo;il n&rsquo;y a pas beaucoup de manipulations et beaucoup de patience \u00e0 avoir.<\/p>\n\n\n\n<p>Chargez la couche MOcarolinawren dans QGis.<\/p>\n\n\n\n<p>Dans la bo\u00eete de traitements-&gt;R-&gt;modele IDE double cliquez sur ide modele invariant<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"427\" data-attachment-id=\"9257\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide6\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?fit=3013%2C2009&amp;ssl=1\" data-orig-size=\"3013,2009\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?fit=640%2C427&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?resize=640%2C427&#038;ssl=1\" alt=\"\" class=\"wp-image-9257\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?resize=1024%2C683&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?resize=768%2C512&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?resize=1536%2C1024&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?resize=2048%2C1366&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide6.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Dans le champ <strong><em>t<\/em><\/strong> s\u00e9lectionnez l&rsquo;attribut <strong><em>t<\/em><\/strong> qui correspond \u00e0 un num\u00e9ro d&rsquo;ordre de l&rsquo;ann\u00e9e. Ses valeurs sont comprises entre 1 et 21.<\/p>\n\n\n\n<p>Dans le champ <strong><em>val <\/em><\/strong>s\u00e9lectionnez l&rsquo;attribut <strong><em>cnt <\/em><\/strong>qui correspond aux comptages d&rsquo;oiseaux.<\/p>\n\n\n\n<p>Dans le champ grid_size, laissez la valeur par d\u00e9faut (50). On aura alors une grille en sortie de 50 x 50 points.<\/p>\n\n\n\n<p>Dans le champ <strong><em>units<\/em><\/strong>, comme nous l&rsquo;avons indiqu\u00e9 plus haut, on ne peut pas d\u00e9finir le pas de temps en ann\u00e9es. On dit alors qu&rsquo;il s&rsquo;ag\u00eet de jours (<strong><em>days<\/em><\/strong>) car le fait que tous les quatre ans il y ait un jour de diff\u00e9rence (1\/365\u00e8me de plus dans la longueur du pas) est s\u00fbrement n\u00e9gligeable.<\/p>\n\n\n\n<p>Dans le champ <strong><em>forecast<\/em><\/strong>, laissez la valeur par d\u00e9faut (1). Dans la grille de sortie on aura alors un  pas de temps suppl\u00e9mentaire, avec la valeur<strong><em> t<\/em><\/strong> \u00e0 22 qui correspondra aux pr\u00e9dictions pour l&rsquo;ann\u00e9e suivante \u00e0 la derni\u00e8re dans les observations.<\/p>\n\n\n\n<p>Si vous \u00eates impatient, r\u00e9duisez le nombre d&rsquo;it\u00e9rations par d\u00e9faut. Si non, armez vous de patience et laissez ce chiffre.<\/p>\n\n\n\n<p>D\u00e9finissez la couche en sortie, au format que vous pr\u00e9f\u00e9rez (shp, gpkg,&#8230;) et un fichier pour les sorties de la console. Ce dernier est optionnel mais il contient tous les param\u00e8tres de mod\u00e9lisation.<\/p>\n\n\n\n<p>Cliquez sur <strong><em>Ex\u00e9cuter<\/em><\/strong>&#8230; bon courage.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">R\u00e9sultats de l&rsquo;exemple<\/h1>\n\n\n\n<p>Quatre heures apr\u00e8s, nous obtenons une couche qui s&rsquo;affiche dans QGis:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"375\" data-attachment-id=\"9263\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide7\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?fit=3045%2C1783&amp;ssl=1\" data-orig-size=\"3045,1783\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?fit=640%2C375&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?resize=640%2C375&#038;ssl=1\" alt=\"\" class=\"wp-image-9263\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?resize=1024%2C600&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?resize=300%2C176&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?resize=768%2C450&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?resize=1536%2C899&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?resize=2048%2C1199&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide7.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Elle contient notre grille de pr\u00e9dictions de taille 30&#215;50.<\/p>\n\n\n\n<p>Avant de voir plus en d\u00e9tail les r\u00e9sultats, voyons quelles informations sont fournies par la sortie console du script. Vous le trouvez dans l&rsquo;onglet \u00ab\u00a0<strong>Journal<\/strong>\u00a0\u00bb de la fen\u00eatre du script, en tant que lien dans le panneau \u00ab\u00a0<strong>Visualiseur de r\u00e9sultats<\/strong>\u00a0\u00bb et, si vous avez d\u00e9fini un fichier permanent dans le champ \u00ab\u00a0<strong>R Console Output [optionnel]<\/strong>\u00ab\u00a0, dans ce fichier.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\n&#091;1] \"calcul du modele IDE...\"\n&#091;1] \"Ajustement du modele...\"\nIteration: 1 bestvalit: 1855.495069 bestmemit: 0.011295 -0.470852 1.598254 1.059066 3.813749 -0.653397\nIteration: 2 bestvalit: 1855.495069 bestmemit: 0.011295 -0.470852 1.598254 1.059066 3.813749 -0.653397\nIteration: 3 bestvalit: 1855.495069 bestmemit: 0.011295 -0.470852 1.598254 1.059066 3.813749 -0.653397\n\t\t.\n\t\t.\n\t\t.\nIteration: 99 bestvalit: 1800.983447 bestmemit: 0.052054 -0.350126 -0.459083 2.066409 3.177588 -0.728638\nIteration: 100 bestvalit: 1800.983447 bestmemit: 0.052054 -0.350126 -0.459083 2.066409 3.177588 -0.728638\n&#091;1] \"kernel parameters: \"\npar1 par2 par3 par4\n52.05424217 0.03015948 -0.45908287 2.06640855\n&#091;1] \"regression coefficients: \"\nIntercept X Y\n70.3594335 -0.3226177 -2.4435913\n&#091;1] \"sigma2_eps :\"\npar5\n23.98881\n&#091;1] \"complex eigenvalues of the evolution matrix M\"\nMin. 1st Qu. Median Mean 3rd Qu. Max.\n0.00000 0.00000 0.00301 0.18171 0.34210 0.98394\n&#091;1] \"Realisation des predictions...\"\nWarning message:\nIn abbreviate_shapefile_names(obj) :\nField names abbreviated for ESRI Shapefile driver\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Param\u00e8tres descriptifs<\/h2>\n\n\n\n<p>Les sorties kernel parameters, regression coefficients et sigma2_eps indiquent les valeurs obtenues pour l&rsquo;ajustement du mod\u00e8le. Ils n&rsquo;ont pas de signification par rapport \u00e0 la \u00ab\u00a0justesse\u00a0\u00bb de l&rsquo;ajustement, sauf \u00e0 les conna\u00eetre dans la r\u00e9alit\u00e9.  Ceci n&rsquo;est pas g\u00e9n\u00e9ralement le cas, mais on peut utiliser IDE pour tester des simulations de mod\u00e8les pour lesquelles nous fixons ces param\u00e8tres. On peut alors comparer l&rsquo;ajustement des param\u00e8tres par rapport aux valeurs fournies aux simulations.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Valeurs propres de la matrice M<\/h2>\n\n\n\n<p>Par contre, il y a une sortie qui nous permet de v\u00e9rifier que le r\u00e9sultat peut \u00eatre pris en compte et passer \u00e0 l&rsquo;\u00e9tape suivante de toute mod\u00e9lisation : la validation des r\u00e9sultats.<\/p>\n\n\n\n<p>Comme nous l&rsquo;avons vu plus haut, la formule de l&rsquo;\u00e9quation int\u00e9gro-diff\u00e9rentielle est<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"87\" data-attachment-id=\"9249\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide4\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?fit=589%2C87&amp;ssl=1\" data-orig-size=\"589,87\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?fit=589%2C87&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?resize=589%2C87&#038;ssl=1\" alt=\"\" class=\"wp-image-9249\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?w=589&amp;ssl=1 589w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide4.png?resize=300%2C44&amp;ssl=1 300w\" sizes=\"auto, (max-width: 589px) 100vw, 589px\" \/><\/a><\/figure>\n\n\n\n<p>Mais, une fois le mod\u00e8le calcul\u00e9 et ajust\u00e9, on peut l&rsquo;\u00e9crire sous la forme:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide8.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"198\" height=\"50\" data-attachment-id=\"9264\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide8\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide8.png?fit=198%2C50&amp;ssl=1\" data-orig-size=\"198,50\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide8\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide8.png?fit=198%2C50&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide8.png?resize=198%2C50&#038;ssl=1\" alt=\"\" class=\"wp-image-9264\"\/><\/a><\/figure><\/div>\n\n\n\n<p>o\u00f9 M est une matrice qu&rsquo;on peut appeler \u00ab\u00a0matrice de transition\u00a0\u00bb, de dimensions n x n (dans notre cas 50 x 50), avec les valeurs pour chaque cellule de la grille qui permettent de passer de la valeur de Y<sub>t-1<\/sub> \u00e0 Y<sub>t<\/sub>.<\/p>\n\n\n\n<p>On peut donc calculer les valeurs propres (eigenvalues) de cette matrice. Ceci permet de savoir si le mod\u00e8le calcul\u00e9 est stable ou pas.<\/p>\n\n\n\n<p>Dans notre sortie, la synth\u00e8se de ces valeurs propres appara\u00eet sous le titre \u00ab\u00a0<strong>complex eigenvalues of the evolution matrix M<\/strong>\u00ab\u00a0.<\/p>\n\n\n\n<p>Nous notons que si la valeur maximale des valeurs propres est &gt;=1 , alors le  mod\u00e8le, est instable, et Yt grandira sans limite lorsque t augmente. Inversement, si le module maximal de toutes les valeurs propres est inf\u00e9rieur \u00e0 1, alors le mod\u00e8le est stable.<\/p>\n\n\n\n<p>Dans notre exemple, la valeur maximale des valeurs propres est de 0.98394. Le mod\u00e8le peut donc \u00eatre consid\u00e9r\u00e9 comme stable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La couche r\u00e9sultat<\/h3>\n\n\n\n<p>A la fin du traitement vous aurez une couche de points contenant la grille de pr\u00e9dictions:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"356\" data-attachment-id=\"9266\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide9\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?fit=3315%2C1841&amp;ssl=1\" data-orig-size=\"3315,1841\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide9\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?fit=640%2C356&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?resize=640%2C356&#038;ssl=1\" alt=\"\" class=\"wp-image-9266\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?resize=1024%2C569&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?resize=300%2C167&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?resize=768%2C427&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?resize=1536%2C853&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?resize=2048%2C1137&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide9.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>L&rsquo;attribut t correspond au pas de temps. Vous trouverez les 21 pas originaux plus le pas 22 qui correspond aux pr\u00e9dictions du prochain pas (forecast).<\/p>\n\n\n\n<p><strong><em>Ypred <\/em><\/strong>correspond \u00e0 la valeur calcul\u00e9e par le mod\u00e8le, <strong>Ypredse<\/strong> \u00e0 la valeur de l&rsquo;erreur standard dans le domaine du  processus (Y) pour le point et le pas de temps. <strong>YpredZ<\/strong> correspond \u00e0 l&rsquo;erreur standard  dans le domaine des observations (Z) pour le point et le pas de temps.<\/p>\n\n\n\n<p>En appliquant le m\u00eame filtre sur les donn\u00e9es en entr\u00e9e et la grille en sortie sur l&rsquo;attribut <strong><em>t<\/em><\/strong>, vous pourrez voir la correspondance:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"329\" data-attachment-id=\"9267\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/modelisation-spatio-temporelle-avec-une-equation-integro-differentielle-ide-avec-qgis-et-r\/ide10\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?fit=3223%2C1655&amp;ssl=1\" data-orig-size=\"3223,1655\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ide10\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?fit=640%2C329&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?resize=640%2C329&#038;ssl=1\" alt=\"\" class=\"wp-image-9267\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?resize=1024%2C526&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?resize=300%2C154&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?resize=768%2C394&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?resize=1536%2C789&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?resize=2048%2C1052&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide10.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Dans le prochain article nous verrons l&rsquo;utilisation du deuxi\u00e8me script, avec un noyau variant spatialement.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En \u00e9cologie on se retrouve, tr\u00e8s souvent, face \u00e0 des processus qui sont li\u00e9s \u00e0 l&rsquo;espace mais aussi qui \u00e9voluent dans le temps. Nous sommes maintenant habitu\u00e9s \u00e0 l&rsquo;analyse spatiale qui est devenu \u00e0 la port\u00e9e&hellip;<\/p>\n","protected":false},"author":1,"featured_media":9297,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[62,1641],"tags":[340,1659,1658,51,1657,1627,170],"class_list":["post-9240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qgis-2","category-scripts-r","tag-ide","tag-integro-differentielle","tag-invariant","tag-modele","tag-noyau","tag-script-r","tag-spatio-temporel"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2021\/02\/ide5b.png?fit=587%2C503&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-2p2","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/9240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=9240"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/9240\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/9297"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=9240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=9240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=9240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}