-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathview.yaml
590 lines (542 loc) · 20.9 KB
/
view.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
###############################################################################
## ##
## VIEW API (ONE ATLAS) ##
## ##
## (c) Airbus Defence and Space Geo ##
## ##
## ##
## Contact: [email protected] ##
## ##
###############################################################################
info:
title: Airbus Defence and Space Geo - View API
description: |
This document describes Airbus Defence and Space Geo View API provided by One Atlas system.
__IMPORTANT -__ You should follow the [Geo APIs recommendations](/api-docs/recommendations.html) when implementing clients.
__DEPRECATION -__ The following changes will be included in final 1.0 specification:
* OpenSearch Query object will be modified.
You can consult the [version log](/api-docs/view/CHANGELOG.html) for information about modification history.
version: '1.0-beta3'
###############################################################################
## ##
## GENERAL CONFIGuRATION ##
## ##
###############################################################################
consumes:
- application/json
produces:
- application/json
schemes:
- https
host: view.geoapi-airbusds.com
securityDefinitions:
api_key:
description: A recognised anthentication bearer token for a named system user.
in: header
name: Authorization
type: apiKey
swagger: '2.0'
###############################################################################
## ##
## OBJECTS DOCUMENTATION ##
## ##
###############################################################################
definitions:
# START ------------------ Airbus DS Geo dictionary ------------------- START
acquisitionDate:
description: Acquisition date of the image in ISO 8601 format
type: string
format: ISO 8601
cloudCover:
description: Percentage of the image covered by cloud (0 - 100).
type: integer
constellation:
description: The type of satellite used to acquire the image (Pleiades or SPOT).
type: string
enum: [ "Pleiades", "SPOT" ]
incidenceAngle:
description: The incidence angle is the angle from the target point of view. It represents the angle between the ground normal and look direction from the satellite, combining the pitch and roll angles.
type: number
format: float
snowCover:
description: Percentage of the image covered by snow (0 - 100).
type: integer
# END ------------------ Airbus DS Geo dictionary ------------------- END
Id:
description: An internal identifier.
type: string
userRole:
description: The user role in the system.
type: string
userPreference:
description: |
Client defined properties of user preferences. This object must always be retrieved from the API before updating it as it is shared among all client implementations. Each client must add their specific properties in a sub-object.
<br/><br/>
example: |
{
"com.intelligence-airbusds.oneatlas": {
"lang": "fr",
"lastPosition": [ 0 , 0 ]
}
}
type: object
Me:
description: Describes a user and its properties.
type: object
properties:
canCompose:
description: Indicates if the user is allowed to create its own composition of images.
type: boolean
email:
description: The user registered email address in Airbus Identity Management system (currently UCA).
type: string
externalId:
description: The user identifier in Airbus Identity Management system (currently UCA).
type: integer
firstname:
description: The user firstname
type: string
lastname:
description: The user lastname
type: string
id:
description: The user OneAtlas internal identifier
type: string
subscriptionAdministrator:
description: The list of subscription identifiers that the user is an administrator.
type: array
items:
$ref: '#/definitions/Id'
subscriptions:
description: The list of subscription the user belongs to.
type: array
items:
$ref: '#/definitions/Id'
systemRoles:
description: The list of the user roles in OneAtlas system.
type: array
items:
$ref: '#/definitions/userRole'
userPreference:
$ref: '#/definitions/userPreference'
required:
- canCompose
- email
- externalId
- firstname
- lastname
- id
SearchResult: # NOTE: This is an OpenSearch and FeatureCollection compliant object.
description: 'OpenSearch response object in JSon format. it is also a GeoJSON FeatureCollection object.'
type: object
properties:
totalResults:
description: The number of search results available for the current search.
type: integer
startIndex:
description: The index of the first search result in the current set of search results.
type: integer
itemsPerPage:
description: The number of search results returned per page.
type: integer
query:
$ref: '#/definitions/OpenSearch Query'
type:
description: the result item type (always equals to "FeatureCollection")
type: string
enum: [ "FeatureCollection" ]
features:
description: the array of matching images as GeoJSON feature objects.
type: array
items:
$ref: '#/definitions/GeoJSON Feature'
OpenSearch Query:
description: 'Query that can be used to recreate the search request that generated the current search response. <b>WARNING:</b> This object will be changed in final version.'
type: object
properties:
constellation: #TODO change type ?
description: 'The satellite filter used ex: { Pleiades, SPOT 6/7 }.'
type: string
sortKeys: #TODO change type ?
description: 'The sort order used for the response ex: constellation,1 acquisitionDate,0'
type: string
count: #TODO change name and type ?
description: The number of search results returned per page.
type: string
geometry: #TODO change name and type ?
description: the bounding box used for filtering images as a GeoJSON polygon.
type: string
# xuid: # What is this properties used for ?
pw: #TODO change name and type ?
description: The page number
type: string
GeoJSON Feature:
description: GeoJSON feature object.
#externalDocs:
# description: GeoJSON feature object specification.
# url: 'http://geojson.org/geojson-spec.html#feature-objects'
type: object
properties:
id:
description: The image OneAtlas internal identifier.
type: string
properties:
$ref: '#/definitions/GeoJSON Feature Properties'
geometry:
$ref: '#/definitions/GeoJSON Geometry'
type:
description: The feature type (always equals to "Feature")
type: string
enum: [ "Feature" ]
GeoJSON Feature Properties:
description: GeoJSON feature properties object
type: object
properties: # TODO: Described for image search. Ensure that it is always the same or change the YAML name.
constellation:
$ref: '#/definitions/constellation'
wmtsUrl:
description: Image url link with place holders for the zoom level {z}, the tile x {x} and y {y} coordinates.
type: string
format: url
satellite:
description: 'The satellite used to acquire the image.'
type: string
acquisitionDate:
$ref: '#/definitions/acquisitionDate'
GeoJSON Geometry:
description: A geometry describing the feature (point, polygon, multi-polygon, ...)
#externalDocs:
# description: GeoJSON Geometry object specification
# url: 'http://geojson.org/geojson-spec.html#geometry-objects'
type: object
properties:
type:
description: The type of the geometry.
type: string
enum: ["Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon"]
coordinates:
description: the geometry coordinates; depends on the geometry type (see GeoJSON specification of Geometry objects).
type: array
items:
$ref: '#/definitions/GeoJSON Point'
GeoJSON Point:
description: A point definition.
type: array
example: '[ 10, 10 ]'
items:
type: integer
Image Metadata:
description: A GeoJSON Feature describing the image, including its properties and geometry.
type: object
properties:
id:
description: The image identifier.
type: string
type:
description: The GeoJSON type. Always equals to "Feature".
type: string
enum: [ "Feature" ]
properties:
$ref: '#/definitions/Image Metadata Properties'
geometry:
$ref: '#/definitions/GeoJSON Geometry'
Image Metadata Properties:
description: The image properties.
type: object
properties:
acquisitionDate:
$ref: '#/definitions/acquisitionDate'
cloudCover:
$ref: '#/definitions/cloudCover'
constellation:
$ref: '#/definitions/constellation'
geometryMinX:
description: The minimum X coordinate of the images in geographic coordiante reference system (WGS84).
type: number
format: float
geometryMinY:
description: The minimum Y coordinate of the images in geographic coordiante reference system (WGS84).
type: number
format: float
geometryMaxX:
description: The maximum X coordinate of the images in geographic coordiante reference system (WGS84).
type: number
format: float
geometryMaxY:
description: The maximum Y coordinate of the images in geographic coordiante reference system (WGS84).
type: number
format: float
incidenceAngle:
$ref: '#/definitions/incidenceAngle'
insertionDate:
description: Date at which the images was inserted in One Atlas catalog in ISO 8601 format
type: string
format: ISO 8601
resolution:
description: 'The image resolution in meter (i.e. the pixel size).'
type: number
format: float
snowCover:
$ref: '#/definitions/snowCover'
illuminationElevationAngle:
description: 'WARNING: Will be renamed to illuminationElevationAngle'
type: number
format: float # TODO check float or double ?
satellite:
description: 'The satellite used to acquire the image.'
type: string
wmtsUrl: # duplicate
description: Image url link with place holders for the zoom level {z}, the tile x {x} and y {y} coordinates.
type: string
###############################################################################
## ##
## END POINTS DOCUMENTATION ##
## ##
###############################################################################
paths:
/api/v1/images:
get:
summary: Search for images.
description: >-
Query the catalog for relevant products (images) in a given
bounding box. The returned object is an OpenSearch and GeoJSON FeatureCollection
compliant object.
security:
- api_key: []
parameters:
- description: "A bounding box array string in geographic coordinate reference system (WGS84). Example: -10.0, -10.0, 10.0, 10.0 or -180, -90, 180, 90 for whole world in Geographic."
in: query
name: bbox
required: true
type: string
- description: "Images inserted before this date are excluded from the results. this property is compared to image insertionDate property."
in: query
name: insertdtstart
required: false
type: string
format: ISO 8601
- description: "Images inserted after this date are excluded from the results. this property is compared to image insertionDate property."
in: query
name: insertdtend
required: false
type: string
format: ISO 8601
- description: Page number
in: query
name: page
required: false
type: integer
default: 1
- description: Number of items per page
in: query
name: size
required: false
type: integer
default: 10
responses:
'200':
description: Request successful # - all results returned
schema:
$ref: '#/definitions/SearchResult'
#'206': # TODO: Currently not implemented ?
# description: Request successful - partial results returned
'401':
description: 'Unauthorized: the authorization is missing or has expired.'
tags:
- Search
'/api/v1/images/{image_id}':
get:
summary: Retrieve an image metadata.
description: Query the catalog for metadata on a particular image (product).
security:
- api_key: []
parameters:
- default: 6e9ad9cbed06b32d5660069d24b7bfc3dffafd0c
description: An image identifier
format: string
in: path
name: image_id
required: true
type: string
responses:
'200':
description: Request successful
schema:
$ref: '#/definitions/Image Metadata'
'401':
description: 'Unauthorized: the authorization is missing or has expired.'
'404':
description: 'Not Found: no image exist with the provided identifier .'
tags:
- Search
'/api/v1/map/preview/{xuid}/{zoomLevel}/{tileRow}/{tileColumn}':
get:
summary: Product preview.
description: >-
Allows authorized users to retrieve product preview images tiles. __Is
currently only supporting 4326. Mercator support is coming
soon.__ Returns a 256x256 tile from a layer in PNG format.
security:
- api_key: []
parameters:
- description: A product identifier
format: string
in: path
name: xuid
required: true
type: string
- description: Tilegrid depth
format: integer
in: path
name: zoomLevel
required: true
type: integer
- description: Tilegrid row
format: integer
in: path
name: 'tileRow'
required: true
type: integer
- description: Tilegrid column
format: integer
in: path
name: tileColumn
required: true
type: integer
responses:
'200':
description: Request successful
'401':
description: 'Unauthorized: the authorization is missing or has expired.'
tags:
- Maps
'/api/v1/map/imagery.wmts?layer={layer}&tilematrixset={tileSet}&Service=WMTS&Request=GetTile&Version=1.0.0&Format={format}&TileMatrix={zoomLevel}&TileCol={tileColumn}&TileRow={tileRow}':
get:
summary: Returns a tile from a layer.
description: |
Returns a 256x256 tile from a layer in JPEG or PNG format.
__IMPORTANT:__ whatever the requested image format is, a transparent image will be delivered in PNG format if no tile is found at the specified location.
security:
- api_key: []
parameters:
- name: layer
description: A product identifier
format: string
in: path
required: true
type: string
- name: tileSet
description: The desired tile set from which to retrieve the tiles (currently supported set are 4326 and 3857).
type: string
in: path
required: true
- name: format
description: the requested image format (image/jpeg or image/png).
type: string
format: mime type
enum: [ "image/jpeg", "image/png" ]
in: path
required: true
- name: zoomLevel
description: The map zoom level (Tilegrid depth). Starts at 2 and ends at 16 for SPOT layers and at 17 for Pleiades layers.
type: string
enum: [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 , 13, 14, 15, 16, 17 ]
in: path
required: true
- name: tileColumn
description: Tilegrid column
type: integer
in: path
required: true
- name: tileRow
description: Tilegrid row
type: integer
in: path
required: true
responses:
'200':
description: Request successful - returns the requested tile as an image.
headers:
Content-Type:
description: the image mime type returned (decided by the server)
type: string
'401':
description: 'Unauthorized: the authorization is missing or has expired.'
tags:
- Maps
'/mugg/wmts/{imagery}?layer={layer}&tilematrixset={tileSet}&Service=WMTS&Request=GetTile&Version=1.0.0&Format={format}&TileMatrix={zoomLevel}&TileCol={tileColumn}&TileRow={tileRow}':
get:
deprecated: true
summary: Returns a tile from a layer.
description: |
This enpoint is deprecated, please use the _/api/v1/map/imagery.wmts_ endpoint instead.
Returns a 256x256 tile from a layer in JPEG or PNG format.
__IMPORTANT:__ whatever the requested image format is, a transparent image will be delivered in PNG format if no tile is found at the specified location.
security:
- api_key: []
parameters:
- name: imagery
description: The imagery identifier. Can be retrieved from the GetCapabilities response.
type: string
in: path
required: true
- name: layer
description: A product identifier
format: string
in: path
required: true
type: string
- name: tileSet
description: The desired tile set from which to retrieve the tiles (currently supported set are 4326 and 3857).
type: string
in: path
required: true
- name: format
description: the requested image format (image/jpeg or image/png).
type: string
format: mime type
enum: [ "image/jpeg", "image/png" ]
in: path
required: true
- name: zoomLevel
description: The map zoom level (Tilegrid depth). Starts at 2 and ends at 16 for SPOT layers and at 17 for Pleiades layers.
type: string
enum: [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 , 13, 14, 15, 16, 17 ]
in: path
required: true
- name: tileColumn
description: Tilegrid column
type: integer
in: path
required: true
- name: tileRow
description: Tilegrid row
type: integer
in: path
required: true
responses:
'200':
description: Request successful - returns the requested tile as an image.
headers:
Content-Type:
description: the image mime type returned (decided by the server)
type: string
'401':
description: 'Unauthorized: the authorization is missing or has expired.'
tags:
- Maps
/api/v1/me:
get:
summary: Returns details about the current user.
description: Returns user personal details and it's system properties (roles, preferences, subscriptions, ...)
security:
- api_key: []
responses:
'200':
description: Request successful
schema:
$ref: '#/definitions/Me'
'401':
description: 'Unauthorized: the authorization is missing or has expired.'
tags:
- Personal Settings