STK secondary development

STK secondary development

introduction

The content is taken from the official website of AGI and is for reference only.

1. Developer Tools

ArchitectureDiagram.png

2022-01-23_175650.png

STK mainly provides three development tools (methods), which are introduced below.

1.1 STK integration

Automate STK and integrate it with other applications to extend its capabilities.

Automate the operation of STK (do not need to manually click the interface to operate), and integrate it with other applications (such as Matlab, etc.) to expand its functions.

STK Integration enables you to automate repetitive tasks from outside Systems Tool Kit (STK), integrate other applications with STK, and access STK’s capabilities from other applications. Integration provides access to two APIs — the STK Object Model and Connect. All the components of Integration are fully documented, and AGI maintains a GitHub repository of code samples to help you get started with the STK Object Model.

By integrating with STK, repetitive tasks can be automated outside STK, and STK's functions can also be called by other applications. Two types of APIs are provided—STK object model and Connect connection. For the development history of STK Object Model, please refer to: A History of the Development of the STK Object Model , and the key points are as follows:

Originally, the only way to programmatically modify STK was through “Connect Commands”. The outside applications were able to establish TCP/IP connection with STK and exchange string commands. While STK OM was created as replacement for the Connect commands, the Connect commands can still be used as part of the STK OM. The Connect commands are still important as they fill current gaps in the STK OM.

Although STK OM is used to replace Connect commands, the two are not independent, and Connect can still be used in STK OM

2022-01-23_182839.png

Note: This development method depends on the STK desktop.

1.2 STK Engine

STK Engine gives you access to STK’s analytical and visualization capabilities without the weight of STK’s graphical user interface. Using the Connect or STK Object Model APIs, you can achieve a seamless integration with an existing application or design an entirely new application to support a specific workflow. And to achieve even more efficient computation speeds, you can deactivate visualization.

STK Engine can be regarded as STK without user interface.

2022-01-23_190151.png

Note: STK Engine can be used in both Windows and Linux environments. After installing STK in Windows environment, STK Engine is already included. In Linux environment, STK Engine is a separate compressed package.

1.3 STK Components

STK Components is a collection of native Java and .Net libraries designed to provide an extensible, open architecture for analyzing and visualizing complex  problems. Use the STK Components libraries in conjunction with your proprietary business logic to accelerate the development and deployment of software solutions for your enterprise or programs.

STK Components is a collection of Java and .Net libraries.

2022-01-24_102401.png

Note: STK Components is independent of the STK desktop and has no dependencies on it, it is a pure resource library.

The difference between STK Engine and STK Components:

Although both products provide APIs for extending and automatically operating STK, they are quite different in some aspects. In actual projects, you can choose a more suitable product according to the strengths of the two.

You should use STK Engine if the STK fits into your workflow already. You need less programming knowledge to create a custom application using Engine because it works with the STK user interface. If you are familiar with the STK Object Model and Connect, you can use both of those APIs with Engine. By default, Engine enables graphics, but you can disable them to speed up computations.

If the workflow of STK has met the needs, you can choose STK Engine.

You should use STK Components if you want to customize STK down to the core. To achieve this level of customization, you will need to rely on strong programming skills to adapt Components to your needs. Your reward is simple but powerful — full control over the capabilities of STK. With Components, you have the flexibility to create an application completely specialized to your mission. By default, Components does not include graphics, but it’s easy to integrate them.

STK Components is relatively low-level. If you want to go deep into the STK kernel for customization, you need to choose STK Components.

The relationship between the three: STK Engine can be regarded as STK without user interface, and most of STK Components can be regarded as the underlying dependencies of STK Engine.

2. Application scenarios

2.1 STK integration

Rely on the STK desktop to solve some repetitive tasks in an automated way. For example, it may be necessary to manually create 100 facilities in STK, but now it can be created directly and automatically through Matlab scripts or interfaces in other languages.

2.2 STK Engine

You want to use the existing functions in STK, but the user interface is developed according to your own business needs. Suitable for desktop system development, not suitable for B/S system server (as a back-end service, it needs to provide CZML to the front-end, and the generation of CZML in Windows environment depends on the Connect command, which means that it needs the support of STK desktop, which obviously cannot meet STK Desktop-side replacement requirements; STK Engine provides a Linux version, which can be used after decompression, which can meet the needs of not installing STK, and should also be able to export CZML; but the operation of STK Engine is first established on AgStkObjectRoot, and there are scene loading or For new creation, scene object creation, etc., the backend may need to maintain multiple rootObjects at the same time, similar to running multiple STKs, which is extremely resource-intensive. Therefore, it is not suitable as a backend service.).

2.3 STK Components

I want to develop a deeper level of customized functions for STK. It is suitable for desktop system development, and can also be used as the server of the B/S system. The back-end generates czml documents from the analysis results, and the front-end visualizes the results through Cesium.

reference link

[1]. STK Developer Tools

[2]. A History of the Development of the STK Object Model

[3]. STK Components

[4]. STK Integration

[5]. STK Engine

Guess you like

Origin blog.csdn.net/wml00000/article/details/122666656