Update 'Create-b-cropfield.md'

This commit is contained in:
2021-08-27 19:23:50 +00:00
parent 3763bb735e
commit c9f5fc00b9

View File

@@ -8,7 +8,6 @@ Farmmaps also uses the cropfield to collect and prepare context data such as wea
To create a cropfield we: To create a cropfield we:
* Get the parent folder to place the cropfield under * Get the parent folder to place the cropfield under
* Create a folder under this element (optional)
* Create the cropfield * Create the cropfield
**Prerequisites** **Prerequisites**
@@ -20,12 +19,17 @@ To create a cropfield we need:
### Get parent element ### Get parent element
First, we'll get the parent code needed to place the cropfield in the hierarchy. First, we'll get the parent code needed to place the cropfield in the hierarchy.
Usually this is a cropping scheme.
So when the code of the crop field is known, use this code as parent code to create the crop field and go to the next chapter.
## Get cropping scheme
When the cropping scheme code is not known, we need to start from the top of the hierarchy, which is my_roots.
**Request** **Request**
Replace `<acces token>` with your actual token. Replace `<acces token>` with your actual token.
```http ```http
GET https://farmmaps.awacc.nl/api/v1/folders/my_drive? HTTP/1.1 GET https://farmmaps.eu/api/v1/folders/my_roots HTTP/1.1
Host: farmmaps.awacc.nl Host: farmmaps.eu
Accept: application/json Accept: application/json
Authorization: Bearer <access token> Authorization: Bearer <access token>
``` ```
@@ -35,19 +39,17 @@ The response will be something similar to:
```http ```http
HTTP/1.1 200 OK HTTP/1.1 200 OK
Server: nginx/1.14.0 (Ubuntu) Date: Fri, 27 Aug 2021 19:00:55 GMT
Date: Tue, 21 Apr 2020 09:57:07 GMT
Content-Type: application/json; charset=utf-8 Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive Connection: keep-alive
Server: Kestrel
Cache-Control: no-store,no-cache Cache-Control: no-store,no-cache
Pragma: no-cache Pragma: no-cache
Content-Encoding: br Content-Length: 835
Vary: Accept-Encoding
``` ```
So the `parentcode` we need is **"f25d8765a1cd407cb235961c73c268cf:USER_FILES"**
You can also find the code of a folder by browsing the folders in your FarmMaps account through the web interface. In the list returned, search for item which ends with USER_IN, which is shown above.
This item will be the parent of the cropping scheme. This item will be the parent of the cropping scheme.
So make another call to check if a cropping scheme exist. So make another call to check if a cropping scheme exist.
@@ -57,64 +59,66 @@ Vary: Accept-Encoding
```http ```http
GET https://farmmaps.eu/api/v1/items/f25d8765a1cd407cb235961c73c268cf:USER_IN/children HTTP/1.1 GET https://farmmaps.eu/api/v1/items/f25d8765a1cd407cb235961c73c268cf:USER_IN/children HTTP/1.1
Host: farmmaps.eu Host: farmmaps.eu
```http
POST /api/v1/items HTTP/1.1
Accept: application/json
Accept: application/json Accept: application/json
Content-Type: application/json Authorization: Bearer <access token>
Cache-Control: no-cache ```
Host: farmmaps.awacc.nl
Connection: keep-alive **Response**
The response will be something similar to: The response will be something similar to:
```http
HTTP/1.1 200 OK HTTP/1.1 200 OK
Date: Fri, 27 Aug 2021 19:17:36 GMT
Content-Type: application/json; charset=utf-8
Connection: keep-alive Connection: keep-alive
Server: Kestrel Server: Kestrel
**Response**
```http
{
"parentCode": "string",
"geometry": {},
"data": {},
"tags": [
"string"
],
"url": "string",
"code": "string",
"name": "My_new_folder",
"created": "2019-12-18T10:16:21.455Z",
"updated": "2019-12-18T10:16:21.455Z",
"dataDate": "2019-12-18T10:16:21.455Z",
"itemType": "string",
Cache-Control: no-store,no-cache Cache-Control: no-store,no-cache
Pragma: no-cache Pragma: no-cache
"state": 0, Content-Length: 1519
``` ```
}
When the list is empty, you need to create a new cropping scheme, which is described in another thread.
The `parentcode` we need for creating a crop field is **"f3ee8e3ac55b43bc89757bcaedc89992"**
### Create the cropfield
Now we can create the cropfield. We do so by setting `"itemType": "vnd.farmmaps.itemtype.cropfield"` and adding data to the geometry parameter.
Generally, a cropfield contour would be defined as a polygon, so we add `"type":"Polygon" and all the coordinates.
We also need to specify a `dataDate` and a `dataEndDate` to indicate the the timeframe of the growing season.
The `dataDate` needs to be before `dataEndDate` and cannot be on the same day.
**Request** **Request**
### Create the cropfield
Now we can create the cropfield. We do so by setting `"itemType": "vnd.farmmaps.itemtype.cropfield"` and adding data to the geometry parameter. ```http
Generally, a cropfield contour would be defined as a polygon, so we add `"type":"Polygon" and all the coordinates. POST /api/v1/items HTTP/1.1
We also need to specify a `dataDate` and a `dataEndDate` to indicate the the timeframe of the growing season. Accept: application/json
The `dataDate` needs to be before `dataEndDate` and cannot be on the same day. Authorization: Bearer <acces token>
Content-Type: application/json
**Request** Cache-Control: no-cache
Host: farmmaps.awacc.nl
```http Accept-Encoding: gzip, deflate, br
POST /api/v1/items HTTP/1.1 Connection: keep-alive
Accept: application/json Content-Length: 916
Authorization: Bearer <acces token>
Content-Type: application/json {
Cache-Control: no-cache "parentCode": "6601a06d812b40f9830c9fe4e63b1944",
Host: farmmaps.awacc.nl "itemType": "vnd.farmmaps.itemtype.cropfield",
Accept-Encoding: gzip, deflate, br "name": "cropfield test",
Connection: keep-alive "dataDate": "2021-1-18T00:00:0.0Z",
"dataEndDate": "2021-12-18T00:00:00.0Z",
"data": {},
"geometry": {"type":"Polygon","coordinates":[[[6.09942873984307,53.070025028087],[6.09992507404607,53.0705617890585],[6.10036959220086,53.0710679529031],[6.10065149010421,53.0714062774307],[6.10087493644271,53.0716712354474],[6.10091082982487,53.0716936039203],[6.10165087441291,53.0712041549161],[6.10204994718318,53.0709349338005],[6.10263143118855,53.0705789370018],[6.10311578125011,53.0702657538294],[6.10331686552072,53.0701314102389],[6.103326530575,53.070119463569],[6.10309137950343,53.0699829669055],[6.10184241586523,53.0692902201371],[6.10168497998891,53.0691984306747],[6.10092987659869,53.0694894453514],[6.09942873984307,53.070025028087]]]}
}
```
**Response** **Response**
```http ```http
HTTP/1.1 201 Created HTTP/1.1 201 Created
Server: nginx/1.14.0 (Ubuntu)
Date: Fri, 27 Aug 2021 19:21:36 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive Connection: keep-alive
Cache-Control: no-store,no-cache Cache-Control: no-store,no-cache
Pragma: no-cache Pragma: no-cache
@@ -137,22 +141,19 @@ Content-Length: 916
[6.10204994718318,53.0709349338005], [6.10204994718318,53.0709349338005],
[6.10263143118855,53.0705789370018], [6.10263143118855,53.0705789370018],
[6.10311578125011,53.0702657538294], [6.10311578125011,53.0702657538294],
Pragma: no-cache [6.10331686552072,53.0701314102389],
Content-Encoding: br [6.103326530575,53.070119463569],
Location: /api/v1/items/8ecbaa2d85d5484db7f16b281b7cd013 [6.10309137950343,53.0699829669055],
[6.10184241586523,53.0692902201371], [6.10184241586523,53.0692902201371],
[6.10168497998891,53.0691984306747], [6.10168497998891,53.0691984306747],
[6.10092987659869,53.0694894453514], [6.10092987659869,53.0694894453514],
[6.09942873984307,53.070025028087]] [6.09942873984307,53.070025028087]]
]}, ]},
"data":{}, "data":{},
"coordinates":[[
[6.09942873984307,53.070025028087],
[6.09992507404607,53.0705617890585],
"tags":[], "tags":[],
"isEditable":false, "isEditable":false,
"url":"/api/v1/items/8ecbaa2d85d5484db7f16b281b7cd013", "url":"/api/v1/items/8ecbaa2d85d5484db7f16b281b7cd013",
[6.10091082982487,53.0716936039203], "code":"8ecbaa2d85d5484db7f16b281b7cd013",
"name":"cropfield for VRA", "name":"cropfield for VRA",
"created":"2020-04-24T08:56:45.3727807Z", "created":"2020-04-24T08:56:45.3727807Z",
"updated":"2020-04-24T08:56:45.3727807Z", "updated":"2020-04-24T08:56:45.3727807Z",