/covid-19

Données cartographiques concernant l'épidémie de COVID-19 en France

Primary LanguageJavaScriptMIT LicenseMIT

Ce dépôt n'est plus mis à jour de façon régulière suite à l'évolution de la pandémie et des outils officiels mis en place. Néanmoins nous le conservons au titre d'un exemple d'école de ce qu'il est possible de produire à partir de sources disparates.

Données cartographiques concernant l'épidémie de COVID-19

L'information officielle sur la progression de l'épidémie en France a été au départ assez fragmentée. Différentes initiatives ont tenté de structurer celle-ci sous forme de données libres. Malgré ce travail les données ont été néanmoins souvent difficilement exploitables à l'état brut au sein d'outils cartographiques.

L'objectif de ce dépôt est de consolider l'information et de la rendre disponible dans des formats ouverts et aisément réutilisables pour produire des cartes. Le format pivot privilégié est le GeoJson. Retrouvez également nos données sur le portail national des données libres.

L'information officielle sur la progression de l’épidémie en France est consolidée par Santé publique France. L’agence propose un point épidémiologique quotidien, qui comprend les chiffres-clés nationaux. Par ailleurs, les Agences Régionales de Santé, les préfectures de régions et les préfectures publient des bulletins d’informations centrés sur leur territoire de compétence.

Sous l'impulsion des initiatives libres telles que OpenCovid19, Santé publique France propose également des données relatives à l’épidémie plus précises sur la plateforme www.data.gouv.fr. Un outil dont le code source est libre, développé sous l’impulsion d’Etalab, au sein de la direction interministérielle du numérique, propose une vision consolidée des données officielles disponibles.

Comment contribuer ?

Vous pouvez vous proposer comme volontaire pour tester nos scrappeurs, les améliorer, utiliser nos données ou réaliser de nouveaux jeux de données.

Pour vous signaler rejoignez la communauté sur Slack, ouvrez une issue ou une une pull request.

Quelques idées:

  • production de jeux de données avec le contour des départements et non les barycentres
  • croisement avec des données de population
  • croisement avec des données hospitalières (nombre de lits, etc.) => fait via SAE 2018
  • intégrer les données hospitalières de Santé Publique France remontées au niveau départemental
  • intégrer les données des urgences et SOS médecins de Santé Publique France remontées au niveau départemental
  • intégrer les données de dépistage en laboratoire de Santé Publique France remontées au niveau départemental
  • intégrer les données de dépistage de Santé Publique France remontées au niveau départemental (remplace les précédentes)
  • géolocalisation des données des patients au niveau communal (pour l'instant très peu de données)
  • consitution de collections MongoDB pour visualisation spatio-temporelle dans Kano (eg séries temporelles)

Sources de données

Nos principales sources de données sont les suivantes:

Example de requête pour nombre de lits en réanimation sur https://hopitaux.datasette.11d.im/hopitaux:

SELECT departement, libdepartement, sum(LIT) AS lits
    FROM(select DISTINCT f.departement, f.libdepartement, r.FI, r.FI_EJ, r.UNI, r.LIT
    FROM [finess-clean] f
    INNER JOIN REA_2018 r
    ON r.FI = f.nofinesset AND r.UNI = 'SITOT') tmp
    GROUP BY departement, libdepartement

Données cartographiques

Chaque élément cartographique peut contenir les propriétés suivantes:

  • Country/Region Pays/Région de provenance
  • Province/State Etat/Département de provenance
  • Confirmed nombre cumulé de cas confirmés (à partir du 25/03 cet indicateur n'a plus été communiqué par les pouvoirs publics, sauf au niveau national)
  • Deaths nombre cumulé de décès
  • Recovered nombre cumulé de guérisons
  • Severe nombre de cas hospitalisés à date
  • Critical nombre de cas en réanimation à date
  • Emergencies
    • Total - nombre de passages quotidiens aux urgences total
    • Suspected - nombre de passages quotidiens aux urgences pour suspicion COVID-19
    • Severe - nombre d'hospitalisations parmi les passages quotidiens aux urgences pour suspicion COVID-19
  • MedicalActs
    • Total - nombres d'actes médicaux quotidiens SOS Médecins total
    • Suspected - nombres d'actes médicaux quotidiens SOS Médecins pour suspicion de COVID-19
  • MedicalTests (depuis le 29/05 cet indicateur n'est plus mis à jour, il est remplacé par les chiffres du système d’information national de dépistage par tests RT-PCR)
    • Total - nombres de tests quotidiens effectués dans un laboratoire d'analyse médicale
    • Confirmed - nombres de tests quotidiens positifs dans un laboratoire d'analyse médicale
  • PCRTests
    • Total - nombres de tests RT-PCR quotidiens effectués sur le territoire
    • Confirmed - nombres de tests RT-PCR quotidiens positifs sur le territoire
  • Population
    • Total - Ensemble
    • Under19 - 0 à 19 ans
    • Under39 - 20 à 39 ans
    • Under59 - 40 à 59 ans
    • Under74 - 60 à 74 ans
    • Over75 - 75 ans et plus
  • Beds Lits hospitaliers
    • Total - Ensemble
    • Resuscitation - Réanimation
    • IntensiveCare - Soins intensifs et continus

Pour chaque indicateur quotidien un indicateur cumulé est automatiquement calculé à partir des valeurs du jour précédent, par exemple il existe une propriété Emergencies.Suspected/Accumulated correspondant à la propriété Emergencies.Suspected.

Les principales données produites sont les suivantes:

Carte évolutive des cas en régions, taille des bulles liée au nombre de cas: Carte évolutive des cas en régions

Voir la vidéo originale.

Carte évolutive des cas en régions, taille des bulles liée au nombre de cas pondéré par la population: Carte évolutive des cas en régions pondérés selon la population

Voir la vidéo originale.

Carte évolutive des cas en régions, taille des bulles liée au nombre de cas pondéré par la population, couleur/opacité des bulles liée au rapport entre le nombre de cas et de lits disponibles (on suppose que 10% des cas occupent des lits): Carte évolutive des cas en régions pondérés selon la population et les lits disponibles

Voir la vidéo originale.

Carte évolutive des cas hospitalisations en régions, hauteur et couleur des formes 3D liées au nombre de cas sévères pondéré par la population:

Carte évolutive des cas en régions pondérés selon la population

Voir la vidéo originale.

  • données journalières par département consolidées au niveau national 📂 departements-france
    • issues des données des Agences Régionales de Santé et de Santé Publique France
    • croisement géographique par département réalisé sur la base du code de département
    • polygones (fichiers préfixés par polygons) ou géolocalisation des données au barycentre du département pour la constitution d'heatmaps

Carte de densité évolutive des cas par département: Carte de densité évolutive des cas

Voir la vidéo originale.

  • données globales individualisée des patients en France 📂 patients-france
    • géolocalisation des données au barycentre du département
    • contient une version aggrégée par département pour la constitution d'heatmaps

Carte des cas par département:

Carte de densité des cas par département:

Si vous souhaitez référencer les jeux de données directement plutôt que de les copier utiliser plutôt notre bucket S3 sur AWS, le chemin vers les fichiers reste le même en préfixant par la racine https://s3.eu-central-1.amazonaws.com/krawler/. Par exemple l'URL vers le fichier des patients en france est https://s3.eu-central-1.amazonaws.com/krawler/covid-19/patients-france/patients-france.json.

Génération des jeux données

Les données sont scrappées via Krawler et peuvent être visualisées via Kano ou tout autre outil SIG standard comme geojson.io, QGIS, etc.

Les données disponibles ne sont réellement significatives qu'à partir du 1er Mars 2020. Un job Krawler est responsable de la production de chaque jeu de données à une date fixée (i.e. statistiques par département, statistiques par région, patients). Certains jobs sont interdépendants, par exemple les jobs des statistiques par département/région dépendent de l'exécution préalable du job de génération des données hospitalières/urgences Santé Publique France. Le job generate-data-jobfile permet de lancer tous les jobs dans le bon ordre pour générer tous les jeux de données sur une période.

Lorsque certains indicateurs (e.g. les cas confirmés) manquent à une date donnée nous avons fait le choix de combler le trou en réutilisant la valeur de la date précédente. Ceci peut permettre de continuer à réaliser des cumuls lorsqu'un indicateur a par exemple été remplacé par un autre à une date donnée. Merci de tenir compte de cette hypothèse dans vos réutilisation.

Concernant la géométrie des contours administratifs nous utilisons mapshaper afin de les simplifier à une précision donnée via la commande suivante: mapshaper -i .\departements-france-outre-mer.geojson -simplify keep-shapes interval=500 -o .\departements-france-outre-mer-500m.geojson format=geojson

Nous faisons évoluer nos outils en fonction des besoins, aussi il faut utiliser la version en cours de développement (branche master) et non des version stables. Pour Kano il vous faudra par exemple faire un yarn/npm link comme tout développeur travaillant sur ce projet.

Pour Krawler:

// Clone and install krawler
git clone https://github.com/kalisio/krawler.git
cd krawler
yarn install
yarn link

// Clone and run a job
git clone https://github.com/kalisio/covid-19.git
cd covid-19
export NODE_PATH="path_to_krawler/node_modules"
// Run job to generate all data for all dates in a period
// By default will start on 2020-03-01 and finish on yesterday
krawler generate-data-jobfile.js --start 2020-03-01 --end 2020-03-30

Vous pouvez aussi lancer chaque job de façon individuelle:

// Run job to generate SPF data (to be done first)
krawler spf-donnees-hospitalieres-jobfile.js --date 2020-03-01
// Run job to generate departements data
krawler france-departements-jobfile.js --date 2020-03-01 --geometry 'Point' ou 'Polygon'
...
krawler france-departements-jobfile.js --date 2020-03-16 --geometry 'Point' ou 'Polygon'
// Run job to generate regions data
krawler france-regions-jobfile.js --date 2020-03-01 --geometry 'Point' ou 'Polygon'
...
krawler france-regions-jobfile.js --date 2020-03-16 --geometry 'Point' ou 'Polygon'
// Run job to generate patients data
krawler france-patients-jobfile.js
krawler france-patients-jobfile.js --departements

Pour Kano:

// Clone and link the development kit
git clone https://github.com/kalisio/kdk.git
cd kdk
yarn install
yarn link
yarn run watch

// Clone and run the app
git clone https://github.com/kalisio/kano.git

// In one terminal run the backend
cd kano/api
yarn install
yarn link @kalisio/kdk
yarn run dev

// In another terminal run the frontend
cd kano
yarn install
yarn link @kalisio/kdk
yarn run dev

Examples d'application

L'ensemble des données est visualisable via un simple drag'n'drop des fichiers dans Kano. Néanmoins pour des visualisations spatio-temporelles avancées comme les heatmaps il vous faudra faire un peu de configuration.

Vous retrouverez dans le fichier 📂 kano/covid19-layers.js des exemples de configuration d'un affichage de bulles d'information par région, d'un affichage coloré dépendant du ratio de cas/lits, d'une heatmap ou encore d'un affichage 3D coloré et extrudé dépendant du ratio de cas sévères/population par région. Ce fichier est à copier dans le dossier 📂 api/config/layers de Kano.

Licence

Les données dérivées sont publiées sous la licence des données sources.

Les codes sources sont publiés sous licence MIT.