Geospatial aggregating and layering of field data
Embodiments relate to storing farming activity values into geospatial containers associated with a spatial grid system, and generating data analytics therefrom. Pulse data collected by a data collection device and associated with a swath width of a farming implement can be obtained. A pulse polygon can be generated based on the swath width and location information included in the pulse data. The pulse polygon can be translated into at least one grid cell of a plurality of grid cells of a spatial grid system, such that the at least one grid cell geographically corresponds to the pulse polygon. Relevant data points extracted from the pulse data can be stored into a geospatial container generated for each grid cell of the at least one grid cell. Any of the geospatial containers can thus be selectively analyzed, independently or in combination with other geospatial containers, to derive accurate insights therefrom.
1 . A non-transitory computer storage medium storing computer-useable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform operations comprising:
obtaining pulse data collected via a sensor device coupled to a farming machine, the pulse data including machine CAN data and agronomic data and being associated with a swath width of an implement coupled to the farming machine;
generating a pulse polygon based on the pulse data and the associated swath width, the generated pulse polygon defining a geographic area traversed by the implement and having an activity value associated with a temporal identifier determined based on the pulse data;
generating a plurality of geospatial containers based on the pulse polygon, each geospatial container of the plurality of geospatial containers corresponding to one of a plurality of grid cells in a spatial grid system, wherein each geospatial container comprises (i) a unique identifier corresponding to a location of the grid cell within the spatial grid system and (ii) a plurality of discrete portions each configured to store a respective data layer, wherein the geospatial containers are indexed by the unique identifier and each discrete portion is addressable by the temporal identifier; and
storing the activity value into the plurality of geospatial containers, the activity value being stored within a discrete portion of each geospatial container of the plurality of geospatial containers, each discrete portion being associated with the temporal identifier, wherein storing comprises updating an already-existing geospatial container by appending the activity value as a new data layer within the discrete portion associated with the temporal identifier while retaining at least one previously stored data layer associated with a different temporal identifier.
2 . The medium of claim 1 , wherein the pulse data includes a first location identifier associated with a first time and a second location identifier associated with a second time, the pulse polygon being generated based on the associated swath width, the first location identifier, and the second location identifier.
3 . The medium of claim 2 , wherein the second time corresponds to a time interval immediately following the first time.
4 . The medium of claim 2 , wherein the pulse data includes a first activity value associated with the first time and a second activity value associated with the second time, the activity value being determined based at least in part on the second activity value.
5 . The medium of claim 1 , wherein the activity value is determined based on the machine CAN data and the agronomic data.
6 . The medium of claim 1 , wherein the plurality of geospatial containers is generated based further on a determination that a centroid of each grid cell in the plurality of grid cells is located within the defined geographic area.
7 . The medium of claim 1 , the operations further comprising:
receiving a query that references (i) a grid cell of the spatial grid system and (ii) the temporal identifier;
determining a geospatial container corresponding to the referenced grid cell based on the unique identifier;
retrieving the activity value from the discrete portion associated with the temporal identifier; and
generating a result based at least in part on the retrieved activity value.
8 . The medium of claim 1 , the operations further comprising:
obtaining a farming dataset value associated with the defined geographic area; and
storing the farming dataset value into the plurality of geospatial containers, the farming dataset value being stored within another discrete portion of each geospatial container of the plurality of geospatial containers.
9 . The medium of claim 8 , the operations further comprising:
receiving a query that references a first grid cell associated with the spatial grid system;
determining that the referenced first grid cell corresponds to a first geospatial container of the plurality of geospatial containers based on the unique identifier; and
generating a result based at least in part on the activity value and the farming dataset value stored in the first geospatial container.
10 . The medium of claim 1 , wherein updating the already-existing geospatial container comprises storing the activity value as the new data layer while retaining at least one previously stored data layer in the geospatial container that is associated with a different temporal identifier.
11 . A computer-implemented method, comprising:
obtaining, by a computing device, pulse data collected via a sensor device coupled to a farming machine, the pulse data including both machine CAN data and agronomic data and having a first location identifier associated with a first time and a second location identifier associated with a second time and being associated with a swath width of an implement coupled to the farming machine;
generating, by the computing device, a pulse polygon based on the first location identifier, the second location identifier, and the associated swath width, the generated pulse polygon defining a geographic area traversed by the implement and having an activity value associated with a temporal identifier determined based on the pulse data;
generating a plurality of geospatial containers based on the pulse polygon, each geospatial container of the plurality of geospatial containers corresponding to one of a plurality of grid cells in a spatial grid system, wherein each geospatial container comprises (i) a unique identifier corresponding to a location of the grid cell within the spatial grid system and (ii) a plurality of discrete portions each configured to store a respective data layer, wherein the geospatial containers are indexed by the unique identifier and each discrete portion is addressable by the temporal identifier; and
storing, by the computing device, the activity value into the plurality of geospatial containers, the activity value being stored within a discrete portion of each geospatial container of the plurality of geospatial containers, each discrete portion being associated with the temporal identifier, wherein storing comprises updating an already-existing geospatial container by appending the activity value as a new data layer within the discrete portion associated with the temporal identifier while retaining at least one previously stored data layer associated with a different temporal identifier.
12 . The method of claim 11 , wherein the plurality of geospatial containers is generated based further on a determination that a centroid of each grid cell in the plurality of grid cells is located within the defined geographic area.
13 . The method of claim 11 , further comprising:
receiving, by the computing device, a query that references (i) a grid cell of the spatial grid system and (ii) the temporal identifier;
determining, by the computing device, a geospatial container corresponding to the referenced grid cell based on the unique identifier;
retrieving, by the computing device, the activity value from the discrete portion associated with the temporal identifier; and
generating, by the computing device, a result based at least in part on the retrieved activity value.
14 . The method of claim 11 , wherein the temporal identifier comprises a timestamp or a job identifier.
15 . A system comprising:
at least one processor, and
a machine-readable hardware storage device storing instructions that, when utilized by the at least one processor, cause the at least one processor to perform operations comprising:
obtaining a pulse dataset of a plurality of pulse datasets collected via a sensor device coupled to a farming machine, the pulse dataset including machine CAN data and agronomic data output via the farming machine and being associated with a swath width of an implement coupled to the farming machine;
generating a pulse polygon based on the pulse dataset and the associated swath width, the generated pulse polygon defining a geographic area traversed by the implement and having an activity value associated with a temporal identifier determined based on the pulse dataset;
generating a plurality of geospatial containers based on the pulse polygon, each geospatial container of the plurality of geospatial containers corresponding to one of a plurality of grid cells in a spatial grid system, wherein each geospatial container comprises (i) a unique identifier corresponding to a location of the grid cell within the spatial grid system and (ii) a plurality of discrete portions each configured to store a respective data layer, wherein the geospatial containers are indexed by the unique identifier and each discrete portion is addressable by the temporal identifier; and
storing the activity value into the plurality of geospatial containers, the activity value being stored within a discrete portion of each geospatial container of the plurality of geospatial containers, each discrete portion being associated with the temporal identifier, wherein storing comprises updating an already-existing geospatial container by appending the activity value as a new data layer within the discrete portion associated with the temporal identifier while retaining at least one previously stored data layer associated with a different temporal identifier.
16 . The system of claim 15 , wherein the plurality of pulse datasets is collected at equidistant time intervals.
17 . The system of claim 15 , wherein the plurality of geospatial containers is generated based further on a determination that a centroid of each grid cell in the plurality of grid cells is located within the defined geographic area.
18 . The system of claim 15 , the operations further comprising:
receiving a query that references (i) a grid cell of the spatial grid system and (ii) the temporal identifier;
determining a geospatial container corresponding to the referenced grid cell based on the unique identifier;
retrieving the activity value from the discrete portion associated with the temporal identifier; and
generating a result based at least in part on the retrieved activity value.
19 . The system of claim 15 , wherein the activity value is determined based on both the machine CAN data and the agronomic data from the pulse dataset.