/

eCognition

Trimble eCognition is a geospatial software well-known among GIS and remote sensing professionals to generate insights from geospatial images.


Introduction

Trimble eCognition is a geospatial software well-known among GIS and remote sensing professionals to generate insights from geospatial images. It enables the users to define actionable steps (rulesets) from feature extraction to transformations powered by machine learning algorithms and apply them to geospatial images.

If you're already working with eCognition rulesets, you can publish your application on the UP42 marketplace. This will give you an opportunity to generate revenue from the usage of your application by other users.

Output eCognition block default parameters
Output eCognition block default parameters

Onboarding

If you or your company have expertise in eCognition and want to bring your application into the UP42 marketplace, contact us. Our partnership team will be shortly in touch with you and help you navigate through the next steps. You could expect the following activities, in a nutshell.

  1. We, together, will build an agreement on commercial setup and sign a partnership agreement.

  2. Following the agreement, you will receive the instructions on the block development.

  3. You will receive a form for marketplace information and request for an end-user license agreement (EULA). You will need to send them back after you have developed additional tested the blocks on the UP42 platform and are ready to publish in the marketplace.

  4. We will go through the quality assessment and the necessary optimizations of the application together.

  5. After all criteria are met, the block will be published and you will receive a custom dashboard where you could track your block usage.

  6. You will receive monthly payments based on the usage of your block by the UP42 users.

How to develop an eCognition-powered UP42 platform-ready block?

The blocks are docker images with application logic deployed in a sandboxed environment on the UP42 platform.

The platform takes the responsibility of bringing the data and the information required for processing data to the block and also propagating the output of the block to the next block. For the application to run smoothly, the platform warrants that all blocks follow certain protocols that are a must for any block on the UP42 platform. Those protocols are defined by:

We've released a block template for the eCognition-powered block. If you are comfortable with Python, we would recommend using the template as it takes away the responsibility of rewriting a lot of boilerplate code.

If you don't want to use the template or want to use any other programming language, you're welcome to develop the block from scratch.

Develop using eCognition block template

  1. Clone the repository.
  2. Add a ruleset in the ruleset directory.
  3. Adjust the code to reflect the desired changes.
  4. Configure UP42Manifest.json and marketplace.json.
  5. Build docker image locally.

1. To clone the repository is possible with the following code

$ git clone https://github.com/up42/ecognition-powered-block-template.git

The directory structure of the template looks as follows:

.
├── Dockerfile            # Recipe for building docker image
├── LICENSE
├── Makefile              # Makefile to help you with general commands
├── README.md
├── UP42Manifest.json     # Block configuration defining name, input and output capabilities of block etc.
├── coverage.svg
├── marketplace.json      # Marketplace information controls the version of block
├── pylintrc
├── requirements-dev.txt
├── requirements.txt
├── ruleset               # Directory holding the eCognition rulesets
│   └── ruleset.dcp
├── src                   # Directory holding the block codes
│   ├── __init__.py
│   ├── __main__.py       # Main application entrypoint. Defines the logical flow of program
│   ├── config.py         # Configuration file defining the global variables and constants 
│   └── ecognition.py     # Defines variety of functions
└── tests
    ├── conftest.py
    ├── mock_data
    │   ├── data.json
    │   └── ruleset.dcp
    └── test_ecognition.py

2. Add a ruleset in the ruleset directory

The ruleset is called ruleset.dcp in the current template. If the name of your ruleset is different say myruleset.dcp make sure to adjust RULESET_PATH in src/config.py.

3. Adjust the code to reflect the changes you desire

There are a couple of changes you could consider while developing your block such as adjusting the output path to your actual output path, adding support for different data formats etc.

For example, in the code section of the function process in src/ecognition.py, we set the output file to be the same name and extension as the input file. If your ruleset outputs are with a different name and type make sure to adjust it.

Similarly, the DIMAP format has a folder structure while GeoTIFF is a single file and if you would want to support both data formats, you would have to make sure that the application navigates to the data in the correct way.

If any assistance is required, feel free to raise an issue in the repository or contact the UP42 team.

4. Configure UP42Manifest.json and marketplace.json

Here you must configure UP42Manifest.json and marketplace.json according to instructions on the block manifest.

Be mindful of those questions while configuring the block:

  • Is the name of the block set correctly?

  • Is the machine type set correctly as per documentation?

  • Are input and output capabilities configured correctly as suggested in block capabilities documentation? The input and output capabilities define the compatibility of your block with any other upstream and downstream blocks.

  • Are all user parameters added in the manifest in compliance with the parameter schema? The parameter name has a one-to-one mapping with the eCognition ruleset in the current template. Therefore, only adjusting UP42Manifest.json is sufficient. These parameters will then appear at the block parameter configuration step when configuring a workflow on UP42.

5. Build docker image locally

To build docker image locally it is possible to do so using the command make build and test the functionalities.

Test block on the UP42 platform

Once you feel comfortable with the changes made to your own eCognition block, you can test the block on UP42 as a custom block in your account.

Please make sure you have signed up for the UP42 platform if you haven't done until this stage.

  1. How to upload your first custom block on the UP42 platform.

  2. Get in touch with the UP42 team for eCognition License Server access (one time). Trimble eCognition is a special class of blocks and needs access control on our side. Therefore, reach out to your point of contact after you've pushed your block to the platform. In no time, you'll be ready to test your block on the platform.

  3. Create workflows, configure and run jobs using the console to test your block on the UP42 platform or test using SDK.

Publishing block

To publish a block on the UP42 marketplace, we'll need additional information regarding the block such as pricing strategy, thumbnails, description of block etc. and end-user license agreement (EULA). In addition to that, please do send us some recommended workflows.

After we receive the request, we will run some quality assessments on our side and will request an update if necessary. As soon as the quality assessment is successful, the block will be published in the marketplace.

The process of quality assessment follows following steps:

  1. Partner sends UP42 sample job results for quality check.

  2. Partner sends UP42 the registry url of the custom block required for publishing the block.

  3. Partner sends UP42 the recommended workflows with sample parameters.

  4. UP42 team publishes the block as a hidden block on the marketplace to test the block in the production environment.

  5. UP42 analytics team runs tests based on partner's recommended workflows and sample parameters and additionally, some other scenarios to identify abnormal behavior.

  6. UP42 customer support team runs additional operational tests.

  7. Partner gets feedback from UP42 team regarding the performance and if necessary, optimizations.