Données relatives aux observations météorologiques

Les données relatives aux observations 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:EPG-MULTIFLOW-SACCAG04Station Col de Vence 7336 route de Coursegoules
06140 Vence
7.07491728
43.7605336
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACCAG07Station CT Vence 1440 Chemin de la Sine
06140 Vence
7.0905557
43.71313649
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACCAG08Station Cambreniers Chemin Cambreniers
06140 Vence
7.08871373
43.73529582
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACCAG12Station Coursegoules 151 route de l'Ourmeou
06140 Coursegoules
7.03379927
43.78942746
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACMAG02Station la Costière 218 Chemin de la Costière
06000 Nice
7.22706968
43.72232618
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACMAG04Station Aspremont 746 route de Tourette-Levens
06790 Aspremont
7.25228975
43.78233117
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI02Station Abattoirs Boulevard Jean Baptiste Vérany
06300 Nice
7.28472419
43.71865344
01/01/2019
  • flow
  • height
  • precipitation
  • temperature
  • WaterObserved
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI05Station Plan de Revel Avenue du Haut Pays, Lieu-dit Plan de Revel
06690 Tourrette-Levens
7.27951698
43.76999528
01/01/2019
  • flow
  • height
  • precipitation
  • temperature
  • WaterObserved
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI08Station Contes Quartier le Gheit D15
06390 Contes
7.284724193
43.80554578
01/01/2019
  • flow
  • height
  • precipitation
  • temperature
  • WaterObserved
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI09Station Coaraze Route du Col Saint Roch
06390 Coaraze
7.29297862
43.8661877
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI11Station Laghet Quartier Saint Pierre, Laghet
06340 La Trinité
7.37607551
43.74602382
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI12Station Moulin de Peillon Quartier les Près Moulin de Peillon
06440 Peillon
7.37213171
43.77220455
01/01/2019
  • flow
  • height
  • precipitation
  • temperature
  • WaterObserved
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI13Station La Baissa Route stratégique des Blanquettes, Lieu-dit la Baissa
06440 Peillon
7.39354945
43.82698743
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI14Station L'Escarène RD 2566, à proximité de la gare SNCF
06440 L'Escarène
7.35127711
43.84051218
01/01/2019
  • precipitation
  • temperature
  • WeatherObserved
Device:EPG-MULTIFLOW-SACPAI15Station Lucéram RD2566, Cimetière
06440 Lucéram
7.35425781
43.87921788
01/01/2019
  • precipitation
  • temperature
  • 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:EPG-MULTIFLOW-SACPAI14",
  "type": "WeatherObserved",
  "address": {
    "type": "PostalAddress",
    "value": {
      "addressCountry": "FR",
      "streetAddress": "RD 2566, à proximité de la gare SNCF",
      "postalCode": "06440",
      "addressLocality": "L%27Escarène"
    }
  },
  "dataProvider": {
    "type": "Text",
    "value": "Métropole Nice Côte d%27Azur"
  },
  "dateModified": {
    "type": "DateTime",
    "value": "2024-07-04T11:13:06.272Z"
  },
  "dateObserved": {
    "type": "DateTime",
    "value": "2024-07-04T11:12:00.000Z"
  },
  "location": {
    "type": "geo:json",
    "value": {
      "coordinates": [
        7.35127711,
        43.84051218
      ],
      "type": "Point"
    }
  },
  "name": {
    "type": "Text",
    "value": "Station L%27Escarène"
  },
  "precipitation": {
    "type": "Number",
    "value": 0,
    "metadata": {
      "timestamp": {
        "type": "DateTime",
        "value": "2024-07-04T11:12:00.000Z"
      },
      "unitCode": {
        "type": "Text",
        "value": "MMT"
      }
    }
  },
  "refDevice": {
    "type": "Text",
    "value": "Device:EPG-MULTIFLOW-SACPAI14"
  },
  "source": {
    "type": "Text",
    "value": "EPG"
  },
  "temperature": {
    "type": "Number",
    "value": 30.988784619,
    "metadata": {
      "timestamp": {
        "type": "DateTime",
        "value": "2024-07-04T11:12:00.000Z"
      },
      "unitCode": {
        "type": "Text",
        "value": "CEL"
      }
    }
  }
}

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:EPG-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:EPG-MULTIFLOW-SACPAI14?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:EPG-MULTIFLOW-SACPAI14?attrs=temperature&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:EPG-MULTIFLOW-SACPAI14?attrs=temperature&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:EPG-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:EPG-MULTIFLOW-SACPAI14?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:EPG-MULTIFLOW-SACPAI14?attrs=temperature&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:EPG-MULTIFLOW-SACPAI14?attrs=temperature&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:EPG-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:EPG-MULTIFLOW-SACPAI14"
 
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:EPG-MULTIFLOW-SACPAI14"
 
const params = {
    attrs: 'temperature',
    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:EPG-MULTIFLOW-SACPAI14"
 
const params = {
    attrs: 'temperature',
    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:EPG-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:EPG-MULTIFLOW-SACPAI14"
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:EPG-MULTIFLOW-SACPAI14"
searchParams = {
  'attrs': 'temperature',
  '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:EPG-MULTIFLOW-SACPAI14"
searchParams = {
  'attrs': 'temperature',
  '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:EPG-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:EPG-MULTIFLOW-SACPAI14";
 
            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:EPG-MULTIFLOW-SACPAI14";
 
            using var client = new HttpClient();
            var builder = new UriBuilder(URL)
            {
               Query = "attrs=temperature&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:EPG-MULTIFLOW-SACPAI14";
 
            using var client = new HttpClient();
            var builder = new UriBuilder(URL)
            {
               Query = "attrs=temperature&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);
        }
    }
}