Le Web est aussi une source importante de données numériques. Certaines personnes font une comparaison entre l'Open Data et la recherche du pétrole à la fin du XIX ième siècle et parle de l'Open Data comme l'or noir du XXI ième siècle
Peut on cependant utiliser les données "n'importe comment ?"
Pour permettre une meilleure utilisation des données un mouvement appelé "Open Data" a fait son apparition ces dernières années
Le terme "Open Data" fait référence à des données "numériques accessibles en ligne ". Il y a des lois qui encadrent l'utilisation de ces données. Elles ne doivent être ni personnelles, ni propriétaires et ni sensibles.
Aller voir les sites suivants , puis répondre aux questions de l'exercice 1
Voir ici un exemple de réutilisation des données. En zoomant chercher des réalisations dans la transition énergétique dans la région parisienne
Voici un autre exemple d'application qui répertorie les lieux gratuits autour de soi (parkings par exemple)
Réfléchir à une application que vous aimeriez créer.Nous allons nous intéresser aux données publiques fournies par Météo-France concernant les observations en mer faites par des balises Voir ici
Le but du T.P est d'exploiter un fichier .csv fourni par Météo-France, contenant un certain nombre de mesures en mer, Température, Pression, Hauteur de la Houle etc...
Ce traitement informatique se fera par un programme ...Python
Dans un premier temps nous allons faire connaissance avec le format de fichier .csv pour comma separated values.
Pour simplifier ce sont des données séparées par des séparateurs comme des point-virgules par exemple
Beaucoup d'administrations (par exemple celle du lycée) échangent leurs informations sous cette forme
Ouvrir le tableur Libre Office, et dans la cellule A1 entrer Noms, puis dans B1 entrer Prénoms, puis dans C1 entrer année de naissance
Puis compléter les champs ainsi crées par deux écrivains français: Hugo Victor né en 1802 et Camus Albert né en 1913
Enregistrer le fichier avec le nom ecrivains.ods puis faire enregistrer sous au format .csv
Ouvrir le fichier .csv avec un éditeur de texte comme NotePad++ qu'observez vous ?
Comparer les tailles en octets des fichiers. Qu'observez vous ?
Le traitement informatique d'un fichier .csv est essentiellement le traitement d'un type de données appelée chaîne de caractères (string en anglais)
Nous allons découvrir dans le contexte ce type de données
Télécharger sur la page de Météo-France ci-dessus un fichier .csv contenant des mesures de température , de pression et autres caractéristiques en haute mer, pour le mois de décembre 2018
Pour voir ce qu'il contient l'ouvrir par exemple avec NotePad++
Cependant on aimerait traiter ces informations par exemple faire la moyenne des températures sur un mois ou prendre la plus grande hauteur de la houle sur le mois de décembre 2018, pour cela il faut un langage de programmation
Copier le code Python ci-dessous et l'enregistrer dans le fichier traiter_data.py
Placer le fichier .py et le fichier .csv au même endroit. Exécuter le fichier .py
import csv
with open("marine.201812.csv","r") as fichier:
#Création du ''lecteur'' CSV.
reader = csv.reader(fichier)
#On affiche les 100 premières lignes du fichier
compteur = 0
for ligne in reader:
compteur = compteur + 1
print(ligne)
if compteur == 100:
break
A l'exécution vous observez un défilement de lignes de la forme
['n°balise;date+heure;etc....'], chaque ligne est une liste Python concernant une balise particulière
entre crochet [] contenant un seul élément entre '' ,une chaîne de caractères.
Modifier print(ligne) par print(ligne[0]) puis exécuter.
ligne[0] est le seul élément de la liste ligne, et c'est une chaine de caractères. On observe alors des lignes du type n°balise;date+heure;etc..., c'est à dire des données séparées par des points virgules
Python fournit des outils ou méthodes pour traiter les chaînes de caractères
Par exemple on veut extraire les données d'une ligne en enlevant les ;
Pour cela si on fait ligne[0].split(";") on "casse" la chaîne ligne[0] en une liste des données sans les ;
Maintenant nous allons uniquement nous intéresser à la bouée au large de la Bretagne appelée BRITTANY, c'est la quatrième bouée de la liste et son numéro d'identification est 62163
Il nous faut donc repérer les chaînes qui commencent par 62163. Or une chaîne est une liste de caractères ce qui signifie que chaque caractère de la liste est repéré par un numéro par exemple le caractère 6 par 0 c'est le premier caractère,puis le 2 est repéré par 1 etc...
On se rend compte qu' avoir un caractère en position 0 étant égal à 6 et un caractère en position 2 étant égal à 1 caractérise parfaitement cette bouée d'où le programme suivant qui donnent uniquement les données de la bouée BRITTANY
ligne[0] est le premier élément de la liste donc une chaîne de caractères qui identifie une bouée
ligne[0][0] est le premier caractère du premier élément de la liste
import csv
with open("marine.201812.csv","r") as fichier:
#Création du ''lecteur'' CSV.
reader = csv.reader(fichier)
#On affiche chaque ligne du fichier
compteur = 0
for ligne in reader:
if ligne[0][0] == "6" and ligne[0][2] == "1":
compteur = compteur + 1
print(ligne[0].split(";"))
if compteur == 100:
break
Le programme suivant affiche pour le mois de Décembre 2018 , les hauteurs de vagues de la mer au vent ainsi que les périodes
import csv
with open("marine.201812.csv","r") as fichier:
#Création du ''lecteur'' CSV.
reader = csv.reader(fichier)
#On affiche chaque ligne du fichier
for ligne in reader:
if ligne[0][0] == "6" and ligne[0][2] == "1":
listeBalise = ligne[0].split(";")
print("Hauteur de vague = ",listeBalise[11])