取得氣候合作夥伴的氣候資料
Azure FarmBeats 可協助您使用 Docker 型連接器架構,帶入氣候資料提供者提供的氣候資料。 使用此架構,氣候資料提供者會實作可與 FarmBeats 整合的 Docker。 目前支援下列氣候資料提供者。
重要
Azure FarmBeats 已淘汰。 您可以 在這裡看到公開公告。
我們已建置新的農業焦點服務,其名稱為適用於農業的 Azure 數據管理員,現在可做為預覽服務使用。 如需詳細資訊,請參閱 此處 的公開檔,或在此 madma@microsoft.com寫入我們。
氣候資料可用以產生可採取動作的見解,並在 FarmBeats 中建置 AI 或 ML 模型。
開始之前
若要取得氣候資料,請確定您已安裝 FarmBeats。 1.2.11 版和更新版本支援氣候整合。
使用 FarmBeats 實現氣候整合
開始取得 FarmBeats Datahub 上的氣候資料:
前往您的 FarmBeats Datahub Swagger
https://farmbeatswebsite-api.azurewebsites.net/swagger
。前往 /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 分鐘。
檢查您在上一個步驟中建立的 /Partner 物件狀態。 若要檢查狀態,請對 /Partner API 提出 GET 要求,然後檢查合作夥伴物件的狀態。 在 FarmBeats 成功佈建合作夥伴之後,狀態會設定為作用中。
對 /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:取得位置和時段的每小時預測。
記下作業類型的識別碼和參數。
前往 /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": {} }
上述步驟會執行合作夥伴 Docker 所定義的氣候作業,並將氣候資料內嵌至 FarmBeats。 您可以對 /Jobs 提出 GET 要求,檢查作業的狀態。 在回應中尋找 currentState。 完成後,currentState 會設為 Succeeded。
查詢內嵌的氣候資料
氣候作業完成後,您可以使用 FarmBeats Datahub REST API 查詢內嵌的氣候資料,以建置模型或可採取動作的見解。
使用 FarmBeats REST API 查詢氣候資料:
在 FarmBeats Datahub Swagger中,前往 /WeatherDataLocation API 並提出 GET 要求。 回應包含針對作業執行指定位置 (緯度和經度) 所建立的 /WeatherDataLocation 物件。 記下物件的 識別碼和 weatherDataModelId。
和前面一樣,針對 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} 呼叫的回應。
前往遙測 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 執行個體查詢了感應器資料後,即可了解如何為伺服器陣列產生對應。