├── README.md ├── CONTRIBUTING.md ├── wfs.rst ├── swagger.v2.yaml └── swagger.v3.yaml /README.md: -------------------------------------------------------------------------------- 1 | The GRiD API v3 is documented in [swagger.v3.yaml](swagger.v3.yaml). (Note that the API spec contains several template variables, e.g., `{{ URL_ROOT }}`, that will cause tools such as the Swagger Editor to throw errors. These need to be customized depending on which instance of GRiD you are accessing.) 2 | 3 | GRiD also provides a WFS endpoint for querying point cloud and raster data. This is documented in [wfs.rst](wfs.rst). 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Reporting Bugs 2 | 3 | If you feel you've identified a bug in the GRiD API, please submit a [GitHub issue](https://guides.github.com/features/issues/). 4 | 5 | Typos, clarifying remarks, and minor errors in the specification can be resolved by issuing a [GitHub pull request](https://help.github.com/articles/about-pull-requests/). 6 | 7 | # Suggesting Enhancements 8 | 9 | For API enhancements, we will again use [GitHub issues](https://guides.github.com/features/issues/) to document feature requests. Future versions of the API documentation will be developed in a separate branch. 10 | -------------------------------------------------------------------------------- /wfs.rst: -------------------------------------------------------------------------------- 1 | GRiD WFS 2 | ======== 3 | 4 | Get Point Cloud or Raster Features 5 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 6 | 7 | Get a list of point cloud and/or raster features via GRiD's Web Feature 8 | Service (WFS). 9 | 10 | Endpoint 11 | ^^^^^^^^ 12 | 13 | :: 14 | 15 | GET /_ba/cgi-bin/gridws 16 | 17 | Request Parameters 18 | ^^^^^^^^^^^^^^^^^^ 19 | 20 | This is not an exhaustive list of parameters for the WFS endpoint, but 21 | represents a common use case - querying for point cloud and/or raster 22 | features by bounding box. Please refer to the WFS specification or any 23 | number of Internet tutorials for more complex use cases. 24 | 25 | +-------------------+--------------------------------------------------------------------+ 26 | | Query parameter | Value | 27 | +===================+====================================================================+ 28 | | service | *Required*. wfs | 29 | +-------------------+--------------------------------------------------------------------+ 30 | | version | *Required*. 1.1.0 | 31 | +-------------------+--------------------------------------------------------------------+ 32 | | request | *Required*. getfeature | 33 | +-------------------+--------------------------------------------------------------------+ 34 | | typename | *Optional*. ``ms:gridws_pointcloud`` and/or ``ms:gridws_raster`` | 35 | +-------------------+--------------------------------------------------------------------+ 36 | | bbox | *Optional*. minx,miny,maxx,maxy | 37 | +-------------------+--------------------------------------------------------------------+ 38 | 39 | Response Format 40 | ^^^^^^^^^^^^^^^ 41 | 42 | On success, the HTTP status code in the header response is ``200`` OK 43 | and the response body contains the WFS response in XML format. 44 | 45 | Example 46 | ^^^^^^^ 47 | 48 | :: 49 | 50 | curl -u "http://gridte.rsgis.erdc.dren.mil/te_ba/cgi-bin/gridws?service=wfs&version=1.1.0&request=getfeature&typename=ms:gridws_pointcloud&bbox=62,33,62.1,33.1" 51 | 52 | :: 53 | 54 | 55 | 64 | 65 | 66 | 33.001454 62.094691 67 | 33.006002 62.100088 68 | 69 | 70 | 71 | 72 | 73 | 74 | 33.001454 62.094691 75 | 33.006002 62.100088 76 | 77 | 78 | 79 | 80 | 81 | 82 | 33.001454 62.094691 33.006002 62.094691 33.006002 62.100088 33.001454 62.100088 33.001454 62.094691 83 | 84 | 85 | 86 | 87 | 652 88 | collectName 89 | filename.ntf 90 | 2012-09-01T00:00:00Z 91 | 149319 92 | 62.0973893743891 93 | 33.0037279493031 94 | 25.8 95 | 2011-10-19T00:00:00Z 96 | http://gridte.rsgis.erdc.dren.mil//te_ba/export/pointcloud/149319/laz/ 97 | BuckEye 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /swagger.v2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | swagger: '2.0' 3 | 4 | ################################################################################ 5 | # API Information 6 | ################################################################################ 7 | info: 8 | title: GRiD API v2 9 | description: | 10 | This is the API v2 specification for the Geospatial Repository and 11 | Data Management System (aka GRiD). 12 | 13 | All calls require basic authentication. They also require an API key 14 | (passed as the parameter `source`). API keys can be generated by visiting 15 | https://rsgis.erdc.dren.mil/te_ba/api/source/list/. 16 | 17 | Unless otherwise noted, successful calls will return an HTTP status code 18 | `200` with the appropriate response body. Server-side errors will return an 19 | HTTP status code `5xx` with a JSON encoded error message, while client-side 20 | errors will return an HTTP status code `4xx` with a JSON encoded error 21 | message. 22 | 23 | # Changes from v1 24 | 25 | Changes to the API endpoints from v1 to v2 are relatively minor. We have 26 | added the ability to edit and delete both AOIs and Exports. You can also 27 | query point cloud and raster products (previously called collects) for 28 | additional file details. 29 | 30 | Point cloud and raster generation endpoints have changed the most, now 31 | providing more control over the export generation process with additional, 32 | optional parameters. Some of the parameters have also had name changes. 33 | Finally, the generation response now includes both a `task_id` to monitor 34 | status as well as the `export_id` for the resulting export. 35 | 36 | The bulk of the API changes will be found in the JSON-encoded responses, 37 | where we strove for more consistent naming of common fields and a flatter 38 | structure to the overall content, while increasing the amount of information 39 | provided to the user. 40 | 41 | Finally, beginning with v2, we have begun to manage the API specification 42 | using Swagger v2.0 (http://swagger.io/). The Swagger file can be used by a 43 | number of tools to explore the API. We like to use Postman 44 | (https://www.getpostman.com/), which can directly import Swagger files. 45 | version: "2.0.0" 46 | contact: 47 | name: GRiD Support 48 | email: GRiD.Core.Team@erdc.dren.mil 49 | 50 | ################################################################################ 51 | # Other root-level fixed fields 52 | ################################################################################ 53 | host: rsgis.erdc.dren.mil 54 | schemes: 55 | - https 56 | securityDefinitions: 57 | grid_auth: 58 | type: basic 59 | security: 60 | - grid_auth: [] 61 | basePath: /te_ba/api/v2 62 | produces: 63 | - application/json 64 | tags: 65 | - name: AOI 66 | description: AOI resources. 67 | - name: Export 68 | description: Export resources. 69 | - name: Product 70 | description: Product resources. 71 | - name: Geoname 72 | description: Lookup geoname. 73 | - name: Task 74 | description: Task resources. 75 | 76 | ################################################################################ 77 | # Paths 78 | ################################################################################ 79 | paths: 80 | /aoi: 81 | get: 82 | tags: 83 | - AOI 84 | summary: Get a User's AOI List 85 | description: | 86 | Get a list of the AOIs created by or shared with the current GRiD user. 87 | parameters: 88 | - name: source 89 | in: query 90 | description: Your GRiD generated API key. 91 | required: true 92 | type: string 93 | - name: geom 94 | in: query 95 | description: A WKT geometry used to filter AOI results. 96 | required: false 97 | type: string 98 | responses: 99 | 200: 100 | description: An array of AOIs. 101 | schema: 102 | $ref: '#/definitions/AOIArray' 103 | default: 104 | description: Unexpected error 105 | schema: 106 | $ref: '#/definitions/Error' 107 | /aoi/add: 108 | get: 109 | tags: 110 | - AOI 111 | summary: Add AOI 112 | description: | 113 | Create a new AOI for the given geometry. 114 | parameters: 115 | - name: source 116 | in: query 117 | description: Your GRiD generated API key. 118 | required: true 119 | type: string 120 | - name: name 121 | in: query 122 | description: The name for the AOI. 123 | required: true 124 | type: string 125 | - name: geom 126 | in: query 127 | description: A WKT geometry describing the AOI. 128 | required: true 129 | type: string 130 | - name: subscribe 131 | in: query 132 | description: | 133 | True, False, T, F, 1, or 0. Default value is false. 134 | default: false 135 | required: false 136 | type: boolean 137 | responses: 138 | 200: 139 | description: An AOI object. 140 | schema: 141 | $ref: '#/definitions/AOIDetail' 142 | default: 143 | description: Unexpected error 144 | schema: 145 | $ref: '#/definitions/Error' 146 | /aoi/{pk}: 147 | get: 148 | tags: 149 | - AOI 150 | summary: AOI Detail 151 | description: | 152 | Get information for a single AOI. 153 | parameters: 154 | - name: pk 155 | in: path 156 | description: The primary key for the AOI. 157 | required: true 158 | type: integer 159 | - name: source 160 | in: query 161 | description: Your GRiD generated API key. 162 | required: true 163 | type: string 164 | responses: 165 | 200: 166 | description: An AOI object. 167 | schema: 168 | $ref: '#/definitions/AOIDetail' 169 | default: 170 | description: Unexpected error 171 | schema: 172 | $ref: '#/definitions/Error' 173 | /aoi/edit/{pk}: 174 | get: 175 | tags: 176 | - AOI 177 | summary: Edit AOI 178 | description: | 179 | Update an AOIs name, notes, or geometry. In order to change an AOI's 180 | geometry, it must contain 0 generated exports. 181 | parameters: 182 | - name: pk 183 | in: path 184 | description: The primary key of the AOI. 185 | required: true 186 | type: integer 187 | - name: source 188 | in: query 189 | description: Your GRiD generated API key. 190 | required: true 191 | type: string 192 | - name: name 193 | in: query 194 | description: The name for the AOI. 195 | required: false 196 | type: string 197 | - name: geom 198 | in: query 199 | description: A WKT geometry describing the AOI. 200 | required: false 201 | type: string 202 | - name: notes 203 | in: query 204 | description: The notes for the AOI. 205 | required: false 206 | type: string 207 | responses: 208 | 200: 209 | description: An AOI object. 210 | schema: 211 | $ref: '#/definitions/AOIDetail' 212 | default: 213 | description: Unexpected error 214 | schema: 215 | $ref: '#/definitions/Error' 216 | /aoi/delete/{pk}: 217 | get: 218 | tags: 219 | - AOI 220 | summary: Delete AOI 221 | description: Delete an existing AOI. 222 | parameters: 223 | - name: pk 224 | in: path 225 | description: The primary key of the AOI. 226 | required: true 227 | type: integer 228 | - name: source 229 | in: query 230 | description: Your GRiD generated API key. 231 | required: true 232 | type: string 233 | responses: 234 | 200: 235 | description: Succesful AOI deletion responds with an empty body. 236 | default: 237 | description: Unexpected error 238 | schema: 239 | $ref: '#/definitions/Error' 240 | /aoi/{pk}/generate/pointcloud: 241 | get: 242 | tags: 243 | - AOI 244 | summary: Generate Pointcloud Export 245 | description: | 246 | Generate pointcloud export for the given AOI and collect primary keys. 247 | parameters: 248 | - name: pk 249 | in: path 250 | description: The primary key for the AOI. 251 | required: true 252 | type: integer 253 | - name: source 254 | in: query 255 | description: Your GRiD generated API key. 256 | required: true 257 | type: string 258 | - name: products 259 | in: query 260 | description: | 261 | A list of product primary keys to include in the export, separated 262 | by + or ,. 263 | required: true 264 | type: string 265 | - name: name 266 | in: query 267 | description: An optional name for the export. 268 | required: false 269 | type: string 270 | - name: intensity 271 | in: query 272 | description: Whether or not to export intensity. Default is true. 273 | default: true 274 | required: false 275 | type: boolean 276 | - name: dim_classification 277 | in: query 278 | description: Whether or not to export classification. Default is true. 279 | default: true 280 | required: false 281 | type: boolean 282 | - name: hsrs 283 | in: query 284 | description: Accepts an EPSG code. Defaults to AOI SRS. 285 | required: false 286 | type: string 287 | - name: file_export_options 288 | in: query 289 | description: | 290 | Determine file merging strategy. Accepts individual and collect. 291 | Default is individual. 292 | required: false 293 | type: string 294 | - name: file_export_format 295 | in: query 296 | description: | 297 | Determine the format of the output file. Valid values are las12, 298 | las14, nitf, pdf, and bpf3. Default is las12. 299 | required: false 300 | type: string 301 | - name: compressed 302 | in: query 303 | description: | 304 | Whether or not to export compressed data. Default is true. 305 | default: true 306 | required: false 307 | type: boolean 308 | - name: send_email 309 | in: query 310 | description: | 311 | Whether or not to notify user via email upon completion. Default is 312 | false. 313 | default: false 314 | required: false 315 | type: boolean 316 | - name: generate_dem 317 | in: query 318 | description: | 319 | Whether or not to generate a DEM from the pointcloud. Default is 320 | false. 321 | default: false 322 | required: false 323 | type: boolean 324 | - name: cell_spacing 325 | in: query 326 | description: | 327 | Used together with generate_dem. Default is 1.0. Ignored for 328 | raster types. 329 | required: false 330 | type: number 331 | format: float 332 | - name: pcl_terrain 333 | in: query 334 | description: | 335 | Used to trigger a PMF Bare Earth export. Accepts ubran, suburban, 336 | mountainous, and foliated. Default is none. Cannot be used with 337 | sri_hres option. 338 | required: false 339 | type: string 340 | - name: sri_hres 341 | in: query 342 | description: | 343 | Used to trigger a Sarnoff Bare Earth export. Accepts the horizontal 344 | resolution. Default is none. Cannot be used with pcl_terrain option. 345 | required: false 346 | type: number 347 | format: float 348 | - name: decimation_radius 349 | in: query 350 | description: | 351 | The minimum distance between points. If a neighboring point is 352 | found within this radius, it will be discarded. Uses PDAL 353 | decimation filter. Default is none. 354 | required: false 355 | type: number 356 | format: float 357 | - name: retile_size 358 | in: query 359 | description: | 360 | How many points to fit into each tile. The number of points in each 361 | tile will not exceed this value, and will sometimes be less than 362 | it. Uses PDAL chipper filter. Cannot be used with retile_area 363 | option. Default is none. 364 | required: false 365 | type: integer 366 | - name: retile_area 367 | in: query 368 | description: | 369 | The target length of generated tiles. Units determined by source 370 | data. Uses PDAL splitter filter. Cannot be used with retile_size 371 | option. Default is none. 372 | required: false 373 | type: number 374 | format: float 375 | responses: 376 | 200: 377 | description: A generate export object. 378 | schema: 379 | $ref: '#/definitions/GenerateExport' 380 | default: 381 | description: Unexpected error 382 | schema: 383 | $ref: '#/definitions/Error' 384 | /aoi/{pk}/generate/raster: 385 | get: 386 | tags: 387 | - AOI 388 | summary: Generate Raster Export 389 | description: | 390 | Generate raster export for the given AOI and collect primary keys. 391 | parameters: 392 | - name: pk 393 | in: path 394 | description: The primary key for the AOI. 395 | required: true 396 | type: integer 397 | - name: source 398 | in: query 399 | description: Your GRiD generated API key. 400 | required: true 401 | type: string 402 | - name: products 403 | in: query 404 | description: | 405 | A list of product primary keys to include in the export, separated 406 | by + or ,. 407 | required: true 408 | type: string 409 | - name: name 410 | in: query 411 | description: An optional name for the export. 412 | required: false 413 | type: string 414 | - name: intensity 415 | in: query 416 | description: Whether or not to export intensity. Default is true. 417 | default: true 418 | required: false 419 | type: boolean 420 | - name: dim_classification 421 | in: query 422 | description: Whether or not to export classification. Default is true. 423 | default: true 424 | required: false 425 | type: boolean 426 | - name: hsrs 427 | in: query 428 | description: Accepts an EPSG code. Defaults to AOI SRS. 429 | required: false 430 | type: string 431 | - name: file_export_options 432 | in: query 433 | description: | 434 | Determine file merging strategy. Accepts individual and collect. 435 | Default is individual. 436 | required: false 437 | type: string 438 | - name: file_export_format 439 | in: query 440 | description: | 441 | Determine the format of the output file. Valid values are GTiff and 442 | NITF. Default is GTiff. 443 | required: false 444 | type: string 445 | - name: compressed 446 | in: query 447 | description: | 448 | Whether or not to export compressed data. Default is true. 449 | default: true 450 | required: false 451 | type: boolean 452 | - name: send_email 453 | in: query 454 | description: | 455 | Whether or not to notify user via email upon completion. Default is 456 | false. 457 | default: false 458 | required: false 459 | type: boolean 460 | responses: 461 | 200: 462 | description: A generate export object. 463 | schema: 464 | $ref: '#/definitions/GenerateExport' 465 | default: 466 | description: Unexpected error 467 | schema: 468 | $ref: '#/definitions/Error' 469 | /export/{pk}: 470 | get: 471 | tags: 472 | - Export 473 | summary: Get export details. 474 | description: Get information for a single export. 475 | parameters: 476 | - name: pk 477 | in: path 478 | description: The primary key of the AOI. 479 | required: true 480 | type: integer 481 | - name: source 482 | in: query 483 | description: Your GRiD generated API key. 484 | required: true 485 | type: string 486 | responses: 487 | 200: 488 | description: An export object. 489 | schema: 490 | $ref: '#/definitions/ExportDetail' 491 | default: 492 | description: Unexpected error 493 | schema: 494 | $ref: '#/definitions/Error' 495 | /export/edit/{pk}: 496 | get: 497 | tags: 498 | - Export 499 | summary: Edit export 500 | description: Updates an exports name or notes. 501 | parameters: 502 | - name: pk 503 | in: path 504 | description: The primary key of the export. 505 | required: true 506 | type: integer 507 | - name: source 508 | in: query 509 | description: Your GRiD generated API key. 510 | required: true 511 | type: string 512 | - name: name 513 | in: query 514 | description: The name for the export. 515 | required: false 516 | type: string 517 | - name: notes 518 | in: query 519 | description: The notes for the export. 520 | required: false 521 | type: string 522 | responses: 523 | 200: 524 | description: An export object. 525 | schema: 526 | $ref: '#/definitions/ExportDetail' 527 | default: 528 | description: Unexpected error 529 | schema: 530 | $ref: '#/definitions/Error' 531 | /export/delete/{pk}: 532 | get: 533 | tags: 534 | - Export 535 | summary: Delete export 536 | description: Deletes an existing export. 537 | parameters: 538 | - name: pk 539 | in: path 540 | description: The primary key of the export. 541 | required: true 542 | type: integer 543 | - name: source 544 | in: query 545 | description: Your GRiD generated API key. 546 | required: true 547 | type: string 548 | responses: 549 | 200: 550 | description: Succesful export deletion responds with an empty body. 551 | default: 552 | description: Unexpected error 553 | schema: 554 | $ref: '#/definitions/Error' 555 | /product/{pk}: 556 | get: 557 | tags: 558 | - Product 559 | summary: Get product details 560 | description: Get information for a single product (pointcloud or raster). 561 | parameters: 562 | - name: pk 563 | in: path 564 | description: The primary key of the product. 565 | required: true 566 | type: integer 567 | - name: source 568 | in: query 569 | description: Your GRiD generated API key. 570 | required: true 571 | type: string 572 | responses: 573 | 200: 574 | description: A product (pointcloud or raster) object. 575 | schema: 576 | $ref: '#/definitions/ProductJSON' 577 | default: 578 | description: Unexpected error 579 | schema: 580 | $ref: '#/definitions/Error' 581 | /geoname: 582 | get: 583 | tags: 584 | - Geoname 585 | summary: Lookup Geoname 586 | description: | 587 | Get suggested AOI name based on geographic coordinates of the geometry. 588 | parameters: 589 | - name: source 590 | in: query 591 | description: Your GRiD generated API key. 592 | required: true 593 | type: string 594 | - name: geom 595 | in: query 596 | description: A WKT geometry describing the AOI. 597 | required: true 598 | type: string 599 | responses: 600 | 200: 601 | description: A geoname object. 602 | schema: 603 | type: object 604 | properties: 605 | geom: 606 | type: string 607 | description: The WKT geometry describing the AOI. 608 | name: 609 | type: string 610 | description: The suggested name for the given geometry. 611 | default: 612 | description: Unexpected error 613 | schema: 614 | $ref: '#/definitions/Error' 615 | /task/{task_id}: 616 | get: 617 | tags: 618 | - Task 619 | summary: Get task details 620 | description: Get task status/details for the provided task_id. 621 | parameters: 622 | - name: task_id 623 | in: path 624 | description: The ID of the task. 625 | required: true 626 | type: string 627 | - name: source 628 | in: query 629 | description: Your GRiD generated API key. 630 | required: true 631 | type: string 632 | responses: 633 | 200: 634 | description: A task object. 635 | schema: 636 | $ref: '#/definitions/Task' 637 | default: 638 | description: Unexpected error 639 | schema: 640 | $ref: '#/definitions/Error' 641 | definitions: 642 | AOIArray: 643 | type: object 644 | properties: 645 | aoi_list: 646 | type: array 647 | items: 648 | $ref: '#/definitions/AOIList' 649 | description: A list of AOIs. 650 | AOIDetail: 651 | type: object 652 | properties: 653 | name: 654 | $ref: '#/definitions/Name' 655 | created_at: 656 | $ref: '#/definitions/CreatedAt' 657 | is_active: 658 | type: boolean 659 | description: Whether or not the AOI is active. 660 | source: 661 | type: string 662 | description: Source of the AOI (e.g., map, api). 663 | user: 664 | $ref: '#/definitions/User' 665 | geometry: 666 | type: string 667 | description: The WKT geometry of the AOI. 668 | notes: 669 | $ref: '#/definitions/Notes' 670 | pk: 671 | $ref: '#/definitions/Pk' 672 | export_set: 673 | type: array 674 | items: 675 | $ref: '#/definitions/Export' 676 | description: The exports of the AOI. 677 | pointcloud_intersects: 678 | type: array 679 | items: 680 | $ref: '#/definitions/PointcloudDatasetSimple' 681 | description: The pointcloud products for the AOI. 682 | raster_intersects: 683 | type: array 684 | items: 685 | $ref: '#/definitions/RasterDatasetSimple' 686 | description: The raster products for the AOI. 687 | AOIList: 688 | type: object 689 | properties: 690 | name: 691 | $ref: '#/definitions/Name' 692 | created_at: 693 | $ref: '#/definitions/CreatedAt' 694 | is_active: 695 | type: boolean 696 | description: Whether or not the AOI is active. 697 | source: 698 | type: string 699 | description: Source of the AOI (e.g., map, api). 700 | user: 701 | $ref: '#/definitions/User' 702 | geometry: 703 | type: string 704 | description: The WKT geometry of the AOI. 705 | notes: 706 | $ref: '#/definitions/Notes' 707 | pk: 708 | $ref: '#/definitions/Pk' 709 | Area: 710 | type: number 711 | format: float 712 | description: The area of the geometry in sq_km. 713 | CellSpacing: 714 | type: number 715 | format: float 716 | description: The cell spacing used in DEM generation, if applicable. 717 | Classification: 718 | type: string 719 | description: The classifications selected for the export. 720 | CollectedAt: 721 | type: string 722 | format: date-time 723 | description: The date of collection. ISO 8601 format as UTC. 724 | PercentCoverage: 725 | type: number 726 | format: float 727 | description: | 728 | The percent of the product area covered by the AOI. Only available in AOI 729 | detail. 730 | CreatedAt: 731 | type: string 732 | format: date-time 733 | description: The date of AOI creation. ISO 8601 format as UTC. 734 | Datatype: 735 | type: string 736 | description: The datatype (e.g., LAS 1.2, DTM). 737 | DimClassification: 738 | type: boolean 739 | description: | 740 | Whether or not Classification dimension is included in exported data. 741 | Error: 742 | type: object 743 | properties: 744 | error: 745 | type: string 746 | description: Description of the error from the given API request. 747 | Export: 748 | type: object 749 | properties: 750 | datatype: 751 | $ref: '#/definitions/Datatype' 752 | user: 753 | $ref: '#/definitions/User' 754 | hsrs: 755 | $ref: '#/definitions/HSRS' 756 | name: 757 | $ref: '#/definitions/Name' 758 | pk: 759 | $ref: '#/definitions/Pk' 760 | started_at: 761 | $ref: '#/definitions/StartedAt' 762 | status: 763 | $ref: '#/definitions/Status' 764 | url: 765 | $ref: '#/definitions/URL' 766 | ExportDetail: 767 | type: object 768 | properties: 769 | datatype: 770 | $ref: '#/definitions/Datatype' 771 | user: 772 | $ref: '#/definitions/User' 773 | hsrs: 774 | $ref: '#/definitions/HSRS' 775 | name: 776 | $ref: '#/definitions/Name' 777 | pk: 778 | $ref: '#/definitions/Pk' 779 | started_at: 780 | $ref: '#/definitions/StartedAt' 781 | status: 782 | $ref: '#/definitions/Status' 783 | url: 784 | $ref: '#/definitions/URL' 785 | rgb: 786 | $ref: '#/definitions/RGB' 787 | intensity: 788 | $ref: '#/definitions/Intensity' 789 | dim_classification: 790 | $ref: '#/definitions/DimClassification' 791 | file_export_options: 792 | $ref: '#/definitions/FileExportOptions' 793 | generate_dem: 794 | $ref: '#/definitions/GenerateDEM' 795 | cell_spacing: 796 | $ref: '#/definitions/CellSpacing' 797 | notes: 798 | $ref: '#/definitions/Notes' 799 | classification: 800 | $ref: '#/definitions/Classification' 801 | pcl_terrain: 802 | $ref: '#/definitions/PCLTerrain' 803 | sri_hres: 804 | $ref: '#/definitions/SRIHRES' 805 | exportfiles: 806 | $ref: '#/definitions/Exportfiles' 807 | tda_set: 808 | $ref: '#/definitions/TDASet' 809 | task_id: 810 | $ref: '#/definitions/TaskID' 811 | Exportfile: 812 | type: object 813 | properties: 814 | datatype: 815 | $ref: '#/definitions/Datatype' 816 | name: 817 | $ref: '#/definitions/Name' 818 | pk: 819 | $ref: '#/definitions/Pk' 820 | url: 821 | $ref: '#/definitions/URL' 822 | Exportfiles: 823 | type: array 824 | items: 825 | $ref: '#/definitions/Exportfile' 826 | description: The export files of the export. 827 | FileExportOptions: 828 | type: string 829 | description: | 830 | The file export options used (e.g., individual, collect, super). 831 | Filesize: 832 | type: integer 833 | description: The size of the product on the filesystem in bytes. 834 | GenerateDEM: 835 | type: boolean 836 | description: Whether or not this was a generated DEM from pointcloud. 837 | GenerateExport: 838 | type: object 839 | properties: 840 | export_id: 841 | type: integer 842 | description: The ID of the resulting export. 843 | task_id: 844 | type: string 845 | description: The ID of the task. 846 | Geometry: 847 | type: string 848 | description: | 849 | The WKT geometry of the product. Only available in product detail. 850 | HSRS: 851 | type: string 852 | description: The horizontal spatial reference system EPSG code. 853 | Intensity: 854 | type: boolean 855 | description: | 856 | Whether or not Intensity dimension is included in exported data. 857 | Name: 858 | type: string 859 | description: The name of the export. 860 | Notes: 861 | type: string 862 | description: User notes. 863 | PCLTerrain: 864 | type: string 865 | description: The PCL terrain option of the export. 866 | Pk: 867 | type: integer 868 | description: The primary key of the product. 869 | ProductJSON: 870 | type: object 871 | properties: 872 | datatype: 873 | $ref: '#/definitions/Datatype' 874 | name: 875 | $ref: '#/definitions/Name' 876 | pk: 877 | $ref: '#/definitions/Pk' 878 | sensor: 879 | $ref: '#/definitions/Sensor' 880 | collected_at: 881 | $ref: '#/definitions/CollectedAt' 882 | classification: 883 | $ref: '#/definitions/SecurityClassification' 884 | area: 885 | $ref: '#/definitions/Area' 886 | filesize: 887 | $ref: '#/definitions/Filesize' 888 | point_count: 889 | type: integer 890 | description: The total number of points in the product (pointcloud products only). 891 | density: 892 | type: number 893 | format: float 894 | description: The average point density of the product (pointcloud products only). 895 | percent_coverage: 896 | $ref: '#/definitions/PercentCoverage' 897 | geometry: 898 | $ref: '#/definitions/Geometry' 899 | PointcloudDatasetSimple: 900 | type: object 901 | description: | 902 | The simplified point cloud product object lacks the geometry. This is only 903 | calculated when point cloud products are queried via the 904 | `/pointcloud/{pk}` endpoint. 905 | properties: 906 | datatype: 907 | $ref: '#/definitions/Datatype' 908 | name: 909 | $ref: '#/definitions/Name' 910 | pk: 911 | $ref: '#/definitions/Pk' 912 | sensor: 913 | $ref: '#/definitions/Sensor' 914 | collected_at: 915 | $ref: '#/definitions/CollectedAt' 916 | classification: 917 | $ref: '#/definitions/SecurityClassification' 918 | area: 919 | $ref: '#/definitions/Area' 920 | filesize: 921 | $ref: '#/definitions/Filesize' 922 | point_count: 923 | type: integer 924 | description: The total number of points in the product. 925 | density: 926 | type: number 927 | format: float 928 | description: The average point density of the product. 929 | percent_coverage: 930 | $ref: '#/definitions/PercentCoverage' 931 | RasterDatasetSimple: 932 | type: object 933 | properties: 934 | datatype: 935 | $ref: '#/definitions/Datatype' 936 | name: 937 | $ref: '#/definitions/Name' 938 | pk: 939 | $ref: '#/definitions/Pk' 940 | sensor: 941 | $ref: '#/definitions/Sensor' 942 | collected_at: 943 | $ref: '#/definitions/CollectedAt' 944 | classification: 945 | $ref: '#/definitions/SecurityClassification' 946 | area: 947 | $ref: '#/definitions/Area' 948 | filesize: 949 | $ref: '#/definitions/Filesize' 950 | percent_coverage: 951 | $ref: '#/definitions/PercentCoverage' 952 | RGB: 953 | type: boolean 954 | description: Whether or not RGB dimension is included in exported data. 955 | SecurityClassification: 956 | type: string 957 | description: The security classification. 958 | Sensor: 959 | type: string 960 | description: The sensor used to make the collection. 961 | SRIHRES: 962 | type: number 963 | format: float 964 | description: The sri_hres value of the export. 965 | StartedAt: 966 | type: string 967 | format: date-time 968 | description: Time of creation for the AOI. ISO 8601 format as UTC. 969 | Status: 970 | type: string 971 | description: The status of the export (e.g., SUCCESS, FAILED, QUEUED). 972 | Task: 973 | type: object 974 | properties: 975 | task_traceback: 976 | type: string 977 | description: The description of any failures if they occurred. 978 | task_state: 979 | type: string 980 | description: The state of the task (e.g., SUCCESS, FAILED, QUEUED). 981 | task_tstamp: 982 | type: string 983 | format: date-time 984 | description: ISO 8601 format as UTC. 985 | task_name: 986 | type: string 987 | description: The name of the task (e.g., export.tasks.generate_export). 988 | task_id: 989 | type: string 990 | description: The ID of the task. 991 | TaskID: 992 | type: string 993 | description: The ID of the associated task used for generation. 994 | TDA: 995 | type: object 996 | properties: 997 | created_at: 998 | $ref: '#/definitions/CreatedAt' 999 | name: 1000 | $ref: '#/definitions/Name' 1001 | notes: 1002 | $ref: '#/definitions/Notes' 1003 | pk: 1004 | $ref: '#/definitions/Pk' 1005 | status: 1006 | $ref: '#/definitions/Status' 1007 | tda_type: 1008 | type: string 1009 | description: The TDA type (eg., HLZ, LOS). 1010 | url: 1011 | $ref: '#/definitions/URL' 1012 | TDASet: 1013 | type: array 1014 | items: 1015 | $ref: '#/definitions/TDA' 1016 | description: The TDA set of the export. 1017 | URL: 1018 | type: string 1019 | description: The download URL of the export. 1020 | User: 1021 | type: integer 1022 | description: The ID of the creating user. 1023 | -------------------------------------------------------------------------------- /swagger.v3.yaml: -------------------------------------------------------------------------------- 1 | swagger: '2.0' 2 | 3 | ################################################################################ 4 | # API Information 5 | ################################################################################ 6 | info: 7 | title: GRiD API v3 8 | description: | 9 | This is the API v3 specification for the Geospatial Repository and 10 | Data Management System (aka GRiD). Here you can see API examples and 11 | interact with all of the API endpoints visually in your browser. If you would 12 | like to see the API in action, use the 13 | "Try it out!" button for an endpoint. Note: you will be interacting with 14 | live data. 15 | 16 | Authentication using OAuth 2.0 - Authorization Code. 17 | version: "3.0.2" 18 | contact: 19 | url: https://github.com/CRREL/GRiD-API/ 20 | 21 | ################################################################################ 22 | # Other root-level fixed fields 23 | ################################################################################ 24 | host: {{ domain }} 25 | schemes: 26 | - {{ protocol }} 27 | securityDefinitions: 28 | OauthSecurity: 29 | type: oauth2 30 | authorizationUrl: {{ URL_ROOT }}api/authorize 31 | tokenUrl: {{ URL_ROOT }}api/token 32 | flow: accessCode 33 | scopes: 34 | api: grant api access 35 | security: 36 | - OauthSecurity: 37 | - api 38 | basePath: {{ URL_ROOT }}api/v3 39 | consumes: 40 | - application/json 41 | - application/x-www-form-urlencoded 42 | produces: 43 | - application/json 44 | tags: 45 | - name: AOI 46 | description: AOI resources 47 | - name: Export 48 | description: Export resources 49 | - name: Product 50 | description: Product resources 51 | - name: Geoname 52 | description: Lookup geoname 53 | - name: Task 54 | description: Task resources 55 | - name: Hook 56 | description: Hook resources 57 | - name: Holding 58 | description: Data Holding resources 59 | - name: STAC 60 | description: STAC API access 61 | 62 | ################################################################################ 63 | # Paths 64 | ################################################################################ 65 | paths: 66 | /aois: 67 | get: 68 | tags: 69 | - AOI 70 | summary: Get all AOIs 71 | description: | 72 | Get a list of the AOIs created by or shared with your user. 73 | parameters: 74 | - name: geom 75 | in: query 76 | description: A WKT or GeoJSON geometry used to filter AOI results. 77 | required: false 78 | type: string 79 | - name: intersections 80 | in: query 81 | description: | 82 | Determines whether or not to include a list of products that intersect with the AOI geometry. This can 83 | be time-consuming so setting this to False is recommended if product intersections aren't needed. 84 | Default value is False. 85 | required: false 86 | default: false 87 | type: boolean 88 | - name: intersection_types 89 | in: query 90 | description: | 91 | A comma-separated list of product types to include in the product intersection check. 92 | Valid intersection type parameters: pointcloud, raster, vector, mesh. 93 | All types are included by default. 94 | required: false 95 | type: string 96 | - name: intersection_geoms 97 | in: query 98 | description: | 99 | Determines whether or not to include the entire geometry of each product that intersects with the AOI geometry. 100 | Product geometries can be complex, so setting this to False can greatly reduce the return size and 101 | is recommended if the entire geometry is not needed. 102 | Default value is False. 103 | required: false 104 | default: false 105 | type: boolean 106 | - name: export_full 107 | in: query 108 | description: | 109 | Determines whether or not to include a list of export files that 110 | belong to exports for the AOI. 111 | Default value is False. 112 | required: false 113 | default: false 114 | type: boolean 115 | - name: sort 116 | in: query 117 | description: | 118 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 119 | Valid AOI sorting parameters: area, created_at, name, pk, user. 120 | default: pk 121 | required: false 122 | type: string 123 | responses: 124 | 200: 125 | description: All of a users AOIs. 126 | schema: 127 | $ref: '#/definitions/AOIResponse' 128 | 400: 129 | $ref: '#/responses/ErrorResponse' 130 | 401: 131 | $ref: '#/responses/UnauthenticatedResponse' 132 | post: 133 | tags: 134 | - AOI 135 | summary: Create an AOI 136 | consumes: 137 | - application/json 138 | description: | 139 | Create a new AOI for the given geometry. 140 | parameters: 141 | - name: name 142 | in: formData 143 | description: The name for the AOI. 144 | required: true 145 | type: string 146 | - name: geom 147 | in: formData 148 | description: A WKT or GeoJSON geometry describing the AOI. For WKT, supports POLYGON and MULTIPOLYGON natively, POINT and LINESTRING with a buffer parameter. 149 | required: true 150 | type: string 151 | - name: buffer 152 | in: formData 153 | description: A buffer radius in meters for POINT or LINESTRING geom WKTs. 154 | required: false 155 | type: float 156 | - name: notes 157 | in: formData 158 | description: The notes for the AOI. 159 | required: false 160 | type: string 161 | - name: subscribe 162 | in: formData 163 | description: | 164 | Whether or not to subscribe to the AOI. Accepted values: True, False, T, F, 1, or 0. 165 | default: false 166 | required: false 167 | type: boolean 168 | - name: intersections 169 | in: formData 170 | description: | 171 | Determines whether or not to include a list of products that intersect with the AOI geometry. This can 172 | be time-consuming so setting this to False is recommended if product intersections aren't needed. 173 | Default value is True. 174 | required: false 175 | default: true 176 | type: boolean 177 | - name: intersection_types 178 | in: formData 179 | description: | 180 | A comma-separated list of product types to include in the product intersection check. 181 | Valid intersection type parameters: pointcloud, raster, vector, mesh. 182 | All types are included by default. 183 | required: false 184 | type: string 185 | - name: intersection_geoms 186 | in: formData 187 | description: | 188 | Determines whether or not to include the entire geometry of each product that intersects with the AOI geometry. 189 | Product geometries can be complex, so setting this to False can greatly reduce the return size and 190 | is recommended if the entire geometry is not needed. 191 | Default value is True. 192 | required: false 193 | default: true 194 | type: boolean 195 | responses: 196 | 200: 197 | description: The new AOI. 198 | schema: 199 | $ref: '#/definitions/AOIResponse' 200 | 400: 201 | $ref: '#/responses/ErrorResponse' 202 | 401: 203 | $ref: '#/responses/UnauthenticatedResponse' 204 | /aois/{pk}: 205 | get: 206 | tags: 207 | - AOI 208 | summary: Get AOI by PK 209 | description: | 210 | Get information for one or more AOIs. 211 | parameters: 212 | - name: pk 213 | in: path 214 | description: A comma-separated list of AOI primary keys. 215 | required: true 216 | type: integer 217 | - name: intersections 218 | in: query 219 | description: | 220 | Determines whether or not to include a list of products that intersect with the AOI geometry. This can 221 | be time-consuming so setting this to False is recommended if product intersections aren't needed. 222 | Default value is True. 223 | required: false 224 | default: true 225 | type: boolean 226 | - name: intersection_types 227 | in: query 228 | description: | 229 | A comma-separated list of product types to include in the product intersection check. 230 | Valid intersection type parameters: pointcloud, raster, vector, mesh. 231 | All types are included by default. 232 | required: false 233 | type: string 234 | - name: intersection_geoms 235 | in: query 236 | description: | 237 | Determines whether or not to include the entire geometry of each product that intersects with the AOI geometry. 238 | Product geometries can be complex, so setting this to False can greatly reduce the return size and 239 | is recommended if the entire geometry is not needed. 240 | Default value is True. 241 | required: false 242 | default: true 243 | type: boolean 244 | - name: export_full 245 | in: query 246 | description: | 247 | Determines whether or not to include a list of export files that 248 | belong to exports for the AOI. 249 | Default value is True. 250 | required: false 251 | default: true 252 | type: boolean 253 | - name: sort 254 | in: query 255 | description: | 256 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 257 | Valid AOI sorting parameters: area, created_at, name, pk, user. 258 | default: pk 259 | required: false 260 | type: string 261 | responses: 262 | 200: 263 | description: An array of AOIs. 264 | schema: 265 | $ref: '#/definitions/AOIResponse' 266 | 400: 267 | $ref: '#/responses/ErrorResponse' 268 | 401: 269 | $ref: '#/responses/UnauthenticatedResponse' 270 | 404: 271 | $ref: '#/responses/DoesNotExistResponse' 272 | patch: 273 | tags: 274 | - AOI 275 | summary: Edit AOI by PK 276 | description: | 277 | Update an AOIs name, notes, or geometry. In order to change an AOI's 278 | geometry, it must contain 0 generated exports. While we can `GET` or `DELETE` multiple primary keys, the `PATCH` may only be applied to a single primary key. 279 | parameters: 280 | - name: pk 281 | in: path 282 | description: The primary key of an existing AOI. 283 | required: true 284 | type: integer 285 | - name: name 286 | in: formData 287 | description: The name for the AOI. 288 | required: false 289 | type: string 290 | - name: geom 291 | in: formData 292 | description: A WKT or GeoJSON geometry describing the AOI. 293 | required: false 294 | type: string 295 | - name: notes 296 | in: formData 297 | description: The notes for the AOI. 298 | required: false 299 | type: string 300 | - name: subscribe 301 | in: formData 302 | description: Whether or not to subscribe to the AOI. 303 | required: false 304 | type: boolean 305 | responses: 306 | 200: 307 | description: The updated AOI. 308 | schema: 309 | $ref: '#/definitions/AOIResponse' 310 | 400: 311 | $ref: '#/responses/ErrorResponse' 312 | 401: 313 | $ref: '#/responses/UnauthenticatedResponse' 314 | 404: 315 | $ref: '#/responses/DoesNotExistResponse' 316 | delete: 317 | tags: 318 | - AOI 319 | summary: Delete AOI by PK 320 | description: Delete one or more existing AOIs. 321 | parameters: 322 | - name: pk 323 | in: path 324 | description: A comma-separated list of AOI primary keys. 325 | required: true 326 | type: integer 327 | responses: 328 | 200: 329 | description: Successful AOI deletion responds with an empty body. 330 | 400: 331 | $ref: '#/responses/ErrorResponse' 332 | 401: 333 | $ref: '#/responses/UnauthenticatedResponse' 334 | 404: 335 | $ref: '#/responses/DoesNotExistResponse' 336 | /exports: 337 | post: 338 | tags: 339 | - Export 340 | summary: Generate export 341 | consumes: 342 | - application/json 343 | description: | 344 | Exports is new in API v3. It replaces the former `/aoi/{pk}/generate/pointcloud` endpoint. A user would typically begin by querying `/products` for available products that are coincident with the provided geometry `geom`. 345 | parameters: 346 | - name: aoi 347 | in: formData 348 | description: The primary key of the AOI used to export from. 349 | required: true 350 | type: integer 351 | - name: products 352 | in: formData 353 | description: | 354 | A comma-separated list of product primary keys to include in the export. 355 | required: true 356 | type: string 357 | - name: name 358 | in: formData 359 | description: An optional name for the export. 360 | required: false 361 | type: string 362 | - name: hsrs 363 | in: formData 364 | description: Horizontal Spatial Reference System. Accepts an EPSG code. Defaults to the source data HSRS. 365 | required: false 366 | type: integer 367 | - name: vsrs 368 | in: formData 369 | description: Vertical Spatial Reference System. Pointcloud and Raster export option. Accepts an EPSG code. Valid supported values are 4326, 5773, and 3855. Defaults to source data VSRS if present. 370 | required: false 371 | type: integer 372 | - name: file_export_options 373 | in: formData 374 | description: | 375 | Pointcloud and Raster export option. Determine file merging strategy. Both export types accept individual and collect. 376 | Default is individual. 377 | required: false 378 | type: string 379 | - name: compressed 380 | in: formData 381 | description: | 382 | Pointcloud and Raster export option. Whether or not to export compressed data. Defaults to True. 383 | required: false 384 | type: boolean 385 | - name: send_email 386 | in: formData 387 | description: | 388 | Whether or not to notify user via email upon completion. Defaults to False. 389 | required: false 390 | type: boolean 391 | - name: file_export_format 392 | in: formData 393 | description: | 394 | Pointcloud export option. Determine the format of the output file(s). Valid values are las12, 395 | las14, nitf, pdf, bpf3, and source. Defaults to las12. 396 | required: false 397 | type: string 398 | - name: clipping 399 | in: formData 400 | description: | 401 | Pointcloud export option. Whether or not to clip selected products to the boundary of the AOI. 402 | If false, tiles that intersect the AOI are included in their entirety. Defaults to true. 403 | required: false 404 | type: boolean 405 | - name: generate_dem 406 | in: formData 407 | description: | 408 | Pointcloud export option. Whether or not to generate a DEM from the pointcloud. Defaults to False. 409 | required: false 410 | type: boolean 411 | - name: custom_filters 412 | in: formData 413 | description: | 414 | Pointcloud export option. Custom PDAL filters to use for pointcloud generation. A single filter block should be 415 | in json object format, multiple filters should be passed as an array of json objects. Any reader or writer blocks 416 | included will be ignored. See pdal.io/stages/filters.html for filter details. Defaults to None. 417 | required: false 418 | type: string 419 | format: json 420 | - name: cell_spacing 421 | in: formData 422 | description: | 423 | Pointcloud export option used together with generate_dem. Ignored for 424 | raster types. Defaults to 1.0. 425 | required: false 426 | type: number 427 | format: float 428 | - name: smrf_terrain 429 | in: formData 430 | description: | 431 | Pointcloud export option. Used to trigger a SMRF Bare Earth export. Accepts default, urban or suburban, 432 | mountainous, and foliated. Default is None. Cannot be used with 433 | pmf_terrain option. 434 | required: false 435 | type: string 436 | - name: be_extract 437 | in: formData 438 | description: | 439 | Pointcloud export option. Whether or not to extract ground returns. Defaults to False. 440 | required: false 441 | type: boolean 442 | - name: pmf_terrain 443 | in: formData 444 | description: | 445 | Pointcloud export option. Used to trigger a PMF Bare Earth export. Accepts urban, suburban, 446 | mountainous, and foliated. Default is none. Cannot be used with 447 | smrf_terrain option. 448 | type: string 449 | - name: sri_hres 450 | in: formData 451 | description: | 452 | Deprecated Pointcloud export option. Used to trigger a Sarnoff Bare Earth export. Accepts the horizontal 453 | resolution. Default is none. Cannot be used with smrf_terrain or pmf_terrain options. 454 | required: false 455 | type: number 456 | format: float 457 | - name: decimation_radius 458 | in: formData 459 | description: | 460 | Pointcloud export option. The minimum distance between points. If a neighboring point is 461 | found within this radius, it will be discarded. Units in meters. Uses PDAL 462 | decimation filter. Default is none. 463 | required: false 464 | type: number 465 | format: float 466 | - name: capacity 467 | in: formData 468 | description: | 469 | Pointcloud export option. How many points to fit into each tile. The number of points in each 470 | tile will not exceed this value, and will sometimes be less than 471 | it. Uses PDAL chipper filter. Cannot be used with length 472 | option. Default is none. 473 | required: false 474 | type: integer 475 | - name: length 476 | in: formData 477 | description: | 478 | Pointcloud export option. The target length of generated tiles. Units in meters. Uses PDAL splitter filter. Cannot be used with capacity 479 | option. Default is none. 480 | required: false 481 | type: number 482 | format: float 483 | - name: file_format_options 484 | in: formData 485 | description: | 486 | Raster export option. Determine the format of the output file(s). Valid values are GTiff, NITF, and source. Defaults to GTiff. 487 | required: false 488 | type: string 489 | - name: target_resolution 490 | in: formData 491 | description: | 492 | Raster export option. Determine the raster cell size (in meters). Defaults to None which uses the source resolution size. 493 | required: false 494 | type: number 495 | format: float 496 | - name: vector_format 497 | in: formData 498 | description: | 499 | Vector export option. Accepts officially supported vector formats. Valid values are ESRI Shapefile, GML, GPKG, KMZ, GeoJSON, and SQLite. 500 | Defaults to ESRI Shapefile. 501 | required: false 502 | type: string 503 | # - name: afe_selection 504 | # in: formData 505 | # required: false 506 | # description: | 507 | # Automated Feature Extraction selection. Accepts a number of different algorithm names, some with the option to include Tree output. Algorithm name 508 | # ends in semicolon (;) which is the separator for whether Tree / Vegetaion output is requested. 509 | # type: string 510 | # enum: [texpert_1.2.12;, ara_mrf;, ara_mrf;trees, ara;, ara;trees, psu;, texpert_3.0.14;, texpert_3.0.14;trees] 511 | - name: derived_rasters 512 | in: formData 513 | required: false 514 | description: | 515 | Raster Export Option - Elevation only. Generate Derived Rasters, eg alternative representations of the Elevation data. Accepts a number of different derived outputs 516 | type: string 517 | enum: [hillshade, shaded_relief_terrain, shaded_relief_rgb, shaded_slope, slope, aspect] 518 | - name: derived_pc_rasters 519 | in: formData 520 | required: false 521 | description: | 522 | Pointcloud Export Option - Elevation only. Generate Pointcloud Derived Rasters, eg alternative representations of the Pointcloud data. Accepts a number of different derived outputs 523 | type: string 524 | enum: [dtm_hillshade, dsm_hillshade, rii, shaded_relief_dtm, shaded_relief_dsm, slope, slope_shade, slope_dtm, slope_shade_dtm, aspect, aspect_dtm, orthophoto] 525 | responses: 526 | 200: 527 | description: Started export object. 528 | schema: 529 | $ref: '#/definitions/ExportStartedResponse' 530 | 400: 531 | $ref: '#/responses/ErrorResponse' 532 | /exports/{pk}: 533 | get: 534 | tags: 535 | - Export 536 | summary: Get export by PK 537 | description: Get information for one or more exports. 538 | parameters: 539 | - name: pk 540 | in: path 541 | description: A comma-separated list of export primary keys. 542 | required: true 543 | type: integer 544 | - name: sort 545 | in: query 546 | description: | 547 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 548 | Valid Export sorting parameters: name, pk, started_at, user. 549 | default: pk 550 | required: false 551 | type: string 552 | - name: file_geoms 553 | in: query 554 | description: | 555 | Determines whether or not to include the geometry of each export file generated by this Export. 556 | Geometries can be verbose, so keeping this set to False can greatly reduce the return size and 557 | is recommended if the geometries are not needed. 558 | Default value is False. 559 | default: false 560 | required: false 561 | type: boolean 562 | responses: 563 | 200: 564 | description: Export objects. 565 | schema: 566 | $ref: '#/definitions/ExportResponse' 567 | 400: 568 | $ref: '#/responses/ErrorResponse' 569 | 401: 570 | $ref: '#/responses/UnauthenticatedResponse' 571 | 404: 572 | $ref: '#/responses/DoesNotExistResponse' 573 | 403: 574 | $ref: '#/responses/ForbiddenResponse' 575 | patch: 576 | tags: 577 | - Export 578 | summary: Edit export by PK 579 | description: Updates an exports name or notes. While we can `GET` or `DELETE` multiple primary keys, the `PATCH` may only be applied to a single primary key. 580 | parameters: 581 | - name: pk 582 | in: path 583 | description: The primary key of the export. 584 | required: true 585 | type: integer 586 | - name: name 587 | in: formData 588 | description: The name for the export. 589 | required: false 590 | type: string 591 | - name: notes 592 | in: formData 593 | description: The notes for the export. 594 | required: false 595 | type: string 596 | responses: 597 | 200: 598 | description: Export object. 599 | schema: 600 | $ref: '#/definitions/ExportResponse' 601 | 400: 602 | $ref: '#/responses/ErrorResponse' 603 | 403: 604 | $ref: '#/responses/ForbiddenResponse' 605 | 401: 606 | $ref: '#/responses/UnauthenticatedResponse' 607 | 404: 608 | $ref: '#/responses/DoesNotExistResponse' 609 | delete: 610 | tags: 611 | - Export 612 | summary: Delete export by PK 613 | description: Delete one or more existing exports. 614 | parameters: 615 | - name: pk 616 | in: path 617 | description: A comma-separated list of export primary keys. 618 | required: true 619 | type: integer 620 | responses: 621 | 200: 622 | description: Successful export deletion responds with an empty body. 623 | 400: 624 | $ref: '#/responses/ErrorResponse' 625 | 403: 626 | $ref: '#/responses/ForbiddenResponse' 627 | /exports/filters: 628 | get: 629 | tags: 630 | - Export 631 | summary: Get PDAL filters available for use in exports. 632 | description: Get PDAL filters available for use in exports. 633 | responses: 634 | 200: 635 | description: Filters list. 636 | schema: 637 | $ref: '#/definitions/FiltersResponse' 638 | 400: 639 | $ref: '#/responses/ErrorResponse' 640 | 401: 641 | $ref: '#/responses/UnauthenticatedResponse' 642 | 404: 643 | $ref: '#/responses/DoesNotExistResponse' 644 | 403: 645 | $ref: '#/responses/ForbiddenResponse' 646 | /holdings: 647 | get: 648 | tags: 649 | - Holding 650 | summary: Get data holdings 651 | description: | 652 | Provides a high level overview of GRiD's data holdings. 653 | parameters: 654 | - name: geom 655 | in: query 656 | description: A WKT or GeoJSON geometry used to filter Holdings results. 657 | required: false 658 | type: string 659 | - name: geoms 660 | in: query 661 | description: | 662 | Determines whether or not to include the full coverage geometry WKT with the return. 663 | Product geometries can be complex, so setting this to False can greatly reduce the return size and 664 | is recommended if the geometry is not needed. 665 | required: false 666 | type: boolean 667 | default: true 668 | - name: program 669 | in: query 670 | description: | 671 | A comma-separated list of program names used to filter the results. 672 | required: false 673 | type: string 674 | - name: access_tag 675 | in: query 676 | description: | 677 | A comma-separated list of access permision names used to filter the results. 678 | required: false 679 | type: string 680 | - name: datatype 681 | in: query 682 | description: | 683 | A comma-separated list of datatypes used to filter the results. 684 | required: false 685 | type: string 686 | responses: 687 | 200: 688 | description: Holdings objects. 689 | schema: 690 | $ref: '#/definitions/DataHoldingResponse' 691 | 400: 692 | $ref: '#/responses/ErrorResponse' 693 | 401: 694 | $ref: '#/responses/UnauthenticatedResponse' 695 | /products: 696 | get: 697 | tags: 698 | - Product 699 | summary: Get products by geom 700 | description: | 701 | API users will query the `products` endpoint to discover available products that are coincident with the given geometry `geom`. 702 | Results can be filtered by sensor or type. 703 | parameters: 704 | - name: geom 705 | in: query 706 | description: A WKT or GeoJSON geometry used to discover the Product results that intersect the given geometry. 707 | required: true 708 | type: string 709 | - name: geoms 710 | in: query 711 | description: | 712 | Determines whether or not to include full product geometries with the return. 713 | Product geometries can be complex, so setting this to False can greatly reduce the return size and 714 | is recommended if the entire geometry is not needed. 715 | required: false 716 | default: false 717 | type: boolean 718 | - name: sensor 719 | in: query 720 | description: A comma-separated list of sensor names used to filter the results. 721 | required: false 722 | type: string 723 | - name: datatype 724 | in: query 725 | description: | 726 | A comma-separated list of datatypes used to filter the results. 727 | required: false 728 | type: string 729 | - name: program 730 | in: query 731 | description: | 732 | A comma-separated list of program names used to filter the results. 733 | required: false 734 | type: string 735 | - name: access_tag 736 | in: query 737 | description: | 738 | A comma-separated list of access permission names used to filter the results. 739 | required: false 740 | type: string 741 | - name: type 742 | in: query 743 | description: | 744 | A comma-separated list of product types to include in the product intersection check. 745 | Valid intersection type parameters: pointcloud, raster, vector, mesh. 746 | All types are included by default. 747 | required: false 748 | type: string 749 | - name: error_model 750 | in: query 751 | description: | 752 | A comma-separated list of error model names to include in the product intersection check, such as GPM. 753 | If left blank, products with any error model or no error model will be included. 754 | required: false 755 | type: string 756 | - name: files 757 | in: query 758 | description: | 759 | Whether to include the file list or not. Default value is False 760 | required: false 761 | default: false 762 | type: boolean 763 | - name: sort 764 | in: query 765 | description: | 766 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 767 | Valid Product sorting parameters: collected_at, name, pk. 768 | default: pk 769 | required: false 770 | type: string 771 | responses: 772 | 200: 773 | description: Product objects. 774 | schema: 775 | $ref: '#/definitions/ProductResponse' 776 | 400: 777 | $ref: '#/responses/ErrorResponse' 778 | 401: 779 | $ref: '#/responses/UnauthenticatedResponse' 780 | /products/{pk}: 781 | get: 782 | tags: 783 | - Product 784 | summary: Get product by PK 785 | description: Get information for one or more products. 786 | parameters: 787 | - name: pk 788 | in: path 789 | description: A comma-separated list of product primary keys. 790 | required: true 791 | type: integer 792 | - name: geoms 793 | in: query 794 | description: | 795 | Determines whether or not to include the full product geometry with the return. 796 | Product geometries can be complex, so setting this to False can greatly reduce the return size and 797 | is recommended if the entire geometry is not needed. 798 | Default value is True. 799 | required: false 800 | default: true 801 | type: boolean 802 | - name: files 803 | in: query 804 | description: | 805 | Whether to include the file list or not. Default value is False 806 | required: false 807 | default: false 808 | type: boolean 809 | - name: sort 810 | in: query 811 | description: | 812 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 813 | Valid Product sorting parameters: collected_at, name, pk. 814 | default: pk 815 | required: false 816 | type: string 817 | responses: 818 | 200: 819 | description: A product (pointcloud, raster, vector, or mesh) object. 820 | schema: 821 | $ref: '#/definitions/ProductResponse' 822 | 400: 823 | $ref: '#/responses/ErrorResponse' 824 | 401: 825 | $ref: '#/responses/UnauthenticatedResponse' 826 | 404: 827 | $ref: '#/responses/DoesNotExistResponse' 828 | /geonames: 829 | get: 830 | tags: 831 | - Geoname 832 | summary: Lookup geoname by geom 833 | description: | 834 | Get suggested AOI name based on geographic coordinates of the geometry. 835 | parameters: 836 | - name: geom 837 | in: query 838 | description: A WKT or GeoJSON geometry describing the AOI. 839 | required: true 840 | type: string 841 | responses: 842 | 200: 843 | description: Geoname object. 844 | schema: 845 | $ref: '#/definitions/GeonameResponse' 846 | 400: 847 | $ref: '#/responses/ErrorResponse' 848 | 401: 849 | $ref: '#/responses/UnauthenticatedResponse' 850 | /tasks: 851 | get: 852 | tags: 853 | - Task 854 | summary: Get all tasks 855 | description: Get all of your tasks. Results can be filtered by state or name. 856 | parameters: 857 | - name: state 858 | in: query 859 | description: The state of the task (SUCCESS, RUNNING, QUEUED, CANCELED, or FAILURE). Accepts a comma-separated list. 860 | required: false 861 | type: string 862 | - name: name 863 | in: query 864 | description: The name of the task (export.tasks.generate_export, api.tasks.deliver_hook). Accepts a comma-separated list. 865 | required: false 866 | type: string 867 | - name: sort 868 | in: query 869 | description: | 870 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 871 | Valid Task sorting parameters: name, state, task_id, time_stamp. 872 | default: task_id 873 | required: false 874 | type: string 875 | responses: 876 | 200: 877 | description: Task objects. 878 | schema: 879 | $ref: '#/definitions/TaskResponse' 880 | 400: 881 | $ref: '#/responses/ErrorResponse' 882 | 401: 883 | $ref: '#/responses/UnauthenticatedResponse' 884 | /tasks/{task_id}: 885 | get: 886 | tags: 887 | - Task 888 | summary: Get task by task_id 889 | description: Get information for one or more tasks. 890 | parameters: 891 | - name: task_id 892 | in: path 893 | description: A comma-separated list of task IDs. 894 | required: true 895 | type: string 896 | - name: sort 897 | in: query 898 | description: | 899 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 900 | Valid Task sorting parameters: name, state, task_id, time_stamp. 901 | default: task_id 902 | required: false 903 | type: string 904 | responses: 905 | 200: 906 | description: Task object. 907 | schema: 908 | $ref: '#/definitions/TaskResponse' 909 | 400: 910 | $ref: '#/responses/ErrorResponse' 911 | 401: 912 | $ref: '#/responses/UnauthenticatedResponse' 913 | 404: 914 | $ref: '#/responses/DoesNotExistResponse' 915 | /hooks: 916 | get: 917 | tags: 918 | - Hook 919 | summary: Get all hooks 920 | description: Get all of your hooks. 921 | parameters: 922 | - name: sort 923 | in: query 924 | description: | 925 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 926 | Valid Hook sorting parameters: created_at, event, pk, target. 927 | default: pk 928 | required: false 929 | type: string 930 | responses: 931 | 200: 932 | description: Hook objects. 933 | schema: 934 | $ref: '#/definitions/HookResponse' 935 | 400: 936 | $ref: '#/responses/ErrorResponse' 937 | 401: 938 | $ref: '#/responses/UnauthenticatedResponse' 939 | post: 940 | tags: 941 | - Hook 942 | summary: Create hook 943 | consumes: 944 | - application/json 945 | description: | 946 | Create a new hook. Hooks are new to v3 of the API and allow for users to subscribe to particular GRiD events and be notified when they occur. 947 | Currently supported events are: newdata.loaded and export.complete. The newdata.loaded event is triggered any time new pointcloud, raster, vector, or mesh data 948 | is ingested into GRiD and intersects one of your existing AOIs. The export.complete event is triggered any time one of your exports finishes, SUCCESS or FAILURE. 949 | The scope of these notifications can be controlled by including an optional AOI parameter. Newdata and export notifications will be limited to the given AOI if supplied. 950 | Hooks that fail to deliver will retry 5 times. Delivered hooks that receive a 410 or 500+ return response will be automatically deleted. 951 | parameters: 952 | - name: event 953 | in: formData 954 | description: The event being subscribed to (export.complete, newdata.loaded) 955 | required: true 956 | type: string 957 | - name: target 958 | in: formData 959 | description: The destination URL for payloads to be delivered to. 960 | required: true 961 | type: string 962 | - name: aoi 963 | in: formData 964 | description: The pk of an AOI. Used to limit the scope of event notifications. 965 | required: false 966 | type: integer 967 | responses: 968 | 200: 969 | description: A hook object. 970 | schema: 971 | $ref: '#/definitions/HookResponse' 972 | 400: 973 | $ref: '#/responses/ErrorResponse' 974 | 401: 975 | $ref: '#/responses/UnauthenticatedResponse' 976 | /hooks/{pk}: 977 | get: 978 | tags: 979 | - Hook 980 | summary: Get hook by PK 981 | description: Get information for one or more hooks. 982 | parameters: 983 | - name: pk 984 | in: path 985 | description: A comma-separated list of hook primary keys. 986 | required: true 987 | type: integer 988 | - name: sort 989 | in: query 990 | description: | 991 | Sort the result by a given field. A "-" can be prepended to the field to indicate descending order. 992 | Valid Hook sorting parameters: created_at, event, pk, target. 993 | default: pk 994 | required: false 995 | type: string 996 | responses: 997 | 200: 998 | description: A hook object. 999 | schema: 1000 | $ref: '#/definitions/HookResponse' 1001 | 400: 1002 | $ref: '#/responses/ErrorResponse' 1003 | 401: 1004 | $ref: '#/responses/UnauthenticatedResponse' 1005 | 404: 1006 | $ref: '#/responses/DoesNotExistResponse' 1007 | patch: 1008 | tags: 1009 | - Hook 1010 | summary: Edit hook by PK 1011 | description: Updates an hooks event, target, or AOI. While we can `GET` or `DELETE` multiple primary keys, the `PATCH` may only be applied to a single primary key. 1012 | parameters: 1013 | - name: pk 1014 | in: path 1015 | description: The primary key of the hook. 1016 | required: true 1017 | type: integer 1018 | - name: event 1019 | in: formData 1020 | description: The event being subscribed to (export.complete, newdata.loaded) 1021 | required: false 1022 | type: string 1023 | - name: target 1024 | in: formData 1025 | description: The destination URL for payloads to be delivered to. 1026 | required: false 1027 | type: string 1028 | - name: aoi 1029 | in: formData 1030 | description: The pk of an AOI. Used to limit the scope of event notifications. 1031 | required: false 1032 | type: integer 1033 | responses: 1034 | 200: 1035 | description: Hook object. 1036 | schema: 1037 | $ref: '#/definitions/HookResponse' 1038 | 400: 1039 | $ref: '#/responses/ErrorResponse' 1040 | 401: 1041 | $ref: '#/responses/UnauthenticatedResponse' 1042 | 404: 1043 | $ref: '#/responses/DoesNotExistResponse' 1044 | delete: 1045 | tags: 1046 | - Hook 1047 | summary: Delete hook 1048 | description: Delete one or more existing hooks. 1049 | parameters: 1050 | - name: pk 1051 | in: path 1052 | description: A comma-separated list of hook primary keys. 1053 | required: true 1054 | type: integer 1055 | responses: 1056 | 200: 1057 | description: Successful hook deletion responds with an empty body. 1058 | 400: 1059 | $ref: '#/responses/ErrorResponse' 1060 | 401: 1061 | $ref: '#/responses/UnauthenticatedResponse' 1062 | 404: 1063 | $ref: '#/responses/DoesNotExistResponse' 1064 | /hooks/{pk}/test: 1065 | post: 1066 | tags: 1067 | - Hook 1068 | summary: Test a hook by PK 1069 | description: Tests a hook by sending event-specific test data to the hooks target url. 1070 | consumes: 1071 | - text/plain; charset=utf-8 1072 | parameters: 1073 | - name: pk 1074 | in: path 1075 | description: A comma-separated list of hook primary keys. 1076 | required: true 1077 | type: integer 1078 | responses: 1079 | 200: 1080 | description: Successful hook test responds with an empty body. 1081 | 400: 1082 | $ref: '#/responses/ErrorResponse' 1083 | 401: 1084 | $ref: '#/responses/UnauthenticatedResponse' 1085 | 404: 1086 | $ref: '#/responses/DoesNotExistResponse' 1087 | /stac/{pk}: 1088 | post: 1089 | tags: 1090 | - STAC 1091 | summary: Retrieve STAC ItemCollection for this Product. 1092 | parameters: 1093 | - in: path 1094 | name: pk 1095 | description: ID of Raster or Pointcloud Product 1096 | required: true 1097 | schema: 1098 | type: integer 1099 | responses: 1100 | '200': 1101 | $ref: '#/definitions/StacItemCollectionResponse' 1102 | requestBody: 1103 | required: false 1104 | content: 1105 | application/json: 1106 | schema: 1107 | type: object 1108 | properties: 1109 | page: 1110 | description: Page number for ItemCollection. Page 0 may have items 0-5, page 1, 6-10. 1111 | type: integer 1112 | get: 1113 | tags: 1114 | - STAC 1115 | summary: Retrieve STAC ItemCollection for this Product. 1116 | parameters: 1117 | - in: path 1118 | name: pk 1119 | description: ID of a Raster or Pointcloud Product 1120 | required: true 1121 | schema: 1122 | type: integer 1123 | responses: 1124 | '200': 1125 | $ref: '#/definitions/StacItemCollectionResponse' 1126 | /stac/{pk}/search/: 1127 | post: 1128 | tags: 1129 | - STAC 1130 | summary: Retrieve STAC ItemCollection for this Product. 1131 | parameters: 1132 | - in: path 1133 | name: pk 1134 | description: ID of Product 1135 | required: true 1136 | schema: 1137 | type: integer 1138 | requestBody: 1139 | description: A JSON object of STAC Item Search parameters. 1140 | required: false 1141 | content: 1142 | application/json: 1143 | schema: 1144 | type: object 1145 | properties: 1146 | limit: 1147 | description: Maximum number of items to return. 1148 | type: integer 1149 | page: 1150 | description: Page number for ItemCollection. Page 0 may have items 0-5, page 1, 6-10. 1151 | type: integer 1152 | default: 0 1153 | ids: 1154 | description: Array of IDs corresponding to Rasters or Pointclouds in the product. 1155 | type: array 1156 | items: 1157 | type: integer 1158 | intersects: 1159 | $ref: '#/components/schemas/GeoJsonPoly' 1160 | bbox: 1161 | description: Describes if an Aoi subscription exists. 1162 | type: array 1163 | items: 1164 | type: number 1165 | format: float 1166 | minItems: 4 1167 | maxItems: 6 1168 | responses: 1169 | '200': 1170 | $ref: '#definitions/StacItemCollectionResponse' 1171 | get: 1172 | tags: 1173 | - STAC 1174 | summary: Retrieve STAC ItemCollection for this Product. 1175 | parameters: 1176 | - in: path 1177 | name: id 1178 | description: ID of Product 1179 | required: true 1180 | schema: 1181 | type: integer 1182 | responses: 1183 | '200': 1184 | $ref: '#/definitions/StacItemCollectionResponse' 1185 | 1186 | responses: 1187 | DoesNotExistResponse: 1188 | description: Object with specified ID(s) does not exist. 1189 | schema: 1190 | $ref: "#/definitions/ErrorResponse" 1191 | UnauthenticatedResponse: 1192 | description: Authorization information is missing or invalid. 1193 | schema: 1194 | $ref: "#/definitions/ErrorResponse" 1195 | ForbiddenResponse: 1196 | description: User does not have permission to access this object. 1197 | schema: 1198 | $ref: "#/definitions/ErrorResponse" 1199 | ErrorResponse: 1200 | description: Unexpected error occurred. 1201 | schema: 1202 | $ref: "#/definitions/ErrorResponse" 1203 | definitions: 1204 | AOI: 1205 | type: object 1206 | properties: 1207 | name: 1208 | type: string 1209 | description: The name of the AOI. 1210 | created_at: 1211 | type: string 1212 | format: date-time 1213 | description: The date of AOI creation. ISO 8601 format as UTC. 1214 | user: 1215 | type: string 1216 | description: The email address of the user that created the object. 1217 | geom: 1218 | type: string 1219 | description: The WKT geometry of the object. 1220 | area: 1221 | type: number 1222 | format: float 1223 | description: The area of the geometry in sq_km. 1224 | notes: 1225 | type: string 1226 | description: User notes about the object. 1227 | pk: 1228 | type: string 1229 | description: The primary key (ID) of the object. 1230 | exports: 1231 | type: array 1232 | description: A list of Export objects for this AOI. 1233 | items: 1234 | $ref: '#/definitions/Export' 1235 | pointcloud_intersects: 1236 | type: array 1237 | items: 1238 | $ref: '#/definitions/PointcloudProduct' 1239 | description: The pointcloud products intersecting AOI. 1240 | raster_intersects: 1241 | type: array 1242 | items: 1243 | $ref: '#/definitions/RasterProduct' 1244 | description: The raster products intersecting AOI. 1245 | vector_intersects: 1246 | type: array 1247 | items: 1248 | $ref: '#/definitions/VectorProduct' 1249 | description: The vector products intersecting AOI. 1250 | mesh_intersects: 1251 | type: array 1252 | items: 1253 | $ref: '#/definitions/MeshProduct' 1254 | description: The mesh products intersecting AOI. 1255 | new_pointcloud_data: 1256 | type: array 1257 | items: 1258 | $ref: '#/definitions/Pk' 1259 | description: The list of pointcloud product PKs that have been loaded to GRiD since your last inquiry for this AOI. 1260 | new_raster_elevation_data: 1261 | type: array 1262 | items: 1263 | $ref: '#/definitions/Pk' 1264 | description: The list of raster elevation product PKs that have been loaded to GRiD since your last inquiry for this AOI. 1265 | new_raster_imagery_data: 1266 | type: array 1267 | items: 1268 | $ref: '#/definitions/Pk' 1269 | description: The list of raster imagery product PKs that have been loaded to GRiD since your last inquiry for this AOI. 1270 | new_raster_thematic_data: 1271 | type: array 1272 | items: 1273 | $ref: '#/definitions/Pk' 1274 | description: The list of raster thematioc product PKs that have been loaded to GRiD since your last inquiry for this AOI. 1275 | new_mesh_data: 1276 | type: array 1277 | items: 1278 | $ref: '#/definitions/Pk' 1279 | description: The list of mesh product PKs that have been loaded to GRiD since your last inquiry for this AOI. 1280 | new_vector_data: 1281 | type: array 1282 | items: 1283 | $ref: '#/definitions/Pk' 1284 | description: The list of vector product PKs that have been loaded to GRiD since your last inquiry for this AOI. 1285 | subscribed: 1286 | type: boolean 1287 | description: Indicates the subscription status for the AOI. 1288 | AOIResponse: 1289 | type: object 1290 | properties: 1291 | aois: 1292 | type: array 1293 | description: A dictionary with an "aois" key containing an array of AOI objects. 1294 | items: 1295 | $ref: '#/definitions/AOI' 1296 | AssociatedProductResponse: 1297 | type: object 1298 | properties: 1299 | pointclouds: 1300 | type: array 1301 | items: 1302 | $ref: '#/definitions/PointcloudProduct' 1303 | description: A list of associated pointcloud products. 1304 | rasters: 1305 | type: array 1306 | items: 1307 | $ref: '#/definitions/RasterProduct' 1308 | description: A list of associated raster products. 1309 | vectors: 1310 | type: array 1311 | items: 1312 | $ref: '#/definitions/VectorProduct' 1313 | description: A list of associated vector products. 1314 | description: Associated products are supporting products that should only be exported along with their parent product. 1315 | DataHolding: 1316 | type: object 1317 | properties: 1318 | program: 1319 | type: string 1320 | description: The name of the program that the data falls under. 1321 | program_description: 1322 | type: string 1323 | description: Information about the program and the data contained. 1324 | datatype: 1325 | type: string 1326 | description: Indicates the type of data contained for these holdings. 1327 | area: 1328 | type: number 1329 | format: float 1330 | description: The total area of the holdings coverage in sq_km. 1331 | access_tag: 1332 | type: string 1333 | description: The name of the Access Tag permission required to access this data. 1334 | latest_load: 1335 | type: string 1336 | format: date-time 1337 | description: Most recent date of data loaded. ISO 8601 format as UTC. 1338 | geom: 1339 | type: string 1340 | description: The WKT geometry of the coverage for these holdings. A WKT will only be present if the user has the necessary permissions to interact with this data. 1341 | coverage_download_urls: 1342 | type: array 1343 | items: 1344 | $ref: '#/definitions/Url' 1345 | description: A list of download urls containing the coverage shape of the data. Only returned if the user has the required permissions to access the data. 1346 | filesize: 1347 | type: integer 1348 | description: The total size on the filesystem in bytes. 1349 | file_count: 1350 | type: integer 1351 | description: The total number of files loaded on the filesystem. 1352 | point_count: 1353 | type: integer 1354 | description: Only applies to pointcloud datasets. The total number of points. 1355 | global_dataset: 1356 | type: boolean 1357 | description: Indicates whether or not the data coverage is global. 1358 | DataHoldingResponse: 1359 | type: object 1360 | properties: 1361 | holdings: 1362 | type: array 1363 | items: 1364 | $ref: '#/definitions/DataHolding' 1365 | description: A dictionary with a "holdings" key containing an array of DataHolding objects. 1366 | ErrorResponse: 1367 | type: object 1368 | properties: 1369 | error: 1370 | type: string 1371 | description: Description of the error from the given API request. 1372 | Export: 1373 | type: object 1374 | properties: 1375 | name: 1376 | type: string 1377 | description: The name of the Export. 1378 | datatype: 1379 | type: string 1380 | description: The datatype(s) of exportfiles contained in the export. 1381 | user: 1382 | type: string 1383 | description: The email address of the user that created the object. 1384 | hsrs: 1385 | type: integer 1386 | description: The horizontal spatial reference system EPSG code. 1387 | vsrs: 1388 | type: integer 1389 | description: The vertical spatial reference system EPSG code. 1390 | pk: 1391 | type: string 1392 | description: The primary key (ID) of the object. 1393 | started_at: 1394 | type: string 1395 | format: date-time 1396 | description: Time of creation for the AOI. ISO 8601 format as UTC. 1397 | status: 1398 | type: string 1399 | description: The task status of the export generation (SUCCESS, RUNNING, QUEUED, CANCELED, and FAILURE). 1400 | url: 1401 | type: string 1402 | description: The download URL of the Export object. 1403 | license_url: 1404 | type: string 1405 | description: The download URL of the license file for an Export object. 1406 | auxiliary_url: 1407 | type: string 1408 | description: The download URL of required auxiliary content for an Export object. 1409 | zip_url: 1410 | type: string 1411 | description: The download URL of the dynamically generated zip for all Exportfiles within an Export object. 1412 | complete_zip_url: 1413 | type: string 1414 | description: The download URL of the dynamically generated zip for all Exportfiles within an Export object, as well as any additional linked files, such as error model data. 1415 | rgb: 1416 | type: boolean 1417 | description: Whether or not RGB dimension is included in exported data. 1418 | export_type: 1419 | type: string 1420 | description: The base type of export (pointcloud, raster, vector). 1421 | intensity: 1422 | type: boolean 1423 | description: Whether or not Intensity dimension is included in exported data. 1424 | dim_classification: 1425 | type: boolean 1426 | description: Whether or not Classification dimension is included in exported data. 1427 | file_export_options: 1428 | type: string 1429 | description: The file export options used (individual, collect). 1430 | generate_dem: 1431 | type: boolean 1432 | description: Whether or not this was a generated DEM from pointcloud. 1433 | send_email: 1434 | type: boolean 1435 | description: Whether or not to send an email notification upon completion. 1436 | cell_spacing: 1437 | type: number 1438 | format: float 1439 | description: The cell spacing used in DEM generation, if applicable. 1440 | notes: 1441 | type: string 1442 | description: User notes about the object. 1443 | classification: 1444 | type: string 1445 | description: The geospatial classifications selected for the export. 1446 | pmf_terrain: 1447 | type: string 1448 | description: The PMF terrain option of the export. 1449 | smrf_terrain: 1450 | type: string 1451 | description: The SMRF terrain option of the export. 1452 | be_extract: 1453 | type: boolean 1454 | description: Whether or not to extract ground returns. 1455 | sri_hres: 1456 | type: number 1457 | format: float 1458 | description: The sri_hres value of the export. Deprecated option. 1459 | exportfiles: 1460 | oneOf: 1461 | - type: array 1462 | description: A list of Exportfile objects for this Export. 1463 | items: 1464 | $ref: '#/definitions/Exportfile' 1465 | - type: boolean 1466 | description: boolean indicating presence of Exportfile 1467 | task_id: 1468 | type: string 1469 | description: The task_id of the Export processing task. 1470 | capacity: 1471 | type: number 1472 | format: float 1473 | description: The number of points used to generate each file. 1474 | length: 1475 | type: number 1476 | format: float 1477 | description: The length in meters used to generate each file. 1478 | file_format_options: 1479 | type: string 1480 | description: The format of the output raster file(s). 1481 | vector_format: 1482 | type: string 1483 | description: The format of the output vector file(s). 1484 | custom_filters: 1485 | type: string 1486 | description: Custom PDAL filters used for pointcloud generation. 1487 | ExportResponse: 1488 | type: object 1489 | properties: 1490 | exports: 1491 | type: array 1492 | items: 1493 | $ref: '#/definitions/Export' 1494 | description: A dictionary with an "exports" key containing an array of Export objects. 1495 | Exportfile: 1496 | type: object 1497 | properties: 1498 | datatype: 1499 | type: string 1500 | description: The datatype of the exportfile. 1501 | name: 1502 | type: string 1503 | description: The name of the Exportfile. 1504 | pk: 1505 | type: string 1506 | description: The primary key (ID) of the object. 1507 | url: 1508 | type: string 1509 | description: The download URL of the Exportfile object. 1510 | filesize: 1511 | type: integer 1512 | description: The size of the product on the filesystem in bytes. 1513 | aoi_coverage: 1514 | type: number 1515 | format: float 1516 | description: The percent of the Exportfile area covered by the AOI. 1517 | geom: 1518 | type: string 1519 | description: The WKT geometry of this generated file. A WKT will only be present if the user has specifically requested them. 1520 | ExportStarted: 1521 | type: object 1522 | properties: 1523 | export_id: 1524 | type: string 1525 | description: The primary key (ID) of the export object. 1526 | task_id: 1527 | type: string 1528 | description: The task_id of the Export processing task. 1529 | ExportStartedResponse: 1530 | type: object 1531 | properties: 1532 | exports: 1533 | type: array 1534 | items: 1535 | $ref: '#/definitions/ExportStarted' 1536 | description: A dictionary with an "exports" key containing an array of ExportStarted objects. 1537 | Filter: 1538 | type: string 1539 | description: PDAL filter used in exports. 1540 | FiltersResponse: 1541 | type: object 1542 | properties: 1543 | filters: 1544 | type: array 1545 | items: 1546 | $ref: '#/definitions/Filter' 1547 | description: A list of available PDAL filters. 1548 | Geoname: 1549 | type: object 1550 | properties: 1551 | name: 1552 | type: string 1553 | description: The name of the geolocation. 1554 | geom: 1555 | type: string 1556 | description: The WKT geometry of the object. 1557 | GeonameResponse: 1558 | type: object 1559 | properties: 1560 | geonames: 1561 | type: array 1562 | items: 1563 | $ref: '#/definitions/Geoname' 1564 | description: A dictionary with a "geonames" key containing an array of Geoname objects. 1565 | Hook: 1566 | type: object 1567 | properties: 1568 | pk: 1569 | type: string 1570 | description: The primary key (ID) of the object. 1571 | version: 1572 | type: string 1573 | description: The version of the API used to create the hook and used for hook serialization. 1574 | user: 1575 | type: string 1576 | description: The email address of the user that created the object. 1577 | aoi: 1578 | type: integer 1579 | description: The pk of the AOI used to filter hook event notifications. 1580 | created_at: 1581 | type: string 1582 | format: date-time 1583 | description: The date the hook was created. 1584 | target: 1585 | type: string 1586 | description: The destination url callback data is sent to. 1587 | event: 1588 | type: string 1589 | description: The event to be notified for (export.complete, newdata.loaded) 1590 | HookResponse: 1591 | type: object 1592 | properties: 1593 | hooks: 1594 | type: array 1595 | items: 1596 | $ref: '#/definitions/Hook' 1597 | description: A dictionary with an "hooks" key containing an array of Hook objects. 1598 | MeshProduct: 1599 | type: object 1600 | properties: 1601 | datatype: 1602 | type: string 1603 | description: The datatype (e.g., 3D Tile, Collada, I3S). 1604 | name: 1605 | type: string 1606 | description: The name of the Product. 1607 | pk: 1608 | type: string 1609 | description: The primary key (ID) of the object. 1610 | sensor: 1611 | type: string 1612 | description: The sensor used to make the collection. 1613 | collected_at: 1614 | type: string 1615 | format: date-time 1616 | description: The date of collection. ISO 8601 format as UTC. 1617 | classification: 1618 | type: string 1619 | description: The security classification. 1620 | filesize: 1621 | type: integer 1622 | description: The size of the product on the filesystem in bytes. 1623 | geom: 1624 | type: string 1625 | description: The WKT geometry of the object. 1626 | streaming_url: 1627 | type: string 1628 | description: The URL of the object used to stream the data. 1629 | cesium_viewer: 1630 | type: string 1631 | description: The URL of GRiD's web viewer for this mesh product, if product is 3DTiles, else will be null. 1632 | i3s_viewer: 1633 | type: string 1634 | description: The URL of GRiD's web viewer for this mesh product, if product is I3S, else will be null. 1635 | program: 1636 | type: string 1637 | description: The name of the program that the product falls under. 1638 | access_tag: 1639 | type: string 1640 | description: The name of the access tag that this product is protected by. 1641 | file_paths: 1642 | type: array 1643 | description: A list of all the file paths of the tiles within this product (clipped by geometry if applicable). 1644 | items: 1645 | $ref: '#/definitions/Path' 1646 | Path: 1647 | type: string 1648 | description: The location of the file on the filesystem. 1649 | Pk: 1650 | type: integer 1651 | description: The primary key of the object. 1652 | PointcloudProduct: 1653 | type: object 1654 | properties: 1655 | datatype: 1656 | type: string 1657 | description: The datatype (e.g., LAS1.2, LAS1.4). 1658 | name: 1659 | type: string 1660 | description: The name of the Product. 1661 | pk: 1662 | type: string 1663 | description: The primary key (ID) of the object. 1664 | sensor: 1665 | type: string 1666 | description: The sensor used to make the collection. 1667 | collected_at: 1668 | type: string 1669 | format: date-time 1670 | description: The date of collection. ISO 8601 format as UTC. 1671 | classification: 1672 | type: string 1673 | description: The security classification. 1674 | area: 1675 | type: number 1676 | format: float 1677 | description: The area of the geometry in sq_km. 1678 | filesize: 1679 | type: integer 1680 | description: The size of the product on the filesystem in bytes. 1681 | point_count: 1682 | type: integer 1683 | description: The total number of points in the product. 1684 | density: 1685 | type: number 1686 | format: float 1687 | description: The average point density of the product in sq meters. 1688 | geom: 1689 | type: string 1690 | description: The WKT geometry of the object. 1691 | aoi_coverage: 1692 | type: number 1693 | format: float 1694 | description: The percent of the Product area covered by the AOI or passed in geometry respectively. 1695 | parent_product_pks: 1696 | type: array 1697 | description: Having this field populated with parent product PK(s) indicates this is an associated supporting product. Associated products should only be exported with their parent product included. 1698 | items: 1699 | $ref: '#/definitions/Pk' 1700 | associated_products: 1701 | description: Associated products are supporting products that should only be exported along with their parent product. 1702 | $ref: '#/definitions/AssociatedProductResponse' 1703 | program: 1704 | type: string 1705 | description: The name of the program that the product falls under. 1706 | access_tag: 1707 | type: string 1708 | description: The name of the access tag that this product is protected by. 1709 | file_paths: 1710 | type: array 1711 | description: A list of all the file paths of the tiles within this product (clipped by geometry if applicable). 1712 | items: 1713 | $ref: '#/definitions/Path' 1714 | srs: 1715 | type: array 1716 | description: A list of all the spatial reference systems that apply to the tiles within this product (clipped by geometry if applicable). 1717 | items: 1718 | $ref: '#/definitions/Srs' 1719 | ProductResponse: 1720 | type: object 1721 | properties: 1722 | pointclouds: 1723 | type: array 1724 | items: 1725 | $ref: '#/definitions/PointcloudProduct' 1726 | description: A list of pointcloud products. 1727 | rasters: 1728 | type: array 1729 | items: 1730 | $ref: '#/definitions/RasterProduct' 1731 | description: A list of raster products. 1732 | vectors: 1733 | type: array 1734 | items: 1735 | $ref: '#/definitions/VectorProduct' 1736 | description: A list of vector products. 1737 | meshes: 1738 | type: array 1739 | items: 1740 | $ref: '#/definitions/MeshProduct' 1741 | description: A list of mesh products. 1742 | RasterProduct: 1743 | type: object 1744 | properties: 1745 | datatype: 1746 | type: string 1747 | description: The datatype (e.g., DSM, DTM). 1748 | datacategory: 1749 | type: string 1750 | description: The category of the raster product (Imagery, Elevation Models, etc). 1751 | name: 1752 | type: string 1753 | description: The name of the Product. 1754 | pk: 1755 | type: string 1756 | description: The primary key (ID) of the object. 1757 | sensor: 1758 | type: string 1759 | description: The sensor used to make the collection. 1760 | collected_at: 1761 | type: string 1762 | format: date-time 1763 | description: The date of collection. ISO 8601 format as UTC. 1764 | classification: 1765 | type: string 1766 | description: The security classification. 1767 | area: 1768 | type: number 1769 | format: float 1770 | description: The area of the geometry in sq_km. 1771 | filesize: 1772 | type: integer 1773 | description: The size of the product on the filesystem in bytes. 1774 | geom: 1775 | type: string 1776 | description: The WKT geometry of the object. 1777 | cell_size: 1778 | type: number 1779 | format: float 1780 | description: The average cell size of the product. 1781 | aoi_coverage: 1782 | type: number 1783 | format: float 1784 | description: The percent of the Product area covered by the AOI or passed in geometry respectively. 1785 | parent_product_pks: 1786 | type: array 1787 | description: Having this field populated with parent product PK(s) indicates this is an associated supporting product. Associated products should only be exported with their parent product included. 1788 | items: 1789 | $ref: '#/definitions/Pk' 1790 | associated_products: 1791 | description: Associated products are supporting products that should only be exported along with their parent product. 1792 | $ref: '#/definitions/AssociatedProductResponse' 1793 | program: 1794 | type: string 1795 | description: The name of the program that the product falls under. 1796 | access_tag: 1797 | type: string 1798 | description: The name of the access tag that this product is protected by. 1799 | file_paths: 1800 | type: array 1801 | description: A list of all the file paths of the tiles within this product (clipped by geometry if applicable). 1802 | items: 1803 | $ref: '#/definitions/Path' 1804 | srs: 1805 | type: array 1806 | description: A list of all the spatial reference systems that apply to the tiles within this product (clipped by geometry if applicable). 1807 | items: 1808 | $ref: '#/definitions/Srs' 1809 | Srs: 1810 | type: string 1811 | description: A spatial reference system (SRS) is a coordinate-based local, regional or global system used to locate geographical entities that defines a specific map projection, as well as transformations between different spatial reference systems. 1812 | Task: 1813 | type: object 1814 | properties: 1815 | state: 1816 | type: string 1817 | description: The state of the task (SUCCESS, RUNNING, QUEUED, CANCELED, and FAILURE). 1818 | time_stamp: 1819 | type: string 1820 | format: date-time 1821 | description: Date and time the task was started. ISO 8601 format as UTC. 1822 | name: 1823 | type: string 1824 | description: The name of the task (export.tasks.generate_export, api.tasks.deliver_hook). 1825 | task_id: 1826 | type: string 1827 | description: The ID of the task. 1828 | object_id: 1829 | type: integer 1830 | description: The ID of the object the task is associated with. 1831 | TaskResponse: 1832 | properties: 1833 | tasks: 1834 | type: array 1835 | items: 1836 | $ref: '#/definitions/Task' 1837 | description: A dictionary with an "tasks" key containing an array of Task objects. 1838 | Url: 1839 | type: string 1840 | description: The download url of the object. 1841 | VectorProduct: 1842 | type: object 1843 | properties: 1844 | datatype: 1845 | type: string 1846 | description: The datatype (e.g., trees, buildings_2d). 1847 | name: 1848 | type: string 1849 | description: The name of the Product. 1850 | pk: 1851 | type: string 1852 | description: The primary key (ID) of the object. 1853 | collected_at: 1854 | type: string 1855 | format: date-time 1856 | description: The date of collection. ISO 8601 format as UTC. 1857 | classification: 1858 | type: string 1859 | description: The security classification. 1860 | area: 1861 | type: number 1862 | format: float 1863 | description: The area of the geometry in sq_km. 1864 | filesize: 1865 | type: integer 1866 | description: The size of the product on the filesystem in bytes. 1867 | geom: 1868 | type: string 1869 | description: The WKT geometry of the object. 1870 | sensor: 1871 | type: string 1872 | description: The sensor used to make the collection. 1873 | aoi_coverage: 1874 | type: number 1875 | format: float 1876 | description: The percent of the Product area covered by the AOI or passed in geometry respectively. 1877 | parent_product_pks: 1878 | type: array 1879 | description: Having this field populated with parent product PK(s) indicates this is an associated supporting product. Associated products should only be exported with their parent product included. 1880 | items: 1881 | $ref: '#/definitions/Pk' 1882 | associated_products: 1883 | description: Associated products are supporting products that should only be exported along with their parent product. 1884 | $ref: '#/definitions/AssociatedProductResponse' 1885 | program: 1886 | type: string 1887 | description: The name of the program that the product falls under. 1888 | access_tag: 1889 | type: string 1890 | description: The name of the access tag that this product is protected by. 1891 | file_paths: 1892 | type: array 1893 | description: A list of all the file paths of the tiles within this product (clipped by geometry if applicable). 1894 | items: 1895 | $ref: '#/definitions/Path' 1896 | StacItemCollection: 1897 | description: Spatio Temporal Access Catalog (STAC) Item Collection definition 1898 | type: object 1899 | properties: 1900 | type: 1901 | type: string 1902 | enum: ['FeatureCollection'] 1903 | description: FeatureCollection 1904 | features: 1905 | type: array 1906 | items: 1907 | $ref: "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json" 1908 | links: 1909 | type: array 1910 | items: 1911 | $ref: "https://schemas.stacspec.org/v1.0.0/item-spec/json-schema/item.json#/definitions/link" 1912 | numberMatched: 1913 | type: integer 1914 | numberReturned: 1915 | type: integer 1916 | StacItemCollectionResponse: 1917 | description: STAC Feature Collection 1918 | content: 1919 | application/json: 1920 | schema: 1921 | $ref: '#/definitions/StacItemCollection' 1922 | --------------------------------------------------------------------------------