Awesome
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 <a href='https://www.santepubliquefrance.fr'>Santé publique France</a>. L’agence propose un <a href='https://www.santepubliquefrance.fr/maladies-et-traumatismes/maladies-et-infections-respiratoires/infection-a-coronavirus/articles/infection-au-nouveau-coronavirus-sars-cov-2-covid-19-france-et-monde'>point épidémiologique quotidien</a>, qui comprend les chiffres-clés nationaux. Par ailleurs, les <a href="https://www.ars.sante.fr">Agences Régionales de Santé</a>, les <a href="http://www.prefectures-regions.gouv.fr">préfectures de régions</a> et les <a href="https://www.interieur.gouv.fr/Le-ministere/Prefectures">préfectures</a> publient des bulletins d’informations centrés sur leur territoire de compétence.
Sous l'impulsion des initiatives libres telles que <a href='https://github.com/opencovid19-fr'>OpenCovid19</a>, Santé publique France propose également des <a href='https://www.data.gouv.fr/fr/organizations/sante-publique-france/'>données relatives à l’épidémie plus précises</a> sur la plateforme <a href='https://www.data.gouv.fr'>www.data.gouv.fr</a>. Un outil <a href='https://github.com/etalab/covid19-dashboard'>dont le code source est libre</a>, développé sous l’impulsion d’<a target='_top' href='https://www.etalab.gouv.fr'>Etalab</a>, au sein de la <a href='https://www.numerique.gouv.fr/dinum/'>direction interministérielle du numérique</a>, 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 barycentrescroisement avec des données de populationcroisement avec des données hospitalières (nombre de lits, etc.)=> fait via SAE 2018intégrer les données hospitalières de Santé Publique France remontées au niveau départementalintégrer les données des urgences et SOS médecins de Santé Publique France remontées au niveau départementalintégrer les données de dépistage en laboratoire de Santé Publique France remontées au niveau départementalinté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:
- niveau mondial
- niveau national
- données régionales/départementales https://github.com/opencovid19-fr/data
- données départementales https://www.data.gouv.fr/fr/organizations/sante-publique-france
- données individualisée https://github.com/lperez31/coronavirus-france-dataset
- croisements géographiques
- contours administratifs nationaux https://github.com/gregoiredavid/france-geojson
- population régionale/départementale par classe d'âge https://www.insee.fr/fr/statistiques/1893198
- correspondance code départements/régions https://www.insee.fr/fr/information/3720946#titre-bloc-15
- données hospitalières issues de la statistique annuelle des établissements de santé (2018)
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 provenanceProvince/State
Etat/Département de provenanceConfirmed
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èsRecovered
nombre cumulé de guérisonsSevere
nombre de cas hospitalisés à dateCritical
nombre de cas en réanimation à dateEmergencies
Total
- nombre de passages quotidiens aux urgences totalSuspected
- nombre de passages quotidiens aux urgences pour suspicion COVID-19Severe
- nombre d'hospitalisations parmi les passages quotidiens aux urgences pour suspicion COVID-19
MedicalActs
Total
- nombres d'actes médicaux quotidiens SOS Médecins totalSuspected
- 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édicaleConfirmed
- nombres de tests quotidiens positifs dans un laboratoire d'analyse médicale
PCRTests
Total
- nombres de tests RT-PCR quotidiens effectués sur le territoireConfirmed
- nombres de tests RT-PCR quotidiens positifs sur le territoire
Population
Total
- EnsembleUnder19
- 0 à 19 ansUnder39
- 20 à 39 ansUnder59
- 40 à 59 ansUnder74
- 60 à 74 ansOver75
- 75 ans et plus
Beds
Lits hospitaliersTotal
- EnsembleResuscitation
- RéanimationIntensiveCare
- 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:
-
données journalières par pays au niveau mondial :open_file_folder: csse_covid_19_daily_reports
- issues des données du Johns Hopkins CSSE
-
données journalières par région consolidées au niveau national :open_file_folder: regions-france
- issues des données des Agences Régionales de Santé et de Santé Publique France
- croisement géographique par région réalisé sur la base du code de région
- polygones (fichiers préfixés par
polygons
) ou géolocalisation des données au barycentre de la région pour la constitution d'heatmaps
Carte évolutive des cas en régions, taille des bulles liée au nombre de cas:
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:
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):
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:
Voir la vidéo originale.
- données journalières par département consolidées au niveau national :open_file_folder: 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:
Voir la vidéo originale.
- données globales individualisée des patients en France :open_file_folder: 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:
<img src="https://raw.githubusercontent.com/kalisio/covid-19/master/patients-france.png" width="512" height="512"> <img src="https://raw.githubusercontent.com/kalisio/covid-19/master/patients-france-zoom.png" width="512" height="512">Carte de densité des cas par département:
<img src="https://raw.githubusercontent.com/kalisio/covid-19/master/patients-heatmap-france.png" width="512" height="512">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 :open_file_folder: 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 :open_file_folder: 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.