IP Library Granted Patent US 9,738,403
Granted Patent B1
US 9,738,403 · App. 14/585,895 · Granted Aug 22, 2017

Parallel calculation of satellite access windows and native program implementation framework

Inventor: Sean Augenstein (Burlingame, CA)
Assignee: Terra Bella Technologies Inc.
B64G1/1021G06F9/3887G06F9/505G06Q10/06314B64G2001/1028
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,738,403
App. No.
14/585,895
Granted
Aug 22, 2017
Kind
B1
Abstract

Systems and methods are provided for calculating satellite access windows for a constellation of imaging satellites. In some implementations, systems and methods are provided for managing execution of native programs on high performance computing systems. In one embodiment a system can determine, for each time interval within a first period of time, a position of each imaging satellite of a constellation of imaging satellites. The system can transform, for each time interval within the first period of time, the position of each imaging satellite from a first coordinate system to a second coordinate system. The system can determine an access window for at least one imagining satellite based at least in part on a determined angle between the vector to the respective location and a determined vector to the respective satellites. The system can schedule the at least one imaging satellite to perform a task within the access window.

Claims (26)

1. A system for calculating satellite access windows for the performance of satellite tasks including imaging locations comprising:

non-transitory data storage configured to store executable instructions;

one or more computing devices in communication with the data storage, the computing devices comprising one or more single instruction, multiple data processing units configured to determine satellite access windows in a parallel manner by executing a set of instructions multiple times for a volume of data, the one or more computing devices being configured to execute instructions for:

determining for each time interval within a first period of time, a position of each imaging satellite of a constellation of imaging satellites;

transforming, for each time interval within the first period of time, the position of each imaging satellite from a first coordinate system to a second coordinate system;

determining, for each imaging satellite, respective angles between a vector to each of the plurality of locations to be imaged and a vector to the respective imaging satellite based on the position of the imaging satellite in the second coordinate system for each time interval within the first period of time;

determining, in a parallel manner, access windows for each imaging satellite to the plurality of locations based at least in part on the determined respective angles, wherein each access window represents a time period in which the imaging satellite has an unobstructed view of at least one of the plurality of locations;

scheduling events in the constellation of imaging satellites based on the determined access windows, wherein the scheduling of events includes at least one of determining which imaging satellite of the constellation is to acquire an image of a desired location of the plurality of locations and determining when the image is to be acquired by one of the imaging satellites; and

receiving imagery data indicative of the image of the desired location acquired by at least one of the imaging satellites based at least in part on the determined access windows.

2. The system as in claim 1 , wherein the one or more computing devices are further configured to execute the instructions for:

processing the imagery data to mask clouds, haze, and shadows and perform geometric correction of the imagery data; and

outputting an image based at least in part on the processed imagery data.

3. The system as in claim 1 , wherein the first coordinate system is an Earth centered inertial frame and the second coordinate system is an Earth-centered Earth-fixed frame.

4. The system as in claim 1 , wherein the one or more processing units include one or more graphical processing units, and wherein the respective angles are calculated as angles at the center of the earth by one or more angle calculation systems of the graphical processing units.

5. A method for calculating satellite access windows for the performance of satellite events including imaging locations comprising:

determining, by one or more computing devices comprising one or more processing units, for each time interval within a first period of time, a position of each imaging satellite of a constellation of imaging satellites, wherein one or more of the processing units are single instruction, multiple data processing units;

transforming, by the one or more computing devices for each time interval within the first period of time, the position of each imaging satellite from a first coordinate system to a second coordinate system;

determining, by the one or more computing devices, for each imaging satellite, respective angles between a vector to each of a plurality of locations to be imaged and a vector to the respective imaging satellite based on the position of the imaging satellite in the second coordinate system for each time interval within the first period of time;

determining, by the one or more computing devices in a parallel manner by executing a set of instructions multiple times for a volume of data, access windows for each imaging satellite to the plurality of locations based at least in part on the determined respective angles, wherein each access window represents a time period in which the imaging satellite has an unobstructed view of at least one of the plurality of locations;

scheduling, by the one or more computing devices, events in the constellation of imaging satellites based on the determined access windows, wherein the scheduling of events includes at least one of determining which imaging satellite of the constellation is to acquire an image of a desired location of the plurality of locations and determining when the image is to be acquired by one of the imaging satellites; and

receiving, by the one or more computing devices, imagery data indicative of the image of the desired location acquired by at least one of the imaging satellites based at least in part on the determined access windows.

6. The method as in claim 5 , further comprising:

processing, by the one or more computing devices, the imagery data to mask clouds, haze, and shadows and perform geometric correction of the imagery data; and

outputting, by the one or more computing devices, an image based at least in part on the processed imagery data.

7. The method as in claim 5 , wherein the first coordinate system is an Earth centered inertial frame and the second coordinate system is an Earth-centered Earth-fixed frame.

8. A method as in claim 5 , wherein the one or more processing units include one or more graphical processing units, and wherein the respective angles are calculated as angles at the center of the earth by one or more angle calculation systems of the graphical processing units.

Assignments (9)
MERGER AND CHANGE OF NAME Recorded May 5, 2022
From: PLANET LABS INC.; PLANET LABS PBC
To: PLANET LABS PBC
Reel/Frame 059857/0587 →
RELEASE OF SECURITY INTEREST Recorded Dec 10, 2021
From: SILICON VALLEY BANK
To: PLANET LABS INC.; TERRA BELLA TECHNOLOGIES INC.; PL FOREIGN HOLDCO, INC.
Reel/Frame 058359/0501 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 21, 2019
From: PLANET LABS INC.; PL INTERMEDIATE TB, INC.; PLANET LABS TB, INC.; TERRA BELLA TECHNOLOGIES INC.; PLANET LABS LLC; PL FOREIGN HOLDCO, INC.
To: SILICON VALLEY BANK
Reel/Frame 049558/0515 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: TERRA BELLA TECHNOLOGIES, INC.
To: PLANET LABS, INC.
Reel/Frame 044261/0748 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO. 15/061,851 PREVIOUSLY RECORDED AT REEL: 043277 FRAME: 0669. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 18, 2017
From: GOOGLE INC.
To: PLANET LABS TB, INC.
Reel/Frame 043661/0060 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 043277 FRAME: 0669. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 17, 2017
From: GOOGLE INC.
To: PLANET LABS TB, INC.
Reel/Frame 043409/0837 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2017
From: GOOGLE INC.
To: PLANT LABS TB, INC.
Reel/Frame 043277/0669 →
CHANGE OF NAME Recorded Oct 24, 2016
From: SKYBOX IMAGING, INC.
To: TERRA BELLA TECHNOLOGIES INC.
Reel/Frame 040260/0433 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2015
From: AUGENSTEIN, SEAN
To: SKYBOX IMAGING, INC.
Reel/Frame 035869/0236 →
Continuity (2)
Provisional Application 61921812 · Dec 30, 2013
Provisional Application 61921800 · Dec 30, 2013