Distributed tile slicing and objectified storage method for remote sensing image and application of distributed tile slicing and objectified storage method

By using distributed tile tiling and object storage, the problems of long tiling time and low storage efficiency of remote sensing image tiling are solved, improving tiling and storage efficiency while reducing server requirements and deployment complexity.

CN119293276APending Publication Date: 2025-01-10SUZHOU ZHONGKE IMAGE SKY REMOTE SENSING TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411417404.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-11
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

Remote sensing image tiling is time-consuming, requires high-performance servers, is costly, and is complex to deploy. Tile storage methods have low copying efficiency and require high maintenance.

Method used

A distributed tile tiling method is adopted, which creates tiling task grids of different grid sizes, allocates tiling tasks to computing nodes, and uses object storage to store tile images, thereby improving tiling and storage efficiency.

Benefits of technology

It achieves high-efficiency and high-performance storage of remote sensing image slices, reduces server requirements and deployment complexity, and reduces maintenance work.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119293276A_ABST
    Figure CN119293276A_ABST
Patent Text Reader

Abstract

The invention discloses a distributed tile slicing and objectified storage method of a remote sensing image and an application thereof. The method comprises the following steps: acquiring slice item information; creating a slicing task grid, and constructing a grid intersection image task; codes of target task grids are obtained, and a slicing task is constructed for each target task grid; slicing the target image to obtain a tile image of the target tile; creating a tile package in the object storage, storing the tile image in the tile package, constructing a tile index warehousing task based on the position information of the tile image in the tile package, and collecting the tile index warehousing task into a task pool; and writing the position information of the tile image in the tile package into the spatial index database. According to the method, the slicing task of the target image is divided into the multiple slicing tasks by creating the multiple slicing task grids with different grids and intersecting the image tasks through the grids, distributed slicing operation is achieved, the slicing efficiency is improved, the tile image is stored through the object, and the storage efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of remote sensing image technology, and specifically relates to a method for distributed tile slicing and object-based storage of remote sensing images and its application. Background Art

[0002] Remote sensing images usually have a large amount of data. Directly processing these large-size data will bring a heavy burden to computers and servers. Through slicing, large-size images can be cut into multiple tiles, and the amount of data in each tile is relatively small, thereby reducing the burden of data processing and facilitating image storage.

[0003] In actual applications, the single-scene fusion and uniform color data covering the whole country and even the world may be thousands, tens of thousands, or even millions of scenes. In addition, due to cloud obstruction, there is overlap between scenes, slicing takes a long time, and the overall progress of slicing cannot be clearly understood.

[0004] At present, most commercial GIS software provides cluster mode tile slicing, which has high requirements on the server, high cost and complex deployment. In addition, the current storage methods for tiles, such as file hash storage and MongoDB database storage, have the problems of low efficiency of tile data copying and high maintenance requirements. Summary of the invention

[0005] The purpose of this application is to provide a method and application of distributed tile slicing and object-based storage of remote sensing images, so as to solve the problems existing in the prior art of long time consumption of remote sensing image slicing, high requirements on servers, high cost, complex deployment, low efficiency of tile storage copying, and high maintenance requirements.

[0006] In order to achieve the above-mentioned purpose, the first aspect of the present application provides a method for distributed tile slicing and object-based storage of remote sensing images, which is applied to a computing node, including:

[0007] Obtaining slicing project information from the shared storage, the slicing project information including an image folder, an image sequence table, and a tile level range, the image folder including a target image to be sliced ​​and fused, the image sequence table being used to describe the order of the target images in the image folder;

[0008] Based on the tile level range, a plurality of slicing task grids with different grid sizes are created, and based on the slicing project information and the slicing task grids, grid intersection image tasks are constructed and collected into a task pool, and each grid obtained by dividing the slicing task grid is used for slicing to generate tiles of a certain level range;

[0009] Extract and execute the grid intersection image task from the task pool, obtain the code of the target task grid, and for each target task grid, construct a slice task and collect it into the task pool. The target task grid is a grid obtained by dividing the slice task grid and overlaps with the target image. The code includes the position of the target task grid and the level of the corresponding slice task grid.

[0010] Extract and execute the slicing task from the task pool, slice the target image, obtain the tile image of the target tile, generate a tile image upload task and collect it into the task pool, wherein the target tile is the tile obtained by slicing the target task grid;

[0011] Extracting and executing the tile image upload task from the task pool, creating a tile package in the object storage, storing the tile image in the tile package, and constructing a tile index storage task based on the location information of the tile image in the tile package and collecting it into the task pool;

[0012] The tile index storage task is extracted from the task pool and executed, and the position information of the tile image in the tile package is written into the spatial index database.

[0013] In one or more embodiments, the tile level range is the 1st to 21st levels; and the step of the computing node creating a plurality of slicing task grids with different grid sizes based on the tile level range includes:

[0014] For the 1st to 10th level tiles, select the 1st level geographic grid as the slicing task grid;

[0015] For tiles at levels 11-16, select the 10th level geographic grid as the slicing task grid;

[0016] For the tiles at levels 17-18, select the 12th level geographic grid as the slicing task grid;

[0017] For the tiles at levels 19-20, select the 14th level geographic grid as the slicing task grid;

[0018] For the tiles at level 21, create a geographic grid at level 16 as the slicing task grid.

[0019] In one or more embodiments, the step of obtaining the encoding of the target task grid includes:

[0020] Based on the image folder, construct the maximum enclosing rectangle of all target images;

[0021] Based on the grid size of the slicing task grid, obtain the codes and geographic location ranges of all grids divided therefrom;

[0022] taking the grids among all the grids that intersect with the maximum circumscribed matrix as the target task grid, and obtaining the code of the target task grid; and / or,

[0023] After the step of extracting and executing the tile index storage task from the task pool and writing the position information of the tile image in the tile package into the spatial index database, the method further includes:

[0024] Delete temporary data and tile cache data.

[0025] In one or more embodiments, the step of slicing the target image to obtain a tile image of the target tile includes:

[0026] Based on the encoding of the target task grid, calculate the location information of the target tile, the location information including the number and the geographical range;

[0027] Based on the position information of the target tile, the target image is sliced ​​to obtain a tile image of the target tile.

[0028] In one or more embodiments, the step of calculating the position information of the target tile based on the encoding of the target task grid includes:

[0029] Based on the coding of the target task grid, obtaining the geographical scope of the target task grid;

[0030] Obtain the number of the highest-level target tile corresponding to the target task grid;

[0031] Based on the number of the target tile of the highest level and the geographical range of the target task grid, obtain the geographical range of the target tile of the highest level;

[0032] The target tiles of the highest level are merged layer by layer to obtain the numbers and geographical ranges of the target tiles of all levels corresponding to the target task grid.

[0033] In one or more embodiments, the step of slicing the target image based on the position information of the target tile to obtain a tile image of the target tile includes:

[0034] Based on the position information of the target tile, slicing the target image to obtain a tile image;

[0035] Determining whether the tile image is a blank tile;

[0036] If not, collecting the tile images into a queue until tile images of all the target tiles are obtained;

[0037] Determine whether there is a target tile with the same number;

[0038] If so, based on the image sequence table, the tile images of the target tiles with the same number in the queue are merged.

[0039] In one or more embodiments, the step of storing the tile image in the tile package, and constructing the tile index storage task based on the location information of the tile image in the tile package and collecting it into the task pool includes:

[0040] The tile image is traversed to read the binary stream and write it into the tile packet, and the position information of the tile image is synchronously recorded, where the position information includes the number of the tile image, the offset starting position, and the length of the binary stream.

[0041] In order to achieve the above-mentioned purpose, the second aspect of the present application provides a device for distributed tile slicing and object-based storage of remote sensing images, which is applied to a computing node, including:

[0042] A project acquisition module is used to acquire slice project information from the shared storage, wherein the slice project information includes an image folder, an image sequence table, and a tile level range, wherein the image folder includes a target image to be sliced ​​and fused, and the image sequence table is used to describe the order of the target images in the image folder;

[0043] A grid creation module is used to create a number of slicing task grids with different grid sizes based on the tile level range, and to construct grid intersection image tasks based on the slicing project information and the slicing task grids and collect them into a task pool. Each grid obtained by dividing the slicing task grid is used to slice and generate tiles of a certain level range;

[0044] The intersection task module is used to extract and execute the grid intersection image task from the task pool, obtain the code of the target task grid, and construct a slice task for each target task grid and collect it into the task pool. The target task grid is a grid obtained by dividing the slice task grid and overlaps with the target image. The code includes the position of the target task grid and the level of the corresponding slice task grid.

[0045] The slicing task module is used to extract and execute the slicing task from the task pool, slice the target image, obtain the tile image of the target tile, generate the tile image upload task and collect it into the task pool. The target tile is the tile obtained by slicing the target task grid.

[0046] An image upload module is used to extract and execute the tile image upload task from the task pool, create a tile package in the object storage, store the tile image in the tile package, and construct a tile index storage task based on the location information of the tile image in the tile package and collect it into the task pool;

[0047] The index storage module is used to extract and execute the tile index storage task from the task pool, and write the position information of the tile image in the tile package into the spatial index database.

[0048] In order to achieve the above-mentioned object, the third aspect of the present application provides an electronic device, including:

[0049] at least one processor; and

[0050] A memory storing instructions, which, when executed by the at least one processor, enables the at least one processor to execute the method for distributed tile slicing and object-based storage of remote sensing images as described in any of the above embodiments.

[0051] In order to achieve the above objectives, the fourth aspect of the present application provides a machine-readable storage medium, which stores executable instructions. When the instructions are executed, the machine executes the method of distributed tile slicing and object storage of remote sensing images as described in any of the above embodiments.

[0052] Different from the prior art, the beneficial effects of this application are:

[0053] The method of the present application creates several slicing task grids with different grids, and divides the slicing task of the target image into several slicing tasks through the grid intersection image task, thereby realizing distributed slicing operation, improving slicing efficiency, and improving storage efficiency by storing tile images through objects. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0055] Figure 1 It is a flowchart of an implementation method of distributed tile slicing and object-based storage of remote sensing images of the present application;

[0056] Figure 2 yes Figure 1 A schematic flow chart of an implementation method corresponding to S300;

[0057] Figure 3 yes Figure 1 A schematic diagram of a flow chart of an implementation method corresponding to S400;

[0058] Figure 4 yes Figure 3 A schematic flow chart of an implementation method corresponding to S401;

[0059] Figure 5 It is a schematic diagram of the target task grid of this application corresponding to tiles of different levels;

[0060] Figure 6 It is a schematic diagram of the merged tiles of the target of this application;

[0061] Figure 7 yes Figure 3 A schematic diagram of a flow chart of an implementation method corresponding to S402;

[0062] Figure 8 It is a schematic diagram of an implementation method of a distributed tile slicing and object-based storage system of the present application;

[0063] Fig. 9 It is a structural schematic diagram of an implementation method of a device for distributed tile slicing and object-based storage of remote sensing images of the present application;

[0064] Fig.10 It is a schematic structural diagram of an embodiment of an electronic device of the present application. DETAILED DESCRIPTION

[0065] In order to enable those skilled in the art to better understand the technical solutions in the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in the field without creative work should fall within the scope of protection of the present application.

[0066] In order to solve the problems of long time consumption, low storage copy efficiency and high maintenance requirements of remote sensing image slicing in the prior art, the applicant has developed a new remote sensing image slicing and storage method, which can divide the remote sensing image slicing tasks into several tasks to be executed by different computing nodes through distributed slicing, and adopt object-based storage to effectively improve the slicing efficiency and storage copy efficiency of remote sensing images.

[0067] Specifically, see Figure 1 , Figure 1 It is a flowchart of an implementation method of distributed tile slicing and object-based storage of remote sensing images of the present application.

[0068] like Figure 1 As shown, the method includes:

[0069] S100. Obtain slice project information from shared storage.

[0070] The slicing project information includes an image folder, an image sequence table, and a tile level range; the image folder includes the target images to be sliced ​​and fused, and the image sequence table is used to describe the order of the target images in the image folder.

[0071] Specifically, the tile level is used to describe the size of the tile. For example, the first-level tiles generally divide the target image into four parts of 2*2, the second-level tiles generally further divide the first-level tiles into four parts of 2*2, and so on.

[0072] For example, in one implementation, the tile level range may be the 1st to 21st levels, so that 21 segmentation operations are performed on the target image to obtain segments of 21 sizes.

[0073] In another embodiment, in order to construct a map database, the slice project information may also include a map service name; it may also include a step of creating map meta information, and writing the current map service name and map service unique code into the map service meta information database.

[0074] S200, based on the tile level range, create several slicing task grids with different grid sizes, and based on the slicing project information and the slicing task grids, construct grid intersection image tasks and collect them into the task pool.

[0075] Among them, the grid obtained by grid division of each slicing task is used to slice and generate tiles of a certain level range.

[0076] In order to split the slicing task of the target image, a slicing task grid is introduced in this application. The slicing task grid is used to divide the target image into several blocks, and perform subsequent slicing operations on each block separately. The slicing operation of each block can be executed by a single computing node, thereby realizing distributed slicing operations and improving slicing efficiency.

[0077] Specifically, in order to optimize the distributed design, slicing task grids with different grid sizes can be used for tiles in different level ranges; for example, for tiles of a lower level, a slicing task grid with a larger grid size can be used. The grid size obtained by dividing the slicing task grid is larger, and the slicing operations of the tiles of the lower level are performed within the grid.

[0078] Exemplarily, in one embodiment, a geographic grid can be selected as the slicing task grid. The geographic grid is a unified and simple geographic space division and positioning reference system. According to unified rules, the ground area is continuously divided according to certain longitude and latitude or ground distance, and the spatial uncertainty is controlled within a certain range to form regular polygons, thereby forming a hierarchical and layered multi-level grid system, realizing the discretization of ground space and assigning a unified code.

[0079] Specifically, for tiles of levels 1 to 10, the 1st-level geographic grid can be selected as the slicing task grid; for tiles of levels 11 to 16, the 10th-level geographic grid can be selected as the slicing task grid; for tiles of levels 17 to 18, the 12th-level geographic grid can be selected as the slicing task grid; for tiles of levels 19 to 20, the 14th-level geographic grid can be selected as the slicing task grid; for tiles of level 21, the 16th-level geographic grid can be created as the slicing task grid.

[0080] Based on the selection of the above slicing task grid, the number of slices for each target image can be made 4096, and the number of tiles is maintained at around 5000-5500, ensuring that the amount of tile data affected by the target is not too large or too small.

[0081] After creating the slicing task grid, it is necessary to further obtain the grids that intersect with the target image from the grids divided by the slicing task grid. Therefore, it is necessary to construct grid intersection image tasks and collect them into the task pool, which are then extracted and executed by the computing nodes to achieve distributed task execution.

[0082] S300, extracting and executing the grid intersection image task from the task pool, obtaining the code of the target task grid, and constructing a slice task for each target task grid and collecting it into the task pool.

[0083] After the computing node extracts the grid intersection image task, it can obtain the encoding of the target task grid based on the image folder in the slicing task grid and slicing project information.

[0084] The target task grid is a grid obtained by dividing the slicing task grid and overlaps with the target image, and the encoding includes the position of the target task grid and the level of the corresponding slicing task grid.

[0085] Specifically, see Figure 2 , Figure 2 yes Figure 1 A flow chart of an implementation method corresponding to S300 in FIG.

[0086] like Figure 2 As shown, the steps of obtaining the encoding of the target task grid include:

[0087] S301, constructing the maximum enclosing rectangle of all target images based on the image folder.

[0088] First, the maximum bounding rectangle of all target images in the image folder can be constructed, and the geographic extent of the maximum bounding rectangle is known.

[0089] S302. Based on the grid size of the slicing task grid, obtain the codes and geographic location ranges of all the grids divided therefrom.

[0090] Since the slicing task grid is known, the code and geographical location range of each grid divided by it can be obtained.

[0091] Exemplarily, when the slicing task grid is a first-level geographic grid, the first-level geographic grid divides the entire earth into four blocks, and the code of each block includes rows and columns. Accordingly, the geographic scope of each block can be obtained based on the code.

[0092] S303: Take the grid that intersects with the maximum circumscribed matrix among all the grids as the target task grid, and obtain the code of the target task grid.

[0093] By calculating whether the geographical range of the grid intersects with the maximum circumscribed matrix and selecting the intersecting one as the target task grid, the position of the target task grid and the level of the corresponding slice task grid, that is, the code of the target task grid, can be obtained.

[0094] Exemplarily, the encoding of the target task grid can be (x, y, z), where x and y represent the row and column of the target task grid in the slice task grid, and z represents the level of the slice task grid. It can be understood that based on the encoding of the target task grid, the geographical scope of the target task grid can be determined.

[0095] For each target task grid obtained, a slice task can be constructed and collected into the task pool. Different computing nodes can extract and execute the tasks, thereby realizing distributed operation and improving efficiency.

[0096] S400, extracting and executing a slicing task from the task pool, slicing the target image, obtaining a tile image of the target tile, generating a tile image upload task and collecting it into the task pool.

[0097] The computing node can extract the slicing task from the task pool for slicing, thereby obtaining an image of a target tile, wherein the target tile is a tile obtained by slicing the target task grid.

[0098] Specifically, see Figure 3 , Figure 3 yes Figure 1 A flow chart of an implementation method corresponding to S400 in FIG.

[0099] like Figure 3 As shown, the steps of slicing the target image to obtain a tile image of the target tile include:

[0100] S401. Based on the encoding of the target task grid, calculate and obtain the position information of the target tile.

[0101] The location information includes a number and a geographical range.

[0102] Since the code of the target task grid is known and the level of the tile corresponding to the target task grid is known, the number and geographical range of the target tile divided by the target task grid can be obtained, wherein the number is used to limit the row and column information of the target tile in the target task grid.

[0103] Specifically, see Figure 4 , Figure 4 yes Figure 3 A flow chart of an implementation method corresponding to S401.

[0104] like Figure 4 As shown, the steps of calculating the position information of the target tile include:

[0105] S4011. Based on the coding of the target task grid, obtain the geographical scope of the target task grid.

[0106] S4012. Obtain the number of the highest-level target tile corresponding to the target task grid.

[0107] The target task grid may correspond to tiles of multiple different levels. For example, for tiles of levels 11-16, the 10th-level geographic grid can be selected as the slicing task grid. In this case, the target task grid is used to divide tiles of levels 11-16.

[0108] Specifically, four 11th-level tiles can be obtained by dividing the target task grid into 2*2, 16 12th-level tiles can be obtained by dividing the target task grid into 4*4, and so on. Figure 5 , Figure 5 It is a schematic diagram of the target task grid of this application corresponding to tiles of different levels.

[0109] Therefore, the number of the target tile of the highest level can be obtained. Taking the 10th level geographic grid as an example, the number of the target tile of the 16th level is first obtained (0-64, 0-64).

[0110] S4013. Based on the number of the target tile at the highest level and the geographical range of the target task grid, obtain the geographical range of the target tile at the highest level.

[0111] S4014: Merge the target tiles of the highest level layer by layer to obtain the numbers and geographical ranges of the target tiles of all levels corresponding to the target task grid.

[0112] It can be understood that after obtaining the geographical range of the target tile at the highest level, the target tiles at the highest level may be merged layer by layer to obtain the numbers and geographical ranges of target tiles at other levels.

[0113] See also Figure 6, Figure 6 This is a schematic diagram of the target tile merging of the present application. The four adjacent target tiles of the 16th level can be merged to obtain the target tile of the 15th level, and the four adjacent target tiles of the target tile of the 15th level can be merged to obtain the target tile of the 14th level. By analogy, the numbers and geographical ranges of the target tiles of all levels corresponding to the target task grid can be obtained.

[0114] S402: Slice the target image based on the position information of the target tile to obtain a tile image of the target tile.

[0115] Based on the above-known position information of each target tile, the target image can be sliced ​​to obtain a tile image of the target tile.

[0116] Specifically, see Figure 7 , Figure 7 yes Figure 3 A flow chart of an implementation method corresponding to S402.

[0117] The steps of slicing the target image to obtain a tile image of the target tile include:

[0118] S4021. Based on the position information of the target tile, slice the target image to obtain a tile image.

[0119] S4022: Determine whether the tile image is a blank tile.

[0120] If the tile image is not a blank tile, then:

[0121] S4023. Collect tile images into a queue until tile images of all target tiles are obtained.

[0122] Since the target image is not a regular image, there must be blank tiles, which need to be discarded.

[0123] S4024: Determine whether there is a target tile with the same number.

[0124] If there is a target tile with the same number, then:

[0125] S4025. Based on the image sequence table, merge the tile images of the target tiles with the same number in the queue.

[0126] It can be understood that there are overlapping areas among the target images in the image folder. In the slicing process of the overlapping areas, target tiles with the same number will be generated. At this time, the tile images of the target tiles with the same number need to be merged based on the image sequence table.

[0127] In one embodiment, the tile image of the target tile of the top target image in the image sequence table can be taken as the merged tile image; in other embodiments, a merging method can also be used, such as fusing the pixel values ​​of the tile images of target tiles with the same number according to a certain weight relationship, etc., which can achieve the effect of the present embodiment and will not be repeated here.

[0128] Based on the above steps, the tile image of the target tile is obtained, and the tile image needs to be uploaded to the storage. Therefore, the computing node generates a tile image upload task and collects it into the task pool. The computing node extracts the task and uploads the tile image to realize distributed tasks.

[0129] S500, extract and execute the tile image upload task from the task pool, create a tile package in the object storage, store the tile image in the tile package, and construct a tile index storage task based on the location information of the tile image in the tile package and collect it into the task pool.

[0130] After the computing node extracts the tile image upload task, it can create a tile package in the object storage. The tile package can be named with the task number. The tile image is then stored in the tile package, and the location information of the tile image is recorded to build a tile index storage task.

[0131] Specifically, in one implementation, the tile images may be traversed to read the binary stream and written into the tile packet, and the location information of the tile image may include the tile image number, the offset start position, and the length of the binary stream.

[0132] The offset starting position is the starting byte position of the binary stream of the tile image in the tile packet.

[0133] In order to realize the indexing of tile images, it is necessary to build tile index storage tasks based on the location information of tile images and collect them into the task pool, which will be extracted and executed by the computing nodes to realize distributed tasks and improve efficiency.

[0134] S600: extract and execute a tile index storage task from the task pool, and write the location information of the tile image in the tile package into the spatial index database.

[0135] After extracting the tile index storage task, the computing node can write the location information of the tile image in the tile package into the spatial index database, so that the tile image can be indexed in the tile package based on the location information.

[0136] After the above steps, the tile slicing and storage operations are completed. Furthermore, the method may also include: the computing node deletes its temporary data and tile cache data, so as to avoid excessive data storage in the computing node.

[0137] Based on the above storage methods, the object-based storage method effectively improves the storage copy efficiency and reduces maintenance requirements.

[0138] See also Figure 8 , Figure 8 FIG. 1 is a schematic diagram of an implementation of a distributed tile slicing and object storage system of the present application. Figure 8 As shown, each executor terminal can extract data from the image data shared storage, and extract and upload tasks from the grid intersection image task pool, slicing task pool, tile file upload task pool, and tile index storage task pool respectively, to achieve distributed operations and improve slicing efficiency and storage efficiency.

[0139] This application also provides a device for distributed tile slicing and object-based storage of remote sensing images, see Fig. 9 , Fig. 9 It is a structural diagram of an implementation method of a device for distributed tile slicing and object-based storage of remote sensing images of the present application.

[0140] like Fig. 9 As shown, the device includes a project acquisition module 21, a grid creation module 22, an intersection task module 23, a slicing task module 24, an image upload module 25 and an index storage module 26.

[0141] The project acquisition module 21 is used to acquire the slice project information from the shared storage, the slice project information includes an image folder, an image sequence table, and a tile level range, the image folder includes the target image to be sliced ​​and fused, and the image sequence table is used to describe the order of the target images in the image folder;

[0142] The grid creation module 22 is used to create a number of slicing task grids with different grid sizes based on the tile level range, and to construct grid intersection image tasks based on the slicing project information and the slicing task grids and collect them into the task pool. The grids obtained by dividing each slicing task grid are used to slice and generate tiles of a certain level range;

[0143] The intersection task module 23 is used to extract and execute the grid intersection image task from the task pool, obtain the code of the target task grid, and for each target task grid, construct a slice task and collect it into the task pool. The target task grid is a grid obtained by dividing the slice task grid and overlaps with the target image. The code includes the position of the target task grid and the level of the corresponding slice task grid.

[0144] The slicing task module 24 is used to extract and execute slicing tasks from the task pool, slice the target image, obtain the tile image of the target tile, generate the tile image upload task and collect it into the task pool, and the target tile is the tile obtained by slicing the target task grid;

[0145] The image upload module 25 is used to extract and execute tile image upload tasks from the task pool, create tile packages in the object storage, store tile images in the tile packages, and construct tile index storage tasks based on the location information of the tile images in the tile packages and collect them into the task pool;

[0146] The index storage module 26 is used to extract and execute tile index storage tasks from the task pool, and write the position information of the tile image in the tile package into the spatial index database.

[0147] As above Figures 1 to 8 , a method for distributed tile slicing and object-based storage of remote sensing images according to an embodiment of this specification is described. The details mentioned in the above description of the method embodiment are also applicable to the device for distributed tile slicing and object-based storage of remote sensing images in the embodiment of this specification. The above device for distributed tile slicing and object-based storage of remote sensing images can be implemented in hardware, or in software, or in a combination of hardware and software.

[0148] This application also provides an electronic device, see Fig.10 , Fig.10 Schematic diagram of the structure of an electronic device of the present application. Fig.10 As shown, the electronic device 30 may include at least one processor 31, a memory 32 (e.g., a non-volatile memory), a memory 33, and a communication interface 34, and the at least one processor 31, the memory 32, the memory 33, and the communication interface 34 are connected together via a bus 35. At least one processor 31 executes at least one computer-readable instruction stored or encoded in the memory 32.

[0149] It should be understood that the computer executable instructions stored in the memory 32, when executed, cause at least one processor 31 to perform the above combined operations in various embodiments of the present specification. Figure 1-Figure 5 Describes the various operations and functions.

[0150] In the embodiments of the present specification, the electronic device 30 may include, but is not limited to, personal computers, server computers, workstations, desktop computers, laptop computers, notebook computers, mobile electronic devices, smart phones, tablet computers, cellular phones, personal digital assistants (PDAs), handheld devices, messaging devices, wearable electronic devices, consumer electronic devices, and the like.

[0151] According to one embodiment, a program product such as a machine-readable medium is provided. The machine-readable medium may have instructions (i.e., the above-mentioned elements implemented in the form of software), which, when executed by a machine, causes the machine to perform the above-mentioned combination of various embodiments of this specification. Figure 1-Figure 5Specifically, a system or device equipped with a readable storage medium may be provided, on which a software program code implementing the functions of any of the above-mentioned embodiments is stored, and a computer or processor of the system or device reads and executes the instructions stored in the readable storage medium.

[0152] In this case, the program code itself read from the machine-readable medium can realize the function of any one of the above embodiments, and thus the machine-readable code and the machine-readable storage medium storing the machine-readable code constitute part of this specification.

[0153] Examples of readable storage media include floppy disks, hard disks, magneto-optical disks, optical disks (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, DVD-RW, DVD-RW), magnetic tapes, non-volatile memory cards, and ROMs. Alternatively, the program code may be downloaded from a server computer or a cloud via a communication network.

[0154] Those skilled in the art should understand that the various embodiments disclosed above can be modified and altered in various ways without departing from the essence of the invention. Therefore, the protection scope of this specification should be defined by the appended claims.

[0155] It should be noted that not all steps and units in the above-mentioned processes and system structure diagrams are necessary, and some steps or units can be ignored according to actual needs. The execution order of each step is not fixed and can be determined as needed. The device structure described in the above-mentioned embodiments can be a physical structure or a logical structure, that is, some units may be implemented by the same physical client, or some units may be implemented by multiple physical clients, or some components in multiple independent devices may be implemented together.

[0156] In the above embodiments, the hardware unit or module can be realized by mechanical or electrical means. For example, a hardware unit, module or processor can include permanent dedicated circuit or logic (such as special processor, FPGA or ASIC) to complete the corresponding operation. The hardware unit or processor can also include programmable logic or circuit (such as general-purpose processor or other programmable processor), which can be temporarily set by software to complete the corresponding operation. Specific implementation (mechanical method or dedicated permanent circuit or temporary circuit) can be determined based on cost and time consideration.

[0157] The specific embodiments described above in conjunction with the accompanying drawings describe exemplary embodiments, but do not represent all embodiments that can be implemented or fall within the scope of protection of the claims. The term "exemplary" used throughout this specification means "used as an example, instance or illustration" and does not mean "preferred" or "having advantages" over other embodiments. For the purpose of providing an understanding of the described technology, the specific embodiments include specific details. However, these technologies can be implemented without these specific details. In some instances, in order to avoid making the concepts of the described embodiments difficult to understand, well-known structures and devices are shown in block diagram form.

[0158] The above description of the present disclosure is provided to enable any person of ordinary skill in the art to implement or use the present disclosure. Various modifications to the present disclosure will be apparent to those of ordinary skill in the art, and the general principles corresponding to the present disclosure may be applied to other variations without departing from the scope of protection of the present disclosure. Therefore, the present disclosure is not limited to the examples and designs described herein, but is consistent with the widest range of principles and novel features disclosed herein.

Claims

1. A method for distributed tile slicing and object-based storage of remote sensing images, characterized in that: Applied to computing nodes, including: Obtaining slicing project information from the shared storage, the slicing project information including an image folder, an image sequence table, and a tile level range, the image folder including a target image to be sliced ​​and fused, the image sequence table being used to describe the order of the target images in the image folder; Based on the tile level range, a plurality of slicing task grids with different grid sizes are created, and based on the slicing project information and the slicing task grids, grid intersection image tasks are constructed and collected into a task pool, and each grid obtained by dividing the slicing task grid is used for slicing to generate tiles of a certain level range; Extract and execute the grid intersection image task from the task pool, obtain the code of the target task grid, and for each target task grid, construct a slice task and collect it into the task pool. The target task grid is a grid obtained by dividing the slice task grid and overlaps with the target image. The code includes the position of the target task grid and the level of the corresponding slice task grid. Extract and execute the slicing task from the task pool, slice the target image, obtain the tile image of the target tile, generate a tile image upload task and collect it into the task pool, wherein the target tile is the tile obtained by slicing the target task grid; Extracting and executing the tile image upload task from the task pool, creating a tile package in the object storage, storing the tile image in the tile package, and constructing a tile index storage task based on the location information of the tile image in the tile package and collecting it into the task pool; The tile index storage task is extracted from the task pool and executed, and the position information of the tile image in the tile package is written into the spatial index database.

2. The method according to claim 1, characterized in that The tile level range is the 1st to 21st levels; the step of the computing node creating a plurality of slicing task grids with different grid sizes based on the tile level range includes: For the 1st to 10th level tiles, select the 1st level geographic grid as the slicing task grid; For tiles at levels 11-16, select the 10th level geographic grid as the slicing task grid; For the tiles at levels 17-18, select the 12th level geographic grid as the slicing task grid; For the tiles at levels 19-20, select the 14th level geographic grid as the slicing task grid; For the tiles at level 21, create a geographic grid at level 16 as the slicing task grid.

3. The method according to claim 1, characterized in that The step of obtaining the encoding of the target task grid comprises: Based on the image folder, construct the maximum enclosing rectangle of all target images; Based on the grid size of the slicing task grid, obtain the codes and geographic location ranges of all grids divided therefrom; taking the grids among all the grids that intersect with the maximum circumscribed matrix as the target task grid, and obtaining the code of the target task grid; and / or, After the step of extracting and executing the tile index storage task from the task pool and writing the position information of the tile image in the tile package into the spatial index database, the method further includes: Delete temporary data and tile cache data.

4. The method according to claim 1, characterized in that: The step of slicing the target image to obtain a tile image of the target tile comprises: Based on the encoding of the target task grid, calculate the location information of the target tile, the location information including the number and the geographical range; Based on the position information of the target tile, the target image is sliced ​​to obtain a tile image of the target tile.

5. The method according to claim 4, characterized in that The step of calculating the position information of the target tile based on the encoding of the target task grid comprises: Based on the coding of the target task grid, obtaining the geographical scope of the target task grid; Obtain the number of the highest-level target tile corresponding to the target task grid; Based on the number of the target tile of the highest level and the geographical range of the target task grid, obtain the geographical range of the target tile of the highest level; The target tiles of the highest level are merged layer by layer to obtain the numbers and geographical ranges of the target tiles of all levels corresponding to the target task grid.

6. The method according to claim 4, characterized in that The step of slicing the target image based on the position information of the target tile to obtain a tile image of the target tile comprises: Based on the position information of the target tile, slicing the target image to obtain a tile image; Determining whether the tile image is a blank tile; If not, collecting the tile images into a queue until tile images of all the target tiles are obtained; Determine whether there is a target tile with the same number; If so, based on the image sequence table, the tile images of the target tiles with the same number in the queue are merged.

7. The method according to claim 1, characterized in that The step of storing the tile image in the tile package, constructing the tile index storage task based on the position information of the tile image in the tile package and collecting it into the task pool includes: The tile image is traversed to read the binary stream and write it into the tile packet, and the position information of the tile image is synchronously recorded, where the position information includes the number of the tile image, the offset starting position, and the length of the binary stream.

8. A device for distributed tile slicing and object-based storage of remote sensing images, characterized in that: Applied to computing nodes, including: A project acquisition module is used to acquire slice project information from the shared storage, wherein the slice project information includes an image folder, an image sequence table, and a tile level range, wherein the image folder includes a target image to be sliced ​​and fused, and the image sequence table is used to describe the order of the target images in the image folder; A grid creation module is used to create a number of slicing task grids with different grid sizes based on the tile level range, and to construct grid intersection image tasks based on the slicing project information and the slicing task grids and collect them into a task pool. Each grid obtained by dividing the slicing task grid is used to slice and generate tiles of a certain level range; The intersection task module is used to extract and execute the grid intersection image task from the task pool, obtain the code of the target task grid, and construct a slice task for each target task grid and collect it into the task pool. The target task grid is a grid obtained by dividing the slice task grid and overlaps with the target image. The code includes the position of the target task grid and the level of the corresponding slice task grid. The slicing task module is used to extract and execute the slicing task from the task pool, slice the target image, obtain the tile image of the target tile, generate the tile image upload task and collect it into the task pool. The target tile is the tile obtained by slicing the target task grid. An image upload module is used to extract and execute the tile image upload task from the task pool, create a tile package in the object storage, store the tile image in the tile package, and construct a tile index storage task based on the location information of the tile image in the tile package and collect it into the task pool; The index storage module is used to extract and execute the tile index storage task from the task pool, and write the position information of the tile image in the tile package into the spatial index database.

9. An electronic device, comprising: at least one processor; as well as A memory storing instructions, which, when executed by the at least one processor, enables the at least one processor to execute the method for distributed tile slicing and object-based storage of remote sensing images as described in any one of claims 1 to 7.

10. A machine-readable storage medium storing executable instructions, which, when executed, enable the machine to execute the method for distributed tile slicing and object-based storage of remote sensing images as described in any one of claims 1 to 7.

Citation Information

Cited By

  • Large-scale remote sensing image data high-performance visualization method and system and electronic equipment

    CN119938630A