Satellite orbit data processing method, device, system, equipment and medium

By dividing satellite orbit data into multiple data groups and operating in parallel in multiple computing service units, the problems of inefficiency and insufficient real-time performance of traditional methods when processing massive data are solved, and efficient massive data processing and real-time results display are achieved.

CN120104302APending Publication Date: 2025-06-06NANJING ZHONGKE JINGSHANG COMM TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202510002642.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-02
Publication Date
2025-06-06

AI Technical Summary

Technical Problem

Traditional satellite orbit data processing methods cannot effectively process and display massive data, resulting in huge consumption of computing resources and slow processing speed, which cannot meet the needs of real-time data processing.

Method used

By dividing the satellite orbit data to be displayed into multiple orbit data groups and operating in parallel in multiple orbit computing service units, the satellite orbit data of each orbit data group can be calculated in different orbit computing service units, and finally the total calculation results are transmitted to the client for rendering and displaying.

Benefits of technology

It significantly improves the efficiency of processing massive satellite orbit data, reduces the consumption of computing resources, speeds up processing speed, meets the needs of real-time data processing, and improves the availability and practicality of data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120104302A_ABST
    Figure CN120104302A_ABST
Patent Text Reader

Abstract

The invention discloses a satellite orbit data processing method, device, system, equipment and medium, and the method comprises the steps: dividing to-be-displayed satellite orbit data in response to an operation request, and obtaining a plurality of orbit data groups; for each orbit data group, determining a corresponding target orbit calculation service unit from the plurality of orbit calculation service units, and performing operation on the satellite orbit data in the orbit data group based on the target orbit calculation service unit to obtain a sub-operation result; obtaining a total operation result according to the sub-operation results corresponding to the track data groups; wherein the total operation result is used for reflecting dynamic orbit data during satellite operation; and transmitting the total operation result to the client, so that the client renders and displays the total operation result. According to the satellite orbit data processing method, device, system, equipment and medium, the calculation efficiency can be improved when massive satellite orbit data is processed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of satellite orbit technology, and in particular to a satellite orbit data processing method, device, system, equipment and medium. Background Art

[0002] In the field of modern aerospace, with the surge in the number of satellites and the explosive growth in the amount of orbital data, traditional satellite orbital data processing methods can no longer meet current needs. The primary problem is that traditional satellite orbital data processing methods are unable to process and display massive amounts of data. When faced with large-scale data sets, traditional satellite orbital data processing methods consume huge computing resources and have slow processing speeds, which cannot meet real-time data processing needs. As a result, they lose the ability to render orbits on the front end, making it impossible for users to intuitively see the results of data processing. In satellite orbital data processing, real-time rendering is essential for rapid decision-making and analysis, and the lack of this function will seriously affect the availability and practicality of data. Summary of the invention

[0003] The present invention aims to at least solve the technical problems existing in the prior art. To this end, the present invention proposes a satellite orbit data processing method, device, system, equipment and medium, which can improve the computing efficiency when processing massive satellite orbit data.

[0004] To achieve the above-mentioned purpose, an embodiment of the present application provides a satellite orbit data processing method, which is applied to a server, wherein the server includes a plurality of orbit calculation service units, and the method includes: In response to the operation request, the satellite orbit data is divided to obtain a plurality of orbit data groups; wherein the satellite orbit data includes the orbit data of the satellite to be displayed; For each of the orbital data groups, determine a corresponding target orbital calculation service unit from the plurality of orbital calculation service units, and calculate the satellite orbital data in the orbital data group based on the target orbital calculation service unit to obtain a sub-calculation result; Obtaining a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation; The total calculation result is transmitted to the client, so that the client renders and displays the total calculation result.

[0005] In some embodiments, in response to the operation request, the satellite orbit data to be displayed is divided to obtain multiple orbit data groups, including: When a calculation request is received, a plurality of initial orbital data groups are created, and a corresponding number of satellites is determined for each of the initial orbital data groups according to a total number of satellites to be displayed and configuration information of each of the satellites; According to the number of satellites, a corresponding target orbital data group is determined from a plurality of initial orbital data groups, and the satellite orbital data of the satellites are classified into the target orbital data group.

[0006] In some embodiments, the satellite orbit data processing method further includes: When the orbit calculation service unit calculates the satellite orbit data of the orbit data group, the orbit data group is divided into a plurality of sub-groups according to the number of satellites corresponding to the orbit data group; Invoking a plurality of computing threads in the orbital computing service unit; For each of the subgroups, determining a corresponding target computing thread from the plurality of computing threads, and computing the satellite orbit data of the subgroup through the target computing thread; When each of the computing threads obtains the calculated data, the computing result of the orbital computing service unit is generated based on all the calculated data.

[0007] In some embodiments, the service end includes a plurality of data transmission ports, wherein a mapping relationship exists between the data transmission ports and the orbit calculation service unit; and the step of calculating the satellite orbit data in the orbit data group includes: Based on the mapping relationship between the data transmission port and the orbital calculation service unit, connecting the data transmission port with the orbital calculation service unit; Transmitting the track data group to the data through the data transmission port; When the orbit calculation service unit generates a calculation result, the calculation result is obtained through a data transmission port corresponding to the orbit calculation service unit.

[0008] In some embodiments, the server includes a data push server; The method further comprises the step of transmitting the operation result obtained by each of the data transmission ports to a data push server; The step of transmitting the operation result obtained by each data transmission port to the data push server includes: Transmitting each of the operation results to a preset cache space, and generating a broadcast channel of the cache space; The calculation result in the cache space is transmitted to the data push server through the broadcast channel.

[0009] In some embodiments, the satellite orbit data processing method further includes: When the data transmission port is connected to the target orbit calculation service unit, client interface code information and server abstract class code information are generated based on a preset service protocol file; Based on the server abstract class code information, generating a server implementation class code file in the target orbit calculation service unit; Generate multiple computing threads according to the server-side implementation class code file; The client interface code information is transmitted to the data transmission port, so that the data transmission port is connected to the transmission port of the target orbit calculation service unit and each of the operation threads is called.

[0010] To achieve the above object, another aspect of an embodiment of the present application provides a satellite orbit data processing device, the device comprising: A first service module is used to divide the satellite orbit data into multiple orbit data groups in response to the operation request; wherein the satellite orbit data includes the orbit data of the satellite to be displayed; a second service module, configured to determine, for each orbit data group, a corresponding target orbit calculation service unit from the plurality of orbit calculation service units, and calculate the satellite orbit data in the orbit data group based on the target orbit calculation service unit to obtain a sub-calculation result; The second service module is further used to obtain a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation; The third service module is used to transmit the total calculation result to the client, so that the client renders and displays the total calculation result.

[0011] To achieve the above object, another aspect of the embodiment of the present application provides a satellite orbit data processing system, the system comprising a client and a server, the server comprising a first server module, a second server module and a third server module: The client is used to determine the display duration according to the input request; segment the display duration, and transmit the satellite orbit data corresponding to each segment duration to the first server module according to a preset time sequence; The first server module is used to obtain the satellite orbit data corresponding to each of the segment durations, obtain the satellite orbit data corresponding to the display duration and divide it to obtain multiple orbit data groups; wherein the satellite orbit data includes the orbit data of the satellite to be displayed; The second server module is used to determine, for each orbit data group, a corresponding target orbit calculation service unit from the plurality of orbit calculation service units, and calculate the satellite orbit data in the orbit data group based on the target orbit calculation service unit to obtain a sub-calculation result; The second server module is further used to obtain a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation; The third server module is used to transmit the total calculation result to the client; The client is used to render and display the total calculation result.

[0012] To achieve the above-mentioned purpose, another aspect of an embodiment of the present application proposes an electronic device, which includes a memory and a processor, wherein the memory stores a computer program, and the processor implements the above-mentioned satellite orbit data processing method when executing the computer program.

[0013] To achieve the above-mentioned purpose, another aspect of an embodiment of the present application proposes a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the above-mentioned satellite orbit data processing method is implemented.

[0014] The embodiments of the present application include at least the following beneficial effects: In the technical solution of the present application, the satellite orbit data to be displayed is first divided into multiple orbit data groups. This slicing processing method can effectively reduce the data volume of a single computing task, thereby improving the processing speed. Then, by calling multiple orbital computing service units, the satellite orbit data of each orbital data group can be calculated in parallel in different orbital computing service units. This method significantly improves the ability to process massive data, reduces the consumption of computing resources, and speeds up the processing speed. Finally, the total calculation results after all satellite orbit data are calculated are transmitted to the client, so that the client can render and display the dynamic orbit data during satellite operation, which is conducive to meeting the needs of real-time data processing, allowing users to intuitively see the results of data processing, and improving the availability and practicality of data. The technical solution of the present application effectively solves the technical problems encountered by traditional satellite orbit data processing methods when processing massive data, such as huge consumption of computing resources, slow processing speed, and inability to display processing results in real time, through data grouping, parallel computing, and real-time result transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0015] The present invention will be further described below with reference to the accompanying drawings and embodiments, wherein: Figure 1is a flowchart of the steps of the satellite orbit data processing method provided in an embodiment of the present application; Figure 2 is a flowchart of step S102 in the satellite orbit data processing method provided in an embodiment of the present application; Figure 3 is a flowchart of step S205 in the satellite orbit data processing method provided in an embodiment of the present application; Figure 4 is a schematic diagram of the structure of a satellite orbit data processing device provided in an embodiment of the present application; Figure 5 is a schematic diagram of the structure of a satellite orbit data processing system provided in an embodiment of the present application; Figure 6 It is a structural diagram of a satellite orbit data processing system in an application scenario provided by an embodiment of the present application; Figure 7 It is an operation flow chart of a satellite orbit data processing system in an application scenario provided by an embodiment of the present application; Figure 8 It is a flowchart of the scenario business implementation of the satellite orbit data processing system in the application scenario provided by the embodiment of the present application; Fig. 9 It is a flow chart of the orbit calculation service implementation of the satellite orbit data processing system in the application scenario provided by the embodiment of the present application; Fig.10 It is a flowchart of the implementation of the data push service of the satellite orbit data processing system in the application scenario provided by the embodiment of the present application; Fig.11 It is a structural schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0016] Embodiments of the present invention are described in detail below, examples of which are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain the present invention, and cannot be understood as limiting the present invention.

[0017] In the description of the present invention, it should be understood that descriptions involving orientations, such as up, down, front, back, left, right, etc., and orientations or positional relationships indicated are based on the orientations or positional relationships shown in the accompanying drawings, and are only for the convenience of describing the present invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore should not be understood as a limitation on the present invention.

[0018] In the description of the present invention, "several" means more than one, "many" means more than two, "greater than", "less than", "exceed", etc. are understood to exclude the number itself, and "above", "below", "within", etc. are understood to include the number itself. If there is a description of "first" or "second", it is only used for the purpose of distinguishing the technical features, and cannot be understood as indicating or implying the relative importance or implicitly indicating the number of the indicated technical features or implicitly indicating the order of the indicated technical features.

[0019] In the description of the present invention, unless otherwise clearly defined, terms such as setting, installing, connecting, etc. should be understood in a broad sense, and technicians in the relevant technical field can reasonably determine the specific meanings of the above terms in the present invention based on the specific content of the technical solution.

[0020] In the description of the present invention, the description with reference to the terms "one embodiment", "some embodiments", "illustrative embodiments", "examples", "specific examples", or "some examples" means that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this specification, the schematic representation of the above terms does not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described may be combined in any one or more embodiments or examples in a suitable manner.

[0021] Before describing the embodiments of the present application in detail, some nouns and terms involved in the embodiments of the present application are first described. The nouns and terms involved in the embodiments of the present application are subject to the following explanations.

[0022] gRPC was originally developed by Google. It is a language-neutral, platform-neutral, open source remote procedure call (RPC) system. Similar to many RPC systems, gRPC is based on the following concept: define a service and specify its methods that can be called remotely (including parameters and return types). Implement this interface on the server and run a gRPC server to handle client calls. The client has a method like the server and can call the server. The usage process of gRPC includes: first, define the standard proto file, then generate standard code, then the server uses the generated code to provide services, and then the client uses the generated code to call the service. gRPC is lightweight and high-performance. Its processing speed can be 8 times faster than JSON serialization, and the message is 60% to 80% smaller.

[0023] Protobuf, or Protocol Buffers, is a lightweight and efficient structured data storage format that is language and platform independent, extensible and serializable. It is comparable to XML, but is smaller (3 to 10 times), faster (20 to 100 times), and simpler than XML. Both json and xml are text-based formats, while protobuf is stored in binary format, which takes up less space, but also has the disadvantage of poor readability. protobuf defines the structured data to be processed in the .proto file. The protoc tool can be used to convert the .proto file into code in multiple languages ​​such as C, C++, Golang, Java, Python, etc. It has good compatibility and is easy to use.

[0024] Parallel computing is a computing method that uses multiple computing resources simultaneously to solve large and complex computing problems, aiming to improve computing speed and processing power. There are two common ways to implement program parallelism, called "multi-process programming" and "multi-threaded programming". Multi-process programming refers to starting multiple instances of the same program, and multi-threaded programming refers to starting multiple threads in a process. A process can contain multiple threads, all threads share the resources owned by the process, and each thread can also have its own private resources. The main purpose of parallel computing is to quickly solve large and complex computing problems, while saving costs by using non-local resources and overcoming the memory limitations on a single computer.

[0025] Traditional technical solutions generally process satellite orbit data in two situations: the first situation is that the number of satellites is small and the amount of orbit data is small; the second situation is that the amount of satellite data is large and the amount of orbit data is large. For the case of small data volume, the front end requests the back end to calculate, and then returns the orbit data and directly renders it by the front end. The advantage is that the satellite orbit can be directly displayed, which is more intuitive, but the disadvantage is that it cannot calculate and display massive data. For the case of large data volume, the front end requests the back end to calculate, and the back end writes the data to the file without rendering. The advantage is that it can calculate massive data, but the disadvantage is that it cannot render the orbit on the front end, which is not intuitive. It can be seen that traditional technical solutions cannot meet the requirements of calculating and displaying satellite orbits under the conditions of massive orbit data.

[0026] When the researchers of the technical solution of this application were conducting research on the processing of massive satellite orbit data, they found that the existing technology only considered the rendering of a small amount of satellite orbit data or the calculation of a large amount of satellite orbit data, and did not combine the two to calculate and render massive data. The reason is that the calculation process of massive data is relatively slow and cannot meet the requirements of real-time calculation and display. Second, massive data will cause the front-end data to be blocked and crashed, and the system cannot be used normally. When facing large-scale data sets, traditional satellite orbit data processing methods consume huge computing resources and have slow processing speeds. They cannot meet real-time data processing requirements, thus losing the function of rendering orbits on the front end, resulting in users being unable to intuitively see the results of data processing.

[0027] In view of this, a satellite orbit data processing method, device, system, equipment and medium are provided in the embodiment of the present application. In the technical solution of the present application, the satellite orbit data to be displayed is first divided into multiple orbit data groups. This slicing processing method can effectively reduce the data volume of a single computing task, thereby improving the processing speed. Then, by calling multiple orbital computing service units, the satellite orbit data of each orbital data group can be calculated in parallel in different orbital computing service units. This method significantly improves the ability to process massive data, reduces the consumption of computing resources, and speeds up the processing speed. Finally, the total calculation results after all satellite orbit data are calculated are transmitted to the client, so that the client can render and display the dynamic orbit data when the satellite is running, which is conducive to meeting the needs of real-time data processing, allowing users to intuitively see the results of data processing, and improving the availability and practicality of data. The technical solution of the present application effectively solves the technical problems of huge computing resource consumption, slow processing speed and inability to display processing results in real time when processing massive data in traditional satellite orbit data processing methods through data grouping, parallel computing and real-time result transmission.

[0028] Figure 1 is a flowchart of a satellite orbit data processing method provided in an embodiment of the present application. Figure 1 The method may include but is not limited to steps S101 to S103.

[0029] Step S101, in response to a calculation request, divide the satellite orbit data to obtain a plurality of orbit data groups; wherein the satellite orbit data includes the orbit data of the satellite to be displayed.

[0030] Step S102: for each orbit data group, determine a corresponding target orbit calculation service unit from a plurality of orbit calculation service units, and calculate the satellite orbit data in the orbit data group based on the target orbit calculation service unit to obtain a sub-calculation result.

[0031] Step S103, obtaining a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation.

[0032] Step S104, transmitting the total calculation result to the client, so that the client renders and displays the total calculation result.

[0033] In this embodiment, the satellite orbit data processing method is applied to a server, which includes a plurality of orbit calculation service units.

[0034] In step S101 of some embodiments, the satellite orbit data to be displayed may be divided by grouping the orbit data based on a time window (e.g., by hour or by day), or by prioritizing the orbit data according to its importance or urgency, with high-priority data being processed first. The load conditions of each computing unit may also be considered, and orbit data groups may be intelligently allocated to achieve load balancing.

[0035] In step S102 of some embodiments, the method of using multiple orbital computing service units for parallel computing may be: using a distributed computing framework such as Apache Hadoop or Apache Spark to manage computing tasks.

[0036] In some embodiments, step S101 may include but is not limited to the steps of: When a calculation request is received, multiple initial orbital data groups are created, and the corresponding number of satellites is determined for each initial orbital data group based on the total number of satellites to be displayed and the configuration information of each satellite; based on the number of satellites, the corresponding target orbital data group is determined from the multiple initial orbital data groups, and the satellite orbital data of the satellite is classified into the target orbital data group.

[0037] It can be understood that this embodiment can effectively process and display orbital data of a large number of satellites, while ensuring the real-time nature of data processing and the intuitiveness of client display.

[0038] In a specific embodiment, a satellite monitoring system needs to process and display the orbital data of 100 satellites. Each satellite has its own unique configuration information, including orbital altitude, orbital inclination, satellite purpose, etc. The goal is to process this data efficiently and display the dynamic orbit of each satellite in real time on the client. When the system receives a calculation request, such as a user requesting to view the orbital data of all satellites in a specific time period, the system begins to process this request. The system first determines the total number of satellites that need to be processed, that is, 100. Then, based on the configuration and computing power of the system, it is decided to divide the satellite data into 10 orbital data groups, each containing data from 10 satellites. Based on the total number of satellites to be displayed (100) and the configuration information of each satellite, the system determines that each orbital data group will process data from 10 satellites. The system classifies the satellite orbital data into corresponding orbital data groups based on the configuration information of each satellite, such as orbital altitude and inclination. For example, all satellites operating in low earth orbit may be classified into orbital data groups 1 to 5, while all satellites operating in geosynchronous orbit may be classified into orbital data groups 6 to 10. The satellite orbit data of each orbit data group will be assigned to an orbit calculation service unit for processing. These service units may be different nodes in a distributed system, which process their respective orbit data groups in parallel. Once the satellite orbit data of each orbit data group is processed and calculated, the results will be sent back to the central system and then transmitted to the client. The client will receive this data and use the graphics engine to render the dynamic orbit of each satellite. After the client receives the total calculation results of all orbit data groups, it integrates these results and displays the real-time dynamic orbits of all satellites on the user interface. Users can interactively view the orbit information of different satellites for analysis and decision-making.

[0039] Optionally, the system may adopt a sharding strategy based on satellite orbit characteristics to ensure load balancing of data processing.

[0040] Alternatively, cloud computing resources, such as AWS EC2 or Google Compute Engine, are utilized to dynamically allocate computing nodes to process different orbital data sets.

[0041] Optionally, the WebSocket protocol is used to implement real-time data transmission between the server and the client.

[0042] Optionally, use WebGL and JavaScript libraries such as Three.js to render 3D track maps on the front end.

[0043] In some embodiments, based on the satellite orbit data processing method, the satellite orbit data processing method further includes a step in which the orbit calculation service unit calculates the satellite orbit data of the orbit data group, as shown below: When the orbital calculation service unit calculates the satellite orbit data of the orbital data group, the orbital data group is divided into multiple sub-groups according to the number of satellites corresponding to the orbital data group; multiple calculation threads are called in the orbital calculation service unit; for each sub-group, the corresponding target calculation thread is determined from the multiple calculation threads, and the satellite orbit data of the sub-group is calculated through the target calculation thread; when each calculation thread obtains the calculated data, the calculation result of the orbital calculation service unit is generated based on all the calculated data.

[0044] In this embodiment, the technical solution significantly improves the efficiency and response speed of satellite orbit data processing by subdividing orbit data groups and multi-threaded operations. First, the orbit data group is subdivided into multiple sub-groups according to the number of satellites, so that the number of satellites in each sub-group does not exceed the preset threshold, which is convenient for parallel processing. Then, by calling multiple computing threads in the orbit calculation service unit, parallel computing of multiple sub-groups is realized, making full use of the computing resources of the multi-core processor and reducing the overall computing time. Finally, when all computing threads complete the calculation of their respective sub-groups, these results are aggregated to generate the final calculation result. This embodiment not only improves the parallelism of data processing, but also enhances the scalability of the system and the ability to process large-scale data sets, ensuring real-time and accuracy, which is crucial for satellite orbit data processing that requires rapid decision-making and analysis.

[0045] See also Figure 2 In some embodiments, the steps of operating the satellite orbit data in the orbit data group include but are not limited to steps S201 to S205: Step S201, calling the data transmission port.

[0046] Step S202: Based on the mapping relationship between the data transmission port and the orbit calculation service unit, the data transmission port is connected to the orbit calculation service unit.

[0047] Step S203, transmitting the track data group through the data transmission port.

[0048] Step S204, when the orbit calculation service unit generates a calculation result, the calculation result is obtained through the data transmission port corresponding to the orbit calculation service unit.

[0049] In this embodiment, the server includes multiple data transmission ports, wherein a mapping relationship exists between the data transmission ports and the orbit calculation service units.

[0050] It can be understood that this embodiment can efficiently process data from multiple satellites and push the processing results to the client in real time, meeting the needs of real-time monitoring and analysis.

[0051] In a specific embodiment, the satellite data processing system needs to process orbital data from multiple satellites. The goal of the system is to process this data efficiently and push the processing results to the client in real time. The system is configured with multiple data transmission ports, each of which is used to communicate with a specific orbital calculation service unit. These ports can be network ports, such as TCP / IP ports, for data input and output. The system connects each data transmission port to one or more orbital calculation service units according to a predefined mapping relationship. This mapping relationship can be statically configured or dynamically allocated to adapt to different computing loads and network conditions. Each orbital data group is sent to the target orbital calculation service unit through its corresponding data transmission port. For example, if orbital data group A needs to be processed by service unit 1, orbital data group A is sent through port 1; if orbital data group B needs to be processed by service unit 2, orbital data group B is sent through port 2. Once the orbital calculation service unit completes the data calculation, the result will be returned through the corresponding data transmission port. The system monitors these ports to obtain the calculation results of each service unit. The obtained calculation results will be sent to the data push server. The data push server is responsible for further processing the results and finally pushing them to the client. Data push can be achieved through WebSocket, Server-Sent Events (SSE) or other real-time data push technologies to ensure that the client can receive the latest satellite orbit data in real time.

[0052] Optionally, to ensure data security during transmission, SSL / TLS encrypted data transmission ports may be used.

[0053] Optionally, load balancing technology can be used between the data transmission port and the orbital computing service unit to optimize resource utilization and improve system availability.

[0054] Optionally, the data push server can use SSE technology, which is a technology that allows the server to push real-time updates to the client, and is suitable for scenarios where the server needs to push real-time data to the client.

[0055] See also Figure 3 In some embodiments, the method further includes the step of transmitting the operation result obtained by each of the data transmission ports to the data push server. The implementation of this step may include but is not limited to steps S301 to S303: Step S301, transmitting each operation result to a preset buffer space, and generating a broadcast channel of the buffer space.

[0056] Step S302: transmitting the calculation result in the cache space to the data push server via the broadcast channel.

[0057] In this embodiment, the service end includes a data push server.

[0058] In some embodiments, the preset cache space is provided by the Redis service, which provides data storage functions and can be used as a database, cache or message agent. Redis supports the publish / subscribe (Pub / Sub) mode, allowing clients to publish messages to channels, while other clients can subscribe to these channels to receive messages. This mechanism makes Redis very suitable for implementing message delivery and event notification.

[0059] This embodiment achieves efficient distribution of calculation results by introducing cache space and broadcast channel mechanism. First, in step S301, each calculation result is transmitted to a preset cache space, and a broadcast channel is created for the space, which not only temporarily stores the results, but also provides a centralized communication channel for subsequent distribution. Then, in step S302, the data push server subscribes to this broadcast channel to ensure that all relevant updates can be received. Finally, in step S303, the calculation results in the cache space are pushed to all subscribed data push servers in real time through the broadcast channel. This publish / subscribe mode greatly improves the efficiency and real-time performance of data distribution. Overall, this solution optimizes the data processing process, reduces latency, enables the calculation results to be quickly and consistently delivered to the required systems or users, and improves the response speed and reliability of the entire data push system.

[0060] In some embodiments, based on the satellite orbit data processing method, the satellite orbit data processing method further includes the step of connecting the data transmission port to the target orbit calculation service unit, as shown below: When the data transmission port is connected to the target orbit calculation service unit, client interface code information and server abstract class code information are generated based on the preset service protocol file; based on the server abstract class code information, a server implementation class code file is generated in the target orbit calculation service unit; multiple computing threads are generated according to the server implementation class code file; the client interface code information is transmitted to the data transmission port, so that the data transmission port is connected to the transmission port of the target orbit calculation service unit and each computing thread is called.

[0061] It can be understood that this embodiment can efficiently process data from multiple satellites and push the processing results to the client in real time, meeting the needs of real-time monitoring and analysis.

[0062] In some embodiments, based on a preset service protocol file (usually a `.proto` file), a Protobuf compiler (`protoc`) is used to generate client interface code and server abstract class code. These codes define the communication protocol and data format between services. Then, in the target orbit calculation service unit, according to the server abstract class code information, a server implementation class code file is written. This implementation class will contain specific business logic for processing satellite orbit data operations. Then, according to the server implementation class code file, multiple computing threads are generated. These threads can process different orbit data groups in parallel to improve the efficiency of data processing. For example, in Java, a thread pool can be created to manage these threads, and each thread is responsible for processing the data of a sub-group. Then, the client interface code information is transmitted to the data transmission port, so that the data transmission port can use these interfaces to connect to the transmission port of the target orbit calculation service unit. This can be achieved through a configuration file or by directly specifying the port and protocol in the code. The data transmission port starts the data processing process by connecting to the transmission port of the target orbit calculation service unit and calling each computing thread. Each thread will independently process the data assigned to it and return the calculation result. When the orbital computing service unit generates calculation results, these results will be returned through the corresponding data transmission port. The system can set up a monitoring mechanism to monitor the data port in real time and process the results immediately once they are returned. Finally, the calculation results obtained by each data transmission port are transmitted to the data push server. This server is responsible for further processing the results and finally pushing them to the client, for example, through WebSocket to achieve real-time data push.

[0063] Alternatively, you can use Java Socket to implement a multi-threaded server program, where each time a new client connects, a new thread is started to handle the connection.

[0064] Optionally, a multi-process / thread concurrent server is implemented based on TCP, which can handle concurrent connections and data transmission from multiple clients.

[0065] Optionally, under Linux system, the communication between the client and the server can be realized through socket programming, including concurrent processing of multiple processes and multiple threads.

[0066] See also Figure 4 The present application also provides a satellite orbit data processing device including: The first service module 401 is used to divide the satellite orbit data into multiple orbit data groups in response to the operation request; wherein the satellite orbit data includes the orbit data of the satellite to be displayed.

[0067] The second service module 402 is used to determine the corresponding target orbit calculation service unit from multiple orbit calculation service units for each orbit data group, and calculate the satellite orbit data in the orbit data group based on the target orbit calculation service unit to obtain a sub-calculation result.

[0068] The second service module 402 is further used to obtain a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation.

[0069] The third service module 403 is used to transmit the total operation result to the client, so that the client renders and displays the total operation result.

[0070] It can be understood that the contents of the above method embodiments are all applicable to the present device embodiments, the functions specifically implemented by the present device embodiments are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.

[0071] See also Figure 5 The embodiment of the present application also provides a satellite orbit data processing system including a client 510 and a server 520 , and the server 520 includes a first server module 521 , a second server module 522 and a third server module 523 .

[0072] The second service end module 522 includes a plurality of orbit calculation service units 524 .

[0073] The client 510 is used to determine the display duration according to the input request; segment the display duration, and transmit the satellite orbit data corresponding to each segment duration to the first server module 521 according to a preset time sequence.

[0074] The first server module 521 is used to obtain the satellite orbit data corresponding to each segment duration, obtain the satellite orbit data corresponding to the display duration and divide it to obtain multiple orbit data groups; wherein the satellite orbit data includes the orbit data of the satellite to be displayed.

[0075] The second server module 522 is used to determine the corresponding target orbit calculation service unit 524 from multiple orbit calculation service units 524 for each orbit data group, and calculate the satellite orbit data in the orbit data group based on the target orbit calculation service unit 524 to obtain a sub-calculation result.

[0076] The second server module 522 is further used to obtain a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation.

[0077] The third server module 523 is used to transmit the total calculation result to the client 510.

[0078] The client 510 is used to render and display the total calculation results.

[0079] It can be understood that the contents of the above method embodiments are all applicable to the present system embodiments, the functions specifically implemented by the present system embodiments are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.

[0080] See also Figures 6 to 10 , the present application also provides a specific embodiment of the application of satellite orbit data processing in actual scenarios.

[0081] like Figure 6 As shown, in this specific embodiment, a satellite orbit data processing system includes a client, a scene business server as a first server module, and a data push server as a third server module. The second server module is an orbit computing service cluster, and the orbit computing service cluster includes five orbit computing servers as orbit computing service units.

[0082] The client is a desktop or laptop computer that is used to execute the front-end program and is responsible for rendering and displaying satellite orbit data.

[0083] The scenario business server is a common application server (such as Dell R750, etc.), which is used to execute the back-end scenario program and is responsible for receiving front-end computing requests and aggregating computing data.

[0084] The data push server is a common application server that is used to execute the back-end data push program and is responsible for pushing satellite orbit data to the front-end.

[0085] The orbit calculation server is a common or high-performance application server used to execute the back-end orbit calculation program and is responsible for calculating satellite orbit data.

[0086] like Figure 7As shown, in this specific embodiment, the client receives user requirements through the front-end page, calculates and displays satellite orbit data with a total duration of T and a total number of S, and then performs time slicing processing on the total duration T, each slice has a duration of t, and then sends the slice data to the scene service server in sequence for calculation. After receiving the calculation request sent by the front-end page, the scene service server performs data slicing processing on the total number S, each slice has m pieces, and then asynchronously calls the orbit calculation service for calculation through the gRPC protocol, and transmits the data to the data push server after each slice calculation is completed. The orbit calculation service cluster consists of n (expanded according to the calculation requirements and hardware resources) orbit calculation service units. After receiving the calculation request, each orbit calculation service unit starts multiple computing threads to calculate the orbit data of m satellites respectively, and returns the data to the scene service server after all calculations are completed. After receiving the satellite orbit data transmitted by the scene service server, the data push server pushes the data to the client. Finally, the client renders and displays the data after receiving the data pushed by the data push server.

[0087] like Figure 8 As shown, in this specific embodiment, after receiving the calculation request sent by the client, the scene business server sets the m value according to the satellite and configuration for data sharding processing; performs data sharding processing on a total number of S satellites, with each group having a maximum of m satellites, and a total of g=S / m groups; the g groups of sharded data are asynchronously called to the orbital computing service cluster for calculation through the gRPC client; after the calculation of each group of orbital data is completed, the data is returned to the scene business server, and the scene business server transmits the sharded orbital data to the data push server until all processing is completed; the data push server pushes the data to the client for display.

[0088] like Fig. 9 As shown, in this specific embodiment, in the orbital computing service implementation process, it includes a defined proto file, a gRPC client, a gRPC server abstract class, and a gRPC server implementation class. The proto interface file consists of satellite definition, request parameter definition, return value definition, and interface definition. When compiling the proto file, a gRPC interface client and a gRPC server abstract class are generated, and the orbital computing service unit implements the gRPC server abstract class. In the gRPC server implementation class, n threads are started to calculate satellite data separately, and the aggregated data is returned after all are completed.

[0089] like Fig.10As shown, in this specific embodiment, the data push server starts WebSocket listening and Redis broadcast listening, which are used to listen to the client's connection request and Redis data broadcast request respectively. The client connects to the WebSocket of the data push server and establishes a two-way data transmission channel. The scene business server transmits track data to Redis, and after receiving it, Redis broadcasts the data to the Redis broadcast listening interface of the data push server; after receiving the data, the Redis broadcast listening interface parses and sends the data to the client through the WebSocket listening interface to complete the data push.

[0090] The embodiment of the present application also provides an electronic device, the electronic device includes a memory and a processor, the memory stores a computer program, and the processor implements the above satellite orbit data processing method when executing the computer program. The electronic device can be any intelligent terminal including a tablet computer, a car computer, etc.

[0091] It can be understood that the contents of the above method embodiments are all applicable to the present device embodiments, the functions specifically implemented by the present device embodiments are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.

[0092] See also Fig.11 , Fig.11 The hardware structure of an electronic device of another embodiment is illustrated, and the electronic device includes: The processor 601 may be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of the present application; The memory 602 can be implemented in the form of a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 602 can store an operating system and other application programs. When the technical solution provided in the embodiment of this specification is implemented by software or firmware, the relevant program code is stored in the memory 602, and the processor 601 calls and executes the satellite orbit data processing method of the embodiment of this application; Input / output interface 603, used to implement information input and output; Communication interface 604, used to realize communication interaction between the device and other devices, which can be realized through wired mode (such as USB, network cable, etc.) or wireless mode (such as mobile network, WIFI, Bluetooth, etc.); A bus 605 that transmits information between various components of the device (e.g., processor 601, memory 602, input / output interface 603, and communication interface 604); The processor 601 , the memory 602 , the input / output interface 603 and the communication interface 604 are connected to each other in communication within the device via a bus 605 .

[0093] An embodiment of the present application also provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the above-mentioned satellite orbit data processing method is implemented.

[0094] It can be understood that the contents of the above method embodiments are all applicable to the present storage medium embodiments, the functions specifically implemented by the present storage medium embodiments are the same as those of the above method embodiments, and the beneficial effects achieved are also the same as those achieved by the above method embodiments.

[0095] The memory, as a non-transient computer-readable storage medium, can be used to store non-transient software programs and non-transient computer executable programs. In addition, the memory may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory may optionally include a memory remotely disposed relative to the processor, and these remote memories may be connected to the processor via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.

[0096] The embodiments described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application and do not constitute a limitation on the technical solutions provided in the embodiments of the present application. Those skilled in the art will appreciate that with the evolution of technology and the emergence of new application scenarios, the technical solutions provided in the embodiments of the present application are also applicable to similar technical problems.

[0097] Those skilled in the art will appreciate that the technical solutions shown in the figures do not constitute a limitation on the embodiments of the present application, and may include more or fewer steps than shown in the figures, or a combination of certain steps, or different steps.

[0098] The device embodiments described above are merely illustrative, and the units described as separate components may or may not be physically separated, that is, they may be located in one place or distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0099] Those skilled in the art will appreciate that all or some of the steps in the methods disclosed above, and the functional modules / units in the systems and devices may be implemented as software, firmware, hardware, or a suitable combination thereof.

[0100] The terms "first", "second", "third", "fourth", etc. (if any) in the specification of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0101] It should be understood that in the present application, "at least one (item)" means one or more, and "plurality" means two or more. "And / or" is used to describe the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally indicates that the objects associated before and after are in an "or" relationship. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, c can be single or multiple.

[0102] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the above units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0103] The units described above as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0104] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0105] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including multiple instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of various embodiments of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (Read-Only Memory, referred to as ROM), random access memory (Random Access Memory, referred to as RAM), disk or optical disk and other media that can store programs.

[0106] The embodiments of the present invention are described in detail above in conjunction with the accompanying drawings, but the present invention is not limited to the above embodiments. Various changes can be made within the knowledge of ordinary technicians in the relevant technical field without departing from the purpose of the present invention. In addition, the embodiments of the present invention and the features in the embodiments can be combined with each other without conflict.

Claims

1. A satellite orbit data processing method, characterized in that: Applied to a server, the server includes a plurality of orbit calculation service units, and the method includes: In response to the operation request, the satellite orbit data is divided to obtain a plurality of orbit data groups; wherein the satellite orbit data includes the orbit data of the satellite to be displayed; For each of the orbital data groups, determine a corresponding target orbital calculation service unit from the plurality of orbital calculation service units, and calculate the satellite orbital data in the orbital data group based on the target orbital calculation service unit to obtain a sub-calculation result; Obtaining a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation; The total calculation result is transmitted to the client, so that the client renders and displays the total calculation result.

2. The satellite orbit data processing method according to claim 1, characterized in that: In response to the operation request, the satellite orbit data to be displayed is divided to obtain a plurality of orbit data groups, including: When a calculation request is received, a plurality of initial orbital data groups are created, and a corresponding number of satellites is determined for each of the initial orbital data groups according to a total number of satellites to be displayed and configuration information of each of the satellites; According to the number of satellites, a corresponding target orbital data group is determined from a plurality of initial orbital data groups, and the satellite orbital data of the satellites are classified into the target orbital data group.

3. The satellite orbit data processing method according to claim 2, characterized in that: The method further comprises: When the orbit calculation service unit calculates the satellite orbit data of the orbit data group, the orbit data group is divided into a plurality of sub-groups according to the number of satellites corresponding to the orbit data group; Invoking a plurality of computing threads in the orbital computing service unit; For each of the subgroups, determining a corresponding target computing thread from the plurality of computing threads, and computing the satellite orbit data of the subgroup through the target computing thread; When each of the computing threads obtains the calculated data, the computing result of the orbital computing service unit is generated based on all the calculated data.

4. The satellite orbit data processing method according to claim 1, characterized in that: The service end includes a plurality of data transmission ports, wherein a mapping relationship exists between the data transmission ports and the orbit calculation service unit; and the step of calculating the satellite orbit data in the orbit data group includes: Calling the data transmission port; Based on the mapping relationship between the data transmission port and the orbital calculation service unit, connecting the data transmission port with the orbital calculation service unit; Transmitting the track data group to the data through the data transmission port; When the orbit calculation service unit generates a calculation result, the calculation result is obtained through a data transmission port corresponding to the orbit calculation service unit.

5. The satellite orbit data processing method according to claim 4, characterized in that: The server includes a data push server; The method further comprises the step of transmitting the operation result obtained by each of the data transmission ports to a data push server; The step of transmitting the operation result obtained by each data transmission port to the data push server includes: Transmitting each of the operation results to a preset cache space, and generating a broadcast channel of the cache space; The calculation result in the cache space is transmitted to the data push server through the broadcast channel.

6. The satellite orbit data processing method according to claim 4, characterized in that: The method further comprises: When the data transmission port is connected to the target orbit calculation service unit, client interface code information and server abstract class code information are generated based on a preset service protocol file; Based on the server abstract class code information, generating a server implementation class code file in the target orbit calculation service unit; Generate multiple computing threads according to the server-side implementation class code file; The client interface code information is transmitted to the data transmission port, so that the data transmission port is connected to the transmission port of the target orbit calculation service unit and each of the operation threads is called.

7. A satellite orbit data processing device, characterized in that: The device comprises: A first service module is used to divide the satellite orbit data into multiple orbit data groups in response to the operation request; wherein the satellite orbit data includes the orbit data of the satellite to be displayed; a second service module, configured to determine, for each orbit data group, a corresponding target orbit calculation service unit from the plurality of orbit calculation service units, and calculate the satellite orbit data in the orbit data group based on the target orbit calculation service unit to obtain a sub-calculation result; The second service module is further used to obtain a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation; The third service module is used to transmit the total calculation result to the client, so that the client renders and displays the total calculation result.

8. A satellite orbit data processing system, characterized in that: The system includes a client and a server, wherein the server includes a first server module, a second server module and a third server module: The client is used to determine the display duration according to the input request; segment the display duration, and transmit the satellite orbit data corresponding to each segment duration to the first server module according to a preset time sequence; The first server module is used to obtain the satellite orbit data corresponding to each of the segment durations, obtain the satellite orbit data corresponding to the display duration and divide it to obtain multiple orbit data groups; wherein the satellite orbit data includes the orbit data of the satellite to be displayed; The second server module is used to determine, for each orbit data group, a corresponding target orbit calculation service unit from the plurality of orbit calculation service units, and calculate the satellite orbit data in the orbit data group based on the target orbit calculation service unit to obtain a sub-calculation result; The second server module is further used to obtain a total calculation result according to the sub-calculation results corresponding to each orbital data group; wherein the total calculation result is used to reflect the dynamic orbital data of the satellite during operation; The third server module is used to transmit the total calculation result to the client; The client is used to render and display the total calculation result.

9. An electronic device, characterized in that: The electronic device includes a memory and a processor, the memory stores a computer program, and the processor implements the satellite orbit data processing method according to any one of claims 1 to 6 when executing the computer program.

10. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the satellite orbit data processing method according to any one of claims 1 to 6 is implemented.

Citation Information

Cited By

  • Constellation orbit data processing method and device, electronic equipment and storage medium

    CN120601957A