Mendapatkan data cuaca dari mitra cuaca

Azure FarmBeats membantu Anda membawa data cuaca dari penyedia data cuaca Anda dengan menggunakan Kerangka Kerja Konektor berbasis Docker. Dengan menggunakan kerangka kerja ini, penyedia data cuaca menerapkan Docker yang dapat diintegrasikan dengan FarmBeats. Saat ini, penyedia data cuaca berikut didukung.

Penting

Azure FarmBeats dihentikan. Anda dapat melihat pengumuman publik di sini.

Kami telah membangun layanan berfokus pada pertanian baru, namanya Adalah Azure Data Manager untuk Pertanian dan sekarang tersedia sebagai layanan pratinjau. Untuk informasi selengkapnya, lihat dokumentasi publik di sini atau tulis kepada kami di madma@microsoft.com.

Mitra FarmBeats

DTN

Data cuaca dapat digunakan untuk menghasilkan wawasan yang dapat ditindaklanjuti dan membangun model AI atau ML di FarmBeats.

Sebelum Anda memulai

Untuk mendapatkan data cuaca, pastikan Anda telah menginstal FarmBeats. Integrasi cuaca didukung pada versi 1.2.11 dan yang lebih tinggi.

Mengaktifkan integrasi cuaca dengan FarmBeats

Untuk mulai mendapatkan data cuaca di Datahub FarmBeats Anda:

  1. Buka FarmBeats Datahub Swagger https://farmbeatswebsite-api.azurewebsites.net/swagger Anda.

  2. Buka API /Partner lalu buat permintaan POST. Gunakan payload input berikut:

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

    Misalnya, untuk mendapatkan data cuaca dari DTN, gunakan payload berikut. Anda dapat mengubah nama dan deskripsi sesuai dengan preferensi Anda.

    Catatan

    Langkah berikut memerlukan kunci API. Untuk mendapatkan kunci langganan DTN Anda, hubungi 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"
    }  
    

    Catatan

    Untuk informasi selengkapnya tentang objek mitra, lihat Lampiran dalam artikel ini.

    Langkah sebelumnya akan memprovisi sumber daya untuk memungkinkan Docker berjalan di lingkungan FarmBeats pelanggan.

    Dibutuhkan waktu sekitar 10 hingga 15 menit untuk memprovisi sumber daya.

  3. Periksa status objek /Partner yang Anda buat di langkah sebelumnya. Untuk memeriksa status, buat permintaan GET di API /Partner dan periksa status objek mitra. Setelah FarmBeats berhasil memprovisi mitra, statusnya diatur ke Aktif.

  4. Pada API /JobType, buat permintaan GET. Periksa pekerjaan cuaca yang Anda buat sebelumnya, dalam proses penambahan mitra. Dalam pekerjaan cuaca, bidang pipelineName memiliki format berikut: partner-name_partner-type_job-name.

    Sekarang instans FarmBeats Anda memiliki mitra data cuaca aktif. Anda dapat menjalankan pekerjaan untuk meminta data cuaca untuk lokasi tertentu (bujur dan lintang) dan rentang tanggal. Jenis pekerjaan akan memiliki detail tentang parameter apa yang diperlukan untuk menjalankan pekerjaan cuaca.

    Misalnya, untuk DTN, jenis pekerjaan berikut akan dibuat:

    • get_dtn_daily_observations: Dapatkan pengamatan harian untuk lokasi dan periode waktu tertentu.
    • get_dtn_daily_forecasts: Dapatkan prakiraan harian untuk lokasi dan periode waktu tertentu.
    • get_dtn_hourly_observation: Dapatkan pengamatan per jam untuk lokasi dan periode waktu tertentu.
    • get_dtn_hourly_forecasts: Dapatkan prakiraan per jam untuk lokasi dan periode waktu tertentu.
  5. Catat ID dan parameter jenis pekerjaan.

  6. Buka API /Jobs dan buat permintaan POST di /Jobs. Gunakan payload input berikut:

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

    Misalnya, untuk menjalankan get_dtn_daily_observations, gunakan payload berikut:

    { 
          "typeId": "<id of the JobType>",
          "arguments": {
                "latitude": 47.620422,
                "longitude": -122.349358,
                "days": 5
          },
          "name": "<name of the job>",
          "description": "<description>",
          "properties": {}
    }
    
  7. Langkah sebelumnya menjalankan pekerjaan cuaca seperti yang didefinisikan dalam Docker mitra dan menyerap data cuaca ke FarmBeats. Anda dapat memeriksa status pekerjaan dengan membuat permintaan GET pada /Jobs. Dalam respons, cari currentState. Setelah Anda selesai, currentState diatur ke Berhasil.

Mengkueri data cuaca yang diserap

Setelah pekerjaan cuaca selesai, Anda dapat mengkueri data cuaca yang diserap untuk membangun model atau wawasan yang dapat ditindaklanjuti dengan menggunakan API REST FarmBeats Datahub.

Untuk mengkueri data cuaca dengan menggunakan REST API FarmBeats:

  1. Di FarmBeats Datahub Swagger Andam buka API /WeatherDataLocation dan buat permintaan GET. Respons mencakup objek /WeatherDataLocation yang dibuat untuk lokasi (lintang dan bujur) yang ditentukan eksekusi pekerjaan. Catat ID dan weatherDataModelId objek.

  2. Buat permintaan GET/{id} pada API /WeatherDataModel untuk weatherDataModelId seperti yang Anda lakukan sebelumnya. Model data cuaca menunjukkan semua metadata dan detail tentang data cuaca yang diserap. Misalnya, dalam objek model data cuaca, ukuran cuaca merinci informasi cuaca apa yang didukung dan dalam jenis dan unit apa saja. Contohnya:

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

    Catat respons dari panggilan GET/{id} untuk model data cuaca.

  3. Buka API Telemetri dan buat permintaan POST. Gunakan payload input berikut:

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

    Respons memperlihatkan data cuaca yang tersedia untuk rentang waktu yang ditentukan:

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

Dalam contoh sebelumnya, respons memperlihatkan data untuk dua tanda waktu. Ini juga menunjukkan nama ukuran (suhu) dan nilai data cuaca yang dilaporkan dalam dua tanda waktu. Lihat model data cuaca terkait untuk menginterpretasikan jenis dan satuan nilai yang dilaporkan.

Memecahkan masalah kegagalan pekerjaan

Untuk memecahkan masalah kegagalan pekerjaan, periksa log pekerjaan.

Lampiran

Mitra Detail
DockerDetails - imageName Nama citra Docker. Misalnya, docker.io/mydockerimage (citra di hub.docker.com) atau myazureacr.azurecr.io/mydockerimage (citra di Azure Container Registry) dan sebagainya. Jika tidak ada registri yang disediakan, defaultnya adalah hub.docker.com.
DockerDetails - imageTag Nama tag citra Docker. Defaultnya adalah "terbaru".
DockerDetails -info masuk Info masuk untuk mengakses Docker privat. Mitra menyediakan info masuk.
DockerDetails - azureBatchVMDetails - batchVMSKU SKU VM Microsoft Azure Batch. Untuk informasi selengkapnya, lihat semua komputer virtual Linux yang tersedia.

Nilai yang valid adalah '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', dan 'STANDARD_D2_V3'. Defaultnya adalah 'STANDARD_D2_V2'.
DockerDetails - azureBatchVMDetails - dedicatedComputerNodes Jumlah simpul komputer khusus per kumpulan batch. Nilai default adalah 1.
DockerDetails - azureBatchVMDetails - nodeAgentSKUID ID SKU agen simpul Microsoft Azure Batch. Saat ini, hanya agen simpul batch "batch.node.ubuntu 18.04" yang didukung.
DockerDetails - partnerCredentials Info masuk untuk memanggil API mitra di Docker. Mitra memberikan informasi ini berdasarkan mekanisme otorisasi yang didukung; misalnya, nama pengguna dan kata sandi, atau kunci API.
partnerType "Cuaca". Jenis mitra lain di FarmBeats adalah "Sensor" dan "Citra".
nama Nama mitra yang diinginkan di sistem FarmBeats.
deskripsi Deskripsi.

Langkah berikutnya

Sekarang setelah Anda mengkueri data sensor dari instans Azure FarmBeats, pelajari cara membuat peta untuk pertanian Anda.