privateer-elements-sdk 2025.11.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. privateer_elements_sdk-2025.11.5/LICENSE +7 -0
  2. privateer_elements_sdk-2025.11.5/PKG-INFO +470 -0
  3. privateer_elements_sdk-2025.11.5/README.md +422 -0
  4. privateer_elements_sdk-2025.11.5/elements/__init__.py +0 -0
  5. privateer_elements_sdk-2025.11.5/elements/cli/__init__.py +0 -0
  6. privateer_elements_sdk-2025.11.5/elements/cli/commands/__init__.py +0 -0
  7. privateer_elements_sdk-2025.11.5/elements/cli/commands/algorithm.py +292 -0
  8. privateer_elements_sdk-2025.11.5/elements/cli/commands/algorithm_computation.py +154 -0
  9. privateer_elements_sdk-2025.11.5/elements/cli/commands/algorithm_config.py +188 -0
  10. privateer_elements_sdk-2025.11.5/elements/cli/commands/algorithm_version.py +157 -0
  11. privateer_elements_sdk-2025.11.5/elements/cli/commands/analysis.py +353 -0
  12. privateer_elements_sdk-2025.11.5/elements/cli/commands/analysis_computation.py +172 -0
  13. privateer_elements_sdk-2025.11.5/elements/cli/commands/analysis_config.py +174 -0
  14. privateer_elements_sdk-2025.11.5/elements/cli/commands/analysis_version.py +145 -0
  15. privateer_elements_sdk-2025.11.5/elements/cli/commands/aoi.py +79 -0
  16. privateer_elements_sdk-2025.11.5/elements/cli/commands/credit.py +51 -0
  17. privateer_elements_sdk-2025.11.5/elements/cli/commands/data.py +146 -0
  18. privateer_elements_sdk-2025.11.5/elements/cli/commands/environment.py +27 -0
  19. privateer_elements_sdk-2025.11.5/elements/cli/commands/imagery.py +145 -0
  20. privateer_elements_sdk-2025.11.5/elements/cli/commands/manifest.py +86 -0
  21. privateer_elements_sdk-2025.11.5/elements/cli/commands/permission.py +59 -0
  22. privateer_elements_sdk-2025.11.5/elements/cli/commands/tasks.py +515 -0
  23. privateer_elements_sdk-2025.11.5/elements/cli/commands/toi.py +59 -0
  24. privateer_elements_sdk-2025.11.5/elements/cli/commands/visualization.py +44 -0
  25. privateer_elements_sdk-2025.11.5/elements/cli/lib/__init__.py +0 -0
  26. privateer_elements_sdk-2025.11.5/elements/cli/lib/aliased_group.py +98 -0
  27. privateer_elements_sdk-2025.11.5/elements/cli/lib/utils.py +134 -0
  28. privateer_elements_sdk-2025.11.5/elements/cli/lib/workflow.py +1808 -0
  29. privateer_elements_sdk-2025.11.5/elements/cli/ts.py +40 -0
  30. privateer_elements_sdk-2025.11.5/elements/sdk/__init__.py +0 -0
  31. privateer_elements_sdk-2025.11.5/elements/sdk/api/__init__.py +0 -0
  32. privateer_elements_sdk-2025.11.5/elements/sdk/api/algorithm.py +666 -0
  33. privateer_elements_sdk-2025.11.5/elements/sdk/api/analysis.py +692 -0
  34. privateer_elements_sdk-2025.11.5/elements/sdk/api/aoi.py +342 -0
  35. privateer_elements_sdk-2025.11.5/elements/sdk/api/credit.py +168 -0
  36. privateer_elements_sdk-2025.11.5/elements/sdk/api/data.py +118 -0
  37. privateer_elements_sdk-2025.11.5/elements/sdk/api/filter.py +77 -0
  38. privateer_elements_sdk-2025.11.5/elements/sdk/api/order.py +71 -0
  39. privateer_elements_sdk-2025.11.5/elements/sdk/api/permission.py +124 -0
  40. privateer_elements_sdk-2025.11.5/elements/sdk/api/result.py +323 -0
  41. privateer_elements_sdk-2025.11.5/elements/sdk/api/tasking_order.py +68 -0
  42. privateer_elements_sdk-2025.11.5/elements/sdk/api/toi.py +79 -0
  43. privateer_elements_sdk-2025.11.5/elements/sdk/api/user.py +140 -0
  44. privateer_elements_sdk-2025.11.5/elements/sdk/api/visualization.py +51 -0
  45. privateer_elements_sdk-2025.11.5/elements/sdk/builder/__init__.py +0 -0
  46. privateer_elements_sdk-2025.11.5/elements/sdk/builder/algorithm.py +461 -0
  47. privateer_elements_sdk-2025.11.5/elements/sdk/builder/analysis.py +179 -0
  48. privateer_elements_sdk-2025.11.5/elements/sdk/builder/toi.py +181 -0
  49. privateer_elements_sdk-2025.11.5/elements/sdk/elements_sdk.py +156 -0
  50. privateer_elements_sdk-2025.11.5/elements/sdk/tools/__init__.py +0 -0
  51. privateer_elements_sdk-2025.11.5/elements/sdk/tools/io.py +128 -0
  52. privateer_elements_sdk-2025.11.5/elements/sdk/tools/sdk_support.py +38 -0
  53. privateer_elements_sdk-2025.11.5/privateer_elements_sdk.egg-info/PKG-INFO +470 -0
  54. privateer_elements_sdk-2025.11.5/privateer_elements_sdk.egg-info/SOURCES.txt +70 -0
  55. privateer_elements_sdk-2025.11.5/privateer_elements_sdk.egg-info/dependency_links.txt +1 -0
  56. privateer_elements_sdk-2025.11.5/privateer_elements_sdk.egg-info/entry_points.txt +2 -0
  57. privateer_elements_sdk-2025.11.5/privateer_elements_sdk.egg-info/requires.txt +26 -0
  58. privateer_elements_sdk-2025.11.5/privateer_elements_sdk.egg-info/top_level.txt +4 -0
  59. privateer_elements_sdk-2025.11.5/pyproject.toml +56 -0
  60. privateer_elements_sdk-2025.11.5/setup.cfg +4 -0
  61. privateer_elements_sdk-2025.11.5/tests/integration/test_algorithm.py +867 -0
  62. privateer_elements_sdk-2025.11.5/tests/integration/test_algorithm_builder.py +43 -0
  63. privateer_elements_sdk-2025.11.5/tests/integration/test_analysis.py +481 -0
  64. privateer_elements_sdk-2025.11.5/tests/integration/test_analysis_builder.py +28 -0
  65. privateer_elements_sdk-2025.11.5/tests/integration/test_aoi.py +160 -0
  66. privateer_elements_sdk-2025.11.5/tests/integration/test_credit.py +186 -0
  67. privateer_elements_sdk-2025.11.5/tests/integration/test_data.py +43 -0
  68. privateer_elements_sdk-2025.11.5/tests/integration/test_permission.py +120 -0
  69. privateer_elements_sdk-2025.11.5/tests/integration/test_result.py +138 -0
  70. privateer_elements_sdk-2025.11.5/tests/integration/test_sdk_support.py +28 -0
  71. privateer_elements_sdk-2025.11.5/tests/integration/test_toi.py +245 -0
  72. privateer_elements_sdk-2025.11.5/tests/integration/test_visualization.py +9 -0
@@ -0,0 +1,7 @@
1
+ Copyright 2022 Orbital Insight, Inc.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,470 @@
1
+ Metadata-Version: 2.4
2
+ Name: privateer-elements-sdk
3
+ Version: 2025.11.5
4
+ Summary: A software development kit for developing projects on Elements
5
+ Author: Orbital Insight
6
+ License: Copyright 2022 Orbital Insight, Inc.
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
+
12
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
13
+
14
+ Project-URL: Readme, https://terrascope.readme.io/docs
15
+ Keywords: Orbital Insight,OI,SDK,elements,elements-sdk,API,elements-api
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: OS Independent
19
+ Requires-Python: >=3.10
20
+ Description-Content-Type: text/markdown
21
+ License-File: LICENSE
22
+ Requires-Dist: grpcio-tools
23
+ Requires-Dist: pandas
24
+ Requires-Dist: numpy
25
+ Requires-Dist: wget
26
+ Requires-Dist: h3
27
+ Requires-Dist: geojson
28
+ Requires-Dist: chardet
29
+ Requires-Dist: click
30
+ Requires-Dist: pyyaml
31
+ Requires-Dist: geopandas
32
+ Requires-Dist: pytz
33
+ Requires-Dist: shapely
34
+ Requires-Dist: tabulate
35
+ Requires-Dist: timezonefinder
36
+ Requires-Dist: elements-api>=2025.11.5
37
+ Requires-Dist: boto3
38
+ Requires-Dist: httpx>=0.24
39
+ Requires-Dist: pyarrow>=14
40
+ Provides-Extra: dev
41
+ Requires-Dist: pytest; extra == "dev"
42
+ Requires-Dist: pytest-asyncio; extra == "dev"
43
+ Requires-Dist: build; extra == "dev"
44
+ Requires-Dist: twine; extra == "dev"
45
+ Requires-Dist: flake8; extra == "dev"
46
+ Requires-Dist: grip; extra == "dev"
47
+ Dynamic: license-file
48
+
49
+ # Elements SDK
50
+
51
+ ## Description
52
+
53
+ The Elements Platform is a collection of tools to analyze sensor data over space and time. The Elements SDK
54
+ (software development kit) is a Python package that simplifies users' interaction with the Elements Platform API.
55
+
56
+ ## Installation
57
+
58
+ [Readme: Installation](https://elements.readme.io/docs/installation-1)
59
+
60
+ ## Usage
61
+
62
+ The Elements SDK is designed to simplify access to all the [elements-api](https://pypi.org/project/elements-api/) calls
63
+ that are available. Ensure that you have the correct elements-api package installed.
64
+
65
+ Each API uses a client object which requires the following env variables to be set:
66
+
67
+ ```shell
68
+ TERRASCOPE_API_HOST=https://terrascope-app.orbitalinsight.com/
69
+ TERRASCOPE_API_TOKEN=<Elements API Token>
70
+ TERRASCOPE_TIMEOUT=<Int timeout in seconds> defaults to 60 seconds
71
+ ```
72
+
73
+ You will always want to ensure that you have the correct elements-sdk version installed. The latest can be found here:
74
+ https://pypi.org/project/elements-sdk/
75
+
76
+ To manually build a local version of the elements-sdk (for example, if you are making changes and want to test):
77
+ 1. Update the version specified in the `pyproject.toml` file, e.g. `version = "1.0.6.1"` (must be `pep440`)
78
+ 2. Execute from the top-level elements_sdk folder: `python3 -m build`. If you don't have the `build` package run `pip3 install build`
79
+ 3. `cd dist/`
80
+ 4. `pip3 install elements_sdk-1.0.6-test-py3-none-any.whl` (this file name may be different based on the version specified)
81
+
82
+
83
+ # CLI Usage #
84
+
85
+ ## Installation ##
86
+
87
+ 1. Pip install elements-sdk
88
+
89
+ ```
90
+ $ pip install elements-sdk
91
+ ````
92
+
93
+ If you're a developer working on the CLI itself, you may want to add [extras] in the installation. This will include aditional packages which are used for building and testing the command line tool:
94
+
95
+ ```
96
+ $ pip install 'elements-sdk[extras]'
97
+ ```
98
+
99
+ 2. Set some environment variables (here stashed in a 'source.sh' file).
100
+
101
+ ```
102
+ $ cat source.sh
103
+ export TERRASCOPE_API_HOST=api-papi.qa3.orbitalinsight.io
104
+ export TERRASCOPE_AUTHOR=you@yourdomain.com
105
+ export TERRASCOPE_API_ADMIN_TOKEN=<YOUR ADMIN TOKEN>
106
+ export TERRASCOPE_API_TOKEN=<YOUR USER TOKEN>
107
+
108
+ $ source source.sh
109
+ ```
110
+
111
+ # Basic usage #
112
+
113
+ The executible is installed as the `ts` command. There is a old unix
114
+ 'ts' command, but it's rarely used by most developers and hopefully
115
+ this choice does not create any serious problems with naming
116
+ conflicts.
117
+
118
+ The 'ts' command mirrors the overall structure of Elements itself. The command tree is heirarchical, with groupings of commands. The `--help` command shows the layout:
119
+
120
+ ```
121
+ $ ts --help
122
+ Usage: ts [OPTIONS] COMMAND [ARGS]...
123
+
124
+ Options:
125
+ --help Show this message and exit.
126
+
127
+ Command Super-Groups:
128
+ algorithm 'algorithm' super-group
129
+ analysis 'analysis' super-group
130
+ data 'data' super group
131
+
132
+ Command Groups:
133
+ aoi 'aoi' command group
134
+ credit 'credit' command group
135
+ environment 'environment' command group
136
+ imagery 'imagery' command group
137
+ manifest 'manifest' command group
138
+ permission 'permission' command group
139
+ tasks 'tasks' command group
140
+ toi 'toi' command group
141
+ visualization 'visualization' command group
142
+ ```
143
+
144
+ Any command can be used with a abbreviated for, as long as it's
145
+ unique. So, `ts algo` is fine to avoid typing `ts algorithm`, but `ts
146
+ a` cannot be disambiguated from `ts analysis` or `ts aoi` commands.
147
+
148
+ Help is also available for each specific command, e.g. for the `algorithm` command:
149
+
150
+ ```
151
+ $ ts algo --help
152
+ Usage: ts.py algo [OPTIONS] COMMAND [ARGS]...
153
+
154
+ 'algorithm' super-group
155
+
156
+ Options:
157
+ --help Show this message and exit.
158
+
159
+ Command Groups:
160
+ computation Algorithm 'computation' command group
161
+ config Algorithm 'config' command group
162
+ version Algorithm 'version' command group
163
+
164
+ Commands:
165
+ create Create an algorithm object (no manifest)
166
+ get Get algorithm info
167
+ register Create an algorithm, and register it.
168
+ update Update an existing algorithm with manifest or pricing.
169
+ ```
170
+
171
+ Each specific subcommand also has help, e.g. the `ts algo get` subcommand:
172
+
173
+ ```
174
+ $ ts alg get --help
175
+ Usage: ts.py algo get [OPTIONS]
176
+
177
+ Get algorithm info
178
+
179
+ Options:
180
+ -ia, --algorithm_id TEXT
181
+ -n, --algorithm_name TEXT
182
+ -t, --truncate INTEGER Truncate columns to this many characters. Use 0
183
+ for no truncation. (36 is the length of a full
184
+ UUID).
185
+ -v, --verbose
186
+ --help Show this message and exit.
187
+ ```
188
+
189
+ ## Full Command Listing ##
190
+
191
+ Here is the overall command tree, with comments when it's not self-evident/obvious:
192
+
193
+ ```
194
+ ts
195
+ `- algorithm # commands related to TS algorithms
196
+ |--> create #
197
+ |--> get #
198
+ |--> register # create an algorithm, algorithm_version, and (optionally) algorithm_config
199
+ |--> update # update an existing algorithm by creating a new algo version and (optionally) algo config
200
+ `- computation # commands related to TS algorithm computations
201
+ |--> create #
202
+ |--> download #
203
+ |--> get #
204
+ `--> run #
205
+ `- config # commands related to TS algorithm configs
206
+ |--> create #
207
+ |--> deactivate # deactivate (but not delete) a config
208
+ `--> get #
209
+ `- version # commands related to TS algorithm versions
210
+ |--> create #
211
+ |--> deactivate #
212
+ `--> get # get algorithm version info (including the manifest)
213
+ `- analysis # commands related to TS analyses
214
+ |--> create #
215
+ |--> display # A sort of 'get'++ command that lists each analysis, +versions, +configs and any computations
216
+ |--> get #
217
+ |--> register # create an analysis, analysis_version, and (optionally) an analysis_config
218
+ |--> update # update an existing analysis by creating a new analysis_version, and config
219
+ `- computation # commands related to TS analysis computations
220
+ |--> create #
221
+ |--> download #
222
+ |--> get #
223
+ `--> run #
224
+ `- config # commands related to TS analysis configs
225
+ |--> create #
226
+ |--> deactivate #
227
+ `--> get #
228
+ ` version # commands related to TS analysis versions
229
+ |--> create #
230
+ `--> get # get analysis version info (including the analysis manifest)
231
+ `- data # commands related to TS data types and sources
232
+ `- source # TS data sources
233
+ | --> get #
234
+ ` --> list # list all available data sources
235
+ `- type # TS data types
236
+ | --> get #
237
+ ` --> list # list all available data types
238
+ `- aoi #
239
+ |--> create #
240
+ |--> delete #
241
+ |--> get #
242
+ |--> list #
243
+ `--> update #
244
+ `- tasks # IMPORTANT - tasks commands live here
245
+ |- initialize # register an algo + analysis ... soup to nuts.
246
+ ` update # update an algo + analysis ... end to end.
247
+ `- environment #
248
+ `--> check # verify the environment
249
+ `- imagery #
250
+ `--> search # search the scenes (ingested) or catalog (orderable) for available images of an AOI/TOI
251
+ `- permission #
252
+ |--> get # list users with READ permission on analysis
253
+ `--> set # set READ permission for an algorithm analysis with another user (i.e. share it)
254
+ `- credit #
255
+ |--> get # get credit price for analysis (not yet working)
256
+ `--> set # set the credit pricing for an analysis
257
+ `- toi #
258
+ |--> create #
259
+ |--> delete #
260
+ `--> get #
261
+ `- visualization #
262
+ |--> create #
263
+ `--> get #
264
+ ```
265
+
266
+
267
+ ## General Command Patterns ##
268
+
269
+ The commands generally try to use the same options for the same types
270
+ of inputs. For example, IDs like algorithm_id or analysis_config_id,
271
+ will start with 'i' and then a character to denote type of ID
272
+ ... e.g. `-ia <algorithm_id>`, or `-iv <algorithm_version_id>`. For
273
+ things associated with algorithms, the second character will be lower
274
+ case, and for things associated with analysis, the second character
275
+ will be upper case.
276
+
277
+
278
+ Here are the main ones that *usually* follow the rules:
279
+ ```
280
+ -i - IDs
281
+
282
+ -ia - algorithm_id
283
+ -iv - algorithm_version_id
284
+ -ic - algorithm_config_id
285
+ -ip - algorithm_computation_id
286
+
287
+ -iA - anlaysis_id
288
+ -iV - analysis_version_id
289
+ -iC - analysis_config_id
290
+ -iP - analysis_computation_id
291
+
292
+ -n - names
293
+
294
+ -na - algorithm_name
295
+ -nc - algorithm_config_name
296
+ -nA - analysis_name
297
+ -nC - analysis_config_name
298
+ ```
299
+
300
+ ### The Most Frequently Used Commands ###
301
+
302
+ The `ts` CLI allows you to perform pretty surgical operations in
303
+ Elements, and most of the commands do very specialized things which
304
+ you won't usually need. For common tasks, there are `tasks` commands
305
+ to carry out things that would normally take many commands. For
306
+ example, in order to register a new algorithm and create an analysis
307
+ to run it through the Elements UI, you normally use the following
308
+ commands (specific options are not shown here):
309
+
310
+ ```
311
+ $ ts algo create
312
+ $ ts algo version create
313
+ $ ts algo config create
314
+ $ ts analysis create
315
+ $ ts analysis version create
316
+ $ ts analysis config create
317
+ ```
318
+
319
+ All of these commands are bundled together in the `ts tasks init`
320
+ command. If you require surgical control of algorithm registration,
321
+ you have it. But generally, the `tasks` commands will probably suit
322
+ most needs.
323
+
324
+ #### Get algorithm info ####
325
+
326
+ ```
327
+ $ ts alg get -na hlnorm
328
+ name algorithm_id author
329
+ 0 hlnorm_foottraffic deadbeef-5c5a-48d9-b65a-3748ebf9bb8e wally@orbitalinsight.com
330
+ ```
331
+
332
+ #### Look up Data Source and Data Type ####
333
+
334
+ This is useful when preparing a manifest to register an algorithm.
335
+ Data sources and types must be among those supported by elements.
336
+ To get a listing of the current set, do this:
337
+
338
+ ```
339
+ $ ts data source list
340
+ ```
341
+
342
+ ```
343
+ $ ts data type list
344
+ ```
345
+
346
+ #### Create a New Algorithm + Analysis ####
347
+
348
+ To put in a new algorithm and analysis, you have to create a manifest,
349
+ and then you can submit it with:
350
+
351
+ ```
352
+ $ ts tasks init -m <manifest_yaml> -nC <analysis_config_name (appears in UI)>
353
+ ```
354
+
355
+ That will create the algorithm, algorithm_version, algorithm_config, analysis, analysis_version, and analysis_config.
356
+
357
+
358
+ #### Update an Algorithm + Analysis ####
359
+
360
+ ```
361
+ $ ts tasks update -m <manifest_yaml> -nC <analysis_config_name> -ia <algo_id> -iA <analysis_id> -V <new version>
362
+ ```
363
+
364
+ #### Share an analysis with another user ####
365
+
366
+ ```
367
+ $ ts perm set -iC <analysis_config_id> -u <username1> <username2> ...
368
+ ```
369
+
370
+
371
+ ### Finding IDs ###
372
+
373
+ Elements uses UUIDs to identify pretty much everything, and you
374
+ often need to get these in order to carry out certain operations.
375
+ Here are some of the most useful:
376
+
377
+
378
+ #### Dump IDs for an Analysis ####
379
+
380
+ This is a heirarchical dump of any analyses matching <search_string>,
381
+ and their analysis_versions, analysis_configs, and any computations
382
+ (there are options to filter the computations by date if there are too
383
+ many).
384
+
385
+ ```
386
+ $ ts analysis display -nA <analysis_name_search_string>
387
+ ```
388
+
389
+ #### Look up algorithm_id for an Analysis ####
390
+
391
+ Do find out info about an algorithm node in an analysis, query the
392
+ analysis version with `-C all` (get all available columns), and `-T`
393
+ (transpose ... so the output is readable). The algorithm info is
394
+ buried in the printout.
395
+
396
+ ```
397
+ ts ana version get -iV <analysis_version_id> -C all -T
398
+ ```
399
+
400
+
401
+ ### Testing an Algorithm ###
402
+
403
+ #### Checking for available imagery ####
404
+
405
+ In the examples:
406
+
407
+ - `-S <shapefile>` contains the AOI you wish to find imagery for
408
+ - `-ia <aoi_id>` refers to the id of an AOI in the provided shapefile (aois.geojson here).
409
+ - `-d` specifies the data source,
410
+ - `-p` specifies the 'processing spec' (not queryable through the API, you just have to know it).
411
+ - `-ts <start_time>`
412
+ - `-te <end_time>`
413
+ - `-s <search_service>` can be either 'SCENE' (already ingested images) or 'CATALOG' (available to order)
414
+
415
+ ```
416
+ $ ts image search -S aois.geojson -ia <aoi_id> -ts 2023-01-08 -te 2023-01-31 -d planet_PSSceneSD -p PL-PSSceneSR -s CATALOG
417
+ ```
418
+
419
+
420
+ #### Create and Run an algorithm computation ####
421
+
422
+ (-f 3 means 'daily')
423
+
424
+ ```
425
+ $ ts comp create -iC <algo_config_id> -s 2022-01-01 -e 2022-01-07 -a ./myaois.geojson -f 3
426
+ ```
427
+
428
+ The above example to create a computation will print out a computation_id. Use it to run:
429
+
430
+ ```
431
+ $ ts comp run -ip <comp_id>
432
+ ```
433
+
434
+ #### Get info about the computation ####
435
+
436
+ ```
437
+ $ ts comp get -ip <computation_id>
438
+
439
+ ecb494a3-e0e1-4c7b-804b-af45067816ba
440
+ id ecb494a3-e0e1-4c7b-804b-af45067816ba
441
+ aoi_collection_id 58111acf-50d8-4079-a562-6a98badd75da
442
+ algo_config_id 6b995056-dd72-494f-b7ce-abf27422d6f1
443
+ toi_id aafe2b93-8f80-4cf8-994b-97ab43d346ec
444
+ submitted_on 2023-03-24T03:52:01.245849Z
445
+ state COMPLETE
446
+ last_execution 2023-03-24T03:59:02.243957Z
447
+ progress.succeeded 100.0
448
+ ```
449
+
450
+
451
+ #### Download computation results ####
452
+
453
+ ```
454
+ $ ts algo comp download -ip <computation_id> -o test_result.zip
455
+ ```
456
+
457
+ ## New Module Functions ##
458
+
459
+ * The async functions that make the calls to the SDK live in `elements/cli/lib/workflow.py`
460
+ * Most are short and sweet. Feel free to add what you need.
461
+
462
+
463
+ ## Authors and acknowledgment
464
+
465
+ Orbital Insight
466
+
467
+ ## License
468
+
469
+ [LICENSE](LICENSE)
470
+