You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/industry/agriculture/imagery-partner-integration.md
+63-60Lines changed: 63 additions & 60 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Imagery partner integration
3
-
description: Describes about imagery partner integration
3
+
description: This article describes imagery partner integration.
4
4
author: uhabiba04
5
5
ms.topic: article
6
6
ms.date: 11/04/2019
@@ -9,53 +9,51 @@ ms.author: v-umha
9
9
10
10
# Imagery partner integration
11
11
12
-
This article describes how to use the Azure FarmBeats Translator component to send imagery data to FarmBeats. Agricultural imagery data can be from various sources, including multispectral cameras, satellites, and drones. Agricultural imagery partners can integrate with FarmBeats to provide customers with custom-generated maps for their farms.
12
+
This article describes how to use the Azure FarmBeats Translator component to send imagery data to FarmBeats. Agricultural imagery data can be generated from various sources, such as multispectral cameras, satellites, and drones. Agricultural imagery partners can integrate with FarmBeats to provide customers with custom-generated maps for their farms.
13
13
14
-
Data, once available, can be visualized through the FarmBeats Accelerator and potentially be used for data fusion and (Machine Learning/Artificial Intelligence) ML/AI model building by agricultural businesses, or customer system integrators.
14
+
Data, once available, can be visualized through the FarmBeats Accelerator and potentially be used for data fusion and machine learning/artificial intelligence (ML/AI) model building by agricultural businesses or customer system integrators.
15
15
16
16
FarmBeats provides the ability to:
17
17
18
-
- Define custom image types, source, file format using Extended Type APIs
19
-
- Ingest imagery data from various sources via the Scene & SceneFile APIs.
18
+
- Define custom image types, source, and file format by using /ExtendedType APIs.
19
+
- Ingest imagery data from various sources via the /Scene and /SceneFile APIs.
20
20
21
-
The below information focuses on getting any form of imagery into the FarmBeats system.
21
+
The following information focuses on getting any form of imagery into the FarmBeats system.
22
22
23
-
When you select the Drone Imagery section, a pop-up opens to show a high-resolution image of the drone orthomosaic. You can access the partner software, which helps to plan drone flights and get raw data. You'll continue to use the partner’s software for path planning and orthomosaic image stitching.
23
+
When you select the **Drone Imagery** section, a pop-up opens to show a high-resolution image of the drone orthomosaic. You can access the partner software, which helps to plan drone flights and get raw data. You'll continue to use the partner's software for path planning and orthomosaic image stitching.
24
24
25
-
Drone partners need to enable customers, to link their customer account with their FarmBeats instance on Azure.
25
+
Drone partners need to enable customers to link their customer account with their FarmBeats instance on Azure.
26
26
27
-
You must use the following credentials in the drone partner software for linking FarmBeats:
27
+
You must use the following credentials in the drone partner software to link FarmBeats:
28
28
29
-
- API Endpoint
29
+
- API endpoint
30
30
- Tenant ID
31
31
- Client ID
32
-
- Client Secret
32
+
- Client secret
33
33
34
34
## API development
35
35
36
-
The APIs contain Swagger technical documentation. Review [Swagger](https://aka.ms/FarmBeatsDatahubSwagger) for information about the APIs and corresponding requests/responses.
36
+
The APIs contain Swagger technical documentation. For information about the APIs and corresponding requests or responses, see [Swagger](https://aka.ms/FarmBeatsDatahubSwagger).
37
37
38
38
## Authentication
39
39
40
-
FarmBeats leverages Microsoft Azure’s[Active Directory](https://docs.microsoft.com/azure/app-service/overview-authentication-authorization). Azure App Service provides built-in authentication and authorization support.
40
+
FarmBeats uses Microsoft Azure [Active Directory](https://docs.microsoft.com/azure/app-service/overview-authentication-authorization) (Azure AD). Azure App Service provides built-in authentication and authorization support.
41
41
42
-
For more information about, see [Azure Active Directory](https://docs.microsoft.com/azure/app-service/overview-authentication-authorization).
42
+
For more information about Azure AD, see [Azure Active Directory](https://docs.microsoft.com/azure/app-service/overview-authentication-authorization).
43
43
44
-
FarmBeats Data hub uses bearer authentication, which needs the following credentials:
44
+
FarmBeats Datahub uses bearer authentication, which needs the following credentials:
45
45
46
46
- Client ID
47
-
- Client Secret
47
+
- Client secret
48
48
- Tenant ID
49
49
50
-
Using the above credentials, the caller can request an access token, which needs to be sent in the subsequent API requests, in the header section as follows:
50
+
Using the previous credentials, the caller can request an access token, which needs to be sent in the subsequent API requests, in the header section, as follows:
Here are the most common request headers that need to be specified when making an API call to FarmBeats Data hub:
77
+
Here are the most common request headers that need to be specified when you make an API call to FarmBeats Datahub.
80
78
81
-
**Header** | **Description and Example**
79
+
**Header** | **Description and example**
82
80
--- | ---
83
-
Content-Type | The request format (Content-Type: application/<format>) For FarmBeats Data hub API's format is json. Content-Type: application/json
81
+
Content-Type | The request format (Content-Type: application/<format>). For FarmBeats Datahub APIs, the format is JSON. Content-Type: application/json
84
82
Authorization | Specifies the access token required to make an API call. Authorization: Bearer <Access-Token>
85
-
Accept | The response format. For FarmBeats Data hub APIs the format is json Accept: application/json
83
+
Accept | The response format. For FarmBeats Datahub APIs, the format is JSON. Accept: application/json
86
84
87
85
88
86
## API requests
89
87
90
-
To make a REST API request, you combine the HTTP method (GET/POST/PUT), the URL to the API service, the resource URI (to query, submit data, update, or delete), and one or more HTTP request headers.
88
+
To make a REST API request, you combine:
89
+
90
+
- The HTTP method (GET, POST, and PUT).
91
+
- The URL to the API service.
92
+
- The resource URI (to query, submit data, update, or delete).
93
+
- One or more HTTP request headers.
91
94
92
95
Optionally, you can include query parameters on GET calls to filter, limit the size of, and sort the data in the responses.
93
96
94
-
The below sample request is to get the list of devices:
97
+
The following sample request is to get the list of devices:
95
98
96
99
```bash
97
100
curl -X GET "https://microsoft-farmbeats.azurewebsites.net/Device" -H
@@ -101,7 +104,7 @@ curl -X GET "https://microsoft-farmbeats.azurewebsites.net/Device" -H
101
104
102
105
Most GET, POST, and PUT calls require a JSON request body.
103
106
104
-
The below sample request is to create a device (This has an input JSON with the request body).
107
+
The following sample request is to create a device. This sample has an input JSON with the request body.
105
108
106
109
107
110
```bash
@@ -112,36 +115,36 @@ curl -X POST "https://microsoft-farmbeats.azurewebsites.net/Device" -H
JSON (JavaScript Object Notation) is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see [JSON org](https://JSON.org).
120
+
JSON is a common language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see [JSON org](https://JSON.org).
118
121
119
-
## Ingesting imagery into FarmBeats
122
+
## Ingest imagery into FarmBeats
120
123
121
-
After the partner has credentials to connect to the FarmBeats Data hub, the partner does the following in the Translator component:
124
+
After the partner has credentials to connect to FarmBeats Datahub, the partner takes the following steps in the Translator component.
122
125
123
-
1. Create a new extended typeforthe following fields,in accordance with the type of imagery that will be uploaded:
126
+
1. Create a new extended typeforthe following fields,in accordance with the type of imagery to be uploaded:
124
127
125
-
- Scene Source: For example, <drone_partner_name>
126
-
- Scene Type: For example, <drone>
127
-
- Scene File Type: For example, <chlorophyll index>
128
-
- Scene File Content Type: For example, <image/tiff>
128
+
- **Scene Source**: For example, drone_partner_name
129
+
- **Scene Type**: For example, drone
130
+
- **Scene File Type**: For example, chlorophyll index
131
+
- **Scene File Content Type**: For example, image/tiff
129
132
130
-
2. Call the Farms API to get the list of Farms from within the Azure FarmBeats system.
131
-
3. Provide the customer with an ability to choose a single farm from the list of Farms.
133
+
2. Call the /Farms API to get the list of farms from within the Azure FarmBeats system.
134
+
3. Provide the customer with an ability to choose a single farm from the list of farms.
132
135
133
136
The partner system must show the farm within the partner software to do the path planning and drone flight and image collection.
134
137
135
-
4. Call the Scene API and provide required details to create a new Scene with a unique SceneID.
136
-
5. Receive a Blob SAS URL to upload the required images into the FarmBeats data hub, in the context of the chosen farm, into the FarmBeats system.
138
+
4. Call the /Scene API and provide required details to create a new scene with a unique scene ID.
139
+
5. Receive a blob SAS URL to upload the required images into FarmBeats Datahub, in the context of the chosen farm, in the FarmBeats system.
137
140
138
-
Here is a detailed flow on the API calls:
141
+
Here's a detailed flow on the API calls.
139
142
140
143
### Step 1: ExtendedType
141
144
142
-
Check in the ExtendedType API, ifthe type and file source are available on FarmBeats. You can dothis by calling a GET on the /ExtendedType API.
145
+
Check in the /ExtendedType API to see whether the type and file source are available on FarmBeats. To do so, call a GET on the /ExtendedType API.
143
146
144
-
Following are the systemdefined values:
147
+
Here are the system-defined values:
145
148
146
149
```json
147
150
{
@@ -323,9 +326,9 @@ Following are the system defined values:
323
326
}
324
327
```
325
328
326
-
This will be a one-time setup, and the scope of this new scenetype is limited to the subscription in which FarmBeats project is deployed.
329
+
This step is a one-time setup. The scope of this new scene type is limited to the subscription in which the FarmBeats project is deployed.
327
330
328
-
Example: To add SceneSource: “SlantRange”, you do PUT on the ID of the /ExtendedType with key: “SceneSource” Input payload:
331
+
For example, to add SceneSource: “SlantRange,” you do a PUT on the ID of the /ExtendedType API with the key "SceneSource" input payload.
329
332
330
333
```json
331
334
{
@@ -343,13 +346,13 @@ Example: To add SceneSource: “SlantRange”, you do PUT on the ID of the /Exte
343
346
344
347
```
345
348
346
-
Green field is the new addition to the system-defined scene source values.
349
+
The green field is the new addition to the system-defined scene source values.
347
350
348
-
### Step 2: Get FarmDetails
351
+
### Step 2: Get farm details
349
352
350
-
The scenes (tiff or .csv files) will be in the context of a farm. You need to get the farm details by doing a get on /Farm API. The API will return you the list of farms available in FarmBeats, and you can selectthe farm you want to ingest the data for.
353
+
The scenes (.tiff or .csv files) are in the context of a farm. You need to get the farm details by doing a GET on the /Farm API. The API returns the list of farms that are available in FarmBeats. You can select the farm you want to ingest the data for.
351
354
352
-
Get /Farm response:
355
+
GET /Farm response:
353
356
354
357
```json
355
358
{
@@ -395,13 +398,13 @@ Get /Farm response:
395
398
}
396
399
```
397
400
398
-
### Step 3: Create a/scene ID (post call)
401
+
### Step 3: Create ascene ID (POST call)
399
402
400
-
Create a new scene (tiff or .csv file) with the given information, providing the date, sequence and farm ID with which the scene will be associated. The metadata associated with the scene can be defined under properties, including the duration and type of measure.
403
+
Create a new scene (.tiff or .csv file) with the given information, which provides the date, sequence, and farm ID with which the scene is associated. The metadata associated with the scene can be defined under properties, which includes the duration and type of measure.
401
404
402
-
This creates a new SceneID, which will be associated with the farm. Once the SceneID is created, the user can use the same to create a new file (tiff or .csv) & store the content of the file.
405
+
Creating a new scene creates a new scene ID, which is associated with the farm. After the scene ID is created, the user can use the same to create a new file (.tiff or .csv) and store the contents of the file.
403
406
404
-
Example input payload for the Post call on/Scene API
407
+
Example input payload for the POST call on the /Scene API:
405
408
406
409
```json
407
410
{
@@ -437,13 +440,13 @@ API response:
437
440
438
441
```
439
442
440
-
**Create/SceneFile**
443
+
**Create a scene file**
441
444
442
-
The Scene ID returned in step three is the input for the SceneFile. The SceneFile returns a SAS URL token, which is valid for 24 hours.
445
+
The scene ID returned in step 3 is the input for the scene file. The scene file returns an SAS URL token, which is valid for 24 hours.
443
446
444
-
If the user requires a programmatic way of uploading a stream of images, the blob storage SDK can be used to define a method using the Scenefile ID, location& URL.
447
+
If the user requires a programmatic way of uploading a stream of images, the blob storage SDK can be used to define a method by using the scene file ID, location, and URL.
445
448
446
-
Example input payload for the Post call on /Scenefile API:
449
+
Example input payload for the POST call on the /SceneFile API:
447
450
448
451
```json
449
452
{
@@ -459,7 +462,7 @@ Example input payload for the Post call on /Scenefile API :
459
462
}
460
463
}
461
464
```
462
-
API Response:
465
+
API response:
463
466
464
467
```json
465
468
{
@@ -479,9 +482,9 @@ API Response:
479
482
480
483
```
481
484
482
-
The Post call to /SceneFile API returns a SAS upload URL, which can be used to upload the csv or tiff file using the Azure Blob Storage client/library.
485
+
The POST call to the /SceneFile API returns an SAS upload URL, which can be used to upload the .csv or .tiff file by using the Azure Blob storage client or library.
483
486
484
487
485
488
## Next steps
486
489
487
-
For more information on Rest API-based integration details, see [REST API](references-for-farmbeats.md#rest-api).
490
+
For more information on REST API-based integration details, see [REST API](references-for-farmbeats.md#rest-api).
0 commit comments