取得氣候合作夥伴的氣候資料

Azure FarmBeats 可協助您使用 Docker 型連接器架構,帶入氣候資料提供者提供的氣候資料。 使用此架構,氣候資料提供者會實作可與 FarmBeats 整合的 Docker。 目前支援下列氣候資料提供者。

重要

Azure FarmBeats 已淘汰。 您可以 在這裡看到公開公告。

我們已建置新的農業焦點服務,其名稱為適用於農業的 Azure 數據管理員,現在可做為預覽服務使用。 如需詳細資訊,請參閱 此處 的公開檔,或在此 madma@microsoft.com寫入我們。

FarmBeats 合作夥伴

DTN

氣候資料可用以產生可採取動作的見解,並在 FarmBeats 中建置 AI 或 ML 模型。

開始之前

若要取得氣候資料,請確定您已安裝 FarmBeats。 1.2.11 版和更新版本支援氣候整合。

使用 FarmBeats 實現氣候整合

開始取得 FarmBeats Datahub 上的氣候資料:

  1. 前往您的 FarmBeats Datahub Swagger https://farmbeatswebsite-api.azurewebsites.net/swagger

  2. 前往 /Partner API,然後提出 POST 要求。 使用下列輸入承載:

    {  
    
      "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": {  }  
    }  
    

    例如,若要從 DTN 取得氣候資料,請使用下列承載。 您可以根據自己的喜好設定修改名稱和描述。

    注意

    以下步驟需要 API 金鑰。 若要取得 DTN 訂閱金鑰,請連絡 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"
    }  
    

    注意

    如需合作夥伴物件的詳細資訊,請參閱本文的附錄

    上一個步驟會佈建資源,讓 Docker 在客戶的 FarmBeats 環境中執行。

    佈建資源大約需要 10 到 15 分鐘。

  3. 檢查您在上一個步驟中建立的 /Partner 物件狀態。 若要檢查狀態,請對 /Partner API 提出 GET 要求,然後檢查合作夥伴物件的狀態。 在 FarmBeats 成功佈建合作夥伴之後,狀態會設定為作用中

  4. 對 /JobType API 提出 GET 要求。 在合作夥伴新增流程中,檢查您稍早建立的氣候作業。 在氣候作業中,[pipelineName] 欄位的格式如下:partner-name_partner-type_job-name

    現在您的 FarmBeats 執行個體有作用中的氣候資料合作夥伴。 您可以執行作業,要求特定位置 (緯度和經度) 和日期範圍內的氣候資料。 作業類型會有執行氣候作業所需參數的詳細資料。

    例如,DTN 會建立下列作業類型:

    • get_dtn_daily_observations:取得位置和時段的每日觀察。
    • get_dtn_daily_forecasts:取得位置和時段的每日預測。
    • get_dtn_hourly_observations:取得位置和時段的每小時觀察。
    • get_dtn_hourly_forecasts:取得位置和時段的每小時預測。
  5. 記下作業類型的識別碼和參數。

  6. 前往 /Jobs API,並對 /Jobs 提出 POST 要求。 使用下列輸入承載:

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

    例如,使用下列承載執行 get_dtn_daily_observations

    { 
          "typeId": "<id of the JobType>",
          "arguments": {
                "latitude": 47.620422,
                "longitude": -122.349358,
                "days": 5
          },
          "name": "<name of the job>",
          "description": "<description>",
          "properties": {}
    }
    
  7. 上述步驟會執行合作夥伴 Docker 所定義的氣候作業,並將氣候資料內嵌至 FarmBeats。 您可以對 /Jobs 提出 GET 要求,檢查作業的狀態。 在回應中尋找 currentState。 完成後,currentState 會設為 Succeeded

查詢內嵌的氣候資料

氣候作業完成後,您可以使用 FarmBeats Datahub REST API 查詢內嵌的氣候資料,以建置模型或可採取動作的見解。

使用 FarmBeats REST API 查詢氣候資料:

  1. 在 FarmBeats Datahub Swagger中,前往 /WeatherDataLocation API 並提出 GET 要求。 回應包含針對作業執行指定位置 (緯度和經度) 所建立的 /WeatherDataLocation 物件。 記下物件的 識別碼weatherDataModelId

  2. 和前面一樣,針對 weatherDataModelId 向 /WeatherDataModel API 提出 GET/{id} 要求。 氣候資料模型會顯示內嵌氣候資料的所有中繼資料和詳細資料。 例如,在氣候資料模型物件中,氣候量值會詳細說明支援的氣候資訊,以及所用類型和單位。 例如:

    {
        "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>"
    }
    

    請記下氣候資料模型之 GET/{id} 呼叫的回應。

  3. 前往遙測 API 並提出 POST 要求。 使用下列輸入承載:

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

    回應會顯示指定時間範圍內可用的氣候資料:

    {
      "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>"
        }
      ]
    }
    

在上例中,回應會顯示兩個時間戳記的資料。 也會顯示量值名稱 (溫度),以及兩個時間戳記中的報告氣候資料值。 請參閱相關聯的氣候資料模型,以解譯報告值的類型和單位。

針對作業失敗進行疑難排解

若要針對作業失敗進行疑難排解,請檢查作業記錄

附錄

Partner 詳細資料
DockerDetails - imageName Docker 映像名稱。 例如,docker.io/mydockerimage (hub.docker.com 中的映像) 或 myazureacr.azurecr.io/mydockerimage (Azure Container Registry 中的映像) 等等。 如未提供登錄,則預設值為 hub.docker.com。
DockerDetails - imageTag Docker 映像的標記名稱。 預設值為 "latest"。
DockerDetails - 認證 用來存取私人 Docker 的認證。 合作夥伴會提供認證。
DockerDetails - azureBatchVMDetails - batchVMSKU Azure Batch VM SKU。 如需詳細資訊,請參閱所有可用的 Linux 虛擬機器

有效值為 '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' 和 'STANDARD_D2_V3'。 預設值為 'STANDARD_D2_V2'
DockerDetails - azureBatchVMDetails - dedicatedComputerNodes 每個批次集區的專用電腦節點數目。 預設值為 1。
DockerDetails - azureBatchVMDetails - nodeAgentSKUID Azure Batch 節點代理程式 SKU 識別碼。 目前僅支援 "batch.node.ubuntu 18.04" 批次節點代理程式。
DockerDetails - partnerCredentials 在 Docker 中呼叫合作夥伴 API 所用的認證。 合作夥伴會根據支援的授權機制提供這項資訊,例如,使用者名稱和密碼,或 API 金鑰。
partnerType 「氣候」。 FarmBeats 中的其他合作夥伴類型為「感應器」和「意象」。
NAME FarmBeats 系統中所需的合作夥伴名稱。
description 描述

下一步

從 Azure FarmBeats 執行個體查詢了感應器資料後,即可了解如何為伺服器陣列產生對應