GB2634764A - Satellite data processing method - Google Patents
Satellite data processing method Download PDFInfo
- Publication number
- GB2634764A GB2634764A GB2316015.3A GB202316015A GB2634764A GB 2634764 A GB2634764 A GB 2634764A GB 202316015 A GB202316015 A GB 202316015A GB 2634764 A GB2634764 A GB 2634764A
- Authority
- GB
- United Kingdom
- Prior art keywords
- location
- time
- interval
- data
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/487—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/489—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using time information
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Library & Information Science (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Image Processing (AREA)
Abstract
A method of processing satellite images comprises processing input data defining a 5 plurality of location-time-interval pairings, each comprising a location and a time interval, wherein the input data further specifies a parameter of interest. Obtaining the input data includes receiving a portion of the input data from a user. The processing comprises, for each location-time-interval pairing, instructing a different respective server 110 of a plurality of servers 110, 111, 112, 113, to retrieve, from a repository 120, satellite data comprising one or more images of the respective 10 location, captured during the respective time interval, and, in parallel with each of the other respective servers 111, 112, 113, to process the satellite data for the location-time-interval pairing. The processing comprises, for each of one or more positions at or adjacent the location, processing the one or more images to determine a respective value of the parameter for the respective position. The method further comprises receiving the parameter values generated for each of the plurality of location-time-interval pairings at a single processing device 100 and processing the received parameter values to generate output data.
Description
Satellite Data Processing Method
TECHNICAL FIELD
This disclosure relates generally to a method and system for processing satellite image data.
BACKGROUND OF THE INVENTION
It is known to process satellite imagery to determine properties for a geographic area, such as crop nitrogen content.
However, existing methods for processing satellite images at scale are memory-and processing-intensive. In particular, the data size of satellite image tiles (typically around 0.8-1.2 GB for each 100km x 100km tile) is such that analysing large areas of land, spanning multiple satellite image tiles, on a workstation can impose significant network-capacity, storage and processing demands on the workstation.
The present invention aims to provide a more efficient method for processing satellite images.
SUMMARY OF THE INVENTION
According to a first aspect, there is provided a method of processing satellite images, the method comprising processing input data defining a plurality of location-time-interval pairings, each location-time-interval pairing comprising a location and a time interval, wherein the input data further specifies a parameter of interest; wherein the processing comprises, for each location-time-interval pairing, instructing a different respective server of a plurality of servers, to: retrieve, from a repository, satellite data comprising one or more images of the respective location of the location-time-interval pairing, captured during the respective time interval of the location-time-interval pairing; and in parallel with each of the other respective servers, processing the satellite data for the location-time-interval pairing, wherein the processing comprises, for each of one or more positions at or adjacent the location of the location-time-interval pairing, processing the one or more images to determine a respective value of the parameter for the respective position; the method further comprising: receiving the parameter values generated for each of the plurality of location-time-interval pairings at a single processing device; and processing the received parameter values to generate output data.
According to a second aspect, there is provided a system for processing satellite images, the system comprising a processing device configured to: process input data defining a plurality of location-time-interval pairings, each location-time-interval pairing comprising a location and a time interval, wherein the input data further specifies a parameter of interest; instruct, for each location-time-interval pairing, a different respective server of a plurality of servers, to: retrieve, from a repository, satellite data comprising one or more images of the respective location of the location-time-interval pairing, captured during the respective time interval of the location-time-interval pairing; and in parallel with each of the other respective servers, processing the satellite data for the location-time-interval pairing, wherein the processing comprises, for each of one or more positions at or adjacent the location of the location-time-interval pairing, processing the one or more images to determine a respective value of the parameter for the respective position; and wherein the processing device is further configured to: receive the parameter values generated for each of the plurality of location-time-interval pairings from the plurality of servers; and process the received parameter values to generate output data.
According to a third aspect, there is provided computer software (optionally stored on a non-transitory computer-readable medium) comprising instructions which, when executed by a processing device, cause the processing device to: process input data defining a plurality of location-time-interval pairings, each location-time-interval pairing comprising a location and a time interval, wherein the input data further specifies a parameter of interest; instruct, for each location-time-interval pairing, a different respective server of a plurality of servers, to: retrieve, from a repository, satellite data comprising one or more images of the respective location of the location-time-interval pairing, captured during the respective time interval of the location-time-interval pairing; and in parallel with each of the other respective servers, processing of the satellite data for the location-time-interval pairing, wherein the processing comprises, for each of one or more positions at or adjacent the location of the location-time-interval pairing, processing the one or more images to determine a respective value of the parameter for the respective position; and wherein the instruction further cause the processing device to: receive the parameter values generated for each of the plurality of locationtime-interval pairings from the plurality of servers; and process the received parameter values to generate output data.
Thus it will be seen that, in accordance with at least some embodiments, satellite images associated with a plurality of location-time-interval pairings can be efficiently processed to generate output data relating to a parameter of interest for a plurality of locations and/or times. By instructing a plurality of servers to process satellite data associated with respective location-time-interval pairings in parallel, satellite images can be processed efficiently and at scale. Parameter values can thus be simultaneously generated for a number of locations using multiple servers in parallel. The parameter values can then be collected at a single processing device and used to generate output data for the parameter of interest.
The calculating of parameter values at multiple servers prior to being received at a single processing device advantageously reduces the burden on the processing device used to generate output data (and at which the parameter values are received), as satellite images do not need to be downloaded and processed locally at that device. The processing requirements of the single processing device are also reduced, as output data can be generated based on the collected parameter values rather than being based on satellite image data directly.
Processing of location-time-interval pairings may thus be distributed across a plurality of servers, each server being used to process satellite data (comprising one or more images) in parallel with the rest of the plurality of servers. By "in parallel", it will be understood that the satellite images are processed at respective servers such that the processing performed by all the servers is at least partially overlapping in time, i.e. such that there is at least one moment in time at which all of the respective servers are processing satellite data simultaneously, in response to the instructing from the processing device. The servers may communicate with each other to coordinate their processing. They may process the satellite data in parallel as a consequence of receiving instructions from the processing device at the same time or within a time window, or the processing device may instruct each server when to perform the processing.
In some embodiments, the processing system additionally comprises the plurality of servers. It may further comprise a network comprising the processing device and the plurality of servers.
Each server may be configured to: retrieve, from a repository, satellite data comprising the one or more images of the respective location data of the location-time-interval pairing, captured during the respective time interval of the location-time-interval pairing; and in parallel with each of the other respective servers, perform the processing of the satellite data for the location-time-interval pairing.
The servers may all retrieve satellite data from the same repository or repositories, or they may retrieve satellite data from two or more different repositories. In some embodiments, the processing system additionally comprises the repository or repositories.
In some embodiments, the processing device may instruct a server of the plurality of servers to process a plurality of location-time-interval pairings for a same location (i.e. for different time intervals). The server may process the location-time-interval pairings sequentially. The server may retrieve satellite data comprising one or more images of the location for each of a plurality of time intervals, and may process the images to determine parameter values for positions at or adjacent the location at each respective time. The time intervals may be disjoint, e.g. separated by hours, days, weeks or longer.
In some embodiments, the processing device may instruct a server of the plurality of servers to process a plurality of location-time-interval pairings for a same time interval (i.e. for different locations). The server may process the location-time-interval pairings sequentially. The server may retrieve satellite data comprising one or more images captured during the time interval for each of a plurality of locations, and may process the images to determine parameter values for positions at or adjacent each respective location during the time interval. The locations may be spaced apart, e.g. separated by tens, hundreds or thousands of kilometres.
In some embodiments, the input data may be structured data. It may be, or be contained within, a structured data object, e.g. a JSON object or JSON document. The input data may be received or generated by the processing device as structure data. The structured data may be a structured data object conforming to a predetermined schema, e.g. a JSON schema. The structured data object may comprise a plurality of input fields. The predetermined schema may define a plurality of input fields, e.g. for containing the input data. In some embodiments, the predetermined schema may additionally define one or more output fields, e.g. for containing the output data. The one or more locations and one or more time intervals may be specified in respective input fields of the structured data object.
The parameter of interest may be specified in an input field of the structured data object. In some embodiments, a plurality of parameters of interest may be specified in the input data (e.g. in respective input fields of the data object). In such embodiments, the processing performed by the plurality of servers may comprise, for each of one or more positions at or adjacent the location, processing the one or more images to determine a respective value of each of the parameters of interest, for the respective position. In some embodiments, generating the output data comprises writing one or more values of the parameter of interest to one or more output fields of a structured data object, which may be a same structured data object that comprises the input data. Using the same structured data object (e.g. the same JSON document) for both input data and output data may enable particularly efficient memory usage.
In some embodiments, the method may further comprise the processing device obtaining the input data. Obtaining the input data may comprise receiving at least a portion of the input data (e.g. values for one or more input fields of a structured data object) from a user. A user may provide some or all of the input data to the processing device through an input apparatus. For example, an input/output (I/O) device (such as a touchscreen interface) may be part of or may be connected to the processing device. It may be configured to display a user interface at which the input data, e.g. locations, times and one or more parameters of interest can be specified by a user. In some embodiments, obtaining the input data may comprise the processing device retrieving the input data from a database, which may be stored within the processing device or may be external to the processing device.
In some embodiments, the processing of input data identifying a location may be performed a plurality of times, e.g. at regular intervals, such as daily, weekly, or monthly. The processing at each time may comprise some or all of the processing steps disclosed herein. The input data may be identical each time, or it may differ e.g. by specifying a different time interval each time. In this way, updated output data may be generated over time, based on one or more parameter values that are updated over time.
In some embodiments, one or more of the locations may be defined in the input data as a respective point, e.g. by a pair of longitude and latitude coordinates associated with a particular geographic location. For example, a location may be a pair of longitude and latitude coordinates associated with an individual location, e.g., a farm. In some embodiments, one or more of the locations may be defined in the input data by a respective polygon describing a two-dimensional geographical boundary. The polygon may be defined by a plurality of vertices, each represented by a pair of longitude and latitude coordinates associated with a particular geographic location. The boundary defined by the polygon may cover a single property, e.g. a farm, or may cover a larger region, e.g. a town, state or country. In some embodiments in which a location is defined in a data object comprising the input data by a polygon describing a two-dimensional geographical boundary, the data object may additionally store a single longitude and latitude pair representing the centroid of the polygon. The centroid of the polygon may be provided as additional input data, or may be calculated by the processor from the polygon. By allowing locations to be defined by either or both a polygon and a centroid in the input data, greater flexibility may be provided during the process of obtaining the input data. For example, a user may be able to define a location using a centroid point in cases where latitude and longitude values of a plurality of vertices defining a polygon are unavailable.
Each time interval may be any duration, e.g. a day, or a month or one of more years. A time interval may be specified in the input data as a range (e.g. a start time and an end time) or as a single value (e.g. a particular day). Each time interval may have a start time in the past, present or future, and may have an end time, later than the start time, that is in the past, present or future. A time interval may, in some examples, be open-ended into the future.
In some embodiments, the input data may comprise a plurality of time intervals for each location, e.g. defining a plurality of location-time-interval pairings for that location. In some alternative embodiments, the input data may comprise a single time interval for each location.
The one or more images of the location may each comprise one or more satellite image tiles. Each satellite image tile may each describe a predetermined geographical area, e.g. a 100 km by 100 km square on the earth's surface.
The plurality of servers may comprise a plurality of networked servers, which may be communicatively coupled to the single processing device via a private or public network. In some embodiments, the public network may be the internet. The processing device and the servers may be in a same building or site, but may be distributed. In embodiments in which the servers are distributed, the servers may all be in a same geographic region (e.g. the same country) as the processing device, however this is not essential in all embodiments. In some embodiments therefore, the processing device may be located in a first country and one or more of the networked servers may be located in one more other countries, different to the country in which the processing device is located.
In some embodiments, the repository may comprise one or more networked repository servers, e.g. accessible over the Internet. In such embodiments, the repository server(s) may be located in the same country as the processing device and/or one or more of the networked server(s). However, in some alternative embodiments, each of the processing device, one or more of the networked servers and the image repository server may be located in a different respective country.
In some embodiments, one or more of the plurality of servers may be instructed to retrieve satellite data from a respective plurality of repositories. This may provide redundancy in the retrieval step, allowing satellite data to be retrieved even in cases where a first repository does not contain satellite images of the location-timeinterval pairing captured during the respective time interval of the location-timeinterval pairing, or it may enable access to different types of satellite image data.
Each server may be configured to perform the processing of the satellite data as in-memory processing. In some embodiments, the processing of the one or more images by each server may comprise performing one or more correction operations on the satellite images. The correction operations may comprise geometric correction of the satellite images to rectify systematic distortions inherent to the satellite imaging process. The correction operations may comprise atmospheric correction of the satellite image to eliminate atmospheric influences in the satellite image, e.g. using a physical model such as Sen2Cor. The correction operations may comprise cloud masking to identify and exclude pixels of the image affected by cloud cover at the time the image was captured. This may reduce the impact of clouds on subsequent analysis. The correction operations may comprise radiometric correction reduce sensor-specific errors and distortions.
Retrieving the satellite data may, for at least one or more locations, comprise retrieving multiple spatially overlapping or abutting images of the location, captured during the time interval, and combining the overlapping or abutting images into a composite image for processing.
In some embodiments, each of the one or more positions at or adjacent the location may correspond to a different respective pixel of the one or more images. In some embodiments, the plurality of positions may correspond to every pixel of the one or more images that overlaps the location, or that is within a predetermined distance of, or boundary around, the location.
In some embodiments, processing the one or more images to determine a respective value of the parameter comprises applying a detection model to an image to identify one or more objects of interest within the image, e.g. to identify a crop within the image. In some such embodiments, the parameter of interest may be a quality metric for an object within the satellite image, e.g. a quality measure associated with a crop in the vicinity of the location. For example, the parameter of interest may be a crop health measure. In some embodiments, the parameter of interest may be a water stress level measure calculated using a water stress index. In some embodiments, the parameter of interest may be a crop nitrogen content measure calculated using nitrogen reflectance index. In some embodiments, the parameter of interest may be a canopy chlorophyll content index (CCCI), or a normalized difference moisture index (NDMI), or a normalized difference vegetation index (NDVI), or a crop type, or an area under production, or crop health, or water stress, or crop nitrogen content In some embodiments, a server of the plurality of servers may retrieve, from a repository, satellite data comprising a respective set of one or more images of the location for each of a plurality of times within the time interval of the location-timeinterval pairing. Each set of one or more images may be timestamped with the respective time. The timestamps may be included in the output data.
In some embodiments, processing the one or more images to determine a respective value of the parameter for the position may comprise applying a machine-learning model that is trained to determine a value of the parameter from the satellite data.
In some embodiments, the method may further comprise storing and/or outputting the output data, e.g. from the processing device. Outputting the output data may comprise displaying the output data at a user interface of, or connected to, the processing device. In such embodiments, the output data may be displayed graphically at a display device, e.g. a display device connected to the single processing device. In some embodiments, outputting the output data may comprise populating one or more output fields of a structured data object, which may be a same structured data object that contains the input data or a different structured data object.
The processing device may be a server, workstation, personal computer or any other processing device. It may comprise one or more processors and memory storing software for execution by the one or more processors for performing steps as disclosed herein. Each of the servers may comprise one or more processors and memory storing software for execution by the one or more processors for performing steps as disclosed herein.
Features of any aspect or embodiment described herein may, wherever appropriate, be applied to any other aspect or embodiment described herein.
Where reference is made to different embodiments or sets of embodiments, it should be understood that these are not necessarily distinct but may overlap.
BRIEF DESCRIPTION OF THE DRAWINGS
Certain preferred embodiments of this disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which: FIG. 1 shows a system for processing satellite images in accordance with an exemplary embodiment; FIG. 2 is a table illustrating an exemplary distribution of location-time-interval pairings to a plurality of servers in accordance with an exemplary embodiment; and FIG. 3 schematically illustrates location information that may be included in an exemplary data object in some embodiments.
DETAILED DESCRIPTION
Figure 1 schematically illustrates a processing device 100 for processing satellite images according to some embodiments. The processing device 100 comprises a processor 101 and a memory 102. In some examples it could be a server, workstation, personal computer or laptop. It is configured to receive instructions from an input-output (I/O) apparatus 103. This could provide a network interface or a user interface. It could comprise a touchscreen display, or a display and a keyboard. The I/O apparatus 103 could be integral with the processing device 100, or could be a standalone device such as a smartphone. The processing device 100 is configured to generate output data based on satellite data obtained from one or more online image repositories 120, via a plurality of remote servers 110, 111, 112, 113, which it may store internally and/or output through the I/O apparatus 103, as will be described in the following.
The processor 101 of the processing device 100 is configured to receive input data through the I/O apparatus 103. The processing device 100 in this embodiment may receive input data as structured data objects (e.g. serialised JSON objects) that conform to a predefined schema. Such data objects will also be referred to herein as schema objects. The schema could be purely an input schema, with output data being output independently, e.g. according to a different output schema. However, in some embodiments, as well as containing input-data fields, each structured data object also includes output-data fields to which output data can be written by the processing device 100. The schema object could be received, as such, through the I/O apparatus 103, or it could be generated within the processing device 100, e.g. based on other user input data received from the I/O apparatus 103. In some embodiments, the schema object is received through an internal or external application programming interface (API) of the processing device 100.
The schema object comprises one or more locations, x, and one or more time intervals, t, together defining two or more unique location-time-interval pairings. It also specifies at least one parameter of interest. Each parameter of interest may be any parameter that can be derived from satellite images stored in the online repository, such as a canopy chlorophyll content index (CCCI), or a normalized difference moisture index (NDMI), or a normalized difference vegetation index (NDVI), or a crop type, or an area under production, or crop health, or water stress, or crop nitrogen content, etc. In one example, the parameter of interest is normalised difference vegetation index (NDVI), which is a measure of the health of vegetation. NDVI may take any value between -1 and +1 depending on the level of vegetation growth in an area. An area with no vegetation growing in it has an NDVI value of zero. The NDVI value for an area increases from zero in proportion to vegetation growth in the area. An area of grassland or shrubs will have a low NDVI value, e.g. 0.2-0.4, while an area with dense, healthy vegetation will have an NDVI of +1. NDVI values below zero are representative of a lack of dry land in the area. For example, the NDVI value of an ocean is -1. While NDVI is used in the present example, it will be appreciated that this merely an exemplary parameter and that any suitable parameter or parameters of interest could be used in other embodiments.
An exemplary schema object is shown below as a JSON array, according to a predefined JSON schema. The schema object can be seen to comprise data relating to a number of different farms. The values included in the schema for each farm include a unique ID ("farm_id"), a geographic location defined by a series of latitude and longitude values of a polygon defining the boundaries of the farm, a centroid point ("farm_centroid_point"), the country in which the farm is located ("country_name"), and an array ("farm_stats") containing a number of sets of parameter values for different respective times t that are given by a "fimestamp" field.
Any or all of the farm_id, farm_location, farm_centroid_point and country_name may be provided by a user as input values in the schema. Also provided as an input field of the schema (but not shown below) are one or more time intervals of interest. Each time interval may start in the past, present or future, and may end at any later time in the past, present or future. A time interval may, in some examples, be open-ended into the future. A time interval could span a single day, e.g. "20 March 2014", or it could be a longer period, e.g. "1 January 2020 to 31 December 2030".
Depending on the schema definition, one time interval may be common across all the farms, or different time intervals may be specified to different farms.
The parameters for the farm in the "farm_stats" array are output fields of the schema, the values of which are generated and added to the schema object as output data using a satellite data processing method as disclosed herein It will be appreciated that, although the example schema object extract below only shows data relating to two farms, the schema object could define a significantly greater number of farms in practice. The range of parameters relating to the farm defined in the array "farm_stats" shown below is similarly an example only and additional properties may be defined in the schema in practical implementations.
"success": true, "data" : [ "farm_id" : "004fdg75-gb54 4q8c-b7gh-e7531635fd846", "farm_location" : "{rtyper:1"MultiPolygonr, rcoordinatesr [[12, 12], [23, 23] [34, 34], [45, 45], [56, 56]]y, "farm_centroid_point" : "POINT (12, 12)", "country_name" : "Kenya", "farm_stats" : [ "timestamp" : 1527064040182, "CCCI": 0.0165, "NDMI" : 0.4637, "NDVI" : -0.1101, "crop" : "maize", "ayg_temperature" 26.24 "timestamp" : 1527064041231, "CCCI": 0.0171, "NDMI" : 0.3636, "NDVI" : -0.1201, "crop" : "wheat", "ayg_temperature": 28.04 "farm_id" "023ftr72-1p53-4g3e-b6gh-e2451715aw247" Although this example schema is directed at farms, other schemas could be defined for other types of location, such as towns or localities, or locations of unspecified type.
The memory 102 of the processing device 100 stores software for execution by the processor 101 for processing a schema object. When a schema object comprising the input data is processed by the processor 101, the location-time-interval pairings and the parameter(s) of interest are distributed to a plurality of remote, networked servers 110, 111, 112, 113. In some embodiments, the location-time-interval pairings are separated by location, and sets of one or more location-time-interval pairings for each location are transmitted to different respective servers, along with the parameter(s) of interest. Each server 110-113 is instructed to determine one or more values of the parameter(s) of interest, for the respective location and indicated time interval(s), as described below. The servers 110-113 may be accessed by the processing device 100 over a private network or over a public network such as the Internet. Each server 110-113 comprises a processor and memory storing software for execution by the processor to perform the steps disclosed herein.
The processing device 100 may select which server to allocate each location to arbitrarily, or based on one or more metrics such as network load or server load.
Figure 2 shows an example table 200 of locations and time intervals that are processed by three of the remote servers 110, 111, 112, in one example use case.
A corresponding input schema object defines three locations, x., xb, xb, each having a plurality of associated time intervals. The locations xa, xb, x0 each have a respective location ID in the schema object, and represent a respective area of land (e.g. an individual farm). For each location xa, xb, x0, the area of land is defined by two-dimensional geographical boundary in the form of a polygon defining the respective individual farm. This polygon data may be provided by a user, e.g. as input data within the input schema, or it may be stored separately, e.g. in a database in or accessible to the processing device 100.
As can be seen in Figure 2, each server A, B, C in this example receives instructions relating to a different, single location, xa, xb, x0 and a plurality of time intervals for said location. In this example, server A 110 receives a first location xa -2a* and two associated time intervals, t tza. This defines two location-time-interval pairings {xa, tie} and {xa, t24. Server B 111 receives a second location xb and four lb
-
associated time intervals t tzb, t=-b, and Lib. This defines four location-time-interval pairings {xb, tib). and {xb, t2b)., {xb, tab} and {xb, Lib}. Similarly, two location-time-interval pairings are also allocated to server C 112. It is not essential that the processing is divided up according to location, and in other examples a server could be instructed to process location-time-interval pairings for two or more locations, in response to the input data.
Although Figure 2 shows the number of time intervals associated with a location that are received by each server as varying between two and four per location, it will be appreciated that any number of time intervals may be used in practice, e.g. one, ten, one hundred, one thousand or more. It will also be appreciated that the number of locations may be significantly greater than indicated in Figures 1 and 2, e.g. hundreds or thousands of locations may be analysed using the device 100.
After the location-time-interval pairings for respective locations are distributed to the three servers A-C 110, 111, 112, each server begins processing its received data in parallel. In other words, for at least some of the time, two or more, or all, of the servers will be processing data derived from the same schema object at the same time. The steps performed by server B 111 will be described in more detail below, but similar steps will be performed by each server 110, 111, 112.
Having received four location-time-interval pairings {xb, {xb, t2b}, {xb, tan} and {xb, Lib} as well as at least one parameter of interest (e.g. NDVI), the server B 111 communicates with one or more online repositories 120 storing satellite images, to retrieve satellite data comprising images of the location xi, captured during each of, , -26 t20 the time intervals t.2a t t and t2d as defined in the location-time-interval pairings {xb, tib} and {xb, 'kb}, {xb, tab} and {xb, tab}.
Each online repository 120 is arranged to store images received from a network of one or more satellites 115. The repository 120 may be arranged to receive updated images of locations across the globe from the satellites 115 at intervals, e.g. daily, weekly, monthly etc, and store these in a memory of the online repository 120. The result of this operation is a database of satellite images of different areas across the globe, each with an associated timestamp.
In some embodiments, the repositories 120 may include one or more ground stations and/or networked systems such as Google Earth Engine.
The number of images retrieved by the server B 111 for each location-time-interval pairing depends on the size and geographical position of the location, e.g. xb, as well as the properties of the images captured by the satellites 115 that are stored in the online repository 120. This will be described in the following in relation to Figure 3.
Figure 3 shows a geographical map of Africa, schematically illustrating satellite images of geographical areas corresponding to each of locations xa, xb, x. encoded in the schema object processed by the processor 101. The locations xa, xb, x0 are represented on the geographical map by squares 301, 303, 305 respectively. The locations could be three different farms, although this is not essential.
The actual boundaries of the locations are shown in greater detail in expanded views 311, 313, 315, which show the geographical extent of locations xa, xb, xe.
Each location is shown overlaid on one or more 100 km x 100 km satellite image tiles. For example, three tiles 323a, 323b and 323c are required to cover location xb.
The number of tiles required to capture each of the locations xa, xn, xa depends on the geographical extent of the location, as well as the alignment of the location with respect to the image tiles provided by the repository 120. For example, in the expanded view 315 of the location x., it can be seen that, although the maximum extent of the location x. does not exceed 100 km in any direction, it nonetheless spans two 100 km x 100 km image tiles 315a, 315b.
In use, the server B 111 responds to the data it receives from the processing device 100 by communicating with one or more online repositories 120. It provides the location-time-interval pairings {xb, tib} and {xb, tab}, {xb, tab} and {xb, tab} to a repository 120, or uses the pairings to request appropriate image tiles from the repository 120. The location of each location-time-interval pairing determines which satellite image tiles are required, for each time interval, in order to perform the required analysis of the location. For example, based on the location xb, the server B 111 requests satellite data comprising image tiles 323a, 323b and 323c from satellite repository 120, as captured at each of time intervals tib, tab, tab and tab. In some embodiments, the parameter(s) of interest may further determine what image data is requested.
In response, the satellite repository 120 provides four sets of image tile data to the server B 111, each set being associated with a respective one of the time intervals tib, tab, tab and tab. Upon retrieving the images, the server B 111 stores the images in volatile memory (e.g. RAM) of the server 111. Depending on the duration of each time interval, a set may include image data for each of a plurality of different times within a time interval. For instance, if a time interval spans a year, the repository 120 may return image tiles for every day of that year. The image data may be timestamped. Where a time interval extends into the future, the server B 111 may query the repository 120 at intervals in order to receive updated image data on an on-going basis, until the time interval elapses.
For each time interval and/or for each timestamp within a time interval, the server B 111 processes the image tiles 323a, 323b and 323c in its volatile memory to determine one or more values of the parameter of interest (e.g. NDVI) at the location. Prior to this processing, the server B 111 may apply one or more correction operations to the image tiles 323a, 323b and 323c, e.g. geometric correction, atmospheric correction, radiometric correction etc to ensure that pixels of the image are correctly aligned with the true geographical location of the location xb and to correct for atmospheric or sensor-related errors in the images.
To determine an NDVI value for the location xb, the server B 111 may identify, for each of image tiles 323a, 323b and 323c, a plurality of positions (e.g. different image pixels) at the location (e.g. if the location is defined as a region) or adjacent the location (e.g. within a predetermined radius of the location if the location is defined by point), and processes the image tiles 323a, 323b and 323c to determine at least one NDVI value for each of the identified positions.
In the present example, the plurality of positions at the location xb comprises every pixel of the image data that lies within the location xb, i.e. excluding the pixels of the satellite image tiles 323a, 323b, 323c outside the polygon defining location xb. However, it will be appreciated that in some embodiments the plurality of positions at the location could comprise every other pixel, every tenth pixel of the image of the location, or some other set of one or more positions at the location (e.g. a single position located at the centroid of the polygon defining the location).
Thus, in the present example, the server B 111 identifies every pixel of each of the image tiles 323a, 323b and 323c for the location xb, and performs analysis of the identified subset of pixels to determine NDVI values for the pixels. Once this subset of pixels has been identified, relevant spectral bands are extracted from the image and a crop detection model is applied that identifies the pixels of the image that match the phenological pattern of a crop of interest. An NDVI value is then calculated for each of the pixels identified as being associated with a crop of interest based on the information contained in the relevant spectral bands.
Specifically, the NDVI value is calculated based on spectral reflectance measurements acquired in the red (visible) and near-infrared regions as:
NDVI -
(MR + Red) Having determined an NDVI value for each of the relevant pixels in the image tiles 323a, 323b and 323c for the location xb, these values are then aggregated by the server B 111 (e.g. by calculating the mean) to generate a single NDVI value for the whole location xb for a particular time (e.g. for the whole time interval, or separately for each of a plurality of times within the time interval). This process is repeated for each time interval tib, t2b, t3b and t4b to generate NDVI values for each of the location-time-interval pairings {xb, tib} and {xb, t2b}, {xb, t3b} and {xb, t4b}. These NDVI values are then sent from the server B 111 to the processing device 100. While a single NDVI value is generated for the whole location xb in this example, it will be (NIR -Red) appreciated that in some alternative embodiments or use cases, a plurality of NDVI values may be generated, e.g. a value associated with each individual pixel of the image tiles 323a, 323b and 323c.
At the same time as this series of operations is performed by server B 111, each of servers A 110 and C 112 performs analogous processing in parallel, relating to locations x8 and x. respectively, returning NDVI values to the processing device 100 for the location-time-interval pairings it received.
In this way, the satellite images associated with each location-time-interval pairing do not need to be downloaded and stored locally by the processing device 100, thus reducing the data and processing requirements of the processing device 100. Instead, the processing device 100 receives the parameter values of interest, generated for each of the locations, from the networked servers 110-112, which will typically consist of much less data.
The NDVI values for each of the location-time-interval pairings are then collected by the processing device 100, which generates output data based on the NDVI values. More generally, the data output by the processing device 100 may include the parameter values directly as received from the servers 110-112, or it may further process the received values to generate derived data for outputting. The resulting data may be stored in the memory 102 and/or output to the I/O apparatus 103. It may be stored in a database or displayed visually to a user on a display screen.
For each parameter of interest, the output data may comprise a plurality of values of the parameter for each location-time-interval pairing (e.g. a set of differently-timestamped NDVI values for each location), or it may comprise a single, e.g. averaged, NDVI value for each location-time-interval pairing.
It will be appreciated by those skilled in the art that the present disclosure has been illustrated by describing one or more specific examples thereof, but is not limited to these examples; many variations and modifications are possible, within the scope of the accompanying claims.
Claims (21)
- Claims 1. A method of processing satellite images, the method comprising processing input data defining a plurality of location-time-interval pairings, each location-time-interval pairing comprising a location and a time interval, wherein the input data further specifies a parameter of interest; wherein the processing comprises, for each location-time-interval pairing, instructing a different respective server of a plurality of servers, to: retrieve, from an online repository, satellite data comprising one or more images of the respective location of the location-time-interval pairing, captured during the respective time interval of the location-time-interval pairing; and in parallel with each of the other respective servers, processing of the satellite data for the location-time-interval pairing, wherein the processing comprises, for each of one or more positions at or adjacent the location of the location-time-interval pairing, processing the one or more images to determine a respective value of the parameter for the respective position; the method further comprising: receiving the parameter values generated for each of the plurality of location-time-interval pairings at a single processing device; and processing the received parameter values to generate output data.
- 2. The method of claim 1, wherein there is at least one moment in time at which all of the respective servers are processing satellite data simultaneously.
- 3. The method of claim 1 or 2, wherein the location-time-interval pairings comprise a plurality of time intervals for a same location, and wherein the locationtime-interval pairings for the location are processed sequentially on a server of the plurality of servers.
- 4. The method of any preceding claim, wherein the location-time-interval pairings comprise a plurality of locations for a same time interval, and wherein the location-time-interval pairings for the time interval are processed sequentially on a server of the plurality of servers.
- -21 - 5. The method of any preceding claim, wherein the input data is a structured data object or is contained within a structured data object.
- 6. The method of claim 5, wherein the structured data object conforms to a predetermined schema.
- 7. The method of claim 5 or 6, wherein the predetermined schema defines a plurality of input fields for containing the input data, and one or more output fields for containing the output data.
- 8. The method of any preceding claim, comprising receiving at least a portion of the input data from a user.
- 9. The method of claim 8, comprising providing a user interface for receiving values for one or more input fields of the input data from the user.
- 10. The method of any preceding claim, wherein the plurality of servers comprises a plurality of networked servers communicatively coupled to the processing device by the Internet.
- 11. The method of any preceding claim, further comprising instructing one or more of the plurality of servers to retrieve satellite data from a plurality of repositories.
- 12. The method of any preceding claim, further comprising instructing one or more of the plurality of servers to perform one or more correction operations on one or more images of the satellite data.
- 13. The method of any preceding claim, further comprising displaying the output data to a user on a display.
- 14. The method of any preceding claim, further comprising using the output data to populate one or more output fields of a structured data object that also contains the input data.
- 15. The method of any preceding claim, wherein each of the one or more positions at or adjacent the location may correspond to a different respective pixel of the one or more images.
- 16. The method of any preceding claim, further comprising at least one server of the plurality of servers retrieving, from a repository, satellite data comprising a respective set of one or more images of the location for each of a plurality of times within the time interval of the location-time-interval pairing.
- 17. A system for processing satellite images, the system comprising a processing device configured to perform the method of any preceding claim.
- 18. The system of claim 17, wherein the system further comprises the plurality of servers. 15
- 19. The system of claim 18, wherein each respective server of the plurality of servers is configured to: retrieve, from a repository, satellite data comprising the one or more images of the respective location of the location-time-interval pairing, captured during the respective time interval of the location-time-interval pairing; and in parallel with each of the other respective servers, perform the processing of the satellite data for the location-time-interval pairing.
- 20. The system of any of claims 17 to 19, wherein the system further comprises the repository or repositories.
- 21. Computer software comprising instructions which, when executed by a processing device, cause the processing device to perform the method of any of claims 1 to 16.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB2316015.3A GB2634764A (en) | 2023-10-19 | 2023-10-19 | Satellite data processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB2316015.3A GB2634764A (en) | 2023-10-19 | 2023-10-19 | Satellite data processing method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| GB202316015D0 GB202316015D0 (en) | 2023-12-06 |
| GB2634764A true GB2634764A (en) | 2025-04-23 |
Family
ID=88970153
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| GB2316015.3A Pending GB2634764A (en) | 2023-10-19 | 2023-10-19 | Satellite data processing method |
Country Status (1)
| Country | Link |
|---|---|
| GB (1) | GB2634764A (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070096945A1 (en) * | 2004-03-23 | 2007-05-03 | Jens Eilstrup Rasmussen | Digital Mapping System |
| US20110007094A1 (en) * | 2008-08-28 | 2011-01-13 | Google Inc. | Architectures and methods for creating and representing time-dependent imagery |
| US20150170388A1 (en) * | 2012-02-10 | 2015-06-18 | Google Inc. | Updating map tiles |
-
2023
- 2023-10-19 GB GB2316015.3A patent/GB2634764A/en active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070096945A1 (en) * | 2004-03-23 | 2007-05-03 | Jens Eilstrup Rasmussen | Digital Mapping System |
| US20110007094A1 (en) * | 2008-08-28 | 2011-01-13 | Google Inc. | Architectures and methods for creating and representing time-dependent imagery |
| US20150170388A1 (en) * | 2012-02-10 | 2015-06-18 | Google Inc. | Updating map tiles |
Also Published As
| Publication number | Publication date |
|---|---|
| GB202316015D0 (en) | 2023-12-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10872417B1 (en) | Automatic delineation agricultural field management zones using remote sensing and field data | |
| US10824861B2 (en) | System and method using image based machine learning process for earth observation and analysis | |
| Zhao et al. | Lidar remote sensing of forest biomass: A scale-invariant estimation approach using airborne lasers | |
| CN114037911A (en) | A large-scale remote sensing inversion method of forest height considering ecological zoning | |
| CN109211791B (en) | Crop growth monitoring method and system | |
| CN113205014B (en) | A method for extracting cultivated land from time series data based on image sharpening | |
| US12260464B2 (en) | System and method for automated forest inventory mapping | |
| US8855439B2 (en) | Method for determining a localization error in a georeferenced image and related device | |
| Herrault et al. | A comparative study of geometric transformation models for the historical" map of france" registration | |
| CN118736448A (en) | A fine inversion method for wheat LAI by integrating UAV and satellite optical remote sensing vegetation index sets | |
| Su et al. | Harmonizing remote sensing and ground data for forest aboveground biomass estimation | |
| CN113033477A (en) | Farming land desertification monitoring and early warning method and system based on remote sensing and storage medium | |
| Kokhan et al. | Application of nanosatellites PlanetScope data to monitor crop growth | |
| CN119740742A (en) | A wetland carbon cycle monitoring and collection system based on remote sensing technology | |
| CN113156082B (en) | Method and system for identifying depth of active layer of crop root system | |
| CN116091936B (en) | A method for inverting agronomic parameters by integrating point-plot-regional scale data | |
| CN118506188A (en) | Multi-source remote sensing data fusion-based farmland non-agrochemistry non-grazing dynamic monitoring method | |
| GB2634764A (en) | Satellite data processing method | |
| CN112241981B (en) | Method and device for verifying accuracy of second-class measurement data of crop planting area | |
| Wei et al. | Large-scale combined adjustment of optical satellite imagery and ICESat-2 data through terrain profile elevation sequence similarity matching | |
| CN111652932B (en) | Vector verification method, device and equipment for remote sensing image geolocation | |
| Möller et al. | Germany-wide time series of interpolated phenological observations of main crop types between 1993 and 2021 | |
| Hu et al. | Multi-Source Data Interpretation For Field Scale Precision Management In Healthcare Industry. | |
| CN120031856B (en) | A method and system for fixed-site repeated monitoring and analysis of plant phenotypes | |
| CN119313965B (en) | Remote sensing identification method of irrigation area |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| COOA | Change in applicant's name or ownership of the application |
Owner name: AMINI TECH LIMITED Free format text: FORMER OWNERS: AMINI UWAZI LTD;AMINI, CORP |