Closed OumarMbath closed 1 month ago
Bonjour,
Ce que je souhaite savoir c'est s'il est possible d'avoir une couche de discontinuité spatiale qui contiendra les lignes de discontinuité sur l'ensemble de mes périodes avec une colonne période qui permettra d'identifier à quelle période appartient telle valeur de ligne de discontinuité ?
Je ne suis pas sûr de bien comprendre votre problème. Un exemple reproductible aiderait beaucoup (voir https://thinkr.fr/reprex-ou-comment-demander-de-laide-efficacement/).
Dans ce sens toujours, si possible, j'aimerai ne pas stocker toutes les lignes de discontinuité ou en tout cas ne pas les représenter tous mais établir un seuil à 10 par exemple pour ne représenter que les lignes de discontinuité ayant une valeur supérieure ou égale à 10.
La fonction discLayer()
permet d'exporter les discontinuités calculées et donc de les filtrer ensuite :
library(cartography)
#> This project is in maintenance mode.
#> Core functionalities of `cartography` can be found in `mapsf`.
#> https://riatelab.github.io/mapsf/
library(sf)
#> Linking to GEOS 3.11.1, GDAL 3.6.2, PROJ 9.1.1; sf_use_s2() is TRUE
mtq <- st_read(system.file("gpkg/mtq.gpkg", package="cartography"))
#> Reading layer `mtq' from data source
#> `/home/tim/Documents/R/4.4/cartography/gpkg/mtq.gpkg' using driver `GPKG'
#> Simple feature collection with 34 features and 7 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 690574 ymin: 1592536 xmax: 735940.2 ymax: 1645660
#> Projected CRS: WGS 84 / UTM zone 20N
# Get borders
mtq.borders <- getBorders(x = mtq)
# Median Income
choroLayer(x = mtq, var = "MED", border = "grey", lwd = 0.5,
method = 'equal', nclass = 6, legend.pos = "topleft",
legend.title.txt = "Median Income\n(in euros)" )
# Discontinuities
x <- discLayer(x = mtq.borders, df = mtq,
var = "MED", col="red4", nclass=3,
method="equal", threshold = 0.4, sizemin = 0.5,
sizemax = 10, type = "abs",legend.values.rnd = 0,
legend.title.txt = "Discontinuities\n(absolute difference)",
legend.pos = "bottomleft", add=TRUE)
x
#> Simple feature collection with 142 features and 6 fields
#> Geometry type: MULTILINESTRING
#> Dimension: XY
#> Bounding box: xmin: 692212 ymin: 1599025 xmax: 734606 ymax: 1645545
#> CRS: NA
#> First 10 features:
#> id1 id2 id MED1 MED2 geometry disc
#> 1 97201 97214 97201_97214 13487 13633 MULTILINESTRING ((703610.4 ... 146
#> 2 97201 97218 97201_97218 15134 13633 MULTILINESTRING ((699260 16... 1501
#> 3 97201 97219 97201_97219 11929 13633 MULTILINESTRING ((697653 16... 1704
#> 4 97201 97203 97201_97203 14456 13633 MULTILINESTRING ((704688.7 ... 823
#> 5 97201 97225 97201_97225 12973 13633 MULTILINESTRING ((697605.7 ... 660
#> 6 97202 97206 97202_97206 19704 14558 MULTILINESTRING ((709840.7 ... 5146
#> 7 97202 97231 97202_97231 19638 14558 MULTILINESTRING ((709294 16... 5080
#> 8 97203 97201 97203_97201 13633 14456 MULTILINESTRING ((704688.7 ... 823
#> 9 97203 97219 97203_97219 11929 14456 MULTILINESTRING ((697602.1 ... 2527
#> 10 97203 97215 97203_97215 13474 14456 MULTILINESTRING ((701674.4 ... 982
# toutes les discontinuités
plot(st_geometry(x))
# discontinuité supérieures à 1500
plot(st_geometry(x[x$disc >= 1500, ]))
Created on 2024-09-05 with reprex v2.1.1
Bonjour,
Merci beaucoup pour votre retour,
J'ai pu trouver la solution finalement grâce à votre exemple et quelques manipulations de mon coté.
Merci encore, très bonne fin de semaine.
Bonjour,
J'espère que vous allez très bien.
Je me permets de laisser ce commentaire pour une assistance si possible par rapport à la cartographie des discontuités spatiales (absolues).
J'ai déjà fait les pré_traitement nécessaires c'est-à-dire la définition des lignes de frontières, la discrétisation pour ma carte thématique et ême j'ai lancé pour une période et j'arrive à obtenir une bonne sortie montrant les lignes de discontinuité. Cependant j'ai dix périodes différente (pas de temps de 5 ans) et les faire une par une prendrait du temps et aussi de permettrait pas de faire (peut-être) des planches de cartes de 4, 4 et 2 cartes (par exemple). J'ai déjà donc mon dataset qui contient entre autres colonnes le nom de la variable (avec les valeurs associées), la période, l'id des unités spatiales et les codes communes associés.
Ce que je souhaite savoir c'est s'il est possible d'avoir une couche de discontinuité spatiale qui contiendra les lignes de discontinuité sur l'ensemble de mes périodes avec une colonne période qui permettra d'identifier à quelle période appartient telle valeur de ligne de discontinuité ?
Si j'arrive à avoir cette couche, je pourrait filtrer les lignes de discontinuité suivant les périodes et faire ainsi mes planches de cartes des discontinuité spatiale.
Dans ce sens toujours, si possible, j'aimerai ne pas stocker toutes les lignes de discontinuité ou en tout cas ne pas les représenter tous mais établir un seuil à 10 par exemple pour ne représenter que les lignes de discontinuité ayant une valeur supérieure ou égale à 10.
Je ne sais pas si j'ai été très précis dans ma requête mais l'idée pour moi c'est d'obtenir une couche sf des lignes de discontinuité pour toute ma période et de travaille sur elle après pour les cartes.
Merci d'avance.