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

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 o počasí Docker, který lze integrovat s FarmBeats. V současné době se podporuje následující poskytovatel dat o počasí.

Důležité

Azure FarmBeats je vyřazeno. Veřejné oznámení si můžete prohlédnout tady.

Vytvořili jsme novou službu zaměřenou na zemědělství. Jmenuje se Azure Data Manager for Agriculture a teď je k dispozici jako služba Preview. Další informace najdete ve veřejné dokumentaci zde nebo nám napište na adrese madma@microsoft.com.

Partneři FarmBeats

DTN

Data o počasí se dají použít ke generování akčních přehledů a vytváření modelů AI nebo ML v 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 novějších.

Povolení integrace počasí s FarmBeats

Pokud chcete začít získávat data o počasí na datovém panelu FarmBeats:

  1. Přejděte do datového centra FarmBeats Swagger https://farmbeatswebsite-api.azurewebsites.net/swagger.

  2. Přejděte do rozhraní /Partner API a 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, kontaktujte 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 příloze v tomto článku.

    Předchozí krok zřídí prostředky, aby se Docker mohl 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, vytvořte požadavek GET v rozhraní /Partner API a zkontrolujte stav partnerského objektu. Jakmile FarmBeats úspěšně zřídí partnera, 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 o 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í. Můžete spustit úlohy a požádat o data o počasí pro konkrétní místo (zeměpisnou šířku a délku) a rozsah kalendářních dat. Typy úloh budou obsahovat podrobnosti o parametrech potřebných ke spouš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í místa a časového období.
    • get_dtn_daily_forecasts: Získejte denní prognózy pro umístění a časové období.
    • get_dtn_hourly_observations: Získejte hodinové pozorování místa a časového období.
    • get_dtn_hourly_forecasts: Získejte hodinové prognózy pro umístění a časové období.
  5. Poznamenejte si ID a parametry typů úloh.

  6. Přejděte do rozhraní API /Jobs 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 chcete například 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 tak, že na /Jobs vytvoříte požadavek GET. V odpovědi vyhledejte currentState. Po dokončení je hodnota currentStatenastavená na Úspěch.

Dotazování na ingestované údaje o počasí

Po dokončení úloh počasí můžete pomocí rozhraní REST API datového centra FarmBeats dotazovat ingestovaná data o počasí a vytvářet modely nebo užitečné přehledy.

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

  1. V datovém sadě FarmBeats Swagger přejděte do rozhraní API /WeatherDataLocation a vytvořte požadavek GET. Odpověď obsahuje objekty /WeatherDataLocation vytvořené pro umístění (zeměpisnou šířku a délku), které byla úloha spuštěna. Poznamenejte si ID a weatherDataModelId objektů.

  2. Proveďte požadavek GET/{id} v rozhraní API /WeatherDataModel pro weatherDataModelId stejně jako 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í míra počasí podrobně popisuje, jaké informace o počasí jsou podporovány 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ěď volání GET/{id} pro datový model počasí.

  3. Přejděte do rozhraní API pro telemetrii 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ěď zobrazí 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ítkách. Pokud chcete interpretovat typ a jednotku hlášených hodnot, projděte si přidružený datový model počasí.

Řešení potíží se selháním ú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, je výchozí hub.docker.com.
DockerDetails – imageTag Název značky image Dockeru Výchozí hodnota je "nejnovější".
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 Azure Batch skladové položky virtuálního počítače. 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 – dedicatedComputerNodes Počet vyhrazených počítačových uzlů na fond dávky Výchozí hodnota je 1.
DockerDetails – azureBatchVMDetails – nodeAgentSKUID id skladové položky agenta uzlu Azure Batch. V současné době se podporuje pouze agent dávkového uzlu 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šími typy partnerů v FarmBeats jsou "Sensor" a "Imagery".
name Požadovaný název partnera v systému FarmBeats.
description Popis

Další kroky

Teď, když jste se dotazovali na data senzorů z instance Azure FarmBeats, se dozvíte, jak generovat mapy pro farmy.