IP Library Granted Patent US 11,225,337
Granted Patent B2
US 11,225,337 · App. 15/681,634 · Granted Jan 18, 2022

Parallel calculation of satellite access windows and native program implementation framework

Inventor: Sean Augenstein (Burlingame, CA)
Assignee: Planet Labs TB, Inc.
B64G1/1021B64G1/1085G06F9/3887G06F9/505G06F9/5038G06Q10/0631G06Q10/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 11,225,337
App. No.
15/681,634
Granted
Jan 18, 2022
Kind
B2
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.

Claims (44)

1. A computing system configured to manage execution of one or more native programs, the system comprising:

one or more physical computing devices having a hardware processor and a computer memory, the computer memory configured to store one or more program modules for executing the one or more native programs;

an implementation framework system stored in the computer memory, wherein the implementation framework system is configured to:

automatically access a request from a user to execute the one or more native programs on a high performance computing system, wherein the high performance computing system comprises a plurality of physical computing nodes; and

in response to the request from the user;

configure one or more input byte arrays to store input of the one or more native programs;

configure one or more output byte arrays to store output of the one or more native programs;

create a configuration file that identifies the one or more native programs, the input byte arrays, the output byte arrays, and an iterator, wherein the configuration file enables an execution of the one or more native programs on the high performance computing system, wherein the configuration file comprises a location of an input directory and a location of an output directory;

communicate with one or more modules for progress reporting, logging, or job control on the high performance computing system; and

execute the one or more native programs on the high performance computing system based, at least in part, on the configuration file, wherein the one or more native programs are modified to accept the one or more input byte arrays and the one or more output byte arrays.

2. The computing system of claim 1 , wherein the module for logging is further configured to record data that is processed on the high performance computing system.

3. The computing system of claim 1 , wherein the module for progress reporting is further configured to report execution data related to the one or more native programs.

4. The computing system of claim 1 , wherein the module for job control is further configured to start, stop, pause, and cancel one or more of the one or more native programs on the high performance computing system.

5. The computing system of claim 1 , wherein the high performance computing system is configured to execute the one or more native programs in parallel using the implementation framework system.

6. The computing system of claim 1 , wherein the high performance computing system is configured to execute a programming language that is different from the one or more native programs.

7. The computing system of claim 1 , wherein the implementation framework system is configured to keep the contents of the one or more native programs confidential.

8. The computing system of claim 1 , wherein the one or lore native programs are further configured to process geo-spatial imaging data.

9. The computing system of claim 1 , wherein the implementation framework system is further configured to use uniform resource identifiers to track the input byte arrays.

10. The computing system of claim 1 , wherein the configuration file is further configured to comprise at least one of a number of expected dimensions or details related to the expected dimensions.

11. The computing system of claim 1 , wherein the computing system further comprises physical computing nodes dynamically assigned for clustering.

12. A computer implemented method of managing execution of one or more native programs comprising:

automatically accessing a request from a user to execute the one or more native programs on a high performance computing system, wherein the high performance computing system comprises a plurality of physical computing nodes; and

in response to the request from the user:

configuring one or more input byte arrays to store input of the one or more native programs;

configuring one or more output byte arrays to store output of the one or more native programs;

creating a configuration file that identifies the one or more native programs, the input byte arrays, the output byte arrays, and an iterator, wherein the configuration file enables an execution of the one or more native programs on the high performance computing system wherein the configuration file is configured to comprise at least one of a number of expected dimensions, details related to the expected dimensions, or a location of an input directory and a location of an output directory;

communicating with one or more modules for at least one of progress reporting, logging, or job control on the high performance computing system; and

executing the one or more native programs on the high performance computing system based, at least in part; on the configuration file, wherein one or more input functions and one or more output functions of the one or more native programs are modified to accept the one or more input byte arrays and the one or more output byte arrays.

13. The computer-implemented method of claim 12 , further comprising recording, via the module for logging, data that is processed on the high performance computing system.

14. The computer-implemented method of claim 12 , further comprising reporting, via the module for reporting, execution data related to the one or more native programs.

15. The computer-implemented method of claim 12 , wherein the module for job control is configured to start, stop, pause, and cancel one or more of the one or more native programs on the high performance computing system.

16. The computer-implemented method of claim 12 , wherein the high performance computing system is configured to execute the one or more native programs in parallel using the implementation framework system.

17. The computer-implemented method of claim 12 , wherein the high performance computing system is configured to execute a programming language that is different from the one or more native programs.

18. The computer-implemented method of claim 12 , wherein the one or more native programs are configured to process geo-spatial imaging data.

19. A computing system configured to manage execution of one or more native programs, the system comprising:

one or more physical computing devices having a hardware processor and a computer memory, the computer memory configured to store one or more program modules for executing the one or more native programs;

an implementation framework system stored in the computer memory, wherein the implementation framework system is configured to:

automatically access a request from a user to execute the one or more native programs on a high performance computing system, wherein the high performance computing system comprises a plurality of physical computing nodes; and

in response to the request from the user:

configure one or more input byte arrays to store input of the one or more native programs, wherein the implementation framework system is configured to use uniform resource identifiers to track the input byte arrays;

configure one or more output byte arrays to store output of the one or more native programs;

create a configuration file that identifies the one or more native programs, the input byte arrays, the output byte arrays, and an iterator, wherein the configuration file enables an execution of the one or more native programs on the high performance computing system;

communicate with one or more modules for progress reporting, logging, or job control on the high performance computing system; and

execute the one or more native programs on the high performance computing system based, at least in part, on the configuration file, wherein the one or more native programs are modified to accept the one or more input byte arrays and the one or more output byte arrays.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Aug 31, 2022
From: SILICON VALLEY BANK UK LIMITED, AS SUCCESSOR IN INTEREST TO SILICON VALLEY BANK
To: APRICOT DESIGNS, INC
Reel/Frame 060954/0105 →
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 Aug 28, 2018
From: TERRA BELLA TECHNOLOGIES, INC.
To: PLANET LABS, INC.
Reel/Frame 046727/0162 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2017
From: AUGENSTEIN, SEAN
To: SKYBOX IMAGING, INC.
Reel/Frame 043343/0155 →
CHANGE OF NAME Recorded Aug 21, 2017
From: SKYBOX IMAGING, INC.
To: TERRA BELLA TECHNOLOGIES INC.
Reel/Frame 043610/0263 →
Continuity (4)
Continuation 14585895 · Dec 30, 2014
Provisional Application 61921812 · Dec 30, 2013
Provisional Application 61921800 · Dec 30, 2013
Related Publication 20170341778A1 · Nov 30, 2017