Získání dat o počasí od partnerů s počasím

Azure FarmBeats vám pomůže přenést data o počasí od poskytovatelů dat o počasí pomocí rozhraní konektoru založeného na Dockeru. Pomocí této architektury implementují poskytovatelé dat počasí Docker, který je možné integrovat s FarmBeats. V současné době se podporuje následující poskytovatel dat o počasí.

FarmBeats partners

DTN

Data o počasí se dají použít k vygenerování přehledů a vytváření AI nebo ML modelů ve FarmBeats.

Než začnete

Pokud chcete získat data o počasí, ujistěte se, že jste nainstalovali FarmBeats. Integrace počasí je podporovaná ve verzích 1.2.11 a vyšších.

Povolení integrace počasí s FarmBeats

Zahájení získávání dat o počasí na DataHubu FarmBeats:

  1. Přejděte na FarmBeats Datahub Swagger https://farmbeatswebsite-api.azurewebsites.net/swagger.

  2. Přejděte do rozhraní /Partner API a pak vytvořte požadavek POST. Použijte následující vstupní datovou část:

    {  
    
      "dockerDetails": {  
        "credentials": { 
          "username": "<credentials to access private docker - not required for public docker>", 
          "password": "<credentials to access private docker – not required for public docker>"  
        },  
        "imageName" : "<docker image name",
        "imageTag" : "<docker image tag, default:latest>",
        "azureBatchVMDetails": {  
          "batchVMSKU" : "<VM SKU. Default is standard_d2_v2>",  
          "dedicatedComputerNodes" : 1,
          "nodeAgentSKUID": "<Node SKU. Default is batch.node.ubuntu 18.04>"  
        }
      },
      "partnerCredentials": {  
        "key1": "value1",  
        "key2": "value2"  
      },  
      "partnerType": "Weather",  
      "name": "<Name of the partner>",  
      "description": "<Description>",
      "properties": {  }  
    }  
    

    Pokud například chcete získat data o počasí z DTN, použijte následující datovou část. Název a popis můžete upravit podle svých preferencí.

    Poznámka

    Následující krok vyžaduje klíč rozhraní API. Pokud chcete získat klíč pro vaše předplatné DTN, obraťte se na DTN.

    {
    
      "dockerDetails": {
        "imageName": "dtnweather/dtn-farm-beats",
        "imageTag": "latest",
        "azureBatchVMDetails": {
          "batchVMSKU": "standard_d2_v2",
          "dedicatedComputerNodes": 1,
          "nodeAgentSKUID": "batch.node.ubuntu 18.04"
        }
      },
      "partnerCredentials": {
       "apikey": "<API key from DTN>"
       },
      "partnerType": "Weather",
      "name": "dtn-weather",
      "description": "DTN registered as a Weather Partner in FarmBeats"
    }  
    

    Poznámka

    Další informace o objektu partnera najdete v dodatku v tomto článku.

    Předchozí krok zřídí prostředky, které umožní Dockeru spouštět v prostředí FarmBeats zákazníka.

    Zřízení prostředků trvá přibližně 10 až 15 minut.

  3. Zkontrolujte stav objektu /Partner, který jste vytvořili v předchozím kroku. Pokud chcete zkontrolovat stav, proveďte požadavek GET na rozhraní /Partner API a zkontrolujte stav objektu partnera. Jakmile FarmBeats zřídí partnera úspěšně, stav se nastaví na Aktivní.

  4. V rozhraní API /JobType vytvořte požadavek GET. V procesu přidání partnera zkontrolujte úlohy počasí, které jste vytvořili dříve. V úlohách počasí má pole pipelineName následující formát: partner-name_partner-type_job-name.

    Teď má vaše instance FarmBeats aktivního partnera pro data o počasí. Úlohy můžete spustit tak, aby požadovaly data o počasí pro konkrétní umístění (zeměpisnou šířku a délku) a rozsah dat. Typy úloh budou obsahovat podrobnosti o parametrech potřebných ke spuštění úloh počasí.

    Například pro DTN se vytvoří následující typy úloh:

    • get_dtn_daily_observations: Získejte denní pozorování pro umístění a časové období.
    • get_dtn_daily_forecasts: Získejte denní prognózy pro umístění a časové období.
    • get_dtn_hourly_observations: Získání hodinových pozorování pro umístění a časové období
    • get_dtn_hourly_forecasts: Získání hodinových prognóz pro umístění a časové období
  5. Poznamenejte si ID a parametry typů úloh.

  6. Přejděte do rozhraní /Jobs API a vytvořte požadavek POST na /Jobs. Použijte následující vstupní datovou část:

     {
          "typeId": "<id of the JobType>",
          "arguments": {
            "additionalProp1": {},
            "additionalProp2": {},
            "additionalProp3": {}
          },
          "name": "<name of the job>",
          "description": "<description>",
          "properties": {}
        }
    

    Pokud například chcete spustit get_dtn_daily_observations, použijte následující datovou část:

    { 
          "typeId": "<id of the JobType>",
          "arguments": {
                "latitude": 47.620422,
                "longitude": -122.349358,
                "days": 5
          },
          "name": "<name of the job>",
          "description": "<description>",
          "properties": {}
    }
    
  7. Předchozí krok spustí úlohy počasí definované v partnerském Dockeru a ingestuje data o počasí do FarmBeats. Stav úlohy můžete zkontrolovat provedením požadavku GET na /Jobs. V odpovědi vyhledejte aktuální stav. Po dokončení je aktuální stav nastavený na Úspěch.

Dotazování na ingestované data počasí

Po dokončení úloh počasí můžete dotazovat ingestovaná data o počasí a vytvářet modely nebo přehledy s možností akcí pomocí rozhraní REST API FarmBeats DataHub.

Dotazování dat o počasí pomocí rozhraní REST API FarmBeats:

  1. Ve službě FarmBeats Datahub Swagger přejděte do rozhraní /WeatherDataLocation API a vytvořte požadavek GET. Odpověď obsahuje objekty /WeatherDataLocation vytvořené pro umístění (zeměpisnou šířku a délku), které úloha spustila zadaná. Poznamenejte si ID a weatherDataModelId objektů.

  2. Vytvořte požadavek GET/{id} na rozhraní API /WeatherDataModel pro weatherDataModelId , jak jste to udělali dříve. Datový model počasí zobrazuje všechna metadata a podrobnosti o přijatých datech počasí. Například v objektu datového modelu počasí podrobně popisuje, jaké informace o počasí se podporují, a v jakých typech a jednotkách. Příklad:

    {
        "name": "Temperature <name of the weather measure - this is what we will receive as part of the queried weather data>",
        "dataType": "Double <Data Type - eg. Double, Enum>",
        "type": "AmbientTemperature <Type of measure eg. AmbientTemperature, Wind speed etc.>",
        "unit": "Celsius <Unit of measure eg. Celsius, Percentage etc.>",
        "aggregationType": "None <either of None, Average, Maximum, Minimum, StandardDeviation, Sum, Total>",
        "description": "<Description of the measure>"
    }
    

    Poznamenejte si odpověď z volání GET/{id} datového modelu počasí.

  3. Přejděte do rozhraní API telemetrie a vytvořte požadavek POST. Použijte následující vstupní datovou část:

    {
        "weatherDataLocationId": "<id from step 1 above>",
      "searchSpan": {
        "from": "2020-XX-XXT07:30:00Z",
        "to": "2020-XX-XXT07:45:00Z"
      }
    }
    

    Odpověď zobrazuje data o počasí, která jsou k dispozici pro zadaný časový rozsah:

    {
      "timestamps": [
        "2020-XX-XXT07:30:00Z",
        "2020-XX-XXT07:45:00Z"
      ],
      "properties": [
        {
          "values": [
            "<id of the weatherDataLocation>",
            "<id of the weatherDataLocation>"
          ],
          "name": "Id",
          "type": "String"
        },
        {
          "values": [
            29.1,
            30.2
          ],
          "name": "Temperature <name of the WeatherMeasure as defined in the WeatherDataModel object>",
          "type": "Double <Data Type of the value - eg. Double>"
        }
      ]
    }
    

V předchozím příkladu odpověď zobrazuje data pro dvě časové razítka. Zobrazuje také název míry (teplota) a hodnoty hlášených dat o počasí ve dvou časových razítecích. Pokud chcete interpretovat typ a jednotku ohlášených hodnot, podívejte se na přidružený datový model počasí.

Řešení potíží se selháními úloh

Pokud chcete řešit potíže se selháními úloh, zkontrolujte protokoly úloh.

Přílohy

Partner Podrobnosti
DockerDetails – imageName Název image Dockeru Například docker.io/mydockerimage (obrázek v hub.docker.com) nebo myazureacr.azurecr.io/mydockerimage (obrázek v Azure Container Registry) atd. Pokud není k dispozici žádný registr, výchozí hodnota je hub.docker.com.
DockerDetails – imageTag Název značky image Dockeru Výchozí hodnota je "latest".
DockerDetails – přihlašovací údaje Přihlašovací údaje pro přístup k privátnímu Dockeru Partner poskytne přihlašovací údaje.
DockerDetails – azureBatchVMDetails – batchVMSKU skladová položka virtuálního počítače Azure Batch. Další informace najdete na všech dostupných virtuálních počítačích s Linuxem.

Platné hodnoty jsou "Small", 'ExtraLarge', 'Large', 'A8', 'A9', 'Medium', 'A5', 'A6', 'A7', 'STANDARD_D1', 'STANDARD_D2', 'STANDARD_D3', 'STANDARD_D4', 'STANDARD_D11', 'STANDARD_D12', 'STANDARD_D13', 'STANDARD_D14', 'A10', 'A11', 'STANDARD_D1_V2', 'STANDARD_D2_V2', 'STANDARD_D3_V2', 'STANDARD_D4_V2', 'STANDARD_D11_V2', 'STANDARD_D12_V2', 'STANDARD_D13_V2', 'STANDARD_D14_V2', 'STANDARD_G1', 'STANDARD_G2', 'STANDARD_G3', 'STANDARD_G4', 'STANDARD_G5', 'STANDARD_D5_V2', 'BASIC_A1', 'BASIC_A2', 'BASIC_A3', 'BASIC_A4', 'STANDARD_A1', 'STANDARD_A2', 'STANDARD_A3', 'STANDARD_A4', 'STANDARD_A5', 'STANDARD_A6', 'STANDARD_A7', 'STANDARD_A8', 'STANDARD_A9', 'STANDARD_A10', 'STANDARD_A11', 'STANDARD_D15_V2', 'STANDARD_F1', 'STANDARD_F2', 'STANDARD_F4', 'STANDARD_F8', 'STANDARD_F16', 'STANDARD_NV6', "STANDARD_NV12", "STANDARD_NV24", "STANDARD_NC6", "STANDARD_NC12", "STANDARD_NC24", "STANDARD_NC24r", "STANDARD_H8", "STANDARD_H8m", "STANDARD_H16", "STANDARD_H16m", "STANDARD_H16mr", "STANDARD_H16r", "STANDARD_A1_V2", "STANDARD_A2_V2", "STANDARD_A4_V2", "STANDARD_A8_V2", "STANDARD_A2m_V2", "STANDARD_A4m_V2", "STANDARD_A8m_V2", "STANDARD_M64ms", "STANDARD_M128s" a "STANDARD_D2_V3". Výchozí hodnota je STANDARD_D2_V2.
DockerDetails – azureBatchVMDetails – dedicatedComputerNode Počet vyhrazených uzlů počítače na fond dávek Výchozí hodnota je 1.
DockerDetails – azureBatchVMDetails – nodeAgentSKUID Azure Batch ID skladové položky agenta uzlu. V současné době se podporuje pouze agent batch.node.ubuntu 18.04.
DockerDetails – partnerCredentials Přihlašovací údaje pro volání partnerského rozhraní API v Dockeru Partner poskytuje tyto informace na základě podporovaného mechanismu autorizace; Například uživatelské jméno a heslo nebo klíče rozhraní API.
partnerType "Počasí". Další typy partnerů ve FarmBeats jsou "Sensor" a "Imagery".
name Požadovaný název partnera v systému FarmBeats
description Popis

Další kroky

Teď, když jste dotazovali data ze snímačů z vaší instance Azure FarmBeats, zjistěte, jak generovat mapy pro farmy.