-
Notifications
You must be signed in to change notification settings - Fork 0
GeoJSON
Le format JavaScript Object Notation (JSON) est un format de données comme le xml ou le yaml.
Sa syntaxe s'inspire des notations d'objets javascript (d'où le nom) sous le format suivant : json{"clé":valeur}.
Un exemple d'utilisation est par exemple :
{
"filière" : {
"nom":"IATI SIA",
"Promo": 2025
}
}
Où ici, filière est une clé dont la valeur est l'object {"nom":"IATI SIA","Promo": 2025}.
Cela permet l'échange d'informations sous un format structuré, facilement utilisable dans des langages de programmations (plusieurs le supportent d'ailleurs nativement). Les payloads (données embarquées) dans les requêtes HTTP utilise ce format.
Commencons par un petit tableau :
| JSON | Python |
|---|---|
| object | dict |
| array | list |
| string | str |
| number | int |
| number | float |
| true | True |
| false | False |
| null | None |
Pour charger un fichier json depuis son disque vers une structure python, on peut donc utiliser un code similaire à celui-ci:
import json
with open('data.json', 'r') as file:
data = json.load(file)Ici, nous ouvrons un fichier "data.json" en mode lecture et nous chargeons le contenu du fichier dans un objet python en effectuant les conversions du tableau au dessus. Ainsi, l'exemple de filière vu plus tôt nous donneras par exemple suivant :
>> print(data)
{'filière': {'nom': 'IATI SIA', 'Promo': 2025}}
>> print(data["filière"])
{'nom': 'IATI SIA', 'Promo': 2025}
>> print(data["filière"]["nom"])
'IATI SIA'Le GeoJSON est un format de notation qui permet de décrire des données géographiques en utilisant le format de notation JSON.
C'est un format ouvert mais dont la norme dévie d'autres dans la présentation des données. En particulier, le GeoJSON représente les coordonnées sous le format [longitude,latitude], la plupart des autres formats utilise la notation inverse.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[1.5134898, 43.582456],
[1.5134985, 43.5824291],
[1.5135032, 43.5824152],
[1.5135476, 43.5824229],
[1.5135369, 43.5824642],
[1.5134898, 43.582456]
]
]
]
},
"properties": {
"type": "02",
"nom": null,
"commune": "31445",
"created": "2021-01-04",
"updated": "2021-01-05"
}
},
{
"type": "Feature",
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[1.5126594, 43.5821189],
[1.5126686, 43.5820769],
[1.5127246, 43.5820832],
[1.5127156, 43.5821253],
[1.5126594, 43.5821189]
]
]
]
},
"properties": {
"type": "02",
"nom": null,
"commune": "31445",
"created": "2021-01-04",
"updated": "2021-01-05"
}
}
]
}Plusieurs informations sont utiles, celles qui nous intéressent le plus pour trouver les dates de création des bâtiments est notamment les clés created et updated dans le dictionnaire properties.
Ici, features est un array, la traduction en Python est donc une liste de dictionnaires.
Typiquement pour itérer dans les dates de création des bâtiments, on peut utiliser le code suivant :
import json
with open('data.geojson', 'r') as file:
data = json.load(file)
for feature in data["features"]:
print(feature["properties"]["created"])Le résultat que nous obtenons est donc les deux dates de création des bâtiments dans le GeoJSON.
# Pour une feature donnée dans la liste des features
>> print(feature["properties"]["created"])
"2021-01-04"