Satellite data collection
Modern satellites use a bunch of different instruments to collect information about our planet, and beam them back down to earth for scientists to consume and make sense of the world. For Sea Surface Temperature (Sea Surface Skin temperature actually) we use a super precise radiometer to capture this data.
Satellite Data Transmission
There are two common transmission types:
- HRPT (High Resolution Picture Transmission): HRPT is transmitting in L-band (1670-1710 MHz) range and can provide the resolution of 1km per pixel.
- APT (Automatic Picture Transmission): APT is transmitting in VHF (137-138 MHz) range and can provide the lower resolution of 4km per pixel.
A lot of our tests up to now have focused on APT data, its a bit easier to consume, but HRPT is definitely the future and where we want to get to for more accurate temperature values.
Receiver - Scheduler
The scheduler is the main app running on our device. This will be responsible for getting positional data of the device (how accurate we need to be is still in the works). The main purpose of this is actually to ensure we can run the device in a very low power state for as long as possible, and only spin up data recording services when a known satellite is actually close by. Once the satellite is in proximity, we will wake up, and start recording the data being streamed from the satellite. Currently our tests have revolved around recording the data, waiting until all data has been collected, then we process the data. We may look to make this more of a continual stream but more R&D needed.
Depending on the type of receiver antenna we go with, this could also be the app responsible for driving some motors to track the path of the passing satellite.
Processing and signing
In the processing and signing stage, we are effectively encrypting and verifying data at each individual step, outputting a Merkle tree which can be interrogated to establish the data integrity. With accurate device position, time data, and satellite positional data, we can improve our confidence that our device recorded data from the right source. This data is added to the overall signed data collection.
We decode audio file and sign all of the output.
Fragment Creation
We next begin our fragment creation! We take our image file and the metadata decoded from the satellite, and re-project this onto Earth to get accurate latitude and longitude values. We then grid the data as 0.25 degree square grid, with a random offset value generated by the hardware security module (HSM) in our device. As we discussed above, this means two people could get the same image from a satellite, but have a unique collection of fragments, which can all be added together to prove the resulting information is accurate. As part of this step, we can also bin grids that are not relevant for example grids that totally cover a piece of land.
We sign each fragment with the random number generated, lat + lon values of the fragment and a reference to previous data to continue the merkle tree.