Dataflow

Create a datastream template

>>> my_datastream_template = sdk.datastreamtemplates.create(
...     name = "My datastream template",
...     import_dataset = {
...         "dataset_parameters": {
...             "type": "pcl",
...             "categories": [],
...             "horizontal_srs_wkt": 'PROJCS["WGS 84 / UTM zone 31N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["Easting",EAST],AXIS["Northing",NORTH],AUTHORITY["EPSG","32631"]]',
...             "ingestion": {"parameters": {"compute_boundary": True}},
...         }
...     },
...     contextualisation = {
...         "type": "geographic",
...         "parameters": {
...             "assets_schema_repository": "My Asset Repository",
...             "geographic_buffer": 50,
...             "schemas": [
...                 {
...                     "assets_schema": "My_asset",
...                     "assets_schema_property_name": "My asset property",
...                     "geographic_buffer": 150,
...                 }
...             ],
...         },
...     },
...     source = {"type": "object-storage"},
...     transform = {
...         "analytic": {
...             "name": "pcl_segmentation",
...             "version_range": "3.0.x",
...             "inputs_mapping": {"input_pcl": "${import.output_dataset}"},
...             "parameters": {},
...             "outputs_mapping": "classified_pcl",
...         }
...     },
...     description = "description",
...     aggregate = {
...         "type": "pcl_aggregation",
...         "creation_parameters": {
...            "type": "pcl",
...            "categories": [
...            "classified"
...            ]
...         },
...         "ingestion_parameters": {
...            "tiling_profile": "potree2",
...            "compute_boundary": false,
...            "crop_on_extent": true
...         },
...         "strategy": {}
...      },
...     company = "507f191e810c19729de860eb",
... )

See the datastreamtemplates.create() documentation.

Describe a datastream template

To describe a datastream template:

>>> my_datastream_template = sdk.datastreamtemplates.describe(template='5d1a14af0422ae12d537af02')

See the datastreamtemplates.describe() documentation.

Describes some datastream templates

To describe datastream templates:

>>> my_datastream_templates = sdk.datastreamtemplates.describes(templates=['5d1a14af0422ae12d537af02',
...                                      '5d1a14af0422ae12d537af05'])

See the datastreamtemplates.describes() documentation.

Create a datastream

>>> my_datastream = sdk.datastreams.create(
...     name="My datastream",
...     start_date="2023-01-01T05:00:00.000Z",
...     end_date="2023-02-01T05:00:00.000Z",
...     source={
...         "url": "s3://myBucket/prefix/",
...         "regex": ".*las",
...         "synchronisation": {
...             "type": "on_trigger"
...             }
...          },
...     template="63b847191aa9840eaad2906a",
... )

See the datastreams.create() documentation.

Describe a datastream

To describe a datastream:

>>> my_datastream = sdk.datastreams.describe(datastream='5d1a14af0422ae12d537af03')

See the datastreams.describe() documentation.

Search datastream

Search the first 20 datastream with datastream in the name, sort by newest first:

>>> my_filters = {'name': {'$match': 'datastream'}}
>>> my_sort = {'creation_date': -1}
>>> sdk.datastreams.search(filter=my_filters, sort=my_sort, limit=20)

Search the second page of same request:

>>> sdk.datastreams.search(filter=my_filters, sort=my_sort, limit=20, page=2)

See the datastreams.search() documentation.

Do some stuff for all results, without using pages but using iterator:

>>> ds = sdk.datastreams.search_generator(filter=my_filters, sort=my_sort)
>>> for datastream in ds:
...     print(datastream.name)

See the datastreams.search_generator() documentation.

Search datastream files

Search datastream files by datastream identifier sort by newest first:

>>> my_filters =  {"datastream": {"$eq":"6376535b507bcbec3b7b23b5"}}
>>> my_sort = {'creation_date': -1}
>>> sdk.datastreamsfiles.search(filter=my_filters, sort=my_sort)

See the datastreamsfiles.search() documentation.

Do some stuff for all results, without using pages but using iterator:

>>> dsf = sdk.datastreamsfiles.search_generator(filter=my_filters, sort=my_sort)
>>> for datastream_file in dsf:
...     print(datastream_file.status)

See the datastreamsfiles.search_generator() documentation.

Search datastream assets

Search datastream assets by datastream identifier sort by newest first:

>>> my_filters =  {"datastream": {"$eq":"6376535b507bcbec3b7b23b5"}}
>>> my_sort = {'creation_date': -1}
>>> sdk.datastreamsassetsmonitored.search(filter=my_filters, sort=my_sort)

See the datastreamsassetsmonitored.search() documentation.

Do some stuff for all results, without using pages but using iterator:

>>> dsa = sdk.datastreamsassetsmonitored.search_generator(filter=my_filters, sort=my_sort)
>>> for datastream_asset in dsa
...     print(datastream_asset.asset)

See the datastreamsassetsmonitored.search_generator() documentation.

Delete a datastream

To delete a datastream:

>>> my_datastream = sdk.datastreams.delete(datastream='5d1a14af0422ae12d537af03')

See the datastreams.delete() documentation.