Partage via


Ingérer des données de prévisions météorologiques dans Azure Data Manager for Agriculture

La météo constitue un service hautement démocratisé dans le secteur d’activité de l’agriculture. Azure Data Manager for Agriculture offre aux clients la possibilité de collaborer avec le fournisseur météorologique de leur choix.

Azure Data Manager for Agriculture propose des données météorologiques actuelles et prévisionnelles via une approche par extension et indépendante du fournisseur. Vous pouvez travailler avec un fournisseur de votre choix en suivant les étapes requises pour écrire une extension météorologique.

Aperçu de la conception

Étant donné qu’Azure Data Manager for Agriculture fournit des données météorologiques via une approche indépendante du fournisseur, vous n’avez pas besoin de vous familiariser avec les API d’un fournisseur. Au lieu de cela, vous pouvez utiliser les mêmes API Azure Data Manager for Agriculture sans tenir compte du fournisseur.

Voici quelques remarques sur le comportement des API indépendantes du fournisseur :

  • Vous pouvez demander les données météorologiques de 50 emplacements au maximum via un seul appel.
  • Les données prévisionnelles ne sont pas antérieures à 15 minutes. Les données des conditions actuelles ne sont pas antérieures à 10 minutes.
  • Une fois l’appel initial effectué pour un emplacement, les données sont mises en cache pendant la durée de vie (TTL) définie.
  • Pour conserver le cache actif, vous pouvez utiliser le paramètre apiFreshnessTimeInMinutes dans l’extension météorologique. La plateforme continue à exécuter le travail pendant la durée définie et met à jour le cache. La valeur par défaut est zéro, ce qui signifie que le cache n’est pas maintenu en activité par défaut.

Les sections suivantes fournissent les commandes permettant d’extraire les données météorologiques et de les ingérer dans Azure Data Manager for Agriculture.

Étape 1 : Installer l’extension météorologique

Pour installer l’extension, exécutez la commande suivante à l’aide de l’outil ARMClient d’Azure Resource Manager.

Remplacez toutes les valeurs comprises entre crochets pointus (<>) par les valeurs de votre environnement respectif. L’ID d’extension actuellement pris en charge est IBM.TWC.

armclient PUT /subscriptions/<subscriptionid>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-resource-name>/extensions/<extensionid>?api-version=2020-05-12-preview '{}'

Voici un exemple de sortie pour la commande d’installation :

{
      "id": "/subscriptions/<subscriptionid>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-resource-name>/extensions/<extensionid>",
      "type": "Microsoft.AgFoodPlatform/farmBeats/extensions",
      "systemData": {
        "createdBy": "testuser@abc.com",
        "createdByType": "User",`        
        "createdAt": "2021-03-17T12:36:51Z",
        "lastModifiedBy": "testuser@abc.com",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2021-03-17T12:36:51Z"
      },
      "properties": {
        "category": "Weather",
        "installedExtensionVersion": "1.0",
        "extensionAuthLink": "https://www.<provider.com/integration/",
        "extensionApiDocsLink": "https://docs.<provider>.com/documentation/Weather_Data/Historical_and_Climatological_Weather/latest#_daily_historical_ag_weather_v1_0"
      },
      "eTag": "92003c91-0000-0700-0000-804752e00000",
      "name": "<provider>"
}

Une fois l’extension installée, vous pouvez ingérer des données météorologiques.

Si vous souhaitez mettre à jour apiFreshnessTimeInMinutes, mettez à jour l’extension à l’aide de la commande PowerShell suivante. Remplacez toutes les valeurs comprises entre crochets pointus par les valeurs de votre environnement respectif.

armclient put /subscriptions/<subscriptionid>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-resource-name>/<extensionid>?api-version=2021-09-01-preview '{"additionalApiProperties": {""15-day-daily-forecast"": {"apiFreshnessTimeInMinutes": <time>}, ""currents-on-demand"": {"apiFreshnessTimeInMinutes": <time>},""15-day-hourly-forecast"":{"apiFreshnessTimeInMinutes": <time>}}}'

La commande de mise à jour précédente fusionne les opérations patch. Elle met à jour le temps d’actualisation uniquement pour l’API mentionnée dans la commande et conserve les valeurs de temps d’actualisation des autres API telles qu’elles étaient auparavant.

Voici un exemple de sortie pour la commande de mise à jour :

{
  "id": "/subscriptions/<subscriptionid>/resourceGroups/<resource-group-name>/providers/Microsoft.AgFoodPlatform/farmBeats/<farmbeats-resource-name>/extensions/<extensionid>",
  "type": "Microsoft.AgFoodPlatform/farmBeats/extensions",
  "systemData": {
    "createdBy": "50e74af5-3b8f-4a8c-9521-4f506b4e0c16",
    "createdByType": "User",
    "createdAt": "2022-10-10T21:28:05Z",
    "lastModifiedBy": "50e74af5-3b8f-4a8c-9521-4f506b4e0c16",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2022-11-08T13:10:17Z"
  },
  "properties": {
    "extensionId": "provider",
    "extensionCategory": "Weather",
    "installedExtensionVersion": "2.0",
    "extensionApiDocsLink": "https://go.microsoft.com/fwlink/?linkid=2192974",
    "additionalApiProperties": {
      "15-day-daily-forecast": {
        "apiFreshnessTimeInMinutes": 1600
      },
      "currents-on-demand": {
        "apiFreshnessTimeInMinutes": 1600
      },
       "15-day-hourly-forecast": {
        "apiFreshnessTimeInMinutes": 1600
      }
    }
  },
  "eTag": "ea0261d0-0000-0700-0000-636a55390000",
  "name": "provider"
}

Étape 2 : extraire des données météorologiques

Après obtention des informations d’identification requises pour accéder aux API, vous devez appeler l’API Weather Data pour extraire les données météorologiques.