Estimating emission source location from satellite imagery
In an approach for estimating emission source location from satellite plume data, a processor creates a dataset of plume concentration data. A processor down samples the dataset to an array at satellite resolution. A processor partitions the array into two separate datasets according to a preset proportion. A processor trains two machine learning models on at least one of the two separate datasets, wherein a first machine learning model of the two machine learning models is for identifying a presence of a plume and a second machine learning model of the two machine learning models is for identifying a source position and magnitude of the plume. A processor applies the two machine learning models to new concentration data.
1 . A computer-implemented method comprising:
creating a dataset of plume concentration data by combining high-resolution synthetic plume data generated from a synthetic plume model having a higher spatial and temporal resolution than satellite data and a modeled distribution of actual plume data using satellite weather data, the dataset including synthetic plumes, corresponding positions and magnitudes, and the satellite weather data;
responsive to the high-resolution synthetic plume data having the higher spatial and temporal resolution, down sampling the dataset from the high-resolution synthetic plume data to a lower resolution array of synthetic plume data at satellite resolution, the dataset arranged as a first array of pixels with a plume at or near a center pixel of the first array;
partitioning the dataset of plume concentration data into two separate datasets according to a preset proportion as a training dataset and a validation dataset;
preparing the training dataset by recoding position entries of the plume as zero when a source of the plume is disposed outside the center pixel and as one for the source of the plume is contained in the center pixel;
training two machine learning models on at least one of the two separate datasets by:
training a first machine learning model to identify a presence of plumes; and
training a second machine learning model to identify a source position and magnitude of the identified plumes;
applying the two machine learning models to each pixel, in sequence, of a data patch of a new set of actual plume concentration data to identify an actual plume, wherein the second machine learning model is applied responsive to the first machine learning model identifying the presence of a first plume at the pixel;
responsive to receiving an output from the second machine learning model of a subpixel position of a first plume source detected by the first machine learning model at a respective pixel, mathematically combining the respective pixel and the subpixel position to form a single coordinate; and
logging the single coordinate of the actual plume to identify a position of the first plume.
2 . The computer-implemented method of claim 1 , wherein creating the dataset comprises:
using the synthetic plume model to compute two-dimensional concentration data for a plurality of wind and atmospheric conditions from a plurality of positions and at a plurality of magnitudes; and
wherein the synthetic plume model is selected from the group consisting of: a superposition of gaussians (SOG) model, a puff model, and a computational fluid dynamics (CFD) model.
3 . The computer-implemented method of claim 1 , wherein creating the dataset comprises:
using collected actual two-dimensional satellite concentration data at a given resolution from known emission source locations.
4 . The computer-implemented method of claim 1 , wherein down sampling the dataset to the lower resolution array at the satellite resolution comprises:
down sampling the first array of pixels to a second array of pixels at the satellite resolution, wherein at least half of the second array of pixels contains the plume and a remainder containing no plume.
5 . The computer-implemented method of claim 4 , wherein down sampling the dataset to an array at satellite resolution comprises: encoding the source position of the plume in the second array of pixels as a single number corresponding to a pixel position relative to the center pixel; and
aggregating data of the second array of pixels and the source position in a single dataset.
6 . The computer-implemented method of claim 1 , wherein the second machine learning model is applied responsive to the first machine learning model identifying the presence of the first plume at the center pixel of the array.
7 . The computer-implemented method of claim 1 , further comprising converting the array into a flattened array for processing by the machine learning models, wherein the flattened array is a one-dimensional array made by arranging the pixels of a two-dimensional array into a linear sequence.
8 . The computer-implemented method of claim 1 , further comprising excluding border pixels of the data patch from analysis by the set of machine learning models.
9 . The computer-implemented method of claim 1 , wherein applying the two machine learning models to each pixel comprises applying the two machine learning models to each pixel of a data patch comprising a plurality of neighboring pixels arranged as a two-dimensional array.
10 . The computer-implemented method of claim 1 , wherein logging the single coordinate of the actual plume comprises logging a plurality of coordinates corresponding to plume sources detected across multiple pixels of the data patch.
11 . A computer program product comprising: one or more computer readable storage media and program instructions collectively stored on the one or more computer readable storage media, the stored program instructions comprising:
program instructions to create a dataset of plume concentration data by combining high-resolution synthetic plume data generated from a synthetic plume model having a higher spatial and temporal resolution than satellite data and a modeled distribution of actual plume data using satellite weather data, the dataset including synthetic plumes, corresponding positions and magnitudes, and the satellite weather data;
program instructions to, responsive to the high-resolution synthetic plume data having the higher spatial and temporal resolution, down sample the dataset from the high-resolution synthetic plume data to a lower resolution array of synthetic plume data at satellite resolution, the dataset arranged as a first array of pixels with a plume at or near a center pixel of the first array;
program instructions to partition the dataset of plume concentration data into two separate datasets according to a preset proportion as a training dataset and a validation dataset;
program instructions to prepare the training dataset by recoding position entries of the plume as zero when a source of the plume is disposed outside the center pixel and as one for the source of the plume is contained in the center pixel;
program instructions to train two machine learning models on at least one of the two separate datasets by:
training a first machine learning model to identify a presence of plumes; and
training a second machine learning model to identify a source position and magnitude of the identified plumes;
program instructions to apply the two machine learning models to each pixel, in sequence, of a data patch of a new set of actual plume concentration data to identify an actual plume, wherein the second machine learning model is applied responsive to the first machine learning model identifying the presence of a first plume at the pixel;
responsive to receiving an output from the second machine learning model of a subpixel position of a first plume source detected by the first machine learning model at a respective pixel, mathematically combine the respective pixel and the subpixel position to form a single coordinate; and
logging the single coordinate of the actual plume to identify a position of the first plume.
12 . The computer program product of claim 11 , wherein the program instructions to create the dataset comprise:
program instructions to use the synthetic plume model to compute two-dimensional concentration data for a plurality of wind and atmospheric conditions from a plurality of positions and at a plurality of magnitudes; and
wherein the synthetic plume model is selected from the group consisting of: a superposition of gaussians (SOG) model, a puff model, and a computational fluid dynamics (CFD) model.
13 . The computer program product of claim 11 , wherein the program instructions to create the dataset comprise:
program instructions to use collected actual two-dimensional satellite concentration data at a given resolution from known emission source locations.
14 . The computer program product of claim 11 , wherein the program instructions to down sample the dataset to the array at the satellite resolution comprise:
program instructions to arrange the dataset as a first array of pixels with the plume at or near a center pixel of the first array; and
program instructions to down sample the first array of pixels to a second array of pixels at the satellite resolution, wherein at least half of the second array of pixels contains the plume and a remainder containing no plume.
15 . The computer program product of claim 14 , wherein the program instructions to down sample the dataset to an array at satellite resolution comprise: program instructions to encode the source position of the plume in the second array of pixels as a single number corresponding to a pixel position relative to the center pixel; and program instructions to aggregate data of the second array of pixels and the source position in a single dataset.
16 . A computer system comprising:
one or more computer processors;
one or more computer readable storage media; and
program instructions collectively stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the stored program instructions comprising:
program instructions to create a dataset of plume concentration data by combining high-resolution synthetic plume data generated from a synthetic plume model having a higher spatial and temporal resolution than satellite data and a modeled distribution of actual plume data using satellite weather data, the dataset including synthetic plumes, corresponding positions and magnitudes, and the satellite weather data;
program instructions to, responsive to the high-resolution synthetic plume data having the higher spatial and temporal resolution, down sample the dataset from the high-resolution synthetic plume data to a lower resolution array of synthetic plume data at satellite resolution, the dataset arranged as a first array of pixels with a plume at or near a center pixel of the first array;
program instructions to partition the dataset of plume concentration data into two separate datasets according to a preset proportion as a training dataset and a validation dataset;
program instructions to prepare the training dataset by recoding position entries of the plume as zero when a source of the plume is disposed outside the center pixel and as one for the source of the plume is contained in the center pixel;
program instructions to train two machine learning models on at least one of the two separate datasets by:
training a first machine learning model to identify a presence of plumes; and
training a second machine learning model to identify a source position and magnitude of the identified plumes;
program instructions to apply the two machine learning models to each pixel, in sequence, of a data patch of a new set of actual plume concentration data to identify an actual plume, wherein the second machine learning model is applied responsive to the first machine learning model identifying the presence of a first plume at the pixel;
responsive to receiving an output from the second machine learning model of a subpixel position of a first plume source detected by the first machine learning model at a respective pixel, mathematically combine the respective pixel and the subpixel position to form a single coordinate; and
logging the single coordinate of the actual plume to identify a position of the first plume.
17 . The computer system of claim 16 , wherein the program instructions to create the dataset comprise:
program instructions to use the synthetic plume model to compute two-dimensional concentration data for a plurality of wind and atmospheric conditions from a plurality of positions and at a plurality of magnitudes; and
wherein the synthetic plume model is selected from the group consisting of: a superposition of gaussians (SOG) model, a puff model, and a computational fluid dynamics (CFD) model.
18 . The computer system of claim 16 , wherein the program instructions to create the dataset comprise:
program instructions to use collected actual two-dimensional satellite concentration data at a given resolution from known emission source locations.
19 . The computer system of claim 16 , wherein the program instructions to down sample the dataset to the array at the satellite resolution comprise: program instructions to arrange the dataset as a first array of pixels with the plume at or near a center pixel of the first array;
program instructions to down sample the first array of pixels to a second array of pixels at the satellite resolution, wherein at least half of the second array of pixels contains the plume and a remainder containing no plume;
program instructions to encode the source position of the plume in the second array of pixels as a single number corresponding to a pixel position relative to the center pixel;
and program instructions to aggregate data of the second array of pixels and the source position in a single dataset.