Patent Publication Number: US-11640002-B2

Title: Low earth orbit satellite for facilitating enhanced positioning

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     The present U.S. Utility Patent Application claims priority pursuant to 35 U.S.C. § 120 as a continuation of U.S. Utility application Ser. No. 16/804,961, entitled “SATELLITE FOR BROADCASTING HIGH PRECISION DATA”, filed Feb. 28, 2020, which claims priority pursuant to 35 U.S.C. § 119(e) to U.S. Provisional Application No. 62/853,398, entitled “BROADCASTING HIGH PRECISION DATA VIA A SATELLITE SYSTEM”, filed May 28, 2019, both of which are hereby incorporated herein by reference in their entirety and made part of the present U.S. Utility Patent Application for all purposes. 
    
    
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     Not applicable. 
     INCORPORATION-BY-REFERENCE OF MATERIAL SUBMITTED ON A COMPACT DISC 
     Not applicable. 
     BACKGROUND OF THE INVENTION 
     Technical Field of the Invention 
     This invention relates generally to satellite systems and more particularly to global navigation satellite systems and radio occultation. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S) 
         FIG.  1    is a schematic block diagram of an embodiment of a satellite constellation system in accordance with various embodiments; 
         FIG.  2    is a schematic block diagram illustrating various communication links utilized by a satellite constellation system in accordance with various embodiments 
         FIG.  3 A  is a schematic block diagram of a satellite in accordance with various embodiments; 
         FIG.  3 B  is a schematic block diagram of a satellite processing system in accordance with various embodiments; 
         FIG.  3 C  is a pictorial diagram of a satellite in accordance with various embodiments; 
         FIG.  3 D  is a pictorial diagram of a satellite in accordance with various embodiments; 
         FIG.  4    is a schematic block diagram of a satellite constellation system utilized to perform radio occultation in accordance with various embodiments; 
         FIG.  5 A  is a flowchart diagram illustrating an example of a state estimator flow performed by a satellite processing system in accordance with various embodiments; 
         FIG.  5 B  is a flowchart diagram illustrating an example of a navigation message generation flow performed by a satellite processing system in accordance with various embodiments; 
         FIG.  5 C  is a flowchart diagram illustrating an example of a broadcast flow performed by a satellite processing system in accordance with various embodiments; 
         FIG.  6    is an illustration depicting the process of self-monitoring by a satellite processing system in accordance with various embodiments; 
         FIG.  7 A  is a schematic block diagram of satellites utilized to perform neighborhood monitoring in accordance with various embodiments; 
         FIG.  7 B  is an illustration of orbital planes in accordance with various embodiments; 
         FIG.  7 C  is a schematic block diagram of satellites utilized to perform neighborhood monitoring in accordance with various embodiments; 
         FIGS.  8 A- 8 F  are schematic block diagrams illustrating utilization of satellite constellation system by various client devices in accordance with various embodiments; 
         FIG.  9 A  is a schematic block diagram illustrating an example client device in accordance with various embodiments; 
         FIG.  9 B  is a schematic block diagram illustrating an example client device in accordance with various embodiments; 
         FIG.  9 C  is a flowchart diagram illustrating an example of a method in accordance with various embodiments; 
         FIG.  9 D  is a flowchart diagram illustrating an example of a method in accordance with various embodiments; 
         FIG.  10    is a logic diagram of an example of a method of performing self-monitoring in accordance with various embodiments; 
         FIG.  11    is a logic diagram of an example of a method of performing neighborhood-monitoring in accordance with the present invention. 
         FIG.  12    is a logic diagram of an example of a method of performing state estimation in accordance with various embodiments; 
         FIG.  13 A  is an illustration of various satellite constellations and antenna beamwidth adjustments in accordance with various embodiments; 
         FIG.  13 B  is an illustration of various antenna beam steering adjustments in accordance with various embodiments; and 
         FIG.  14    is an illustration of GPS reflectometry in accordance with various embodiments. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG.  1    illustrates an embodiment of a satellite constellation system  100 . Satellite constellation system  100  can include a plurality of satellites  110 , which can be implemented via combination of devoted purpose-built satellites, purpose built payloads on a standard satellite bus, and/or hosted payloads or services part of another satellite network. These satellite bus and navigation components can make use of commercial-of-the-shelf (COTS) components and be compatible with CubeSat and other standard bus architectures. In some embodiments, some or all of the plurality of satellites  110  of satellite constellation system  100  orbit in accordance with low earth orbit (LEO), and can be referred to as “LEO satellites”. Alternatively, some or all satellites of the first satellite constellation can orbit in accordance with medium earth orbit (MEO), and/or geostationary orbit (GEO). Satellite constellation system  100  is operable to provide secure precision location and time transfer services and/or monitoring atmospheric and environmental conditions. 
     Some or all of the satellites  110  can receive signals  132  from Global Navigation Satellite System (GNSS) satellites  130  of a GNSS constellation  120 . The signals  132  include for example, a ranging signal containing clock information and almanac and ephemeris information that can be used for precision positioning, navigation and timing. The GNSS constellation  120  can be implemented by utilizing one or more of the Global Positioning System (GPS) satellite constellation, the Quasi-Zenith Satellite System, the BeiDou Navigation Satellite System, the Galileo positioning system, the Russian Global Navigation Satellite System (GLONASS) the Indian Regional Navigation Satellite System and/or any other satellite constellation utilized for navigation services. In some embodiments, some or all of the plurality of GNSS satellites  130  of the GNSS constellation  120  can orbit in accordance with MEO, and/or some or all of the plurality of GNSS satellites  130  or otherwise can orbit in another outer orbit from the satellites  110  of the satellite constellation system  100 . In either case, when the satellites  110  are LEO satellites, the GNSS satellites can be referred to as “non-LEO satellites”. 
     Some or all of the satellites  110  can send signals to and/or receive signals from one or more backhaul satellites  150 . Backhaul satellite  150  can be implemented by utilizing a satellite in any orbit, such as (LEO), (MEO), and/or (GEO), provided satellite  150  is capable of transmitting and/or receiving data from satellite  110 . In some embodiments, a backhaul satellite constellation  140  can include a plurality of backhaul satellites  150  operable to bidirectionally communicate with satellites  110 . In various embodiments, one or more backhaul satellites include an atomic clock for transmitting a timing reference in communications to the satellites  110 . 
     In various embodiments, the one or more backhaul satellites  150  can be selectively implemented via one or more of the satellites  110  that have been assigned this functionality, on a dedicated basis, when for example, the navigation functionality of a satellite  110  has degraded to the point where it is no long useful to provide secure precision location and time transfer services and/or monitoring atmospheric and environmental conditions. Furthermore, one or more satellites  110  can be assigned the role of backhaul satellite based on its status such as its position in orbit, current utilization, battery capacity and/or other state or condition of the satellite  110  or otherwise, as will be discussed later, for example, in conjunction with the resource allocation of  FIG.  3 B . 
     The satellite constellation system  100  can be operable to provide navigation services through a space-based broadcast of encrypted and/or unencrypted navigation messages, atmospheric and/or other signal(s) which can include timing data and overlaid data for satellite identification and precision positioning and navigation. This data can include, but is not limited to, (i) precision orbit and clock data of both the precision satellite system and of the GNSS constellation; (ii) atmospheric data, models and/or other atmospheric monitoring data used for determining a current weather state, for weather prediction, for control of the satellites  110  and/or for further orbit or clock data correction; (iii) cryptographic parameters including encryption key management; (iv) integrity information concerning the backhaul satellites  150 , satellite constellation system  100 , the GNSS satellites  130  and/or their constellations; and (v) general messages to pass information (such as state, conditions, health, and other command and control information) between satellites  110  and the ground and/or other types of data discussed herein. This data can be derived based on some combination of measurements from (i) terrestrial monitoring stations; and (ii) GNSS measurements taken by the satellite constellation system  100  in-situ. In case (ii), precision orbit data of the GNSS satellites can be uploaded to the satellite constellation system  100  via space-based backhaul communications, reducing the need for ground links, though ground links and intersatellite links can also be used. This enables autonomous orbital position and clock determination in orbit. 
     Alternatively or in addition, the satellite constellation system  100  can be operable to collect atmospheric data by means of radio occultation (RO) through some combination of GNSS and other signals of opportunity including some broadcast by satellites  110  of the satellite constellation system  100  themselves. Higher broadcast power than GNSS utilized by the satellite constellation system  100  allows for deeper penetration into the atmosphere that enable processing to yield higher fidelity ionospheric and tropospheric models both in terms of spatial and temporal updates. These high density models can serve multiple purposes such as (i) data for weather prediction models on the ground or in situ in the satellite  110 ; and (ii) the construction of local, regional and/or global ionospheric and tropospheric corrections for use in precision navigation both by the satellite constellation system  100  and by standard GNSS. The raw or processed data can be transmitted back from the ground to the satellite constellation system  100  by some combination of ground stations or space-based backhaul communications. 
     The GNSS satellites  130  can provide signals to satellites  110  for GNSS Radio Occultation for use in atmospheric monitoring, mapping and other atmospheric data generation. These measurements can, in turn, be sent to the ground through a combination of communication links, as discussed in further detail in conjunction with  FIG.  2   . Through this connection with the ground, precise orbits and clocks of the GNSS satellites  130  can be uploaded to the satellite constellation system  100 . This orbit and clock data can used along with measurements from GNSS, other correction data, sensors onboard, and/or other information to autonomously perform orbit and clock determination onboard satellite  110 . Atmospheric models can be generated indicating signal delays in the ionosphere and troposphere and/or indicating weather data including a current weather state, a predictive weather model or other atmospheric data, can be broadcast along with precision orbit and clock data for use in precision navigation on Earth, included in backhaul and/or inter-satellite communication and used by the satellites  110  to further enhance the determination of their orbital position. The atmospheric data can include corrections created on the ground as part of the data products produced as part of atmospheric monitoring. Alternatively or in addition, these atmospheric data and corrections can be created autonomously by one or more satellites in situ, where data is shared between satellites in the satellite constellation system  100 , and where, for example, edge computing on board one or more satellites  110  is used to create local, regional or global atmospheric and/or weather models. 
     At least one client device  160  can include a receiver configured to receive the signals transmitted by at least one satellite  110 . The receiver can be configured to receive the signals directly from the satellites  110 , and/or can be configured to receive this information from ground stations, server systems, and/or via a wired and/or wireless network. The client device  160  can include at least one memory that stores operational instructions for execution by at least one processor of the client device  160 , enabling the client device  160  to process signals transmitted by the satellites  110  to extract the atmospheric models, precision orbit data, clock data, and/or other data from the signals. The client device  160  can be operable to process the signals and/or this data to compute its precise position (i.e. an “enhanced position” with greater accurate when compared with ordinary positioning provided by the GNSS system) and/or a precise time. This precise position and/or precise time can be further processed by client device  160  and/or can be otherwise utilized by the client device  160  for positioning, navigation and/or timing and/or otherwise to perform its functionality in conjunction with one or more of a range of applications discussed herein. A client device  160  can be operable to display, via a display device of the client device some or all of the atmospheric models, precision orbit data, and/or clock data received from the least one satellite  110  for review by a user of the client device  160 . 
     Alternatively or in addition, this precise position and/or other data generated utilizing the signals received from satellites  110  can be transmitted, via a transmitter of the client device  160 , to a server system or other computing device, for example via network  250 . For example, this server system and/or other computing device can be associated with an entity responsible for tracking of client device  160  and/or responsible for monitoring secure performance of client device  160 . Thus, storing, processing, and/or display of this information received from one or multiple client devices  160  can be facilitated by the server system and/or other computing device, for example, via its own at least one processor and/or at least one memory. 
     Client devices  160  can include, can be implemented within, and/or can be otherwise utilized by devices on the ground, devices near the earth&#39;s surface, devices within the atmosphere, and/or other space-based systems. Client devices  160  can include, can be implemented within, and/or can be otherwise utilized by mobile devices, cellular devices, wearable devices, autonomous or highly automated vehicles or other vehicles such as cars, planes, helicopters, boats, unmanned aerial vehicles (UAVs), fixed devices installed upon or within infrastructure, and/or other computing devices operable to receive and/or utilize the atmospheric models, precision orbit data, and/or clock data. 
     The LEO satellite  110  provides a reduced distance to earth, which, combined with the greater signal power compared with GNSS, provides client devices  160  with much stronger signals. The reduced orbital period of the LEO further provides faster signal convergence. The LEO satellite  110  includes many additional technological improvements and advantages including many functions, features and combinations thereof as described further herein. 
       FIG.  2    illustrates embodiments of the communication of various data via satellite constellation system  100 . As part of satellite constellation system  100 &#39;s task of generating a precision navigation signal and/or environmental monitoring, data can be transferred between the ground stations  200  and/or  201  and the satellites  110 , between satellites  110  in satellite constellation system  100  and other satellites in space, and/or between any combination of entities capable of receiving or transmitting data of interest to satellite  110  as part of satellite constellation system  100 . 
     This transfer can be facilitated via a plurality of nodes of the satellite constellation system  100 . As used herein, nodes of the satellite constellation system  100  can correspond to any devices that generates, receives, transmits, modifies, stores, and/or relays messages or other data communicated by satellite constellation system  100  as discussed herein. Nodes of satellite constellation system  100  can include one or more satellites  110 ; one or more ground stations  200  and/or  201 ; one or more backhaul satellites  150 ; and/or one or more client devices operable to utilize information included in messages in its operation and/or operable to display information included in messages to a user. 
     The data communicated between nodes of the satellite constellation system  100  can be comprised of many different message types, including, but not limited to: navigation messages containing data to enable the determination of a precise position by an end user device or end user system; precise point positioning (PPP) correction messages containing precise orbit and clock data of GNSS satellites and/or other satellites in satellite constellation system  100 ; atmospheric correction messages containing temperature, humidity, and/or other atmospheric parameters that affect the precision of the navigation signal that can be corrected for; command and control messages containing command and control information for the physical direction and/or attitude of the satellite, satellite state management, and/or enabling and/or disabling different transmissions of satellite  110 ; measurement messages containing ground based and/or external space-based measurements that can augment the navigation filter (as part of the orbit determination module); status messages containing information about satellite  110 &#39;s signal health, battery usage, power generation, memory usage and/or other information providing status information; cryptographic messages containing information providing encryption key updates along with any general encryption scheme updates; constellation monitoring messages contain GNSS satellite and/or constellation health information, estimated performance of each satellite and/or each constellation, and/or other information related to other GNSS satellites and/or constellations; and/or other messages containing information that can be transmitted to and/or from satellite  110  intended for users, ground segment, other satellites in the constellation, or any other desired start and/or end point for the communication. 
     Some or all of these message types can be included in the data transmitted as illustrated in  FIG.  2   . Some or all of these message types can be transmitted by satellite  110  and/or received by satellite  110 , and/or can be generated onboard satellite  110  and/or can be generated by another entity, for example on the ground and/or received by a ground station  200  and/or  201 , for example, via network  250 . 
     The data can be transmitted and/or received over any one of these links, or any combination of these links, in an encrypted and/or unencrypted manner, and/or in any combination of encrypted and/or unencrypted manner. The encryption can be performed at the message level, where one or more individual messages are encrypted, for example, separately. Alternatively or in addition, the encryption can be performed at the data stream level, where the data stream that includes one or more messages of the same or different type is encrypted. In some embodiments, all of the messages can be encrypted. Alternatively, some or all of the messages are not encrypted. A message can be transmitted and/or received over a combination of links (e.g. from an inter-satellite link to the backhaul) and can change encryption state as it goes from one node in the communication chain to another. Encrypting the data transmitted by the satellite constellation system  100  allows more control over who can receive the necessary data for making radio occultation (RO) measurements and precision navigation, enabling the licensing of the usage of the data. In addition to encrypting the data itself, the spreading code of the navigation signal that is used for ranging can also be encrypted. This further allows controlling access to the information transmitted by satellite constellation system  100 . 
     The data, which can comprise of any combination of the various messages, can be transmitted along any combination of links, for example, as illustrated in  FIG.  2   , between any combination of nodes of the satellite constellation system  100 . These links can include different types of links, such as backhauls, inter-satellite links  230 , and/or navigation signals  240 . 
     As used herein, backhaul communications correspond to a link between satellite  110  and backhaul satellite  150 , and/or a link between satellite  110  and ground station  200 . The backhaul communications can be comprised of a transmit and/or receive component on each of the nodes. Communication from satellite  110  intended to be received to satellite  150 , to ground station  200 , and/or to ground station  201  through satellite  150 , shown through backhaul downlink  210 , is termed the downlink portion of the backhaul. The uplink portion, depicted as backhaul uplink  220  in  FIG.  2   , is the communication originating from ground station  200 , and/or from ground station  201  through satellite  150  intended to be received by at least one of satellite  110  within satellite constellation system  100 . 
     Backhaul downlink  210  can be designated to communicate one or more particular types of messages. Backhaul downlink  210  can communicate information such as RO measurement data, navigation message information, status information about each of the satellites, requested command and control of other satellites in satellite constellation system  100 , and/or other information to be sent from the satellite in satellite constellation system  100  to another satellite or to the ground. 
     Backhaul uplink  220  can be designated to communicate one or more particular types of messages. Backhaul uplink  220  can communicate information such as PPP correction data, atmospheric map data, ground base measurements for the on-board filtering, command and control data, navigation message data of other satellites in satellite constellation system  100 , and/or other information to be sent to the satellites in satellite constellation system  100  either from the ground or from another satellite. 
     Inter-satellite link  230  corresponds to a link between two or more satellites  110  within satellite constellation system  100 . These inter-satellite links can be omni-directional links such that the transmission is one-to-many, dedicated links between satellite pairs in different orbital planes, and/or dedicated links between satellites pairs within the same orbital plane. A single satellite  110  can be capable of transmitting and/or receiving from any combination of these types of inter-satellite links. These inter-satellite links can either be dedicated data links or can be the data that is modulated onto the ranging signal if the ranging signal is being broadcast by the satellite at the full 180+ degree beamwidth of the satellite  110 . 
     The inter-satellite links can contain any information to be sent between satellites or from one satellite with a backhaul connection to another satellite without a backhaul connection or from one satellite without a backhaul connection to another satellite with a backhaul, or the same process through multiple satellites. This can either be on top of and/or combined with the ranging signal, or can be a dedicated signal sent, for example by dedicated transceivers operating at differing frequencies. 
     Navigation signal  240  is the signal transmitted from satellite  110  containing at least a ranging signal, but can also contain other data corresponding to one or more of the various types of messages or other data discussed herein. Navigation signal  240  can be a one-to-many broadcast transmission, and any satellite  110 , ground station  200 , ground station  201 , and/or satellite  150  can be equipped to receive the navigation signal. 
     Any data transmitted and/or received by satellite  110  can travel through any single set of links (e.g. backhaul only) and/or through any combination of links (e.g. backhaul to inter-satellite link). Any data can also be transmitted through any number of the nodes (station or satellite) in the communication chain for the purpose of being received by a specific node in the communication chain. In some embodiments, data such as correction messages can be sent from the ground to one or more satellite  110  via one or more of the following means:
         Data can be transmitted from at least one ground station  200  directly to every satellite  110  on orbit   Data can be transmitted from at least one ground station  200  to a subset of satellites (e.g. one in each orbital plane) and then across “along-links” through inter-satellite communication in the orbital plane with relatively low latency and without any stringent pointing requirements. “Along-links” inter-satellite links (either radio or optical) between a satellite and the satellite ahead and/or behind it in the orbital plane (an orientation where the angle between those satellites should remain fairly static). These “along-links” in orbit can be maintained through different flight procedures such as changes in the yaw angles needed in order to maintain solar panel orientation with respect to the sun by using omni-directional transceivers of the “along-link” data or steerable transceivers. In an example configuration where the orbital planes are polar orbits, the number of ground stations needed can be minimized by placing the ground stations at high latitudes, where it can “see” satellites from multiple planes simultaneously. Additionally, for this example configuration, the sequence of placing satellites in the orbital planes as satellite constellation system  100  is grown can be optimized to ensure that these “along-links” are used optimally.   Data can be transmitted from at least one ground station  200  and/or ground station  201  to at least one relay satellite  150  in orbits. These relay satellites  150  include communication satellites in GEO, in MEO, and/or in LEO. Satellites  110  can then receive the data from at least one satellite  150  that retransmits the data received from ground station  200  and/or ground station  201  to satellite  110 .   For communication between satellites  110  in satellite constellation system  100 , a dedicated inter-satellite link can be used with dedicated transceivers   For communication between satellites  110 , satellites  110  can add data messages to the data stream being modulated on the navigation signal in cases where satellite  110  are capable of receiving the navigation signal from another satellite  110  within satellite constellation system  100 . A satellite can be in view if it is at a lower altitude than the broadcasting satellite or if it has line of sight to the satellite&#39;s transmission due to its orbital placement or if the broadcasting satellite beamwidth is large enough to reach the target satellite (e.g. 180+ degree beamwidth for neighboring satellites)       

     The ground stations  200  and/or  201  can be configured to communicate via a network  250 , via at least one communication interface of the ground stations  200  and/or  201 . The network  250  can be implemented by utilizing wired and/or wireless communication network and can include a cellular network, the Internet, and/or one or more local area networks (LAN) and/or wide area networks (WAN). Ground stations  200  and/or  201  can be operable to transmit and/or receive data from at least one server system. The at least one server system can include at least one processor and/or memory and can operable to generate and/or store some or all of the data transmitted and/or received by ground stations  200  and/or  201 . The at least one server system can be affiliated with an entity responsible for the satellite constellation system  100  and/or can be affiliated with a different entity, such as a weather service entity and/or navigation entity that generates and/or stores data transmitted and/or received by ground stations  200  and/or  201 . Alternatively or in addition, client devices  160  can be operable to receive data via network  250 . 
       FIG.  3 A  is a schematic block diagram of a satellite in accordance with various embodiments. In particular, an example of a satellite  110  is presented that includes a satellite processing system  300 , a satellite power system  301  and a satellite flight control system  302 . 
     In various embodiments, the satellite power system  301  includes an array of solar cells, a battery, a fuel cell or other chemical power generation system and/or a power management system that operates, for example, under control of the satellite processing system  300  to manage the production, storage and use of electrical power in conjunction with the operation of satellite  110 . The satellite flight control system includes  302  includes one or more propulsion systems, an attitude controller, an inertial stabilizer and/or one or more other devices that operate under of the satellite processing system  300  to maintain, manage and otherwise adjust the orbital position and/or orientation of the satellite  110 . 
     In various embodiments, the satellite processing system  300  includes memory that stores data, an operating system including several system utilities, and applications and/or other routines that include operational instructions. The satellite processing system  300  further includes one or more processors that are configured to execute the operational instructions to perform various the functions, features and other operations of the satellite  110  in conjunction with the satellite power system  301 , the satellite flight control system  302 , an on-board clock, one or more sensors, one or more transmitters, receivers and/or transceivers and one or more other devices. 
       FIG.  3 B  presents an embodiment of a satellite processing system  300 . The same or different satellite processing system  300  can be onboard some or all of the satellites  110 , and the functionality of some or all of the satellites  110  discussed herein can be enabled via satellite processing system  300 . A bus  390  can be operably couple and/or facilitate communication between the various components of the satellite processing system  300 . While a particular bus configuration is shown, other bus configurations can likewise be employed. 
     Satellite processing system  300  can include at least one memory module  310  which can be implemented by utilizing at least one memory. Satellite processing system  300  can include at least one processing module  320  which can be implemented utilizing one or more processors. The memory module  310  can store operational instructions that, when executed by the processing module  320 , configure the satellite processing system  300  to execute some or all of the functionality of satellites  110  discussed herein. 
     In some embodiments, the processing module  320  is utilized to implement a radio occultation module  321  operable to perform some or all of the radio occultation functionality of satellite  110  discussed herein. Alternatively or in addition, the processing module  320  is utilized to implement an orbit determination module  322  operable to perform some or all of the radio occultation functionality of a satellite  110  as discussed herein. Alternatively or in addition, the processing module  320  is utilized to implement an orbit determination module  322  operable to perform some or all of the orbit determination functionality of a satellite  110  as discussed herein. Alternatively or in addition, the processing module  320  is utilized to implement a navigation message generation module  323  operable to perform some or all of the navigation message generating functionality of a satellite  110  as discussed herein. Alternatively or in addition, the processing module  320  is utilized to implement a message scheduling module  324  operable to perform some or all of the message scheduling functionality of a satellite  110  as discussed herein. Alternatively or in addition, the processing module  320  is utilized to implement a resource allocation module  325  operable to perform some or all of the resource allocation functionality of a satellite  110  as discussed herein. The memory can store operational instructions corresponding to the radio occultation module  321 , the orbit determination module  322 , the navigation message generation module  323 , and/or the message scheduling module  324 , and when these operational instructions are executed by the processing module  320 , the satellite processing system  300  can perform the functionality of the radio occultation module  321 , the orbit determination module  322 , the navigation message generation module  323  the message scheduling module  324  and/or the resource allocation module  325  respectively. 
     Satellite processing system  300  can include one or more of sensors, which can include, but are not limited to: at least one star tracker  380 ; at least one inertial measurement unit (IMU)  370 ; at least one sun sensor  333 ; at least one earth horizon sensor  334 , at least one GNSS receiver  360  operable to receive navigation signals transmitted by GNSS satellites  130 ; at least one clock  365 , and/or at least one satellite receiver  350  operable to receive the navigation signal  240  transmitted by other satellite processing systems  300 ; and/or any other sensors operable to collect other types of measurement data and/or to receive signals transmitted by other entities. The measurements and/or signals collected by these sensors can be processed via processing module  320  and/or can be stored via memory module  310 , for example, in a temporary cache. 
     In various embodiments, the clock  365  is implemented via a temperature compensated crystal oscillator (TCXO), oven-controlled crystal oscillator (OCXO) or other non-atomic clock that, for example, as adjusted and/or stabilized based on a timing signal from an atomic clock contained in the communications from a backhaul satellite, ground link or one or more of the GNSS satellites  130 . In some embodiments, the same clock  365  is utilized by both GNSS receiver and the navigation signal transmitter. This allows the clock portion of the estimated state of the satellite using GNSS measurements to reflect the clock used to generate the navigation signal. Alternatively, one or more satellites  110  can implement the clock  365  via a stable atomic clock. In such a scenario, the non-atomic clock in other satellites  110  can be adjusted and/or stabilized based on a timing signal contained in inter-satellite communication from the satellite(s)  110  that contains the atomic clock. 
     Satellite processing system  300  can include at least one inter-satellite link transceiver  345  operable to transmit data to and/or receive data from one or more other satellite processing systems  300 ; a backhaul transceiver  340  operable to transmit data to and/or receive data from the backhaul satellites  150  and/or ground stations  200  and/or  201 ; and/or a navigation signal transmitter  330  operable to broadcast and/or otherwise transmit signals  240  including, for example, navigational signals including, a ranging signal, GNSS correction data, a navigation message and/or other navigational signal, radio occultation data, command and control data and/or data. Data transmitted by the navigation signal transmitter  330  can be received by one or more backhaul satellites  150 , one or more ground stations  200  and/or  201 , one or more satellite processing systems  300  onboard other satellites  110 , and/or one or more client devices  160  which can include, for example, one or more automobiles, tablets, smartphones, smartwatches, laptop computers, desktop computers, other computers and computer systems, navigation devices, device location systems, weather systems, marine navigation systems, rail navigation systems, aircraft, agricultural vehicles, surveying systems, autonomous or highly automated vehicles  331 , UAVs  332 , and/or other client devices  160  as discussed herein. 
     While a configuration is shown having at least one inter-satellite link transceiver  345 , in the alternative, the navigation signal transmitter  330  can be implemented via a transceiver having an fixed antenna beam pattern or an antenna beam pattern that can be dynamically adjusted to include both a main lobe that is directed toward the earth for the transmission of navigation signals  240  and one or more sidelobes in the direction of one or more other satellites. Such a configuration enables the inter-satellite communications to be integrated with or otherwise transmitted and received contemporaneously with the navigation signals  240 . 
     In some embodiments, some or all ground stations  200  and/or  201  can include some or all of the components of satellite processing system  300 , and/or can otherwise perform some or all of the functionality of the satellite processing system  300  as discussed herein. In such embodiments, the satellite constellation system  100  can include one or more ground stations  200  and/or  201  in addition to the plurality of satellites  110 , where the ground stations  200  and/or  201  serve as additional nodes communicating in the satellite constellation system  100  in the same and/or similar fashion as the plurality of satellites  110  by generating, transmitting, receiving, and/or relaying some or all of the signals and/or data as discussed herein with regards to the satellites  110 . In this fashion, some or all of ground stations  200  and/or  201  can effectively serve as a subset of the plurality of satellites  110 , the only distinction being that these ground stations  200  and/or  201  that make up this subset of the plurality of satellites  110  are located on the ground and/or are located at a facility on the surface of the earth at a fixed position, while some or all of the remaining ones of the plurality of satellites  110  are orbiting in LEO. 
     Alternatively or in addition, at least one backhaul satellite  150  can similarly include some or all of the components of satellite processing system  300 , and/or can otherwise perform some or all of the functionality of a satellite processing system  300  as discussed herein. In such embodiments, the satellite constellation system  100  can include one or more backhaul satellites  150  in addition to the plurality of satellites  110 , where the backhaul satellites  150  serve as additional nodes communicating in the satellite constellation system  100  in the same and/or similar fashion as the plurality of satellites  110  by generating, transmitting, receiving, and/or relaying some or all of the signals and/or data as discussed herein with regards to the satellites  110 . The at least one backhaul satellite  150  can be considered a subset of the plurality of satellites  110 , with the only distinction being that the at least one backhaul satellite  150  is located in a more outer orbit than LEO and/or than the orbit of the other ones of the plurality of satellites  110 . 
     Alternatively or in addition, at least one client device  160  that is operable to receive and utilize data transmitted by satellites  110  as discussed herein can similarly include some or all of the components of satellite processing system  300 , and/or can otherwise perform some or all of the functionality of a satellite processing system  300  as discussed herein. In such embodiments, the satellite constellation system  100  can include, in addition to the plurality of satellites  110 , one or more mobile computing devices, cellular devices, vehicles, and/or other client devices  160  discussed herein. Thus, some or all of these types of devices can serve as additional nodes communicating in the satellite constellation system  100  in the same and/or similar fashion as the plurality of satellites  110  by utilizing their own processing module, memory module, receivers, transmitters, and/or sensors to generate, transmit, receive, and/or relay some or all of the signals and/or data as discussed herein with regards to the satellites  110 . Some or all of these devices can be considered a subset of the plurality of satellites  110 , with the only distinctions being that these devices are user devices that include a display and/or interface allowing a user to observe and/or interact with the data generated by and/or received from the satellites  110 ; that these devices are configured to further post-process received data in conjunction with the functioning of the client device  160  and/or in conjunction with one of the more of the applications discussed herein; that these devices are located on or near the surface of the earth; and/or that these devices are located at altitudes that are closer to the surface of the earth than LEO and/or the other orbit of the other ones of the plurality of satellites  110 . 
     In some embodiments, the ground stations  200  and/or  201 , the backhaul satellite  150 , and/or some or all of these client devices  160  can receive application data associated with the satellite constellation system  100  for download. For example, the application data can be downloaded from a server system associated with the satellite constellation system  100  via the network  250 . Alternatively or in addition, the application data can be transmitted, via one or more of the links discussed in conjunction with  FIG.  2   , to some or all of these devices for download via other satellites  110  orbiting in LEO. The application data can thus be received for download by a device for download in a signal, received by a receiver of the device, that was broadcasted by a satellite  110 . The application data can be installed and stored in the memory of the device and can include operational instructions that, when executed by the processing module of the device, cause ground stations  200  and/or  201 , backhaul satellite  150 , and/or client devices  160  to operate in the same or similar fashion as satellite processing system  300  and/or to otherwise perform some or all of the functionality or other operations of the satellites  110  as discussed herein. Alternatively or in addition, some or all ground stations  200  and/or  201 , backhaul satellite  150 , and/or client devices  160  can be equipped with additional hardware to implement some or all of the processing module  320 , memory module  310 , and/or some or all of the sensors, transmitters, receivers, and/or transceivers of satellite processing system  300  of  FIG.  3 B  to enable the device to perform some or all of the functionality of the satellites  110  as discussed herein. 
     Consider the following example, the processing module  320  is configured to generate navigation signals  240 , such as ranging signals modulated and coded with navigation messages that contain timing, ephemeris and almanac data. In addition, the navigation messages can include, for example, PPP data associated with the satellites  130 , command and control data, integrity data associated with satellites  130  and other satellite  110 , RO data, atmospheric or weather data including a current weather state, a weather map and/or a predictive weather model, secure clock data, encryption and security information, any of the other types of data produced or transmitted by the satellite  110  in the navigation signals  240 . In various embodiments, the data of the navigation signal  240  can be formatted in frames and subframes with a data rates exceeding 1 kbits/sec, however other data rates can be used. Navigations signals can be generated in two or more frequency channels at a signal power of  50 W,  100 W or more or at some lower power. 
     The operations of the processing module  320  can further include, for example, locking-in on the timing of the ranging signals of the signals  132  via the associated pseudo random noise (PRN) codes associated with each satellite  130  (that is not excluded based on integrity monitoring), demodulating and decoding the ranging signals to generate and extract the associated navigation messages from the GNSS satellites  130  in range of the receiver, applying correction data received via backhaul and/or inter-satellite communications and atmospheric data generated locally and/or received via backhaul and/or inter-satellite communications to the position and timing information from the navigation messages from the GNSS satellites  130 . 
     In various embodiments, first-order ionospheric delay is mitigated using the combinations of dual-frequency GNSS measurements. Otherwise, ionospheric and tropospheric delay can be corrected using atmospheric models generated based on the RO data. Furthermore, the processing module  320  can use a Kalman filter such as an extended Kalman filter or other estimation technique where orbital position, clock error, ionospheric delay, tropospheric delay and/or carrier-phase errors are estimated filter states. The precise orbital position of the satellite  110  can be generated by positioning calculations that employ navigation equations to the corrected orbital positions and timing for each of the satellites  130 . 
     In various embodiments, the operations of the satellite  110  include, for example, orbital control, attitude control, power management and control, temperature control, radio occultation, generating and/or maintaining tropospheric models, ionospheric models, weather models, atmospheric data generation, weather data generation, orbit determination, navigation message scheduling, navigation message generation, GPS reflectometry, sensor data collection, sensor data processing, GNSS reception, backhaul transmission and reception, inter-satellite transmission and reception, GNSS satellite integrity monitoring, LEO satellite integrity monitoring, secure timing generation and transmission, memory clean-up, health status monitoring of the components and systems of the satellite  110 , receiving updates, processing updates and/or other operations described herein. The resource allocation module  325  operates to control the various operations of the satellite  110  based on reception of command data from a ground station, an amount of memory usage, an amount of processor utilization, the distance between the satellite  110  and a backhaul satellite  150 , other satellites  110  and/or a ground station  200 , the battery level of the satellite  110 , when the satellite  110  will be in an orbital position to generate additional power, a fuel status, a health status of the satellite  110 , atmospheric data, weather data including a current weather state, a predictive weather model and or other status or conditions determined by the satellite processing system  300 . 
     The resource allocation module  325  can also operate to control the various operations of the satellite  110  based on the orbital position of the satellite  110  relative to positions above the earth corresponding to high population density, low population density, an ocean, a rainforest, a mountain range, a desert or other terrestrial condition or feature. The resource allocation module  325  can also operate to control the various operations of the satellite  110  based on the orbital position of the satellite  110  relative to the orbital positions of one or more other satellites  110  in the satellite constellation system  100 . The resource allocation module  325  can also operate to control the various operations of the satellite  110  based on the state of the satellite constellation system  100  including, for example the number of satellites  110 , the number of orbital paths, the number of satellites in each orbital path, the number and positions of satellites  110  that are on-line, off-line, are not currently generating navigation signals and/or navigation messages and/or other status of the various satellites  110  of the satellite constellation system  100 . 
     The control of various satellite operations by the resource allocation module  325  can include determining when to enable or initiate an operation, when to disable or cease an operation and/or the percentage of time allocated to each of the operations during a time period such as a second, a minute, an hour, an orbital period, or a day. The control of various satellite operations by the resource allocation module  325  can also include selecting and assigning memory resources, processing resources, sensor resources, transmitter, receiver and/or transceiver resources, to the various operations selected to be performed. The control of various satellite operations by the resource allocation module  325  can also include selecting memory parameters such as queue sizes, cache sizes, and other memory parameters. The control of various satellite operations by the resource allocation module  325  can also include selecting processing parameters such as one or more processing speeds, or other processing parameters. The control of various satellite operations by the resource allocation module  325  can also include selecting transmitter, receiver and transceiver parameters, for example, encryption parameters, data protocol parameters, transmit power, transmission beamwidth, reception beamwidth, beam steering parameters, frequencies, the number of channels in use, data rates, modulation techniques, multiple access techniques, and other transmit and receive parameters. The control of various satellite operations by the resource allocation module  325  can also include selecting other parameters used by the satellite processing system including various thresholds used to determine whether or not two quantities compare favorably to one another. 
     The operations of the satellite  110  can be described further in conjunction with the examples and embodiments that follow. In various embodiments, the satellite  110  is a LEO satellite of a constellation  100  of LEO navigation satellites in LEO around the earth. A global positioning receiver, such as GNSS receiver  360 , is configured to receive first signaling, such as signaling  132  from a first plurality of non-LEO navigation satellites, such as satellites  130  of a constellation  120  of non-LEO navigation satellites in non-LEO around the earth. An inter-satellite transceiver, such as inter-satellite link transceiver  345 , is configured to send and receive inter-satellite communications with other LEO navigation satellites  110  in the constellation of LEO navigation satellites. At least one processor of the processing module  320  is configured to execute operational instructions that cause the processor(s) to perform operations that include: determining an orbital position of the LEO satellite based on the first signaling; and generating a navigation message based on the orbital position. A navigation signal transmitter, such as navigation signal transmitter  330 , is configured to broadcast the navigation message to at least one client device  160 . The navigation message facilitates the determination by these client device(s) of an enhanced position of these client device(s) based on the navigation message and further based on second signaling  132  received from a second plurality of non-LEO navigation satellites of the constellation of non-LEO navigation satellites. 
     In various embodiments the LEO satellite also includes a backhaul transceiver, such as backhaul transceiver  340 , configured to receive correction data associated with the constellation of non-LEO navigation satellites, wherein the determining the orbital position of the LEO satellite is further based on based the correction data. The backhaul transceiver can be configured to receive the correction data from either a backhaul communication satellite in geostationary orbit around the earth or a terrestrial transmitter. The operations of the processor(s) can further include: 
     generating radio occultation data based on the inter-satellite communications with at least one of the other LEO navigation satellites in the constellation of LEO navigation satellites; and transmitting the radio occultation data via the backhaul transceiver. The correction data can include orbital correction data and timing correction data associated with the constellation of non-LEO navigation satellites. The navigation message can include a timing signal and the orbital position associated with the LEO satellite. The navigation message can further include the orbital correction data and the timing correction data associated with the constellation of non-LEO navigation satellites. 
     In various embodiments, the LEO satellite further includes a non-atomic clock configured to generate a clock signal, wherein the timing signal is generated by adjusting the clock signal based on the first signaling and further based on the timing correction data. The constellation of non-LEO navigation satellites can be associated with at least one of: a Global Positioning System of satellites, a Quasi-Zenith Satellite System, a BeiDou Navigation Satellite System, a Galileo positioning system, a Russian Global Navigation Satellite System (GLONASS) or an Indian Regional Navigation Satellite System. The navigation message can include correction data associated with the constellation of non-LEO navigation satellites in non-LEO around the earth, wherein the at least one client device determines the enhanced position of the client device by applying the correction data to the second signaling. The navigation message can further include a timing signal and the orbital position associated with the LEO satellite, wherein the at least one client device determines the enhanced position of the at least one client device further based on the timing signal and the orbital position associated with the LEO satellite. 
     In various embodiments, the inter-satellite communications include correction data associated with the constellation of non-LEO navigation satellites received via at least one of the other LEO navigation satellites in the constellation of LEO navigation satellites, wherein determining the orbital position of the LEO satellite is further based on based the correction data. 
     The inter-satellite communications can include at least one of: navigation signal  240 , the navigation message and/or other state data needed to do the state estimation of the satellite  110  sent to at least one of the other LEO navigation satellites in the constellation of LEO navigation satellites; radio occultation; atmospheric data generated based on radio occultation; control information associated with satellite direction; control information associated with satellite attitude; control information associated with satellite status; control information associated with satellite inter-satellite transmit/receive condition; command information associated with satellite inter-satellite transmit/receive status; command information associated with inter-satellite transmit power or frequency; control information associated with encryption; constellation integrity information relating to the health of one or more LEO navigation satellites in the constellation of LEO navigation satellites; or constellation integrity information relating to the health of one or more non-LEO navigation satellites in the constellation of non-LEO navigation satellites. Furthermore, the inter-satellite communications can include one-to-many transmissions between the LEO satellite and two or more of the other LEO navigation satellites in the constellation of LEO navigation satellites. 
     In various embodiments, the first plurality of non-LEO navigation satellites can include four or more non-LEO navigation satellites of the constellation of non-LEO navigation satellites that are in reception range of the global positioning receiver, however signals  132  from fewer non-LEO satellites can be used when navigation signals  240  are received from one or more LEO satellites via inter-satellite communications. The second plurality of non-LEO navigation satellites can include three or more non-LEO navigation satellites of the constellation of non-LEO navigation satellites that are in reception range of the at least one client device, however signals  132  from fewer non-LEO satellites can be used when navigation signals  240  are received from more than one LEO satellites in reception range of the at least one client device. 
     In various embodiments, at least one processor of the processing module  320  is configured to execute operational instructions that cause the processor(s) to perform operations that include: determining an orbital position of the LEO satellite  110  based on the first signaling  132  and the correction data received via either the backhaul transceiver  340  or the inter-satellite link transceiver  345  and generating a navigation message based on the orbital position. The navigation signal transmitter  330  configured to broadcast the navigation message to at least one client device  160 , the navigation message facilitating the at least one client device to determine an enhanced position of the at least one client device based on the navigation message. 
     In various embodiments, at least one processor of the processing module  320  is configured to execute operational instructions that cause the processor(s) to perform operations that include: determining an orbital position of the LEO satellite based determining, based on the first signaling  132 , an error condition associated with one of the non-LEO navigation satellites of the constellation of non-LEO navigation satellites; and generating a navigation message based on the orbital position, wherein the navigation message includes a timing signal and the orbital position associated with the LEO satellite, correction data associated with the constellation of non-LEO navigation satellites, and integrity monitoring data that includes an alert signal that indicates the error condition associated with the one of the non-LEO navigation satellites of the constellation of non-LEO navigation satellites. The navigation signal transmitter is configured to broadcast the navigation message to at least one client device, the navigation message facilitating the client device(s) to determine an enhanced position of the at least one client device, based on the navigation message and further based on second signaling received from a second plurality of non-LEO navigation satellites of the constellation of non-LEO navigation satellites in the non-LEO around the earth while excluding signals from the one of the non-LEO navigation satellites. Furthermore, the satellite  110  itself can exclude signals from the one of the non-LEO navigation satellites when calculating its orbital position. 
     The alert signal and/or integrity monitoring data that indicates the error condition associated with the one of the non-LEO navigation satellites of the constellation of non-LEO navigation satellites can also be shared with the other LEO satellites  110  and/or one or more ground stations via inter-satellite and/or backhaul communications. This allows the other satellites  110  to exclude signals from the one of the non-LEO navigation satellites when calculating their orbital position. This also allows the other satellites  110  to include integrity monitoring data indicating the faulty satellite in their own navigation messages. 
     In various embodiments, at least one processor of the processing module  320  is configured to execute operational instructions that cause the processor(s) to perform operations that include: determining an orbital position of the LEO satellite based on the first signaling; determining, based on the inter-satellite communications, an error condition associated with one of the other LEO navigation satellites of the constellation of LEO navigation satellites; and generating a navigation message based on the orbital position, wherein the navigation message includes a timing signal and the orbital position associated with the LEO satellite, correction data associated with the constellation of non-LEO navigation satellites, and an alert signal that indicates the error condition associated with one of the other LEO navigation satellites of the constellation of LEO navigation satellites. The navigation signal transmitter is configured to broadcast the navigation message to at least one client device, the navigation message facilitating the at least one client device to determine an enhanced position of the at least one client device, while excluding signals from the one of the other LEO navigation satellites, for example, based on the navigation message and further based on second signaling received from a second plurality of non-LEO navigation satellites of the constellation of non-LEO navigation satellites in the non-LEO around the earth. 
     The alert signal and/or integrity monitoring data that indicates the error condition associated with the one of the LEO satellites of the constellation of LEO satellites can also be shared with the other LEO satellites  110  and/or one or more ground stations via inter-satellite and/or backhaul communications. This allows the other satellites  110  to include integrity monitoring data indicating the faulty satellite in their own navigation messages. It should be noted that, while the foregoing integrity monitoring operation have been described as being performed by the satellite  110  in-situ, in other embodiments, integrity monitoring activities involving the detection of faulty LEO or non-LEO satellites can instead be performed by one or more ground stations and the resulting integrity monitoring data can be shared with the satellites  110  via a combination of backhaul and inter-satellite communication. Furthermore, the function of integrity monitoring involving the detection of faulty LEO or non-LEO satellites can be assigned to a particular satellite  110  on a dedicated basis that is not tasked with, configured for and/or capable of, the generation of navigation signals  240 . 
     In various embodiments, at least one processor of the processing module  320  is configured to execute operational instructions that cause the processor(s) to perform operations that include: determining a first orbital position of the LEO satellite at a first current time based on the first signaling; generating a plurality of first orbital position estimates of the LEO satellite for a plurality of first subsequent times associated within a first time window from the first current time; generating, based on a curve fitting technique, a first navigation message indicating the first orbital position at the first current time and the first plurality of orbital position estimates of the LEO satellite for the first plurality of subsequent times; broadcasting, via the navigation signal transmitter, the first navigation message to at least one client device; determining a second orbital position of the LEO satellite at a second current time based on the first signaling, the second current time corresponding to one of the first plurality of subsequent times associated with the first time window and the second current time corresponding to one of the first plurality of orbital position estimates; generating an error metric based a difference between the first orbital position of the LEO satellite at the second current time and the corresponding one of the first plurality of orbital position estimates. When the error metric compares unfavorable to an error threshold: generating, based on the curve fitting technique, a second plurality of updated orbital position estimates of the LEO satellite for a second plurality of subsequent times associated from the second current time; generating a second navigation message indicating the second orbital position at the second current time and the second plurality of orbital position estimates of the LEO satellite for the second plurality of subsequent times; and broadcasting, via the navigation signal transmitter, the second navigation message to the at least one client device. When the first time window expires at a third current time without a second navigation message generated: determining a third orbital position of the LEO satellite at the third current time based on the first signaling; generating, based on the curve fitting technique, a third plurality of updated orbital position estimates of the LEO satellite for a third plurality of subsequent times associated within a second time window from the third current time; generating a third navigation message indicating the third orbital position at the third current time and the third plurality of orbital position estimates of the LEO satellite for the third plurality of subsequent times; and broadcasting, via the navigation signal transmitter, the third navigation message to the at least one client device. 
     In various embodiments, at least one processor of the processing module  320  is configured to execute operational instructions that cause the processor(s) to perform operations that include: determining an orbital position of the LEO satellite based on the first signaling; generating a second timing signal by adjusting the clock signal based on the first signaling and further based on correction data associated with the constellation of non-LEO navigation satellites; and generating a navigation message based on the orbital position, wherein the navigation message includes the second timing signal and the orbital position of the LEO satellite and correction data associated with the constellation of non-LEO navigation satellites. 
     In various embodiments, at least one processor of the processing module  320  is configured to execute operational instructions that cause the processor(s) to perform operations that include: generating radio occultation data based on the inter-satellite communications with at least one of the other LEO navigation satellites in the constellation of LEO navigation satellites, the radio occultation data indicating atmospheric conditions associated with the ionosphere and the troposphere; transmitting the radio occultation data via a backhaul transceiver; receiving correction data associated with the constellation of non-LEO navigation satellites, the correction data generated based in part on the radio occultation data; determining an orbital position of the LEO satellite based on the first signaling and the correction data; and generating a navigation message based on the orbital position. 
     In various embodiments, at least one processor of the processing module  320  is configured to execute operational instructions that cause the processor(s) to perform operations that include: determining the transmit/receive status for the inter-satellite communications between the LEO satellite and at least one other of the plurality of other LEO navigation satellites in the constellation of LEO navigation satellites. For example, the transmit/receive status for the inter-satellite communications between the LEO satellite and at least one other of the plurality of other LEO navigation satellites in the constellation of LEO navigation satellites can be determined based on at least one of: a memory usage of the LEO satellite; a memory usage of the at least one other of the plurality of other LEO navigation satellites; a distance between the LEO satellite and a backhaul receiver; a distance between the at least one other of the plurality of other LEO navigation satellites and the backhaul receiver; a battery level of the LEO satellite; a different between the battery level of the LEO satellite and a battery level of the at least one other of the plurality of other LEO navigation satellites; an estimated time that the LEO satellite can generate more power; an estimated time that the at least one other of the plurality of other LEO navigation satellites can generate more power; or atmospheric data that indicates atmospheric conditions generated based on radio occultation. 
     In various embodiments, the inter-satellite communications include at least one of: the navigation message sent to at least one of the other LEO navigation satellites in the constellation of LEO navigation satellites; radio occultation; atmospheric data generated based on radio occultation; control information associated with satellite direction; control information associated with satellite attitude; control information associated with satellite status; control information associated with satellite inter-satellite transmit/receive condition; command information associated with satellite inter-satellite transmit/receive status; command information associated with inter-satellite transmit power or frequency; control information associated with encryption; constellation integrity information relating to the health of one or more LEO navigation satellites in the constellation of LEO navigation satellites; or constellation integrity information relating to the health of one or more non-LEO navigation satellites in the constellation of non-LEO navigation satellites. 
       FIG.  3 C  is a pictorial diagram of a satellite in accordance with various embodiments. In particular, a lower perspective view of a satellite, such as satellite  110 , is presented. The satellite body is constructed in a modular fashion of six commercial off-the-shelf units such as CubeSat units or other units that are interconnected. The front face of the satellite body  308  includes a first sun sensor  333 - 1 , a first inter-satellite link transceiver  345 - 1  and a star tracker  380 . The bottom side of the satellite body  308  includes a first retroreflector  332 - 1 , a first backhaul transceiver  340 - 1  and two navigation signal transmitters  330 , for example, corresponding to two different frequency channels. The side of the satellite body includes a second retroreflector  332 - 2 . The top of the satellite body is fitted with deployable plates  306  that fold out for use in orbit (as shown) to support an array of solar cells for powering the satellite. 
       FIG.  3 D  is a pictorial diagram of a satellite in accordance with various embodiments. In particular, an upper perspective view of a satellite, such as satellite  110 . The rear face of the satellite body  308  includes a second sun sensor  333 - 2  and a second inter-satellite link transceiver  345 - 2 . The top side of the satellite body  308  includes a GPS receiver  305 , a second backhaul transceiver  340 - 2  and solar panels  304 . Solar panels  304  are also arranged on the top of the deployable plates  306 . The side of the satellite body includes a third retroreflector  332 - 3 . 
     As discussed herein, components of the satellite processing system  300  operate to generate a precise orbital position of the satellite  110 . In addition to the use of this orbital position in the generation of navigation signals  240 , this orbital position can be used to determine when the satellite  110  needs to be repositioned and to aid in such repositioning by use of the satellite flight control system  302 . 
     In various embodiments, the precise orbital position of the satellite  110  at a given time is compared with its desired orbital position at that time to determine the amount of deviation. Furthermore, the predicted path of the satellite  110  can be compared with the predicted paths of numerous other space objects including other satellites, spacecraft, space junk and other near-earth objects to predict a potential future collision. Such determinations and predictions can be generated via a ground station in backhaul communication with the satellite  110  of via the satellite itself. In either case, the satellite  110  can be repositioned to a desired location and orientation using of the satellite flight control system  302 . 
     In various embodiments, the satellite flight control system  302  includes a multi-axis propulsion system. In the alternative, the satellite flight control system  302  includes merely a three-axis attitude controller that is used reposition the satellite  110 . Consider the example satellite configuration shown in  FIGS.  3 C and  3 D . Roll, pitch and/or yaw axis variations in the satellites attitude can cause multi-axis drag force vectors acting on the satellite body  308  and the deployable plates  306 , in particular, that can be used in the repositioning process to vary the orbital path of the satellite  110 . 
     It should be noted that the example shown in  FIGS.  3 C and  3 D  present but one of the many possible implementations of the satellite  110 . 
       FIG.  4    presents an example embodiment of a satellite constellation system  100  that is implemented to perform atmospheric monitoring via radio occultation (RO). Radio occultation enables detailed monitoring of the Earth&#39;s atmosphere, which allows for more accurate weather forecasting. This is performed by characterizing elements of a transmitted signal as it passes through Earth&#39;s atmosphere. In particular, each satellite  110  can be operable to observe and/or generate RO data based on received signals transmitted by other satellites  110  and/or GNSS satellites  130 , such as navigation signals  240  and/or GNSS signals. This RO data includes measurements and/or other data that characterizes a portion of the atmosphere that the received signal traversed in its transmission from the other satellite. A satellite  110 &#39;s generation of RO data based on received signals, and/or a satellite  110 &#39;s transmission of this generated RO data, can be accomplished by utilizing radio occultation module  321 . 
     RO can be performed using Global Navigation Satellite System (GNSS) signals that are being transmitted from Medium Earth Orbit (MEO) and subsequently monitored from satellites in Low Earth Orbit (LEO). These GNSS signals provide RO information on the upper atmosphere, but due to their weak signal strength, these GNSS signals are unable to provide high quality measurements to the lower portions (altitudes) of the atmosphere. Furthermore, the GNSS signals come from a limited number of MEO satellites. This limitation on number and the relatively slow orbital period of these GNSS satellites  130  naturally constrains the rate of change of observation vectors and therefore the amount of atmosphere being observed. These factors limit both the spatial and temporal resolution of the atmosphere being monitored. 
     Satellite constellation system  100  presents improvements to current atmospheric monitoring techniques. In contrast to existing GNSS-based RO methods, satellite constellation system  100  can handle the transmission and/or reception of navigation signals  240  in addition to traditional GNSS signals received from GNSS satellites  130 . The geometry of the line of sight vector, in this case a line of sight vector being a radio line of sight such that the receiving end can receive a transmission from the transmission end, between satellites  110  in a LEO orbit provides a unique geometry that gives rise to uncommon atmospheric cuts that are capable of providing a deeper understanding of the Earth&#39;s atmosphere, as depicted in  FIG.  4   . To further atmospheric modeling capabilities, navigation signal  240  is transmitted by satellites  110  in LEO, and can be delivered at higher power levels than those from MEO. This enables deeper penetration of the atmosphere down to the planetary boundary layer and/or to less than 5 km in altitude, even in heavy moisture conditions. This provides an unprecedented level of detailed information of all levels of the atmosphere. 
     Additionally, using LEO satellites for both transmission and reception in RO results in an unprecedented number of RO events due to the smaller LEO orbital period. This greatly increases the temporal and spatial resolution of atmospheric measurements, resulting in a higher fidelity model and in turn a better understanding of its dynamics. Furthermore, a LEO constellation with a high density of satellites, with groups spaced across different orbital planes will result in sections of the atmosphere between the orbital planes being observed with a very high frequency (e.g. 10 minutes between observations depending on the spacing in the orbital plane), providing near real time tomography of the atmosphere. 
     Furthermore, navigation signal  240  of satellite constellation system  100  can reside in one or more different frequency bands than GNSS signals used for RO today, enabling another dimension of atmospheric characterization than what is possible today. 
     The data links (Backhaul uplink  220 , downlink  210 , inter-satellite link  230 , and/or navigation signal  240 ) permit the RO data obtained by the satellites to be transmitted down to the ground quickly for optimal use. The RO data can include the raw RO measurements observed by each satellite  110  and/or can include post-processed data that can, for example, contain already computed temperature and/or humidity profiles of the atmosphere. For example, satellites  110  can be operable to compute temperature and/or humidity profiles of the atmosphere based on the observed RO measurements. 
     In the example illustrated in  FIG.  4   , three satellites A, B, and C, are located in a LEO orbit, and a single GNSS satellite  130  is located in a MEO orbit. The satellites A, B, and C are each distinct satellites  110  of the satellite constellation system  100 . The satellites A, B, and C and the single GNSS satellite  130  are depicted at two different time steps: t 0  and t 1 . 
     At the first time step, t 0 , all three satellites  110  can see, and/or can otherwise be operable to receive, each others&#39; navigation signal  240 . Since each satellite  110  is capable of transmitting and/or receiving navigation signal  240 , each of the line of sight vectors, representing an ability to transmit and/or receive navigation signal  240 , are shown as two-way vectors. Due to the placement of the satellites  110  in orbit and the properties of navigation signal  240  such as the broadcast power, each of these lines of sight traverse through different layers of the Earth&#39;s atmosphere, including layers that are close to the Earth&#39;s surface. The signal from GNSS satellite  130  can also be used by satellites A and B at the first time step, t 0 , to get information through the uppermost part of the atmosphere. Note that while satellite C does have a line of sight to GNSS satellite  130 , that signal does not traverse any layers of the atmosphere of interest for monitoring and is unable to produce RO measurements, and is therefore omitted from the figure. 
     At the second time step, t 1 , which is shortly after the first time step, all three of satellites  110  have moved in their orbit. For this example, the time between t 0  and t 1  is such that GNSS satellite  130  has effectively not changed location due to the much longer orbital period of a MEO satellite compared to a LEO satellite. At time step t 1 , once again all three of the satellites  110  are able to maintain their lines of sight, this time at slightly different locations in the atmosphere, providing new measurement data. Due to the placement of satellites  110  in their orbit in this example, only one of the satellites is able to use the signal from GNSS satellite  130  for RO purposes. The line of sight vector from GNSS satellite  130  and Satellite A no longer goes through the atmosphere to create observations and the line of sight vector from GNSS satellite  130  and Satellite C still does not go through the atmosphere. Note that while the line of sight vector from GNSS satellite  130  and Satellite B is maintained, that measurement will be degraded due to how much atmosphere the signal must traverse. This exemplifies one of the drawbacks of RO systems today using existing GNSS signals unable to constantly provide information as there are some cases where the geometry is in such a way that does not allow high quality RO observations to be made. 
     Building from this example, considering a typical orbital period for a LEO satellite of 90 minutes, every 90 minutes a LEO satellite will complete a full sweep of its trajectory around Earth&#39;s atmosphere. Furthermore, with a dense constellation of satellites spread across a given number of orbital planes, the time between one pair of satellites passing through a part of the atmosphere and the following pair passing through nearly the same region of the atmosphere can be very short (e.g. tens of minutes). Thus, the satellites  110  of the satellite constellation system  100  allow for an unprecedented temporal revisit of regions of the atmosphere that can be used to better predict weather and improve models. When performing RO with MEO GNSS signals, the geometry change is much slower since a MEO satellite&#39;s orbital period is approximately 12 hours. Furthermore, the LEO and MEO satellite orbits are not in sync, which does not guarantee the ability to repeatedly pass through the same parts of the atmosphere and therefore cannot provide the spatially correlated temporal data that can be provided by this satellite system. 
     The raw RO measurements and/or processed data can be processed by one or more client devices  160  and/or other computing devices that receive the RO data from the satellites  110  and/or from ground station  200  and/or  201 , for example, via network  250 . The processing of this data can enable a range of applications, for example, by various other entities that benefit from improved characterizations and/or profiles of the atmospheric. 
     One example application of utilizing the received raw RO measurements and/or processed data includes generating weather forecasting data. For example, one or more client devices  160  can process the RO data to generate forecast models, to improve upon forecast models, and/or to generate other weather forecasting data. 
     As another example application, one or more client devices  160  can process the RO data to generate ionospheric data, such as ionospheric mappings and/or other data characterizing various portions of the ionosphere over time. This can include generating real-time and/or substantially close to real-time ionospheric mappings. This can include generating models that can be utilized to generate prediction data utilized predict and/or improve upon predictions of future states of the ionosphere. This can be utilized to improve performance of other systems that transmit through the ionosphere. For example, spaced-based communications systems can utilize the information from this real-time ionospheric mapping and/or other detailed ionospheric maps, and/or can utilize these models to better predict behavior of transmissions through the ionosphere and/or to improve performance and efficiency of their systems. 
     As another example application, one or more client devices  160  can process the RO data in conjunction with space measurement systems. In particular, the scientific measurement of stars and/or signals from space can be improved by utilizing ionospheric data generated based on the RO data. For example, the model can be utilized to predict ionospheric mappings at future times, to schedule the running of telescopes, and/or to otherwise facilitate scheduling and/or adjustment of measurements of stars and/or signals from space. 
     As another example application, one or more client devices  160  can process the RO data in conjunction with communication constellations, for example that rely on transmitting through the ionosphere. In particular, current ionosphere mappings or predicted future ionosphere mappings generated based on the received RO data can be utilized to aid in determining power levels that need to be broadcast based on current ionosphere mappings or predicted future ionosphere mappings. This can also be utilized to determine and/or predict current and/or future possible areas of outages, for example, enabling the communication constellations to adapt its transmissions accordingly. 
     As another example application, one or more client devices  160  can process the RO data in conjunction with space weather monitoring for early warning for high value space assets and/or ground infrastructure. 
     As another example application, one or more client devices  160  can process the RO data for improved GNSS, improved performance of satellite constellation system  100 , and/or improvements for other third-party users interested in detailed real-time atmospheric models. 
     Some or all of these applications of received RO data can alternatively be facilitated via a processing module  320  of a satellite processing system  300  and/or via another processing system affiliated with the satellite constellation system  100 . Models and/or other processed data in conjunction with these applications can be transmitted, for example via network  250  and/or directly from a satellite  110 , to client devices  160  associated with end users of this data, for example, for display to the end users via a display device. Alternatively or in addition, the client devices  160  can download application data, for example via network  250 , from a server system affiliated with the satellite constellation system  100 . This application data, when executed by the client device, can cause the client device  160  to receive and/or process the RO data in conjunction with one or more of these applications. 
     The example demonstrated in  FIG.  4    depicts each satellite  110  transmitting and receiving navigation signal  240 . With these two-way links, each of the satellites in the link pair is capable of making RO observations for the same portion of the atmosphere and is capable of logging the necessary data, for example by generating and/or otherwise observing the RO data based on the received navigation signal  240 , by temporarily storing the RO data in memory module  310  in a queue for transmission, and/or by transmitting the RO data via a backhaul link. Therefore, only one of the satellites need to be in view a ground station  200 , and/or the backhaul satellite  150 , or a backhaul node, such as one of the plurality of nodes of the satellite constellation system  100  in the transmission chain of backhaul links to the ground station  200  and/or the backhaul satellite  150 . The satellite constellation system  100  can thus be configured such that only one of the satellites in a satellite pair transmit the RO data down to users on the ground, either directly or through a space-based satellite backhaul communication link, in real time. This allows the use of fewer resources, as only one of the two satellites needs to record the necessary measurements. To reduce power usage, the satellite system can be further configured in a such a way that optimizes a set of one way links such that only one satellite is transmitting navigation signal  240  and one is receiving the navigation signal  240  in a given pair. 
     As used herein, the satellite in a given pair that is designated to broadcast navigation signal  240  is designated the “transmitter satellite”, and the other satellite in designated to receive navigation signal  240  is designated the “receiver satellite.” The transmitter satellite can be configured to broadcast navigation signal  240 . The transmitter satellite can be further configured to not receive navigation signal  240  from the other satellites  110 , to not generate the RO data based on the navigation signal  240  received from the other satellites  110 , and/or to not transmit the RO data via a backhaul link. The receiver satellite can be configured to receive navigation signal  240 , to generate corresponding RO data and to transmit this RO data via a backhaul link. The receiver satellite can be configured to not transmit its own navigation signal  240 . In some embodiments, the satellite in a given pair that is determined to be best placed for transmitting the data to ground users (either directly or through a space-based satellite backhaul communication link) can be selected as the receiver satellite, and the other satellite in the pair can be selected as the transmitter satellite. This optimization can further be performed across multiple sets of satellites where a single satellite is configured as the transmitter satellite to transmit to multiple satellites receiving and logging navigation signal  240 . 
     Consider the pair of satellites A and B of  FIG.  4   . One of the satellites in the pair can be designated as the transmitter satellite at a particular time, while the other satellite in the pair is designated as the receiver satellite at the particular time. Which one of the satellites is designated as the transmitter satellite vs. the receiver satellite can be set and/or adjusted automatically via an adjustment process. The adjustment process can include determining the pair of satellites A and B should swap roles and/or determining the roles of the pair of satellites A and B to be reevaluated for potential swapping, in response to detection of a corresponding trigger condition. The adjustment process can be performed by utilizing processing module  320  of satellite A and/or satellite B, enabling the pair of satellites automatically determine roles amongst themselves. Alternatively, the adjustment process can be performed by another processing module  320  and/or other processing system of the satellite constellation system that is not included in the pair, where the roles are determined and received as instructions to satellite A and satellite B. 
     Performing the adjustment process can include determination of one or more trigger conditions that dictate the current roles should be swapped and/or otherwise be set. Example trigger conditions for automatic setting and/or adjustment of which satellite in the pair is designated as the transmitter satellite and which satellite in the pair is designated as the receiver satellite in a given pair of satellites  110  (Satellite A and Satellite B) include:
         Determining satellite A&#39;s memory usage exceeds a given threshold such that it must stop recording RO measurements. As a result, satellite B is designated as the transmitter satellite and satellite A is designated as the receiver satellite.   Determining the distance between satellite A and a backhaul satellite  150  and/or a ground station  200  is greater than the distance between satellite B and backhaul satellite  150  and/or ground station  200  such that Satellite B is in a better position to record measurements. As a result, satellite B is designated as the receiver satellite and satellite A is designated as the transmitter satellite.   Determining the battery level of satellite A is below a given threshold such that it must stop transmitting a navigation signal. As a result, satellite B is designated as the transmitter satellite and satellite A is designated as the receiver satellite.   Determining the difference between battery level in satellite A and satellite B compares in such a way that Satellite A is determined to have more battery to use and/or is determined to have a more favorable battery level than satellite B. As a result, satellite A is designated as the transmitter satellite and satellite B is designated as the receiver satellite.   Determining that the difference between when satellite A will be able to generate power and when Satellite B will be able to generate power compares in such a way that satellite A is determined to be able to generate power sooner. As a result, satellite A is designated as the transmitter satellite and satellite B is designated as the receiver satellite.   Any other status changes, conditions or states of the individual satellites  110  or of the satellite constellation system  100  that may favor one satellite transmitting and/or receiving either in a paired configuration or in a one-to-many or many-to-one configuration.       

     While these trigger conditions illustrate examples between a specific pair of satellites, similar trigger conditions can be determined between any number of satellites when a one-to-many or many-to-one architecture is being used. In particular, consider a subset of three or more satellites  110 . Similar trigger conditions can be utilized to determine a single one of the subset of three or more satellites  110  to be designated as the transmitter, and/or where a single one of the subset of three or more satellites  110  to be designated as the receiver. For example a single receiver in the subset can be selected in response to determining this satellite  110  is determined to have the least favorably battery level of the subset of satellites, in response to determining the this satellite has a closest distance to backhaul satellite  150  and/or a ground station  200  of the subset of satellites, and/or a most favorable transmission path to backhaul satellite  150  and/or a ground station  200  of the subset of satellites. Alternatively, more than one of the subset of three or more satellites can be designated as transmitter satellites and/or receiver satellites. In some embodiments, all of the subset of three or more satellites  110  are designated as either a transmitter satellite or receiver satellite. Alternatively, at least one of the subset of three or more satellites can be designated to perform the functionality of both a transmitter satellite and a receiver satellite, and/or can be designated to not perform the functionality of either a transmitter satellite or a receiver satellite. 
     In performing the adjustment process, the automatic determination of which satellite in a pair of satellites and/or in a grouping of three or more satellites is designated as the receiver satellite requires communication between the satellites in the pair and/or grouping to relay status utilized to determine trigger conditions and/or to relay which satellite is designated to perform which role. Consider the following steps illustrating an example of performing the adjustment process between a pair of satellites A and B:
         1. Satellite A&#39;s memory usage for storing RO measurements exceeds a given threshold and sends (through any link or combination of links in  FIG.  2   ) a message to satellite B that it must stop receiving messages and that it is changing into transmission mode as a transmitter satellite   2. Satellite A continues to log RO measurements and enables transmission of navigation signal (if not already enabled)   3. Satellite B can send (through any link or combination of links in  FIG.  2   ) a status message to satellite A confirming that satellite B is in a mode corresponding to the receiver satellite and/or is otherwise logging measurements   4. Satellite A can receive satellite B&#39;s status message and/or satellite A can detect that satellite B has changed state by receiving a navigation signal from satellite B (if it was not already receiving a navigation signal from satellite B)   5. Satellite A stops logging RO measurements       

     A similar process can be performed in response to detection of another trigger condition described above. In particular, a satellite can determine to change its own state in response to detecting its battery level, memory capacity, other health status, distance from backhaul satellite and/or ground station, or other condition independent of other satellites compares favorably to a corresponding threshold dictating the satellite must change its state to be a transmitter satellite or a receiver satellite. In response to determining its own condition must change, the satellite can alert the other satellite in the pair and/or multiple satellites in the grouping of the change. 
     Alternatively or in addition, status information such as battery level, memory capacity, other health status, distance from backhaul satellite and/or ground station and/or other states and conditions can be exchanged between both satellites in a pair and/or between some or all satellites in a group, where a single satellite in the pair or grouping collects its own status information and the corresponding status information from the other one or more satellites in the pair or grouping, compares this status information and/or measures differences between statuses of the satellites and determines the optimal satellite to be selected as a transmitter satellite and/or the optimal satellite to be selected as a receiver satellite based on, for example, the corresponding trigger conditions. Once the selections have been made by the single satellite, this satellite can transmit one or more notifications indicating the assigned roles to the one or more other satellites in the pair or grouping. If one of the other satellites later determines its own condition must change based on monitoring its own status, the satellite can alert the other satellites in the grouping accordingly, and this process of collecting status data and reassigning roles by a single satellite can be triggered and repeated. 
     Alternatively or in addition, the decision for changing of the state can also be made by a ground monitor that is listening to all the status messages and send commands to the given satellites and/or can be made by another satellite that is not necessarily in the satellite pair but that can receive the status messages of the two satellites in the pair. This outside ground monitor and/or other satellite can generate and transmit notifications to the satellites in the pair or grouping indicating their newly assigned roles. 
     Alternatively or in addition, any of the changes to whether a satellite is a transmitter satellite and/or a receiver satellite can be performed in real time based on status messages or other command and control data and/or can be performed based on predetermined positions within the orbit based on known precomputed metrics that are a function of the satellite&#39;s placement within an orbit. For example, it can be precomputed that a satellite closer to a fixed ground station  200  should always be the receiver in a pair and therefore satellite  110  can be preconfigured to change to logging RO measurements when within a certain threshold distance of fixed ground station  200 . This can correspond to a trigger condition that can be determined by a satellite monitoring its own status, where the change in role of the satellite can be relayed to the other satellites in the pair and/or grouping and can trigger the other satellites in the pair and/or grouping to change their roles accordingly. 
     In some embodiments, the broadcast signal from any satellite  110  in LEO can be used by any number of other satellites  110  in LEO. While lines of sight shown in  FIG.  4    are representative of satellites  110  receiving each other&#39;s navigation signals, it&#39;s important to note that the signals transmitted are broadcast signals that can be received by any satellite. 
     Alternatively or in addition to dynamically and automatically being capable of changing role from transmitter satellite to receiver satellites, satellites  110  can be similarly operable to automatically adjust the transmission of navigation signal  240 . Due to the fact that satellite constellation system  100  controls navigation signal  240  that can be used for RO measurements, the signal design can be dynamic to allow navigation signal  240  to change in cases where atmospheric conditions necessitate it (e.g. changes that make losses greater can result in a boost in the signal power, or changes that may require larger bandwidths can result in adjusting the bandwidth, or even frequency). When satellite constellation system  100  controls the broadcast, satellite constellation system  100  can have a feedback loop between the transmission and receiving ends to optimize the transmitted signal to get the best information possible. That optimization can change base signal characteristics such as frequency, bandwidth, power levels, waveform, and/or other signals characteristics. 
     The ability to control both the transmission and the receiving side allows satellite constellation system  100  to be a closed loop RO system in the sense that satellite constellation system  100  can adjust key transmit parameters, including but not limited to, frequency, power, and signal structure, to provide the best transmission for measuring atmospheric properties at the current moment. What is considered best transmission is a function of the receiving satellite&#39;s measurement performance which can be fed back to the transmitting satellite to adjust the signal parameters through any combination of the links in  FIG.  2   . Example signal characteristics of the navigation signal  240  that can be adjusted include frequency of the navigation signal; bandwidth of the navigation signal; waveform of the navigation signal; power of the navigation signal; and/or any other parameters that define the generation of a signal, the transmission of a signal, and/or other properties of the signal itself. 
     The feedback loop process that is utilized to determine when and/or how to adjust these parameters can be performed by utilizing the processing module  320  of one or more satellites. An example of this feedback loop process includes the following steps:
         1. Satellite A receives signal from Satellite B and computes a raw measurement from the ranging signal (the raw measurement includes, but is not limited to, the range to the satellite, frequency and code offsets, carrier phase, signal receive power, etc.)   2. Satellite A evaluates performance metrics on the raw measurement (e.g. receive power compared to a desired threshold, ability to track the signal and compute carrier phase measurements, etc.) and decides if any threshold is not met   3. If thresholds are not met (e.g. receive power is too low) Satellite A transmits a message, through any combination of links shown in  FIG.  2   , to request a signal characteristic change from Satellite B (e.g. if receive power is too low, then request a boost in the signal power)
           a. Alternatively to sending a request for a signal characteristic change, Satellite A can transmit the performance metrics and Satellite B can make the decision for what to change   b. Different performance metrics can be used to control different signal characteristics, but it does not have to be a one to one mapping between signal characteristic and performance metric   
               

     As discussed, the satellite constellation system  100  is implemented as a LEO-LEO system due to the transmission and reception of signals between satellites  110  in LEO. Implementing satellite constellation system  100  as a LEO-LEO system can enable some or all of the functionality and/or improvements to existing systems listed below, for example, as a result of the fact that this system controls the broadcast and some due to the fact that various backhaul networks can be leveraged:
         The geometry of satellite constellation system  100  results in line of sights between satellites  110  that traverse through a different portion of the atmosphere than a line of sight between a LEO satellite and a MEO satellite   Faster motion on both the transmission and receiving sides means an increase in atmospheric measurement frequency and geometric diversity   Leveraging a combination of the links in  FIG.  2   , the RO measurements can be transmitted from the satellites to users (Earth based and/or space based) in near real time   Sufficient density of available tomography can allow for the creation of ionosphere and troposphere models derived for the creation of GNSS corrections without a need for ground infrastructure   The above allows for not only the creation of corrections for GNSS satellites, but also for the precision satellite constellation itself, improving robustness and convergence times towards precision navigation       

     With high spatial density ground monitoring stations and/or a LEO multifrequency satellite constellation, real-time, highly detailed maps of the ionosphere can be produced for both scientific, government, and industrial applications. Some applications include improved Earth weather prediction, GNSS corrections for improved stand-alone positioning and positioning augmented with this satellite system, protection of satellite assets from space weather events, and others. This unique approach would combine measurements from satellite constellation system  100  to the ground and/or from existing GNSS satellites to satellite constellation system  100 . This allows for atmospheric model layer separation and finer granularity. 
     The RO tomography data generated through the RO measurements recorded by satellite constellation system  100  can be used to generate a map of the ionosphere and troposphere where appropriate navigation atmospheric correction messages are derivative products of this map. This data can be used in traditional GNSS Precise Point Positioning (PPP) approaches in addition to the navigation schemes presented here. The reduces the search space in carrier phase ambiguity resolution and can greatly accelerate convergence time. 
     Alternatively or in addition to providing atmospheric data, the satellite constellation system  100  can be implemented to provide precise navigation by giving users their precise position and time. One of the key elements to providing this information to users through a satellite based ranging signal includes performing precise orbit determination, or otherwise being able to precisely determine the location of the satellite in space. This information can then, along with a ranging signal, be broadcast down to users on the ground to enable precise positioning and/or timing. In addition to the complete solution, correction information can be provided to spatially “close” users, such as users in orbits near those of our satellites, to allow those users to get precision positioning and timing data. This enables this satellite system to be able to provide precise positioning to users at altitudes below this satellite system and users at altitudes at close (above) to this satellite system. The precision navigation section performed by satellites  110  includes orbit determination, autonomous constellational monitoring, and/or adjusting of signal characteristics for providing the best navigation signal. 
     Current methods for precision and high accuracy orbit determination require the use of ground monitoring stations to observe the location of satellites with specialized measuring equipment and perform heavy computation for determining orbits. Satellite constellation system  100  improves existing systems by performing autonomous in-situ distributed orbit determination, where processing is done onboard satellites  110  autonomously through edge computing. This significantly minimizes requirements on ground infrastructure. Autonomous orbit and clock estimation onboard the satellite in real-time allows for lower cost clocks as part of the satellite hardware. Temperature compensated crystal oscillators (TCXOs) and oven-controlled crystal oscillators (OCXOs) are lower cost than Chip Scale Atomic Clocks (CSACs) and other timekeeping technology, but are most stable over shorter periods of time. Real-time orbit determination and dissemination to the user makes the use of these clocks possible, whereas if orbit determination is done by the ground network, then longer periods between uploads would require higher performance clocks onboard. 
     Additionally, some embodiments of satellite processing system  300  use the same clock  365  in both the GNSS receiver and/or other elements that handle the analog to digital conversion of the signal and other elements within the receiver, and in the generation of the navigation signal carrier frequency. This usage of the same clock  365  results in the estimated clock state using GNSS measurements reflecting the state of the clock used to generate the navigation signal itself, which results in a more precise navigation signal and navigation message. In other embodiments, multiple clocks  365  may be present, where the clock generating the navigation signal carrier frequency is “disciplined” to the clock in the GNSS receiver or the clock in the GNSS receiver is “disciplined” to the clock generating the navigation signal carrier frequency. 
     The precise orbit determination, or the estimation of the satellite&#39;s precise state, which can contain information including, but not limited to: position, velocity, acceleration, clock bias, clock drift, clock drift rate, current time, attitude, attitude rates, carrier phase offsets, etc.), is performed on-board the satellite using a navigation filter that uses measurements from on-board and/or offboard sensors and/or correction data. This process is described below:
         1. Raw data from a GNSS receiver, Inertial Measurement Unit (IMU), attitude determination instruments, and/or radio signals from neighboring satellites in this system are collected by and/or are otherwise available to each satellite  110 . Measurements can also be ground based, where this data is transmitted to the satellite via a data link.   2. The raw GNSS measurements are fed into a tightly coupled navigation filter onboard the satellite  110 . For example, the navigation filter can be implemented by utilizing orbit determination module  322 . The filter uses GNSS orbit corrections and/or other correction data such as atmospheric corrections provided by any combination of the links in  FIG.  2    to produce a tightly-coupled PPP carrier phase ambiguity-resolved navigation solution.   3. The navigation filter propagates the state estimate to the current epoch   4. The navigation filter updates the position (of the satellite center of mass), attitude, clock, and/or other state estimates given the most recent measurements   5. The position, attitude, and/or clock estimates are, using one or more models based on physics or other data driven models, propagated forward for a short period to produce predictions of the position of the broadcast antenna phase center.   6. This predicted path of the satellite orbit and clock (where the clock is the same clock generating the carrier for the navigation signal) are fit to a curve that will become the broadcast navigation message. This curve fit is packaged into a binary navigation message to be broadcast by the satellite to the users.   7. The broadcast orbit and clock message can be broadcast by the satellite  110  at regular intervals that meet the minimum time to first fix.   8. If the orbit and clock states computed by the physics-based propagation differ from the orbit and clock computed using the navigation message, a new navigation message will enter the broadcast queue, performing autonomous integrity monitoring   9. The broadcast signal is received by users and/or user devices such as client devices  160 , and the precise orbit data enables the user and/or client device  160  to compute a precise position and time solution.   10. The precise position and time solution can be displayed to the user (for example as a pin on a map with some bounds on the error that show that the user&#39;s position is very precise), for example, by utilizing a display device of client device  160 . In the case of a robotic or autonomous or highly automated system, this position solution can be ingested natively, for example, to be used as a measurement for precision autonomy.       

     Each satellite  110  can perform process for the autonomous orbit determination via performance of a state estimation flow as illustrated in  FIG.  5 A , performance of a navigation flow as illustrated in  5 B, and/or performance of a broadcast flow as illustrated in  FIG.  5 C . These separate depictions of the state estimation flow, navigation flow, and broadcast flow highlight the fact that process can be performed in several different loops triggered by different events. The satellite processing system  300  can be utilized to perform some or all of the steps illustrated in  FIGS.  5 A,  5 B , and/or  5 C, for example, by utilizing orbit determination module  322 , navigation message generation module  323 , and/or message scheduling module  324 , respectively. 
       FIG.  5 A  illustrates an embodiment of a state estimation loop. The loop is configured to run at a specific rate or triggered based on new measurements from the sensors onboard the satellite. Upon the trigger, the new measurement from the onboard sensors, which can include, but is not limited to, inertial measurement units (IMUs), GNSS receivers, attitude sensors (e.g. star trackers, horizon sensor, etc), radio signal receivers to signals from neighboring satellites in this satellite positioning system, and other sensors, are used by the navigation filter to compute the precise state. Note that measurements can also be made from ground-based sensors and the data of the measurement can be transmitted to the satellite via any combinations of the links in  FIG.  2   . These sensor measurements can be used in conjunction with precise GNSS orbit and clock data estimated by the ground segment (PPP correction data) and/or other correction data (such as atmospheric models) desired. This correction data can be uploaded via any combinations of the links in  FIG.  2    and can be stored in memory onboard the satellite. The newly computed state can be saved to an onboard history vector of the current and/or past states. Additionally, this newly computed state can be compared to the expected state at the current time based on the last navigation message. If the error metric exceeds a given threshold then the navigation loop is triggered to generate a new navigation message as described in  FIG.  5   b   . A more detailed example of the comparison with the expected state is depicted in  FIG.  6   . 
     Typical ground-based orbit and clock determination for GNSS only uses the signals received on the ground. Having the orbit and clock determination onboard, enables the satellite to make use of additional sensors that help decouple the attitude from the orbit as well as the orbit from the clock. Decoupling the attitude is important as it enables the use of this orbit and clock determination system to be used on a variety of satellites including small satellites where only minimal attitude control may be available. For example, in a satellite configuration where the broadcast signals are nadir pointing and the received GNSS L1/L2/L5 signals are received from a zenith antenna, a non-trivial offset will be present between these antennas which must be accounted for in user precise positioning. Inertial sensors, which are essentially only affected by orbital effects and not clock effects, can be integrated into the orbit determination and propagation process and help separate orbit and clock errors, especially as GNSS geometry worsens in polar regions. 
     The orbit determination can be aided by terrestrial stations, especially in polar regions, where not only would ground stations be typically visible to the greatest number of satellites, but the GNSS geometry is weakest on orbit. The ground stations can broadcast another ranging signal that can be received by satellites on orbit to aid in the orbit determination by providing more high accuracy range measurements. This allows for the measurements to very cleanly enter the estimator. This also allows for the ground station to be broadcast-only (one-to-many) rather than talking directly to a specific satellite, keeping orbit determination autonomous without need for direct communication to the ground station. The ground stations can also be capable of receiving the ranging signal broadcast by this satellite system, allowing the ground stations to either do some estimation on the ground and send the estimate back to the satellite or more simply send the measurements collected on the ground up to the satellites on orbit and let the satellite use the measurements in their onboard estimators. The latency between the collection of the measurement on the ground and the reception of that on orbit may introduce some complications in the estimation. Ground stations can also be equipped with a laser to point at a retroreflector on the satellite providing another accurate range measurement to the satellite. Once again, this measurement can then be used on the ground and estimates can be sent to the satellite, or the measurements can be directly sent to the satellites to be used in the onboard estimators. 
     The precise orbit determination computed onboard the satellites can use Precise Point Positioning (PPP) correction data, which consists of precise orbit and clock estimates of GNSS satellites. PPP data can be transmitted from the ground to the satellites via any combination of the links depicted in  FIG.  2   . 
     The navigation message creation is a second loop running onboard the satellite that can be set to its own rate independent of the precise orbit determination rate. The process flow for the navigation message creation is shown in  FIG.  5 B . This loop can be either triggered by timing for a fixed frequency of operation or by a trigger based on a computed error metric that is computed at the precise orbit determination rate. One manifestation is that the navigation message is generated by computing a best fit curve on the expected future state computed by running the filter&#39;s prediction step. Such a best fit curve has a set of parameters (e.g. that define the orbit and clock state) that can be put into a binary message to be sent as part of the navigation message. 
     The broadcast flow of  FIG.  5 C  can be once again running at an independent rate, this time specified by the desired data rate for data to be transmitted on the ranging signal, handles the transmission of the navigation message, along with any other data messages that are desired. This transmission system reads a queue of messages and modulates the data contained in the messages onto the navigation signal (which in some embodiments has a ranging signal already modulated onto the carrier), which can be at various different frequencies. Note that in some cases only the ranging is modulated on the carrier to make the navigation signal. 
     Once modulated, that signal is transmitted from the satellite  110  and can be received by at least one client device  160  which can include, but is not limited to, devices on the ground (such as handheld devices, vehicles, etc.), devices in the air (such as planes, drones, etc.), devices in space, and/or other embodiments of client device  160  discussed herein. Client device  160  can compute a range to each satellite  110  in view with the ranging signal and, given the precise navigation message data, is able to compute a precise position. 
     In various embodiments, the orbit determination process onboard of each of the satellites  110  allows the satellites to monitor their own messages and/or those of the neighboring satellites. Satellites  110  can be operable to perform a self-monitoring process. In particular, at every time step that the navigation filter updates the precise state of the satellite, satellite processing system  300  can compare the newly computed precise state with the expected state as described in the most recent navigation message. 
       FIG.  6    demonstrates an example of this self-monitoring process. For this example, the rate of the estimation loop and the navigation message generation are such that a new navigation message is generated, nominally, every 10 measurement updates. Starting at time t 0 , the navigation filter has computed a precise state, shown as a circle at time step t 0  on the figure, and a navigation message, N 1 , is generated as described in conjunction with  FIG.  5 B . Using the navigation message data, the expected state for all time steps in the time window between to and t 10  is shown as a line, which corresponds to expected state  610 . Note that the line, and therefore the message can be valid for a longer time period than the time period for the next triggered navigation message update. Moving forward in time,  FIG.  6    shows the estimated states at time steps t 1 , t 2 , and t 3 . At each one of these time steps, a comparison is computed between the estimated state and the expected state as given by navigation message N 1 . In this example, none of these comparisons compare unfavorably, so the system behaves nominally. 
     At the end of the time window at time t 10 , the time-based trigger results in a new navigation message, N 2 , being generated as depicted in  FIG.  5 B . This new navigation message is now what is being transmitted at regular intervals over, for example, the navigation signal. The new expected state through time is once again shown as a curve, in this case expected state  620 . A new time window is set between times t 10  and t 20 . 
     Moving forward through time to time step t 16 , the difference between the estimated state (shown as a circle) and the expected state as computed using navigation message N 2 , exceeds a given threshold, resulting in a trigger of the generation of a new navigation message, N 3 . This new message has a new curve for future expected states, in this case expected state  630 . 
     As time continues to move forward to the end of the new time window at step t 20 , the generation of a new navigation message, N 4 , is triggered by the nominal time based trigger behavior. This new message has a new curve for future expected states, in this case expected state  640 . Other variations are possible, for example, a new time window can be set between times t 16  and t 26  upon the transmission of navigation message N 3 . In the absence of deviation from the expected state  630  during this time window, the next navigation message (N 4 ) could then be sent at step t 26  when this updated time window expires. 
     Alternatively and/or additionally to performing this self-monitoring, satellites  110  can be configured to perform neighborhood monitoring, where satellites  110  are operable to monitor some or all physically neighboring satellites in constellation. Through an ability to transmit and/or receive navigation signals, a consistency check based on in-situ measurements can be used to identify upsets on any one particular satellite or group of satellites to quickly resolve any issues and maintain integrity of the system. Each satellite  110  can be equipped to transmit and/or receive navigation signal  240  and the corresponding navigation message data through any link depicted in  FIG.  2    to and/or from its neighbors both within its orbital plane, and/or in neighboring orbital planes, as depicted in the configuration in  FIGS.  7 A and  7 B . 
       FIG.  7 A  illustrates a two-dimensional depiction of a subset of the plurality of satellites  110 , including satellite A and satellite B. This subset can constitute a “neighborhood” with respect to satellite A, where all satellites  110  are in view of satellite A and/or where satellite A can otherwise transmit and/or receive navigation signal  240  from its neighboring satellites. These neighboring satellites of satellite A can include satellites  110  on the same orbital plane  710  as satellite A, and can include one or more satellites on either side of satellite A along orbital plane  710 . These neighboring satellites of satellite A can alternatively or additionally include satellites  110  on different orbital planes  700  and  720 . As illustrated in the three-dimensional depiction of orbital planes  700 ,  710 , and  720  with respect to earth of  FIG.  7 B , orbital planes  700  and  720  can be neighboring orbital planes of orbital plane  710 . Some or all of the other satellites  110 , such as satellite B, can have their own neighborhood of neighboring satellites, which can include a proper subset of the satellites  110  in the neighborhood of satellite A and/or can include at least satellite A. 
     In this example embodiment, navigation signal  240  contains both the ranging signal and data containing at least the navigation message data. However, in other embodiments, navigation signal  240  can contain only the ranging signal with each satellite either already knowing the navigation message data for its neighboring satellites and/or receiving the navigation message data through any combination of the links depicted in  FIG.  2   . 
     In the example embodiment depicted in  FIG.  7 A , the neighboring satellites (e.g satellite B) to satellite A can compute the expected range measurement to satellite A as each satellite knows its own estimated state and can compute the expected state of satellite A using the corresponding navigation message data for satellite A. Satellite B can also computed the measured range using navigation signal  240  from satellite A. From these two ranges, an error metric can be computed (e.g. a range residual). If that error metric exceeds a given threshold then satellite B can send a message, through any combination of the links in  FIG.  2   , to satellite A notifying satellite A that it may be broadcasting incorrect navigation message data. This notification can be in the form of a status message that can send a flag, the error metric data, and/or any data that can be used by Satellite A as a notification of possible error or other anomalies. If satellite A receive messages from more than a threshold number or percentage of neighboring satellites, satellite A can update its status information in the navigation message to notify users (including the neighboring satellites) that its navigation message data should not be trusted and therefore that the satellite should not be used. In addition to notifying satellite A, the neighboring satellites can also send error information that satellite A can use to verify and update its state estimate to correct for errors in the estimator, provided that each of the neighboring satellites are performing nominally. 
       FIG.  7 C  depict a further example case with a neighborhood of satellites on orbital planes  700 ,  710 , and  720  of  FIG.  7 B . If Satellite A computes an error metric that exceeds a given threshold value to a number of neighboring satellites above a threshold number or percentage, it can either self-detect that it may have an error in its state estimate, and/or the neighboring satellites can alert Satellite A that Satellite A may have a problem. Satellite A can notify each of the neighbors that they may be wrong (e.g. Satellites B and C) in response to computing the error metric that exceeds a given threshold for these neighboring satellites. If the neighbors (e.g. Satellites B and C) have not received enough warning messages to put it over a threshold number or percentage, they can each respond to Satellite A indicating Satellite A may be the satellite in the neighborhood with an error. 
     Satellites  110 , as part of satellite constellation system  100 , can also adjust signal parameters, for example as described previously, for the purpose of improving the performance of the reception and/or use of navigation signal  240  by users in space and/or users on Earth. Trigger conditions for adjusting signal parameters (such as beamwidth, power levels, and/or other signal characteristics of interest) can include the following, alternatively or in addition to the trigger conditions discussed in previous sections:
         Determining the location of satellite  110  above the Earth is, for example, over a major city or otherwise compares favorably to a location range for a trigger condition. As a result, satellite  110  can narrowing the beamwidth and/or increasing the signal power to aid in increasing the received signal strength of navigation signal  240 .   Determining proximity and/or density of one or more satellites  110  in orbit (such as over the polar regions if the satellite orbits are polar orbits) that result in a very high density of transmissions of navigation signal  240 . As a result, some or all satellites  110  can autonomously decide to turn off transmissions, for example based on remaining battery capacity and/or power margins left in satellites  110 .   Determining other location based and/or monitoring based triggers that are deemed to affect the quality of navigation signal  240  received by users.       

     The setting of these parameters can be adjusted autonomously by satellites  110  by utilizing satellite processing system  300  based on information received from neighboring satellites and/or ground measurements, adjusted by a ground segment with a human in the loop and/or autonomously based on monitoring data of satellite constellation system  100 , and/or can be configured before launch of the satellite and fixed for a given satellite  110  and given orbit. 
     In various embodiments, forces on the satellite can be calculated based on satellite orientation and precise measurements, which can be utilized to build an atmospheric density model. Many LEO satellites at lower altitudes feel forces due to atmospheric drag. While the upper atmosphere is very thin, it still provides an appreciable amount of force that eventually leads to the de-orbit of these satellites unless preventative measures are taken. While existing rough models can be used for the density of air in the upper atmosphere, it is known that this density is not temporally or spatially constant. Satellite constellation system  100  can be capable of taking precise GNSS measurements, as described in conjunction with  FIGS.  5 A- 5 C , and thus can have precisely known positions and velocities. Satellite  110  can also know its orientation (pose) precisely and can therefore calculate the expected forces due to solar and/or albedo radiation pressure, among other forces acting on the satellite. Once all other large orbital perturbations are taken into account, this information can be processed on board the satellite and/or on the ground and used to determine the magnitude of the atmospheric drag force acting on a given satellite  110 . Once this drag force is calculated, the density of the atmosphere at these specific satellite  110  positions can be calculated. With a dense constellation of satellite  110  and this data from each satellite  110 , models of the upper atmospheric density can be generated by either interpolating values spatially and/or temporally, or through other means. The resulting atmospheric density models can be used to help with on-orbit trajectory prediction for satellite  110  and/or any other satellite in similar orbits that are capable of receiving the atmospheric density model data. Additionally, these models can form the foundation for creating forecasts of upper atmosphere density. 
     In various embodiments, certain users can be become nodes transmitting navigation signals to expand the network of satellite constellation system  100 , giving rise to substantially more navigation signals and an improved service. These additional nodes can be implemented utilizing hardware and/or software of any of the client devices  160  discussed herein, for example, equipped with its own satellite processing system  300  and/or operable to perform some or all of the functionality of a satellite  110  as discussed herein. These additional nodes can be static, for example, fastened to infrastructure and/or otherwise installed in a particular constant and/or known location. These additional nodes can alternatively be mobile, for example, corresponding to a mobile device and/or vehicle with a changing location. 
     Similar to how orbit determination is performed in this navigation constellation scheme with satellites in low Earth orbit to deliver an additional navigation signal on the ground, all other aerial and ground receivers can employ the same precise positioning scheme and can in turn transmit similar navigation signals to create a much larger and more comprehensive navigation network. Each additional receiver works as a node in a more substantial network of navigation signals, aiding both in collaborative positioning and in current GNSS-challenged environment. 
     Employing similar estimation processes as satellites  110  from satellite constellation system  100 , user devices or other devoted ground or aerial navigation nodes can create and/or transmit their own navigation signals. This gives rise to substantially more signals for more robust positioning in traditionally challenging GNSS environments. In one embodiment, these navigation signals can be nearly identical to those transmitted by satellites as part of satellite constellation system  100 . In other implementations, different schema maybe be considered for specific applications or use cases. This may include the usage of different electromagnetic spectrum or other transmission modalities including but not limited to, optical and/or ultrasonic. This can also include a different number of transmission frequencies or signal modulations. 
     As an example, consider a dense urban environment with several aerial and ground-based robotic systems in operation. Aerial systems flying above buildings can utilize the line of sight signals to a combination of GNSS satellite and satellite constellation system  100  satellite navigation signals for precise and secure positioning. With its position solution computed, this aerial platform can broadcast its own navigation message, in much the same way as the satellites in satellite constellation system  100 . This, along with aerial and other navigation nodes in the network, including potentially as stationary infrastructure, adds significant diversity in line of sight in urban canyons, substantially aiding ground vehicle navigation. For example, the top corners of certain tall buildings can be good candidates for infrastructure node locations, having a clear line of sight to the sky and the road below. To further aid in this problem, ground vehicles can broadcast their own navigation signals to improve collaborative localization at the street level where now relative range measurements help the multi-agent navigation system. 
     In various embodiments, the satellite constellation system  100  can provide secure data to its users. Current GNSS signals that are available for civilian use are broadcast unencrypted with known signal and data structures. This was pivotal in the global adoption of GNSS as the standard bearer for positioning, but as the number of those that depend on GNSS services has grown, the vulnerabilities of GNSS have become more apparent. GNSS being at such low power is often jammed unintentionally and since its signal structure is publicly available it is subject to malicious spoofing attacks. 
     The satellite constellation system  100  improves upon traditional GNSS services by performing full encryption of the spreading code along with the navigation data. In this case, there can be several channels that offer different data at different rates. This is accomplished using a combination of code shift keying along with encrypted data modulated at a lower rate. Where appropriate, the data is encoded using a Low Density Parity Check scheme that allows for forward error correction, enabling the satellites to deliver data to ground users at a high, robust data rate. 
     The encryption keys can be locally stored in memory of client devices  160 , for example, in some manifestation of tamper-resistant hardware within the receiver utilized by some or all client devices  160  to receive navigation signals  240  from satellites  110 . Each client device&#39;s key can be leaf that belongs to a layered Merkle-Damgard tree, giving this satellite constellation system  100  the ability to provide service to any number of client devices  160  while denying service to anyone who breaks the terms of service. These keys can be changed collectively at predetermined intervals that allow for a subscription plan alongside permanent users. These changeovers can be carried out using secure one-way functions. 
     There can be several acquisition methods for the encrypted signal. Any client devices  160  with preexisting knowledge of their location and time within reason can carry out direct acquisition of the signal using a parallel search strategy. All other client devices  160  can directly acquire these signals as the required computational resources are available to them. Once a single satellite from the constellation has been acquired, a coarse almanac is recovered that allows the user to find any other satellites that may also be in view along while anticipating the satellites that will soon be in view. 
     With a single satellite in view, a client device  160  in a known location can have secure knowledge of their time. Likewise, any users that know 3 out of 4 position domain parameters (latitude, longitude, height, clock-bias) can to securely determine the fourth with this satellite system. In a secure time example, a receiver is surveyed and has a known latitude, longitude, and height. In order to provide a secure timing service, the receiver need only acquire a single satellite signal. The pseudo range calculated from the user to the satellite can subtracted by the predicted range to the satellite knowing the surveyed receiver location. The clock bias can be calculated from this difference. Since the signals and data are encrypted, the user can trust that the signal came from a trusted satellite in this constellation and thus the clock bias calculation can be trusted. With four satellites in view, an unambiguously secure position and time solution can be solved for using these satellite signals. 
     Application data corresponding to a secure service of the satellite constellation system  100  can be stored in at least one memory of the client device  160 . For example, the application data can be received by the client device  160  for download from a server system associated with the satellite constellation system  100  via network  250  and/or can be received in a signal transmitted by a satellite  110 . When this application data, and/or other executable instructions stored in memory of the client device  160 , are executed by at least one processor of the client device  160 , this can cause the client device  160  to securely obtain and/or update their key, to utilize their key to securely determine their position and/or time based on encrypted signals received from satellites  110 , and/or to utilize their key to confirm authenticity of received signals as being transmitted by received from satellites  110  as opposed to a spoofing entity. 
     In various embodiments, the satellite constellation system  100  can be operable to perform space-based GNSS Constellation Monitoring. A GNSS satellite fault can produce serious positioning errors if incorporated into a calculated position. In order for GNSS signals to be incorporated in safety-critical applications, such as aviation, their performance must be constantly monitored for such fault events. Many receivers used in these applications incorporate autonomous monitoring techniques such as Receiver Autonomous Integrity Monitoring (RAIM) to detect and exclude signals that may be faulty, but autonomous integrity techniques for receivers using code-phase positioning have severe limitations in that they cannot easily observe some satellite faults. These techniques may be enough to ensure that the true position is within one-third of a mile from the calculated position, but in order to obtain tighter bounds, also known as protection levels, on true position, local or wide area monitoring techniques must be employed. Satellite monitoring can be accomplished through systems known as Satellite Based Augmentation Systems (SBAS). In existing systems, reference stations in a region of interest can use these measurements to estimate the different error sources that may be present. These error estimates are then passed to central processing facilities where they are then then broadcast to users via a satellite link from a geostationary satellite. These systems are able to detect satellite faults and broadcast alerts to users, for example, within 6 seconds of the beginning of such faults. 
     Similar GNSS satellite fault monitoring can be carried out by satellite  110  in LEO when satellite  110  is using carrier phase precise positioning techniques, such as described in conjunction with  FIGS.  5 A- 5 C . Autonomous integrity monitoring techniques can be utilized to achieve precise protection levels, for example, by calculating position solutions using subsets of GNSS satellites running in parallel. For instance, if there are N satellites in view, there are N+1 position solutions calculated for the case that one GNSS satellite is excluded. These solutions are compared with each other in order to derive protection levels for the calculated position. If a single GNSS satellite is faulted, all N+1 solutions will begin to deviate from the true position except for the subset solution that has excluded that GNSS satellite. If the solutions become separated by an amount set by a threshold, then it can be determined that there is a fault in the GNSS signal emanating from the GNSS satellite. By computing these subsets and comparing the solutions to a given threshold, satellite  110  can know that a GNSS satellite was producing a faulty measurement if the solutions separated by more than the given threshold and can then transmit alert information for the faulted GNSS satellite. 
     A single satellite  110  in LEO can use the above method to detect a faulty GNSS measurement. Satellite constellation system  100  can have multiple satellites  110  in view of the same faulted GNSS satellite. Because of this, there will be larger observability of such a GNSS satellite fault and this will allow all satellite  110  observing the faulted GNSS satellite to form a consensus and thus have higher confidence in a decision to alert users. This technique differs from existing services in that all current GNSS satellite health monitoring is carried out by terrestrial reference stations whereas this provides a satellite-based solution that carries out this task autonomously. Satellite constellation system  100  can also be capable of transmitting alerts via navigation messages or other alert data to users in the event that there is an observed GNSS satellite fault through any combination of links in  FIG.  2   . 
     Beyond GNSS faults, satellite constellation system  100  can also transmit parameters describing the performance of the GNSS satellites. Satellite constellation system  100  can provide multiple simultaneous precise observations of the GNSS satellites using the methods outlined above. These observations can then be compiled and transmitted as corrections and confidence parameters to be used by GNSS receivers. 
     By utilizing satellites  110  in this fashion to detect GNSS faults and/or to determine parameters describing the performance of the GNSS satellites for transmission, GNSS systems can be monitored entirely in space. This presents an improvement to existing systems by facilitating this GNSS monitoring without any dependence on ground-based reference stations or ground based central processing facilities. Existing systems are further improved due to the better geometry, higher signal strength, and greater number of satellites more satellites in view as a result of utilizing the satellites  110  rather than ground-based facilities. 
       FIGS.  8 A,  8 B, and  8 C  illustrate the service levels available to ground and/or aerial users as a function of the number of satellites  110  in view from satellite constellation system  100 .  FIG.  8 A  shows the scenario with one satellite  110  in view with a client device  160  corresponding to a mobile user such as a vehicle. When used in conjunction with GNSS satellites, satellite  110  can provide data to increase the precision of GNSS. Satellite  110  further adds a navigation signal to provide additional range and range rate information. The rapid geometry change associated with satellite  110  allows for fast initialization of precise positioning. Hence, this augments GNSS, improving precision.  FIG.  8 B  shows the case for a client device  160  corresponding to a static user with one satellite  110  in view. In this case, because the position of static user is known, satellite  110  provides a secure source of timing information when the navigation signal is provided with encryption, which can used without GNSS. 
       FIG.  8 C  shows the scenario where satellite constellation system  100  has sufficient satellites such that four or more satellites  110  are in view to the client device  160 , such as the automobile represented. In this scenario, a sufficient number of independent navigation signals  240  from satellite constellation system  100  are available such that a highly precise can be supported by exclusive use of navigation signals  240 , and/or such that highly secure position solution with full encryption can be supported when navigation signals are provided with encryption. 
     The various functionality of the satellite constellation system  100  discussed can be utilized to implement one or more other applications. For example, satellite constellation system  100  can be utilized by maritime systems, where one or more client devices  160  is onboard and/or otherwise corresponds to one or more boats or other maritime systems. Satellite constellation system  100  can provide precision positioning to maritime systems, which can be utilized by the maritime systems for mapping, ice navigation, ice routing, and port operation. The precise position information can further be shared with neighboring maritime systems to improve maritime situational awareness. This can greatly improve the safety of these systems (e.g. in bad weather) due to the much better precision (especially in the arctic where signals  132  are harder to receive) if that information is shared between different ships, or between static maritime elements (e.g. lighthouses) and ships. Authentication and/or encryption can be utilized to protect against GNSS spoofing. Position security provided satellite constellation system  100  by can be utilized by maritime systems for asset tracking, for example, to be utilized by autonomous or highly automated ships that operate without a crew onboard. Boats and/or other maritime systems can thus be implemented as client devices  160 . 
     Alternatively or in addition, satellite constellation system  100  can be utilized by banking systems or other entities to perform transaction authentication. Location-based security can be provided for entities that perform financial transactions and/or other transactions. For example, position security can be used as a form of two step authentication in banking and other password-protected critical functions. This can also be utilized by voting systems to provide protection against voter fraud in elections. ATM machines, voting machines, and/or other equipment utilized to perform secure transactions can be implemented as client devices  160 . 
     Alternatively or in addition, satellite constellation system  100  can be utilized to enable infrastructure time synchronization. Satellite constellation system  100  can provides an additional source of secure timing to infrastructure systems that provide timing. Client devices  160  across different infrastructure entities can be utilized to synchronize timing across power stations, data centers, telecommunications hubs, cellular towers, financial institutions and/or other critical infrastructure. 
     Alternatively or in addition, satellite constellation system  100  can be utilized as a source for timing traceability for financial transactions. Satellite constellation system  100  can provide an additional source for timing traceability required for proof-of-payment systems and applications that require accurate and reliable timing traceability. For example, transactions on the New York Stock Exchange require timing traceability for legal purposes. Timing for these transactions is typically traced through GPS measurements to national timing centers like those managed at the USNO. Measurements taken from a client device  160  using the satellite constellation  100  can aid or replace these methods of timing traceability. 
     Alternatively or in addition, satellite constellation system  100  can be utilized in supply chain management to provide secure tracking of individual shipping containers, packages, vehicle assets, and/or vessel assets, allowing management with finer granularity and/or confirmation of arrival at destination. The individual shipping containers, packages, vehicle assets, and/or vessel assets can be implemented as client devices  160  and/or can be coupled to client devices  160  to enable the secure tracking of these assets by an entity that owns these assets or otherwise oversees the transportation and/or delivery of and/or by these assets. 
     Alternatively or in addition, satellite constellation system  100  can be utilized in surveying and/or mapping. In particular, satellite constellation system  100  can be utilized to provide precision, integrity, and/or security while enabling high definition mapping for autonomous or highly automated applications and/or safety critical applications. Surveying and/or mapping equipment can be implemented as client devices  160 . 
     Alternatively or in addition, satellite constellation system  100  can be utilized by autonomous or highly automated road vehicles. Autonomous or highly automated road vehicles require high integrity (safety-critical), precise, and secure positioning, as provided by the satellite constellation system  100 . Autonomous or highly automated road vehicles can be implemented as client devices  160 , and satellite constellation system  100  can enable geofencing, lane determination, and vehicle control of the autonomous or highly automated road vehicles. 
     Alternatively or in addition, satellite constellation system  100  can be utilized by autonomous or highly automated mobile robotic platforms. The satellite constellation system  100  can provide location precision and/or security for mobile robotic platforms targeted at the movement/delivery of goods within small areas, shipping yards, or cities, where the autonomous or highly automated mobile robotic platforms are implemented as client devices  160 . 
     Alternatively or in addition, satellite constellation system  100  can be utilized by autonomous or highly automated aerial vehicles, urban air mobility vehicles, drones, and/or UAVs. Autonomous or highly automated aerial vehicles require high integrity (safety-critical), precise, and secure positioning, as provided by the satellite constellation system  100 . Autonomous or highly automated road vehicles can thus be implemented as client devices  160 . The satellite constellation system  100  can enabled services such as autonomous or highly automated navigation and management of the airspace, and/or full automated takeoff, taxi, and landing. 
     Alternatively or in addition, satellite constellation system  100  can be utilized in asset tracking and/or Fleet Tracking. This can include the tracking of assets such UAVs, truck and vehicle fleets, as well as bike, scooter, and/or other ‘last mile’ device services. These assets can thus be implemented as client devices  160 . Precision and security is required for utilization of these services, for example to unlock a bike at a given depot and/or to return the user&#39;s deposit upon return of the asset. 
     Alternatively or in addition, satellite constellation system  100  can be utilized by transportation services. In ride sharing scenarios, the satellite constellation system  100  provides both precision and security. Precision is needed to aid in passenger-vehicle pairing where, especially in a robo-taxi environment, precise navigation is required to correctly determine the vehicle in question. Furthermore, location security prevents drivers from spoofing rides or misleading customers and similarly prevents riders from misleading drivers (or robo-taxis) in terms of pick up location. Thus, these vehicles can be implemented as client devices  160 . 
     Alternatively or in addition, satellite constellation system  100  can be utilized in robotic Agriculture. The agricultural industry pioneered precise GNSS corrections for machine control and it is still the primary sensor for localization in featureless environments, e.g. an open field. Currently, tractors require a driver, but as they become more autonomous or highly automated, a driver may no longer be present and security in positioning will be critical. Other robotic platforms in agriculture may include UAVs, mobile robotic platforms with wheels, legs, tracks, and/or articulated manipulator arms. Thus, some or all of this agricultural equipment can be implemented as client devices  160 . 
     Alternatively or in addition, satellite constellation system  100  can be utilized in the Internet of Things (IoT) and/or ‘Big Data’ Security. As IoT devices become more prevalent, tying data to the world in a geospatial sense, the criticality of this data will increase. Even if stationary, as a periodic security check, devices of an IoT network can check its location, perhaps even indoors, to verify the installation location has not been tampered with, inadvertently or otherwise. Thus, IoT devices can be implemented as client devices  160 . 
     Alternatively or in addition, satellite constellation system  100  can be utilized in insurance entities. For example, as autonomous or highly automated system interaction increases, who is responsible for what will become more important, and secure geolocation will be critical in resolution. 
     Alternatively or in addition, satellite constellation system  100  can be utilized in environmental monitoring, as discussed herein. Through radio occultation data, improved spatial and temporal resolution of atmospheric maps can be built for improving scientific models as well as weather prediction models. 
     Alternatively or in addition, satellite constellation system  100  can be utilized in various space applications, as illustrated in  FIGS.  8 D and  8 E . Client device  160  can be implemented by space-based devices, such as space user  800  and space user  810 . Users in orbit at altitudes both higher (Space User  810 ) and lower (Space User  800 ) than the satellite constellation system  100  can utilize satellite constellation system  100 , either in conjunction with GNSS or independently as shown by  FIG.  8 D  and  FIG.  8 E , to obtain a secure and/or precision location for use in orbit determination. The beamwidth of navigation signal  240  can be designed and/or adjusted to be an omni-directional signal to enable users higher than satellite constellation system  100  and/or multiple antennas onboard satellite  110  can support transmitting navigation signal  240  with a more directional beamwidth pointed in various directions. 
       FIG.  8 F  presents another scenario with one satellite  110  in view with a client device  160  corresponding to a mobile client device such as a vehicle. When used in conjunction with GNSS satellites of constellation  120 , satellite  110  can provide data to increase the precision of GNSS signaling  132 . As previously discussed, satellite  110  further adds a navigation signal  240  to provide additional range and range rate information. The rapid geometry change associated with satellite  110  allows for fast initialization of precise positioning. 
     In this example, however, additional navigation signals  240 ′ are received from a ground station  160 - 1  such as a terrestrial navigation station, an aircraft, such as UAV  160 - 2 , and one or more other vehicles  160 - 3 . In various embodiments, the navigation signals  240 ′ are formatted similarly to the navigation signal  240  and further augment GNSS accuracy, improving precision in the position, navigation and timing of the mobile device  160 . Furthermore, the presence of many vehicles  160 - 3  in close proximity, each of which is determining its position on a precision basis provides the vehicles the opportunity to operate in a mesh navigation network to share their positions and collectively enhance the accuracy of position, navigation and/or timing as a group. Furthermore, sharing of the navigation messages  240 ′ in such a mesh network configuration can be used to identify, model the signal characteristics of, and track, a mobile jammer in proximity to the client devices  160 - 1 ,  160 - 2  and  160 - 3 . In various embodiments, the client devices  160 - 1 ,  160 - 2  and/or  160 - 3  respond to stored user preferences that indicate, for example, whether or not a user of the corresponding device opts-in or opts-out of the generation of its own navigation messages  240 ′. 
     As further illustrated, a time-transfer satellite  850  is provided that transmits a secure timing signal  852 , such as an encrypted signal or other secure signal that provides a ground truth timing reference. The time-transfer satellite  850  can be implemented via a special satellite dedicated to the purpose. Consider a spoofing scenario where one or more spoofing stations capture and repeat valid signals  132  and/or  140 . The secure timing signal  852  can be used by the client device  160  to detect the spoofing stations by determining that the timing in the signals  132  and/or  140  repeated by these stations varies from the ground truth timing of the secure timing signal  852  by more than some acceptable timing threshold. 
     In a further example, the time-transfer satellite  850  can be implemented via one or more other satellites  110  that has been dedicated to this purpose via command and control signaling sent via inter-satellite links  230 . The role of time-transfer satellite  850  can be assigned to any of the satellites  110 , based on the memory usage of the satellite; the memory usage other satellites; the distance between the satellite and a backhaul receiver; the battery level of the satellite; a difference between the battery level of the satellite and the battery level other satellites; an estimated time that the satellite can generate more power; an estimated time that other satellites can generate more power; atmospheric data that indicates atmospheric conditions; and/or other state of the particular satellite, particularly when compared to the state or states of the other satellites  110 . 
     Consider another example where integrity monitoring of the LEO constellation  100  determines that one or more particular satellites  110  are no longer capable of generating accurate orbital positioning. The role of these particular satellites  110  can be relegated to the reduced functionality of providing the secure timing signal  852 . 
       FIG.  9 A  is a schematic block diagram illustrating an example client device in accordance with various embodiments. In particular, a mobile device  900  is presented that includes a global positioning receiver  904  having an antenna  902 , a processing system  920  having a memory  930  and one or more processors  940  and further having additional mobile device components and applications  925  that round out the specific functionality of the mobile device. For example, the mobile device  900  can be an automobile, a tablet, a smartphone, a smartwatch, a laptop computer, another mobile computer or computer system, a navigation device, a device location system, a weather system, a marine navigation system, a rail navigation system, an aircraft, an agricultural vehicles, a surveying system, an autonomous or highly automated vehicle, a UAV or other mobile device that operates by generating timing, navigation and/or positioning. 
     In various embodiments, the global positioning receiver  904  includes an RF section configured to receive signals  132  in one or more frequency channels from Global Navigation Satellite System (GNSS) satellites  130  of a GNSS constellation  120  and to downconvert these signals to GNSS signals  912 , each having a ranging signal containing clock information and ephemeris information for each of the GNSS satellites  130  in range. Similarly, the RF section is configured to receive one or more navigation signals  240  in one or more frequency channels from satellites  110  of constellation  100  and to downconvert these signals to LEO signals  910 , each having a ranging signal containing a navigation message that includes clock information and ephemeris information for each of the satellites  110  in range. In addition, the navigation message can contain correction data associated with the GNSS satellites  130 , such as PPP correction messages, other clock and orbital correction data, constellation integrity information relating to the health of one or more satellites  110  and/or constellation integrity information relating to the health of one or more satellites GNSS satellite  130 . Furthermore, the LEO signals  910  can contain other data contained in the navigation signals  240  including, for example, command and control data, RO data, atmospheric or weather data, secure clock data, encryption and security information, and/or any of the other types of data produced or transmitted by the satellites  110  as discussed herein. 
     The processing system  920  is configured to generate enhanced position and timing data  922  based on the GNSS signals  912  and/or the LEO signals  910  for use by the mobile device components and applications  925  that use such information, for example, for precision position, navigation and timing. In addition, the other data  924  can be demodulated, or otherwise extracted, from the LEO signals  910  by the processing system  920  that includes, for example, command and control data, RO data, atmospheric or weather data including a current weather state, a weather map and/or a predictive weather model, secure clock data, encryption and security information, any of the other types of data produced or transmitted by the satellites  110  or can be generated by the processing system  920  based on the navigation signals  240  and/or the signals  132 . In various embodiments, the constellation integrity information is used by the processing system  920  to exclude or otherwise ignore signals  132  and/or navigation signals  240  that corresponding to satellites that have been identified as faulty. 
     The operations of the processing system  920  can further include, for example, locking-in on the timing of the ranging signals via the associated pseudo random noise (PRN) codes associated with each satellite  110  and  130  (that is not excluded), demodulating and decoding the ranging signals from the GNSS signals  912  to generate and extract the associated navigation messages from the GNSS satellites  130  in range of the receiver, demodulating and decoding navigation messages contained in the ranging signals of the LEO signals  910  to extract the precise position and timing data associated with each satellite  110  along with the correction data for the GNSS signals  912 , and applying the correction data and atmospheric data to the position and timing information from the navigation messages from the GNSS satellites  130 . In various embodiments, the first-order ionospheric delay is mitigated using the combinations of dual-frequency GNSS measurements. Otherwise, ionospheric and tropospheric delay can be corrected using atmospheric models generated based on the RO data. Furthermore, the processing system  920  can use closed loop state estimation techniques such as a Kalman filter, extended Kalman filter or other estimation technique where, for example orbital position, clock error, ionospheric delay, tropospheric delay and/or carrier-phase errors are estimated states. The precise position of the generate enhanced position and timing data  922  can be generated by positioning calculations that employ navigation equations to the orbital positions and timing for each of the satellites  110  and  130 . 
     It should be noted, that when encryption is employed to the navigation signals  240 , decryption can be employed by the global positioning receiver  904  and or the processing system  920  in order to securely lock on to the ranging signal and/ further to extract the data therefrom. 
     Consider the following example. The global positioning receiver  904  receives navigation signals  240  that includes a navigation message from at least one satellite  110  containing correction data associated with a non-LEO constellation of satellites, such as non-LEO satellites  130 . The global positioning receiver  904  also receives signals  132  from the non-LEO satellites  130 . One or more processors  940  is configured to execute operational instructions that cause the processor(s) to perform operations that include: applying the correction data to the signals  132  to generate corrected signaling; and generating enhanced position data corresponding to a position of the mobile device based on the navigation message and the corrected signaling. In this fashion, PPP correction messages, other clock and orbital correction data, constellation integrity information relating to the health of one or more satellites  110  and/or constellation integrity information relating to the health of one or more satellites GNSS satellite  130  can be used be used to generate more precise position, navigation and timing from the signals  132  received from satellites of the non-LEO constellation and further based on the timing signal and the orbital position associated with the satellite  110 . 
     Consider a further example. The global positioning receiver  904  receives navigation signals  240  that include navigation messages from four or more satellites  110 . One or more processors  940  is configured to execute operational instructions that cause the processor(s) to perform operations that include: generating enhanced position data corresponding to a position of the mobile device based on the navigation messages. In this fashion, navigation messages that may include constellation integrity information relating to the health of one or more satellites  110  can be used be used to generate more precise position, navigation and timing based on the timing signals and the orbital positions associated with the satellites  110 . 
       FIG.  9 B  is a schematic block diagram illustrating an example client device in accordance with various embodiments. In particular, another mobile device  900  is presented that includes many common elements of presented in conjunction with  FIG.  9 A  that are referred to by common reference numerals. In this example, however, an additional navigation signal  240 ′ is received from a ground station  160 - 1  such as a terrestrial GPS station or other ground station that provides a source of a navigation signal  240 ′. The navigation signal  240 ′ reside in one of the frequency channels of navigation signal  240 . Other frequency channels can likewise be employed to avoid interference with navigation signals  240  and/or signals  132 . 
     In various embodiments, the navigation signal  240 ′ is formatted similarly to the navigation signal  240  and the GPS receiver generate ground station (GS) signals  914  that can include any or all of the information contained in the LEO signals  910 . The processing system  920  is configured to generate enhanced position and timing data  922  based on the GNSS signals  912 , GS signals  914  and/or the LEO signals  910  for use by the mobile device components and applications  925  that use such information, for example, for precision position, navigation and timing. In addition, the other data contained in the navigation signals  240  and/or  240 ′ is processed by the processing system  920  to generate other data  924  that includes, for example, command and control data, RO data, atmospheric or weather data, secure clock data, encryption and security information, any of the other types of data produced or transmitted by the satellites  110  or can be generated by the processing system  920  based on the navigation signals  240 ,  240 ′ and/or the signals  132 . In this fashion, the ground station  160 - 1  operates as an additional satellite with a fixed, and therefore, precise location. 
     As discussed in conjunction with  FIG.  8 F  the navigation signals  240 ′ can be generated by mobile client devices  160 . Furthermore, the mobile device  900  can include a global positioning transmitter  944  that operates similar to the corresponding functionality of satellite  110  in generating its own navigation signal  240 ′ that is transmitted via antenna  942 . In various embodiments, the memory  930  includes stored user preferences that indicate, for example, whether or not a user of the mobile device  900  opts-in or opts-out of the generation of its own navigation messages  240 ′. 
       FIG.  9 C  is a flowchart diagram illustrating an example of a method in accordance with various embodiments. In particular, a method is presented for use with one or more of the other functions and features discussed herein. Step  950  includes receiving a navigation message from at least one low-earth orbit (LEO) satellite of a constellation of LEO navigation satellites in LEO around the earth, wherein the navigation message includes correction data associated with the constellation of non-LEO navigation satellites in non-LEO around the earth. Step  952  includes receiving first signaling from a plurality of non-LEO navigation satellites of a constellation of non-LEO navigation satellites in non-LEO around the earth. Step  954  includes applying the correction data to the first signaling to generate corrected first signaling. Step  956  generating an enhanced position of the mobile device based on the navigation message and the corrected first signaling. 
       FIG.  9 D  is a flowchart diagram illustrating an example of a method in accordance with various embodiments. In particular, a method is presented for use with one or more of the other functions and features discussed herein. Step  960  includes receiving a navigation message from at least one low-earth orbit (LEO) satellite of a constellation of LEO navigation satellites in LEO around the earth, wherein the navigation message includes correction data associated with the constellation of non-LEO navigation satellites in non-LEO around the earth. Step  962  includes receiving first signaling from a plurality of non-LEO navigation satellites of a constellation of non-LEO navigation satellites in non-LEO around the earth. Step  964  includes receiving second signaling from at least one terrestrial GPS station at a fixed location. Step  966  includes applying the correction data to the first signaling to generated corrected first signaling. Step  968  includes generating an enhanced position of the mobile device based on the corrected first signaling, the second signaling and the navigation message. 
       FIG.  10    illustrates an example embodiment of a flowchart illustrating an example of performing self-monitoring. In particular, a method is presented for use in association with one or more functions and features described in conjunction with  FIGS.  1 - 8 E , for execution by a satellite processing system  300  that includes a processor or via another processing system of satellite constellation system  100  that includes at least one processor and memory that stores instructions that configure the processor or processors to perform some or all of the steps described below. 
     Step  1002  includes receiving a first plurality of measurement data via at least one sensor onboard the satellite and/or at least one signal received via a receiver onboard the satellite. For example, the at least one sensor can include an IMU and/or a clock. The at least one signal can be include a GNSS signal received from a GNSS satellite, and/or can include a signal generated by another satellite processing system  300 . The at least one signal can include PPP corrections received over a backhaul data link. Some or all of the first plurality of measurements can be stored in memory of the satellite processing system for later use as historical measurements. 
     Step  1004  includes calculating first current state data for the satellite at a first current time based on the first plurality of measurement data and/or based on historical measurements retrieved from the memory. The current state data can indicate a position of the satellite, an attitude of the satellite, and/or the first current time. Step  1006  includes generating first curve fit parameter data based on the first current state data. The curve fit parameter data can indicates a plurality of state estimates for a plurality of consecutive future times within a time window. For example, the time window can be predefined, and can start at the current time and/or can start at a time shortly after the current time. Steps  1002 ,  1004 , and/or  1006  can be performed as discussed in conjunction with the state estimator flow illustrated in  FIG.  5 A . 
     Step  1008  includes generating a first navigation message that includes the first curve fit parameter data. The first navigation message can be generated in accordance with some or all of the steps illustrated in the navigation message generation flow illustrated in  FIG.  5 B . Step  1010  includes scheduling the first navigation message for broadcast by a transmitter onboard the satellite during a predetermined portion of the time window. For example, the first navigation message can be scheduled to be transmitted repeatedly multiple times within the predetermined portion of the time window. The predetermined portion of the time window can be a proper subset of the time window and/or can include the entire time window. The predetermined portion of the time window can correspond to a first temporal portion of the time window, for example, beginning with the current time and/or the first one of the plurality of future times, and lasting for a predefined duration. In some embodiments, the predefined duration and/or the frequency at which the first navigation message is scheduled to be repeatedly transmitted can correspond to and/or based on a predetermined minimum time to first fix. The first navigation message can be scheduled and/or transmitted by the transmitter in accordance with some or all of the steps illustrated in the broadcast flow illustrated in  FIG.  5 C . 
     Step  1012  includes receiving a second plurality of measurement data via the same or at least one sensor onboard the satellite and/or the at least one signal received via the receiver onboard the satellite. Step  1014  includes calculating second current state data for the satellite at a second current time based on the first plurality of measurement data, wherein the current state data indicates a position of the satellite, an attitude of the satellite, and/or the second current time. The second current time can be after the first current time, and the second current time can correspond to one of the plurality of consecutive future times within the time window. Step  1016  includes generate an error metric by comparing the second current state estimate to the one of the plurality of state estimates indicated in the curve fit parameter data for the one of the plurality of consecutive future times, for example, as illustrated in the state estimation flow of  FIG.  5 A . 
     In response to determining the error metric compares unfavorably to an error threshold, the method can include steps  1018 - 1024 , for example as illustrated in the state estimation flow of  FIG.  5 A . Step  1018  includes generating second curve fit parameter data based on the second current state data, wherein the curve fit parameter data indicates a plurality of state estimates for a plurality of consecutive future times within a time window. Step  1020  includes generating a second navigation message that includes the second curve fit parameter data. Step  1022  includes interrupting the scheduling of the broadcast of the first navigation message at a time before the elapsing of the predetermined portion of the time window, and step  1024  includes scheduling the second navigation message for broadcast by the transmitter of the satellite starting at the time and/or starting shortly after the time. For example, the next scheduled transmission of the first navigation message can be replaced by a transmission of the second navigation message, once the second navigation message is generated. 
       FIG.  11    illustrates an example embodiment of a flowchart illustrating an example of performing neighborhood-monitoring. In particular, a method is presented for use in association with one or more functions and features described in conjunction with  FIGS.  1 - 10   , for execution by a satellite processing system  300  that includes a processor or via another processing system of satellite constellation system  100  that includes at least one processor and memory that stores instructions that configure the processor or processors to perform the some or all of the steps described below. 
     Step  1102  includes receiving a first plurality of measurement data at least one sensor onboard the satellite and/or or at least one GNSS signal received via a GNSS receiver onboard the first satellite. Step  1104  includes calculating first state data for the first satellite based on the first plurality of measurement data, wherein the first state data indicates a position of the first satellite. Step  1106  includes generating a first navigation message that indicates the first state data. Step  1108  includes transmitting the first navigation message to a plurality of neighboring satellites, wherein the first navigation message is transmitted in conjunction with a first ranging signal. 
     Step  1110  includes receiving, via a receiver onboard the first satellite, a plurality of ranging signals and a plurality of navigation messages from the plurality of neighboring satellites. Each of the plurality of navigation messages can indicates state data for a corresponding one of the plurality of neighboring satellites, where each state data was calculated by the corresponding one of the plurality of neighboring satellites. Step  1112  includes calculating an expected range value for each of the plurality of neighboring satellites by comparing the position of the first satellite to a position of the each of the plurality of neighboring satellites indicated in the state data of the one of the plurality of navigation messages received from the each of the plurality of neighboring satellites. Step  1114  includes calculating a measured range value for each of the plurality of neighboring satellites based on the one of the plurality of ranging signals received from the each of the plurality of neighboring satellites. Step  1116  includes calculating a range error by comparing the expected range value for each of the plurality of neighboring satellites to the measured range value for the each of the plurality of neighboring satellites. 
     Step  1118  includes identifying at least one of the plurality of neighboring satellites with a range error that compares unfavorably to a range error threshold. Step  1120  includes transmit, via a transmitter onboard the first satellite, a range error notification to the at least one of the plurality of neighboring satellites indicating that the range error compares unfavorably to the range error threshold. Step  1122  includes receiving, via the receiver onboard the first satellite, a status notification from the at least one of the plurality of neighboring satellites indicating an unfavorable status, wherein the at least one of the plurality of satellites generated the status notification indicating the unfavorable status in response to receiving the range error notification transmitted by the first satellite. 
     Some or all of the plurality of neighboring satellites can each include their own satellite processing system  300 , and some or all of the plurality of the plurality of neighboring satellites can be operable to similarly perform some or all of these steps of  FIG.  10   . 
     In various embodiments, the method further includes receiving a second plurality of measurement data via the at least one of: the at least one sensor onboard the first satellite or the at least one GNSS signal received via the GNSS receiver onboard the first satellite, for example at a different time. The method further includes calculating second state data for the first satellite on the second plurality of measurement data, where the second state data indicates a second position of the first satellite, for example, at the different time. The method further includes generating a second navigation message that indicates the second state data. The method further includes transmitting the second navigation message to the plurality of neighboring satellites in conjunction with a second ranging signal. The method further includes receiving, via the receiver onboard the first satellite, a range error notification from a subset of the plurality of neighboring satellites. The range error notification was transmitted by each of the plurality of neighboring satellites in the same fashion as illustrated in  FIG.  11   , in response to the each of the subset of the plurality of neighboring satellites determining a second range error compares unfavorably to the range error threshold. In particular, the each of the subset of the plurality of neighboring satellites calculated the second range error for the first satellite by comparing a second expected range value for the first satellite to a measured range value for the first satellite. Each of the subset of the plurality of neighboring satellites calculated the second measured range value for the first satellite based on the second ranging signal received from the first satellite, and the each of the subset of the plurality of neighboring satellites calculate the second expected range value for the first satellite by comparing the second position of the first satellite to its current position. Each of the subset of the plurality of neighboring satellites calculate its current position based on measurement data it collected. 
     In various embodiments, the method further includes determining a status of the first satellite is unfavorable in response to determining a proportion of the plurality of neighboring satellites included in the subset of the plurality of neighboring satellites compares unfavorably to a maximum threshold proportion. The method can further include transmitting, via the transmitter onboard the satellite, a status notification indicating an unfavorable status of the satellite to the plurality of neighboring satellites. For example, the maximum threshold proportion can dictate that at least a predefined number and/or proportion of satellites must have sent range error notifications to the first satellite for the first satellite to determine that its status is unfavorable. If less than the maximum threshold proportion of satellites send the range error notification to the first satellite, the first satellite can determine its status is favorable. In some embodiments, the range error notification can be generated by the neighboring satellites to include the value of the calculated range error, and the first satellite determining whether or not the status is unfavorable as a function of the number of satellites from which the calculated range error as well as the value of the range error in each notification. For example, fewer number of satellites may be required to have send range error notifications if these range error notifications indicate high range errors, while a higher number of satellites may be required to have send range error notifications if these range error notifications indicate smaller range errors. 
     In some embodiments, the method further includes determining a status of each of the subset of the plurality of neighboring satellites is unfavorable in response to determining a proportion of the plurality of neighboring satellites included in the subset of the plurality of neighboring satellites compares unfavorably to a minimum threshold proportion. The method can further include transmitting, via the transmitter onboard the satellite, a notification indicating the unfavorable status of the to the subset of the plurality of neighboring satellites to the subset of the plurality of neighboring satellites. The minimum threshold proportion can be the same as, can be lower than, and/or substantially or lower than the maximum threshold proportion. For example, the minimum threshold proportion can dictate that less than a predefined number and/or proportion of satellites must have sent range error notifications to the first satellite for the first satellite to determine that their statuses are unfavorable. If more than the minimum threshold proportion of satellites send the range error notification to the first satellite, the first satellite can determine their statuses are favorable and/or cannot conclude that their statuses are unfavorable. In some embodiments, a neighboring satellite is only determined to be unfavorable if they were the only satellite of the plurality of neighboring satellites that sent the range error notification. 
       FIG.  12    illustrates an example embodiment of a flowchart illustrating an example of performing orbit determination. In particular, a method is presented for use in association with one or more functions and features described in conjunction with  FIGS.  1 - 11   , for execution by a satellite processing system  300  that includes a processor or via another processing system of satellite constellation system  100  that includes at least one processor and memory that stores instructions that configure the processor or processors to perform some or all of the steps described below. 
     Step  1204  includes receiving a plurality of measurement data via at least one receiver onboard the satellite, where the plurality of other measurement data includes global navigation satellite data (GNSS) data received from a GNSS satellite and/or includes precise point positioning (PPP) correction data received from a space-based backhaul. A clock signal, for example, generated by a clock onboard the satellite  110 , can be utilized by a GNSS receiver onboard the satellite to receive a GNSS signal from the GNSS satellite, and/or this clock signal can be utilized by an analog to digital converter onboard the satellite  110  to generate the GNSS data from the GNSS signal received by the GNSS receiver. 
     Step  1206  includes calculating a clock state for the satellite based on the GNSS data, and/or the PPP correction data, where the clock state includes a clock bias, a clock drift, and/or a clock drift rate. Step  1208  includes generating a navigation message that indicates the clock state data. Step  1210  includes generating a broadcast carrier signal using a clock signal. This clock signal can be the same clock signal and/or can be disciplined to the clock signal utilized in step  1204 . For example, this clock signal can be the same as the clock signal used by GNSS receiver to receive the GNSS signal from the GNSS satellite, can be discipled to the clock signal used by GNSS receiver to receive the GNSS signal from the GNSS satellite, can be the same as the clock signal that is utilized by the analog to digital converter onboard the satellite  110  to generate the GNSS data from the GNSS signal received by the GNSS receiver, and/or can be disciplined to the clock signal that is utilized by the analog to digital converter onboard the satellite  110  to generate the GNSS data from the GNSS signal received by the GNSS receiver. 
     Step  1212  includes generating a navigation signal for broadcast by modulating the spreading code onto the broadcast carrier signal. Step  1214  includes adding additional data to the navigation signal for broadcast by modulating the navigation message onto the broadcast carrier signal. Step  1216  includes facilitating broadcast of the navigation signal via a transmitter onboard the satellite. 
       FIG.  13 A  is an illustration of various satellite constellations and antenna beamwidth adjustments in accordance with various embodiments. In various embodiments, the beamwidth of navigation signal  240  produced by the satellite  110  can be adjusted from a wider bandwidth with a lower gain over a wider area to a more directional beamwidth having a higher gain over a smaller area. For example, the navigation signal transmitter  330  discussed in conjunction with  FIG.  3 B  can be equipped with a phased-array antenna system that allows the beam to be controlled in such a fashion under control of the resource allocation module  325 . 
     As previously discussed, the beamwidth of the navigation signal  240  can be adjusted along with other signal parameters of the satellite  110  to adapt to various conditions of the satellite  110 . In addition or in the alternative, the beamwidth of navigation signal  240  can be adjusted to adapt to the status of the satellite constellation system  100 . For example, when more satellites are present in the constellation, satellite coverage can be maintained with reduced beamwidth. 
     The examples  1300 ,  1302  and  1304  present, respectively, states of the satellite constellation system  100  with 3, 6 and 12 orbital paths/planes and an increasing numbers of satellites per path/plane. While polar orbits are shown, other orbital configurations are likewise possible. In state  1300  of the satellite constellation system  100 , a greater beamwidth θ 1  is used to cover more area. In state  1302  of the satellite constellation system  100 , a reduced beamwidth θ 2  can be used due to the decreased spacing between individual satellites. In state  1304  of the satellite constellation system  100 , a further reduced beamwidth θ 3  can be used due to the further decreased spacing between individual satellites. 
     It should also be noted that the orbital position of each satellite  110  can be also be used to adjust the beamwidth from a widest coverage, at or near the equator, to a narrowest coverage at or near the north and south poles. Gravitational dynamics caused by the non-spherical shape of the earth can change distances between satellites. Coverage changes caused by such changes in satellite distance can be compensated, all or in part, by changes in antenna beamwidth. It should be noted that a reduced beamwidth and corresponding higher antenna gain can enable either a greater link budget for a constant transmit power or a lower transmit power and power consumption for a fixed link budget. 
       FIG.  13 B  is an illustration of various antenna beam steering adjustments in accordance with various embodiments. As previously discussed, the resource allocation module  325  of the satellite  110  can control the various operations of the satellite  110  based on the orbital position of the satellite  110  relative to positions above the earth corresponding to high population density, low population density, an ocean, a rainforest, a mountain range, a desert or other terrestrial condition or feature. In the example shown, the satellite  110  proceeds from T 1  to T 2  to T 3  along an orbital path  1322  in LEO above an area of high population density  1320  when compared with the population density of the surround areas along the orbital path  1322 . Such areas of high population density can include a corresponding high density of autonomous or highly automated vehicles and/or other client devices that may heavily rely upon high precision position, navigation and timing and/or that provide challenges to signal reception due to tall buildings and other infrastructure and/or other terrestrial features. 
     The processing system of the satellite  110  stores a map or other data structure of the orbital path  1322  that indicates the position of the area of high population density  1320  along the orbital path  1322 . The beam steering direction  1325  corresponds, for example, to the center of the main transmission lobe of the antenna beam pattern of the navigation signal transmitter  330 . As shown, the beam steering direction  1325  is adjusted as the satellite  110  proceeds from T 1  to T 2  to T 3  along an orbital path  1322  to point at the area of high population density  1320 . The effect of this beamsteering adjustment is to increase the signal strength of the navigations signals transmitted by the satellite  110  in the area of the of high population density  1320 , facilitating better reception and improved positioning, navigation and timing of client devices  130  within this area. 
       FIG.  14    is an illustration of GPS reflectometry in accordance with various embodiments. While the foregoing has discussed the use of satellite to satellite signals used for radio occultation, satellite signals transmitted by one satellite and reflected by the surface of the earth can be received by one or more other satellites. In the examples shown, a satellite  110 - 1  receives signals  132  from satellite  130  that reflect off the surface of the earth. In other configurations, satellite  110 - 2  receives navigation signal  240  from satellite  110 - 2  that reflect off the surface of the earth. The strength of the received signal, together with factors such as the orbital position of both the transmit and receive satellites, the transmit power, the transmit and receive beamwidth, and a current atmospheric model can be used to determine and map the current reflectivity of different regions of the globe. Such GPS reflectometry can be used, for example, to create maps of current sea surface conditions, rainforest tree canopy density, snowfall, crop conditions, soil water density and/or other environmental conditions around the globe. 
     It is noted that terminologies as may be used herein such as bit stream, stream, signal sequence, etc. (or their equivalents) have been used interchangeably to describe digital information whose content corresponds to any of a number of desired types (e.g., data, video, speech, text, graphics, audio, etc. any of which may generally be referred to as ‘data’). 
     As may be used herein, the terms “substantially” and “approximately” provides an industry-accepted tolerance for its corresponding term and/or relativity between items. For some industries, an industry-accepted tolerance is less than one percent and, for other industries, the industry-accepted tolerance is 10 percent or more. Industry-accepted tolerances correspond to, but are not limited to, component values, integrated circuit process variations, temperature variations, rise and fall times, thermal noise, dimensions, signaling errors, dropped packets, temperatures, pressures, material compositions, and/or performance metrics. Within an industry, tolerance variances of accepted tolerances may be more or less than a percentage level (e.g., dimension tolerance of less than +/−1%). 
     As may also be used herein, the term(s) “configured to”, “operably coupled to”, “coupled to”, and/or “coupling” includes direct coupling between items and/or indirect coupling between items via an intervening item (e.g., an item includes, but is not limited to, a component, an element, a circuit, and/or a module) where, for an example of indirect coupling, the intervening item does not modify the information of a signal but may adjust its current level, voltage level, and/or power level. As may further be used herein, inferred coupling (i.e., where one element is coupled to another element by inference) includes direct and indirect coupling between two items in the same manner as “coupled to”. 
     As may even further be used herein, the term “configured to”, “operable to”, “coupled to”, or “operably coupled to” indicates that an item includes one or more of power connections, input(s), output(s), etc., to perform, when activated, one or more its corresponding functions and may further include inferred coupling to one or more other items. As may still further be used herein, the term “associated with”, includes direct and/or indirect coupling of separate items and/or one item being embedded within another item. 
     As may be used herein, the term “compares favorably”, indicates that a comparison between two or more items, signals, etc., provides a desired relationship. For example, when the desired relationship is that signal  1  has a greater magnitude than signal  2 , a favorable comparison may be achieved when the magnitude of signal  1  is greater than that of signal  2  or when the magnitude of signal  2  is less than that of signal  1 . As may be used herein, the term “compares unfavorably”, indicates that a comparison between two or more items, signals, etc., fails to provide the desired relationship. 
     As may be used herein, one or more claims may include, in a specific form of this generic form, the phrase “at least one of a, b, and c” or of this generic form “at least one of a, b, or c”, with more or less elements than “a”, “b”, and “c”. In either phrasing, the phrases are to be interpreted identically. In particular, “at least one of a, b, and c” is equivalent to “at least one of a, b, or c” and shall mean a, b, and/or c. As an example, it means: “a” only, “b” only, “c” only, “a” and “b”, “a” and “c”, “b” and “c”, and/or “a”, “b”, and “c”. 
     As may also be used herein, the terms “processing system”, “processing module”, “processing circuit”, “processor”, and/or “processing unit” may be a single processing device or a plurality of processing devices. Such a processing device may be a microprocessor, micro-controller, digital signal processor, microcomputer, central processing unit, field programmable gate array, programmable logic device, state machine, logic circuitry, analog circuitry, digital circuitry, and/or any device that manipulates signals (analog and/or digital) based on hard coding of the circuitry and/or operational instructions. The processing module, module, processing circuit, processing system, and/or processing unit may be, or further include, memory and/or an integrated memory element, which may be a single memory device, a plurality of memory devices, and/or embedded circuitry of another processing module, module, processing circuit, processing system, and/or processing unit. Such a memory device may be a read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, cache memory, and/or any device that stores digital information. Note that if the processing module, module, processing circuit, processing system, and/or processing unit includes more than one processing device, the processing devices may be centrally located (e.g., directly coupled together via a wired and/or wireless bus structure) or may be distributedly located (e.g., cloud computing via indirect coupling via a local area network and/or a wide area network). Further note that if the processing module, module, processing circuit, processing system, and/or processing unit implements one or more of its functions via a state machine, analog circuitry, digital circuitry, and/or logic circuitry, the memory and/or memory element storing the corresponding operational instructions may be embedded within, or external to, the circuitry comprising the state machine, analog circuitry, digital circuitry, and/or logic circuitry. Still further note that, the memory element may store, and the processing module, module, processing circuit, processing system, and/or processing unit executes, hard coded and/or operational instructions corresponding to at least some of the steps and/or functions illustrated in one or more of the Figures. Such a memory device or memory element can be included in an article of manufacture. 
     One or more embodiments have been described above with the aid of method steps illustrating the performance of specified functions and relationships thereof. The boundaries and sequence of these functional building blocks and method steps have been arbitrarily defined herein for convenience of description. Alternate boundaries and sequences can be defined so long as the specified functions and relationships are appropriately performed. Any such alternate boundaries or sequences are thus within the scope and spirit of the claims. Further, the boundaries of these functional building blocks have been arbitrarily defined for convenience of description. Alternate boundaries could be defined as long as the certain significant functions are appropriately performed. Similarly, flow diagram blocks may also have been arbitrarily defined herein to illustrate certain significant functionality. 
     To the extent used, the flow diagram block boundaries and sequence could have been defined otherwise and still perform the certain significant functionality. Such alternate definitions of both functional building blocks and flow diagram blocks and sequences are thus within the scope and spirit of the claims. One of average skill in the art will also recognize that the functional building blocks, and other illustrative blocks, modules and components herein, can be implemented as illustrated or by discrete components, application specific integrated circuits, processors executing appropriate software and the like or any combination thereof. 
     In addition, a flow diagram may include a “start” and/or “continue” indication. The “start” and “continue” indications reflect that the steps presented can optionally be incorporated in or otherwise used in conjunction with other routines. In this context, “start” indicates the beginning of the first step presented and may be preceded by other activities not specifically shown. Further, the “continue” indication reflects that the steps presented may be performed multiple times and/or may be succeeded by other activities not specifically shown. Further, while a flow diagram indicates a particular ordering of steps, other orderings are likewise possible provided that the principles of causality are maintained. 
     The one or more embodiments are used herein to illustrate one or more aspects, one or more features, one or more concepts, and/or one or more examples. A physical embodiment of an apparatus, an article of manufacture, a machine, and/or of a process may include one or more of the aspects, features, concepts, examples, etc. described with reference to one or more of the embodiments discussed herein. Further, from figure to figure, the embodiments may incorporate the same or similarly named functions, steps, modules, etc. that may use the same or different reference numbers and, as such, the functions, steps, modules, etc. may be the same or similar functions, steps, modules, etc. or different ones. 
     Unless specifically stated to the contra, signals to, from, and/or between elements in a figure of any of the figures presented herein may be analog or digital, continuous time or discrete time, and single-ended or differential. For instance, if a signal path is shown as a single-ended path, it also represents a differential signal path. Similarly, if a signal path is shown as a differential path, it also represents a single-ended signal path. While one or more particular architectures are described herein, other architectures can likewise be implemented that use one or more data buses not expressly shown, direct connectivity between elements, and/or indirect coupling between other elements as recognized by one of average skill in the art. 
     The term “module” is used in the description of one or more of the embodiments. A module implements one or more functions via a device such as a processor or other processing device or other hardware that may include or operate in association with a memory that stores operational instructions. A module may operate independently and/or in conjunction with software and/or firmware. As also used herein, a module may contain one or more sub-modules, each of which may be one or more modules. 
     As may further be used herein, a non-transitory computer readable memory includes one or more memory elements. A memory element may be a separate memory device, multiple memory devices, or a set of memory locations within a memory device. Such a memory device may be a read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, cache memory, and/or any device that stores digital information. The memory device may be in a form a solid-state memory, a hard drive memory, cloud memory, thumb drive, server memory, computing device memory, and/or other physical medium for storing digital information. 
     While particular combinations of various functions and features of the one or more embodiments have been expressly described herein, other combinations of these features and functions are likewise possible. The present disclosure is not limited by the particular examples disclosed herein and expressly incorporates these other combinations.