Données relatives aux observations météorologiques

Les données relatives aux données d’observation météorologique sont disponibles dans l’entrepôt de données de la métropole Nice Côte d’Azur. Le modèle de données WeatherObserved est utilisé pour représenter les données liées aux observations météorologiques.


Liste des capteurs

ID Name Adresse Localisation Date de mise en service Propriétés Assets
Device:AZIMUT-MULTIFLOW-GBOX000866Balise GBOX000866 Nice
06000 Nice
7.2147669
43.6693858
31/12/2016
  • NO2
  • temperature
  • LAeq
  • relativeHumidity
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001383Balise GBOX001383 43 Boulevard de la plage
06800 Cagnes-sur-Mer
7.161232
43.655675
31/12/2016
  • NO2
  • temperature
  • LAeq
  • relativeHumidity
  • solarRadiation
  • windDirection
  • windSpeed
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001400Balise GBOX001400 Garage Plaza - ZOE 1 - DH-689-VT
06000 Nice
7.2147669
43.6693858
31/12/2016
  • NO2
  • temperature
  • LAeq
  • relativeHumidity
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001613Balise GBOX001613 Nice ouest Californie
06200 Nice
7.2147669
43.6693858
31/12/2016
  • PM1
  • temperature
  • volatileOrganicCompoundLight
  • volatileOrganicCompoundTotal
  • LAeq
  • relativeHumidity
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001830Balise GBOX001830 Garage Plaza Zoe
06000 Nice
7.2147669
43.6693858
31/12/2016
  • NO2
  • relativeHumidity
  • temperature
  • LAeq
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001831Balise GBOX001831 Garage Tonduti Yarris
06000 Nice
7.2763092
43.7008244
31/12/2016
  • NO2
  • temperature
  • relativeHumidity
  • AirQualityObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001940Balise GBOX001940 Pont A8 Cyril Besset
06800 Cagnes-sur-Mer
7.155209
43.660498
31/12/2016
  • NO2
  • temperature
  • LAeq
  • solarRadiation
  • windDirection
  • windSpeed
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001949Balise GBOX001949 43 Proenade de la Plage
06800 Cagnes-sur-Mer
7.161232
43.655675
31/12/2016
  • NO2
  • relativeHumidity
  • temperature
  • LAeq
  • solarRadiation
  • windDirection
  • windSpeed
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001951Balise GBOX001951 63 Promenade des Anglais
06000 Nice
7.252043
43.692968
31/12/2016
  • NO2
  • relativeHumidity
  • temperature
  • solarRadiation
  • windDirection
  • windSpeed
  • AirQualityObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001954Balise GBOX001954 Garage Tonduti
06000 Nice
7.2763092
43.7008244
31/12/2016
  • NO2
  • temperature
  • relativeHumidity
  • AirQualityObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001958Balise GBOX001958 76 Boulevard Princesse Grace de Monaco-bis
06300 Nice
7.307013862
43.692366331
31/12/2016
  • NO2
  • relativeHumidity
  • temperature
  • LAeq
  • solarRadiation
  • windDirection
  • windSpeed
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved
Device:AZIMUT-MULTIFLOW-GBOX001988Balise GBOX001988 Garage Connexio Yarris 1 DQ-307-WV
06000 Nice
7.2147669
43.6693858
31/12/2016
  • NO2
  • temperature
  • LAeq
  • relativeHumidity
  • AirQualityObserved
  • NoiseLevelObserved
  • WeatherObserved

Emplacement des capteurs


Modèle de données

Le modèle de données permet de structurer les informations selon le schéma ci-dessous :
{
  "id": "WeatherObserved:AZIMUT-MULTIFLOW-GBOX001391",
  "type": "WeatherObserved",
  "address": {
    "type": "PostalAddress",
    "value": {
      "addressCountry": "FR",
      "streetAddress": "Promenade Corniglion Sud",
      "postalCode": "06000",
      "addressLocality": "Nice"
    }
  },
  "dataProvider": {
    "type": "Text",
    "value": "Métropole Nice Côte d%27Azur"
  },
  "dateModified": {
    "type": "DateTime",
    "value": "2024-07-04T04:06:20.898Z"
  },
  "dateObserved": {
    "type": "DateTime",
    "value": "2024-07-04T02:30:00.000Z"
  },
  "location": {
    "type": "geo:json",
    "value": {
      "coordinates": [
        7.203283707,
        43.680722975
      ],
      "type": "Point"
    }
  },
  "name": {
    "type": "Text",
    "value": "Balise GBOX001391"
  },
  "refDevice": {
    "type": "Text",
    "value": "Device:AZIMUT-MULTIFLOW-GBOX001391"
  },
  "relativeHumidity": {
    "type": "Number",
    "value": 0.75,
    "metadata": {
      "timestamp": {
        "type": "DateTime",
        "value": "2024-07-04T02:30:00.000Z"
      },
      "unitCode": {
        "type": "Text",
        "value": "P1"
      }
    }
  },
  "solarRadiation": {
    "type": "Number",
    "value": 7.878378868,
    "metadata": {
      "timestamp": {
        "type": "DateTime",
        "value": "2024-07-04T02:30:00.000Z"
      },
      "unitCode": {
        "type": "Text",
        "value": "D54"
      }
    }
  },
  "source": {
    "type": "Text",
    "value": "Azimut"
  },
  "temperature": {
    "type": "Number",
    "value": 21.21146965,
    "metadata": {
      "timestamp": {
        "type": "DateTime",
        "value": "2024-07-04T02:30:00.000Z"
      },
      "unitCode": {
        "type": "Text",
        "value": "CEL"
      }
    }
  },
  "windDirection": {
    "type": "Number",
    "value": 5,
    "metadata": {
      "timestamp": {
        "type": "DateTime",
        "value": "2024-07-04T02:30:00.000Z"
      },
      "unitCode": {
        "type": "Text",
        "value": "DD"
      }
    }
  },
  "windSpeed": {
    "type": "Number",
    "value": 0.0692726,
    "metadata": {
      "timestamp": {
        "type": "DateTime",
        "value": "2024-07-04T02:30:00.000Z"
      },
      "unitCode": {
        "type": "Text",
        "value": "MTS"
      }
    }
  }
}

Documentation relative à l'API

La documentation est utile aux développeurs désirant utiliser l'API fournie par la Métropole Nice Côte d'Azur.

Ci-dessous, vous trouverez la description de l'utilisation de l'API ainsi que la possibilité d'effectuer des tests de requêtes API (certaines API nécessitent une clé, voir Public Access Level et Right dans la description du jeu de données.)
Vous pouvez demander une clé d'API en cliquant ici.

Exemple de code

Afin de faciliter la prise en main de l'API, plusieurs exemples d'extraction des données stockées par la métropole sur son entrepôt « Temps Réel » et « Historique » sont mis à disposition des développeurs.

Ces exemples ne prennent pas en compte la globalité des cas d'usage et des attributs décrits dans le dataModel. Il est possible de les adapter pour répondre à un besoin plus spécifique. Afin d'avoir plus de détails sur la liste complète des attributs, nous vous conseillons de vous reporter à la documentation de l'API.

Les exemples sont proposés dans les langages suivants « Curl / Java / Javascript / Python / C# », avec les cas d'usage suivants :
  • Temps réel – Dernière valeur reçue au moment de la requête
    • Cas d'usage 1 : Renvoie les Observation Météorologiques de type "WeatherObserved"
    • Cas d'usage 2 : Renvoie les données d'un ID donné
    • Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
  • Historique
    • Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné

Curl

  • Temps réel - Cas d'usage 1 : Renvoie les Observation Météorologiques de type "WeatherObserved"
curl -X GET "https://api.nicecotedazur.org/nca/weather/observation/?idPattern=^WeatherObserved:AZIMUT-MULTIFLOW&api_key=API_KEY"
  • Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
curl -X GET "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940?api_key=API_KEY"
  • Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
curl -X GET "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940?attrs=relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed&api_key=API_KEY"
  • Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
curl -X GET "https://api.nicecotedazur.org/nca/weather/observation/histo/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940?attrs=relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed&fromDate=2023-07-01T09:00:00&toDate=2023-07-31T09:00:00&api_key=API_KEY"

Java

  • Temps réel - Cas d'usage 1 : Renvoie les Observation Météorologiques de type "WeatherObserved"
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
 
public class case1 {
 
    public static void main(String[] args) throws IOException, InterruptedException {
        String urlencode = "https://api.nicecotedazur.org/nca/weather/observation/?idPattern=^WeatherObserved:AZIMUT-MULTIFLOW&api_key=API_KEY";
        HttpRequest request = HttpRequest.newBuilder()
                .version(HttpClient.Version.HTTP_2)
                .uri(URI.create(
                        urlencode))
                .GET()
                .build();
                
        HttpClient client = HttpClient.newHttpClient();
        HttpResponse response = client.send(request, BodyHandlers.ofString());
 
        System.out.println(response.body());
    }
}
  • Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
 
public class case2 {
 
    public static void main(String[] args) throws IOException, InterruptedException {
        String urlencode = "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940?api_key=API_KEY";
        HttpRequest request = HttpRequest.newBuilder()
                .version(HttpClient.Version.HTTP_2)
                .uri(URI.create(
                        urlencode))
                .GET()
                .build();
                
        HttpClient client = HttpClient.newHttpClient();
        HttpResponse response = client.send(request, BodyHandlers.ofString());
 
        System.out.println(response.body());
    }
}
  • Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
 
public class case3 {
 
    public static void main(String[] args) throws IOException, InterruptedException {
        String urlencode = "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940?attrs=relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed&api_key=API_KEY";
        HttpRequest request = HttpRequest.newBuilder()
                .version(HttpClient.Version.HTTP_2)
                .uri(URI.create(
                        urlencode))
                .GET()
                .build();
                
        HttpClient client = HttpClient.newHttpClient();
        HttpResponse response = client.send(request, BodyHandlers.ofString());
 
        System.out.println(response.body());
    }
}
  • Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
import java.io.IOException;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
 
public class case4 {
 
    public static void main(String[] args) throws IOException, InterruptedException {
        String urlencode = "https://api.nicecotedazur.org/nca/weather/observation/histo/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940?attrs=relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed&fromDate=2023-07-01T09:00:00&toDate=2023-07-31T09:00:00&api_key=API_KEY";
        HttpRequest request = HttpRequest.newBuilder()
                .version(HttpClient.Version.HTTP_2)
                .uri(URI.create(
                        urlencode))
                .GET()
                .build();
                
        HttpClient client = HttpClient.newHttpClient();
        HttpResponse response = client.send(request, BodyHandlers.ofString());
 
        System.out.println(response.body());
    }
}

Javascript

  • Temps réel - Cas d'usage 1 : Renvoie les Observation Météorologiques de type "WeatherObserved"
const url = "https://api.nicecotedazur.org/nca/weather/observation/"
 
const params = {
    idPattern: '^WeatherObserved:AZIMUT-MULTIFLOW',
    api_key: 'API_KEY'
}
const searchParams = new URLSearchParams(params)
 
var requestOptions = {
    method: 'GET',
    redirect: 'follow'
};
fetch(url + '?' + searchParams, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));
  • Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
const url = "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940"
 
const params = {
    api_key: 'API_KEY'
}
const searchParams = new URLSearchParams(params)
 
var requestOptions = {
    method: 'GET',
    redirect: 'follow'
};
fetch(url + '?' + searchParams, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));
  • Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
const url = "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940"
 
const params = {
    attrs: 'relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed',
    api_key: 'API_KEY'
}
const searchParams = new URLSearchParams(params)
 
var requestOptions = {
    method: 'GET',
    redirect: 'follow'
};
fetch(url + '?' + searchParams, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));
  • Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
const url = "https://api.nicecotedazur.org/nca/weather/observation/histo/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940"
 
const params = {
    attrs: 'relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed',
    fromDate: '2023-07-01T09:00:00',
    toDate: '2023-07-31T09:00:00',
    api_key: 'API_KEY'
}
const searchParams = new URLSearchParams(params)
 
var requestOptions = {
    method: 'GET',
    redirect: 'follow'
};
fetch(url + '?' + searchParams, requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

Python

  • Temps réel - Cas d'usage 1 : Renvoie les Observation Météorologiques de type "WeatherObserved"
import requests
import urllib.parse
 
url = "https://api.nicecotedazur.org/nca/weather/observation/"
searchParams = {
  'idPattern': "^WeatherObserved:AZIMUT-MULTIFLOW",
  'api_key': 'API_KEY'
}
 
response = requests.request("GET", url, params=searchParams)
 
print(response.text)
  • Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
import requests
import urllib.parse
 
url = "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940"
searchParams = {
  'api_key': 'API_KEY'
}
 
response = requests.request("GET", url, params=searchParams)
 
print(response.text)
  • Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
import requests
import urllib.parse
 
url = "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940"
searchParams = {
  'attrs': 'relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed',
  'api_key': 'API_KEY'
}
 
response = requests.request("GET", url, params=searchParams)
 
print(response.text)
  • Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
import requests
import urllib.parse
 
url = "https://api.nicecotedazur.org/nca/weather/observation/histo/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940"
searchParams = {
  'attrs': 'relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed',
  'fromDate': '2023-07-01T09:00:00',
  'toDate': '2023-07-31T09:00:00',
  'api_key': 'API_KEY'
}
 
response = requests.request("GET", url, params=searchParams)
 
print(response.text)

C#

  • Temps réel - Cas d'usage 1 : Renvoie les Observation Météorologiques de type "WeatherObserved"
using System;
using System.Net;
using static System.Web.HttpUtility;
 
namespace Case1
{
    class Program
    {
        static async Task Main(string[] args)
        {
            string URL = "https://api.nicecotedazur.org/nca/weather/observation/";
 
            using var client = new HttpClient();
            var builder = new UriBuilder(URL)
            {
               Query = "idPattern=^WeatherObserved:AZIMUT-MULTIFLOW&api_key=API_KEY"
            }
            var url = builder.ToString();
 
            var res = await client.GetAsync(url);
 
            var content = await res.Content.ReadAsStringAsync();
            Console.WriteLine(content);
        }
    }
}
  • Temps réel - Cas d'usage 2 : Renvoie les données d'un ID donné
using System;
using System.Net;
using static System.Web.HttpUtility;
 
namespace Case2
{
    class Program
    {
        static async Task Main(string[] args)
        {
            string URL = "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940";
 
            using var client = new HttpClient();
            var builder = new UriBuilder(URL)
            {
               Query = "api_key=API_KEY"
            }
            var url = builder.ToString();
 
            var res = await client.GetAsync(url);
 
            var content = await res.Content.ReadAsStringAsync();
            Console.WriteLine(content);
        }
    }
}
  • Temps réel - Cas d'usage 3 : Renvoie les valeurs des attributs passés en paramètre pour un ID donné
using System;
using System.Net;
using static System.Web.HttpUtility;
 
namespace Case3
{
    class Program
    {
        static async Task Main(string[] args)
        {
            string URL = "https://api.nicecotedazur.org/nca/weather/observation/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940";
 
            using var client = new HttpClient();
            var builder = new UriBuilder(URL)
            {
               Query = "attrs=relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed&api_key=API_KEY"
            }
            var url = builder.ToString();
 
            var res = await client.GetAsync(url);
 
            var content = await res.Content.ReadAsStringAsync();
            Console.WriteLine(content);
        }
    }
}
  • Historique - Cas d'usage 4 : Renvoie une liste de valeurs horodatées d'un attribut passé en paramètre pour un ID donné
using System;
using System.Net;
using static System.Web.HttpUtility;
 
namespace Case4
{
    class Program
    {
        static async Task Main(string[] args)
        {
            string URL = "https://api.nicecotedazur.org/nca/weather/observation/histo/WeatherObserved:AZIMUT-MULTIFLOW-GBOX001940";
 
            using var client = new HttpClient();
            var builder = new UriBuilder(URL)
            {
               Query = "attrs=relativeHumidity,address,solarRadiation,temperature,windDirection,windSpeed&fromDate=2023-07-01T09:00:00&toDate=2023-07-31T09:00:00&api_key=API_KEY"
            }
            var url = builder.ToString();
 
            var res = await client.GetAsync(url);
 
            var content = await res.Content.ReadAsStringAsync();
            Console.WriteLine(content);
        }
    }
}