OpenDataGouv : Transaction immobilière sur Biot

En quelques étapes …

Etape 1: Voir un tweet passer de @ollybret :

Etape 2 : Vérifier l’information sur @datagouvfr : le lien étant : https://www.data.gouv.fr/fr/datasets/demandes-de-valeurs-foncieres/ 

Et se faire un profil :

Etape 3 : Voir du JSON : Micro-API DVF (Demande de Valeurs Foncières) et une API :

Voir même le résultat en fonction de la commune ou du code postal :

  • http://api.cquest.org/dvf?code_commune=94068 ( code_commune = code INSEE de la commune (ex: 94068) )
  • http://api.cquest.org/dvf?code_postal=89110 ( code_postal = code postal )

Superbe travail de Christian Quest ( sur Twitter @cq94 ‏) avec en plus la mise du code sur GitHub : https://github.com/cquest/dvf_as_api .( @github )

Etape 4 : Sortir le python ( @ThePSF ) et se faire une petite carte sur Biot :

$ python3 API_DVF_ToStaticMapColor.py 
Number total of request 1
Number total of pin 2598 Before date 624 After date 1974

Et publier les sources ( https://github.com/CYBERNEURONES/Python )  : les conditions d’utilisations : http://data.cquest.org/dgfip_dvf/conditions-generales-dutilisation.pdf.

#
# for Python 3
# 
#   ARIAS Frederic
#   Sorry ... It's difficult for me the python :)
#

from time import gmtime, strftime
import time
import json
import requests
from datetime import *
from staticmap import StaticMap, CircleMarker

m = StaticMap(1100, 1100, url_template='http://a.tile.osm.org/{z}/{x}/{y}.png')

codepostal = "06410"
date_inondation = datetime.strptime("2015-10-03",'%Y-%m-%d')
nb_request = 0
nb_plot = 0
after_inondation = 0
before_inondation = 0
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
url_notes = (
    "http://api.cquest.org/dvf?"
    "code_postal="+codepostal
)
try:
    resp = requests.get(url_notes, headers=headers)
    nb_request += 1
    resp.raise_for_status()
    resp_dict = resp.json()
    #print(resp_dict);
    for my_resource in resp_dict['resultats']:
        #print(my_resource)
        long = my_resource.get('lon')
        lat = my_resource.get('lat')
        my_date = datetime.strptime(my_resource.get('date_mutation'),'%Y-%m-%d')
        if (long) and (lat):
           nb_plot += 1
           #print("Long:",float(long),"Lat:",float(lat),"Date:",my_date);
           if my_date > date_inondation : 
             marker = CircleMarker((float(long), float(lat)), '#0036FF', 8)
             after_inondation += 1
           else :         
             marker = CircleMarker((float(long), float(lat)), '#FF3600', 8)
             before_inondation += 1
           m.add_marker(marker)
except requests.exceptions.HTTPError as e:
    print("Bad HTTP status code:", e)
except requests.exceptions.RequestException as e:
    print("Network error:", e)

image = m.render(zoom=13)
image.save('mymap_zoom13_col.png')
image = m.render(zoom=14)
image.save('mymap_zoom14_col.png')
image = m.render(zoom=15)
image.save('mymap_zoom15_col.png')

print ("Number total of request",nb_request)
print ("Number total of pin",nb_plot,"Before date",before_inondation,"After date",after_inondation)

Etape n°5 : Voir le résultat :

A la base je voulais localiser les achats du Fond Barnier, mais je n’ai rien trouvé … sniff.

J’ai aussi fait un programme ( https://github.com/CYBERNEURONES/Python/blob/master/API_DVF_ToStaticMapColor_V2.py )  pour travailler avec le code insee …. mais pas mieux :

Toutes les données

Expropriation, Adjudication.

A suivre …

Open Data Gouv : Arrêtés de catastrophe naturelle en France mon troisième fichier

Je m’attaque donc au troisième fichier disponible, ayant donc connu les inondations à Biot .

Capture d’écran 2016-01-16 à 18.24.01

Le fichier est donc de 1982 à 2015, d’après moi pour une analyse pertinente il faudrait un fichier de plus de 100 ans 😉 . Mais je vais donc faire avec ces 33 ans …

Cette fois je ne vais pas faire le barbare et utiliser awk & sed … je vais faire avec Excel 🙂

On commence donc par faire un premier tableau croisé dynamique, afin de voir le Périls le plus fréquent :

image002

On a loin devant : « inondations et coulées de boues ». A noter que l’on a un vide :

INSEE Département Commune Périls Date début Date fin Ecart
64129 64 Billère 19/06/2006 19/06/2006 0

Quel mystère … une attaque de martien ?

Ensuite si on regarde la durée moyenne :

image006

La plus part du temps c’est 0 jours … ce qui semble être le cas pour les inondations.

Si on recherche la durée la plus longue :

INSEE Departement Commune Périls Date début Date fin Ecart
12037 12 Broquiès Mouvements de terrain différentiels consécutifs à la sécheresse et à la réhydratation des sols 01/09/1985 11/09/1996 4028 jours

Nombre de déclaration par commune :

image009

Entre 1 et 60 …

Mais où est BIOT (INSEE 6018 : https://fr.wikipedia.org/wiki/Biot_(Alpes-Maritimes) ) ? On est à 22 … pas mal.

INSEE Département Commune Périls Date début Date fin Ecart
6018 6 Biot Inondations et coulées de boue (13) 09/11/14 11/11/2014 2
6018 6 Biot Inondations et coulées de boue (12) 04/11/14 06/11/2014 2
6018 6 Biot Mouvements de terrain (5) 08/02/14 08/02/2014 0
6018 6 Biot Mouvements de terrain (4) 16/01/14 19/01/2014 3
6018 6 Biot Inondations et coulées de boue (11) 04/11/11 06/11/2011 2
6018 6 Biot Mouvements de terrain différentiels consécutifs à la sécheresse et à la réhydratation des sols (4) 01/07/07 30/09/2007 91
6018 6 Biot Mouvements de terrain différentiels consécutifs à la sécheresse et à la réhydratation des sols (3) 01/01/07 31/03/2007 89
6018 6 Biot Inondations et coulées de boue (10) 08/09/05 09/09/2005 1
6018 6 Biot Mouvements de terrain différentiels consécutifs à la sécheresse et à la réhydratation des sols (2) 01/07/03 30/09/2003 91
6018 6 Biot Inondations et coulées de boue (9) 25/12/2000 25/12/2000 0
6018 6 Biot Inondations et coulées de boue (8) 05/11/2000 06/11/2000 1
6018 6 Biot Mouvements de terrain (3) 14/10/2000 16/10/2000 2
6018 6 Biot Inondations et coulées de boue (7) 11/10/2000 11/10/2000 0
6018 6 Biot Mouvements de terrain (2) 11/10/2000 15/10/2000 4
6018 6 Biot Inondations et coulées de boue (6) 23/10/1999 24/10/1999 1
6018 6 Biot Mouvements de terrain (1) 23/10/1999 24/10/1999 1
6018 6 Biot Inondations et coulées de boue (5) 24/12/1996 25/12/1996 1
6018 6 Biot Inondations et coulées de boue (4) 11/01/1996 12/01/1996 1
6018 6 Biot Mouvements de terrain différentiels consécutifs à la sécheresse et à la réhydratation des sols (1) 01/09/1995 31/12/1995 121
6018 6 Biot Inondations et coulées de boue (3) 05/10/1993 10/10/1993 5
6018 6 Biot Inondations et coulées de boue (2) 10/10/1987 11/10/1987 1
6018 6 Biot Inondations et coulées de boue (1) 04/10/87 05/10/1987 1
6018 6 Biot Tempête (1) 06/11/1982 10/11/1982 4

Si on cherche à connaitre les communes qui a le plus de déclaration …

INSEE Nombre
6088 – Nice 60
6027 – Cagnes sur mer 44
6004 – Antibes 43

… bienvenue dans les Alpes-Maritimes 🙂 . Le soleil c’est pas sans risque …

Ensuite si on fait le même calcul par département on a ceci :

Département Nombres
5 : https://fr.wikipedia.org/wiki/Hautes-Alpes  87
..
6 1083

31
4222

Ce n’est plus les Alpes-Maritimes qui sont en tête, pourquoi ? Tout simplement parce que l’on compte plusieurs fois le même évènement. Il faut donc ajouter une clef pour être sûr que l’évènement est unique. Par exemple la clef : Péril + « – » + Date début + « – » + Date fin, me semble convenir. C’est faux car on peut voir sur les évènements de Biot qu’il y a par moment le Péril qui est en double.

On obtiens alors ceci :

Clef « unique » Nombre de commune
Inondations, coulées de boue et mouvements de terrain-36519-36523 25638
Tempête-30261-30265 12521
Inondations et coulées de boue-30293-30316 5386
Mouvements de terrain différentiels consécutifs à la sécheresse et à la réhydratation des sols-37803-37894 4414
Inondations et coulées de boue-34716-34730 3016
Tempête-32065-32066 2572
Inondations, coulées de boue, glissements et chocs mécaniques liés à l’action des vagues-36519-36523 2131
Inondations et chocs mécaniques liés à l’action des vagues-39837-39840 2082
Inondations et coulées de boue-39837-39840 1844

On a deux tempêtes qui sont en bonne position, la plus importante a impacté 12521 communes.

Maintenant il faut donc refaire le calcul en comptant seulement une fois le même évènement, et cela donne ceci :

Département Nombres de péril différent
75 – Paris  12
87 – La haute vienne  29
90 – Territoire de Belfort  30
5 – Hautes Alpes  49
6 – Alpes maritimes  279
62 – Pas-de-Calais  435
31 – Haute-Garonne  450

La question que l’on peut se poser : Quel est la différente du prix de l’assurance habitation en fonction de notre code postal ?

Maintenant il faudrait recouper avec un autre fichier, par exemple pour le nombre de transactions chez les notaires. On pourrait ainsi mesurer l’impact des inondations sur les transactions et aussi sur le prix des transactions … le problème c’est qu’il n’y a rien dans l’open data sur cela.

Le seul fichier trouvé n’est pas vraiment un fichier mais une image …

Capture d’écran 2016-01-18 à 16.37.21

Quel est l’intérêt de mettre autre chose que des données dans l’OpenData ? C’est complètement nul de mettre un PNG… pas assez précis et pas utilisable. On se demande presque si ce n’est pas un moyen de faire de la publicité. Je lance une nouvelle discussion … pour l’instant 0 réponse sur mes discussions, mais je ne perds pas espoir de me faire un ami 🙂 .

Torchons & Serviettes

Bonjour,
Serait-il possible d’avoir un fichier Excel avec le prix par type de bien et par commune sur un an ?
J’ai l’impression que l’on mélange les torchons et les serviettes, dans les alpes-maritimes le prix en bord de mer est fortement différent du prix dans l’arrière pays. J’ai du mal à comprendre l’intérêt du graphique.
Cordialement.

Capture d’écran 2016-01-18 à 21.07.15

Par exemple si on va sur : http://www.meilleursagents.com/prix-immobilier/nice-06000/#estimates 

Capture d’écran 2016-01-19 à 10.47.17

entre un appartement et une maison on à 4429-3752=677 Euro.

Et maintenant si je reste dans les alpes-maritimes et que je vais à Gréolière :

Capture d’écran 2016-01-19 à 10.48.35

Entre le prix m2 de la maison à Gréolières et le prix du m2 de la maison à Nice, j’ai le double. Donc si l’agence ,à un moment donné, vend plus de bien dans l’arrière pays elle va faire chuter la moyenne …

C’est bien de vouloir mettre des données dans l’Open Data mais encore faut-il que cela soit pertinent !

Open Data Gouv : Tentative de discussion

Suite aux nombreux problèmes sur les fichiers, je vais donc essayer de lancer des discussions sur leur site. Pour que cela fonctionne je vais parler d’un seul problème à la dois et je vais aussi ne pas mettre d’email ou d’URL dans le contenu.

Discussion n°1 : Format du fichier JSON

Bonjour,
Le fichier JSON est difficile à exploiter, car toutes les données sont mises sur une seule ligne. Pouvez-vous faire en sorte que cela soit comme le fichier JSON de la réserve parlementaire ?
Cordialement.

Capture d’écran 2016-01-16 à 15.24.45

Discussion n°2 : Format du fichier JSON

Bonjour,
Pouvez-vous mettre le même délimiteur pour les deux fichiers JSON (2013/2014) ? Dans un fichier c’est ‘ (2013) et dans l’autre c’est  » (2014).
Cordialement.

Discussion n°3 : Format des fichiers CSV

Bonjour,
Pourquoi avoir choisit la virgule et non le point-virgule comme délimiteur ? On a déjà fort à faire à cause des retours chariots. Si on prend une phase telle que : « Evolution du site (interfaçage interactive), création de podcasts audio, évènements thématiques » on se retourne avec plein de virgule … le fichier CSV du sénat sur les réserves parlementaires utilise un point-virgule, ce qui est très bien. Il faut toujours prendre le caractère le moins utilisé.
Cordialement.

Discussion n°4 : C’est trop NULL

Bonjour,
Un moment on a trop de champ NULL pour que cela soit exploité :
{
‘Bénéficiaire’ : ‘Club des plus belles baies du monde’,
‘Adresse’ :  »,
‘Descriptif’ : ‘Fonctionnement’,
‘Montant’ : 3000.00,
‘Nom’ : ‘Groupe UMP’,
‘Prénom’ : NULL,
‘Département’ : ‘*(non rattaché à un département)’,
‘Groupe’ : NULL,
‘Programme budgétaire’ : ‘113-01’,
‘ID_Acteur’ : NULL
},
C’est normal ?

Discussion n°5 : Groupe dans le nom.

Bonjour,
Pourquoi avoir choisit de mettre le Groupe dans le nom alors qu’il y a un champ groupe. L’idéal aurait été de mettre le champ nom vide. Par exemple :
{
‘Bénéficiaire’ : ‘A.A.S.C.O.’,
‘Adresse’ : ‘107 avenue Gabriel Péri – 93400 Saint-Ouen’,
‘Descriptif’ : ‘Fonctionnement’,
‘Montant’ : 10000.00,
‘Nom’ : ‘Groupe SRC’,
‘Prénom’ :  »,
‘Département’ : ‘*(non rattaché à un département)’,
‘Groupe’ :  »,
‘Programme budgétaire’ :  »,
‘ID_Acteur’ : NULL
},
Cordialement.

Discussion n°6 : Par moment dans le champ nom on a le nom et le prénom

Bonjour,
Par moment dans le champ nom on a le nom et le prénom, ou alors que le nom pour une même personne. Par exemple : {
‘Bénéficiaire’ : ‘Commune de MECRIN ‘,
‘Adresse’ :  »,
‘Descriptif’ : ‘Aménagement de la place du général de Gaulle’,
‘Montant’ : 10000.00,
‘Nom’ : ‘PANCHER Bertrand’,
‘Prénom’ :  »,
‘Département’ : ‘Meuse’,
‘Groupe’ : ‘UDI’,
‘Programme budgétaire’ : ‘122-01’,
‘ID_Acteur’ : ‘PA333421’
},
Dans le même ordre d’idée, par moment le nom n’est pas écrit de la même façon. Par exemple : DE MAZIERES et DE MAZIèRE.
L’idéal serait donc de s’appuyer sur le ID_ACTEUR et d’avoir donc un autre fichier JSON avec les noms et prénom des ID_ACTEUR. Cela permettrait aussi de supprimer les champs Nom et Prénom … Qu’en pensez vous ?
Cordialement.

On ne pourra pas dire que j’ai pas voulu discuter :

Capture d’écran 2016-01-16 à 18.02.45

Maintenant il ne reste qu’a contacter le créateur de se magnifique site, pour lui dire que la création de compte avec Twitter , Google, Linkedin ne fonctionne pas. Et aussi lui dire que la session qui dure plus de 3 heures alors qu’il y a aucune activité, ce n’est pas l’idéal en terme de sécurité. L’autre chose qui serait bien cela serait de pouvoir mettre une URL afin que les personnes puissent se présenter et se connaître … dans ce site il n’y a que des « concombres masqués ».

Mes deux précédents POST :

Open Data Gouv : Dotation d’action parlementaire (Sénat), mon deuxième test.

Après avoir pris ce fichier : Réserve parlementaire 
Capture d’écran 2016-01-15 à 16.39.15

Maintenant je prends ce fichier : Dotation d’action parlementaire (Sénat)

Capture d’écran 2016-01-15 à 16.37.44

On commence par le fichier CSV, qui est au bon format ! Contrairement au fichier du Parlement on a des points-virgules et non des virgules. Mais je ne suis pas pour autant un adepte de ce format à cause des retours chariots.

$ cat reserve2014.csv | awk -F ";" '{print NF-1 }' | sort -n | uniq -c
     84 0
      7 2
     51 3
     51 6
      7 7
   6105 9

Il y a quand même 84+7+51+51+7 = 200 lignes à reprendre. Mais il y a des solutions pour reprendre ceci de façon automatique … awk …

Le fichier JSON est vraiment mal fait, contrairement au fichier du Parlement, toutes les données sont sur une même ligne !

$ wc -l reserve2014.json
0 reserve2014.json

Il y a vraiment un problème de format …. je vais donc essayer de lancer une discussion afin d’améliorer la qualité des fichiers. Ma précédente discussion a été refusée sûrement parce que j’avais mis un lien (URL), cette fois je vais mettre que du texte.