Thursday, February 16, 2012

ARISSat-1 Analysis - Quasi Correlated Telemetry

The next logical step in the analysis of ARISSat-1 is to correlate the collected telemetry and SSTV data with the orbits that we can derive from the Keplerian elements.  The first step was to obtain the available telemetry data from the amsat ftp site.  The data is provided in csv format and is spread across several different files.  The list of files should look similar to this (not including all.csv):

20110803.csv 20110829.csv 20110924.csv 20111020.csv 20111115.csv 20111211.csv
20110804.csv 20110830.csv 20110925.csv 20111021.csv 20111116.csv 20111212.csv
20110805.csv 20110831.csv 20110926.csv 20111022.csv 20111117.csv 20111213.csv
20110806.csv 20110901.csv 20110927.csv 20111023.csv 20111118.csv 20111214.csv
20110807.csv 20110902.csv 20110928.csv 20111024.csv 20111119.csv 20111215.csv
20110808.csv 20110903.csv 20110929.csv 20111025.csv 20111120.csv 20111216.csv
20110809.csv 20110904.csv 20110930.csv 20111026.csv 20111121.csv 20111217.csv
20110810.csv 20110905.csv 20111001.csv 20111027.csv 20111122.csv 20111218.csv
20110811.csv 20110906.csv 20111002.csv 20111028.csv 20111123.csv 20111219.csv
20110812.csv 20110907.csv 20111003.csv 20111029.csv 20111124.csv 20111220.csv
20110813.csv 20110908.csv 20111004.csv 20111030.csv 20111125.csv 20111221.csv
20110814.csv 20110909.csv 20111005.csv 20111031.csv 20111126.csv 20111222.csv
20110815.csv 20110910.csv 20111006.csv 20111101.csv 20111127.csv 20111223.csv
20110816.csv 20110911.csv 20111007.csv 20111102.csv 20111128.csv 20111224.csv
20110817.csv 20110912.csv 20111008.csv 20111103.csv 20111129.csv 20111225.csv
20110818.csv 20110913.csv 20111009.csv 20111104.csv 20111130.csv 20111226.csv
20110819.csv 20110914.csv 20111010.csv 20111105.csv 20111201.csv 20111227.csv
20110820.csv 20110915.csv 20111011.csv 20111106.csv 20111202.csv 20111228.csv
20110821.csv 20110916.csv 20111012.csv 20111107.csv 20111203.csv 20111229.csv
20110822.csv 20110917.csv 20111013.csv 20111108.csv 20111204.csv 20111230.csv
20110823.csv 20110918.csv 20111014.csv 20111109.csv 20111205.csv 20111231.csv
20110824.csv 20110919.csv 20111015.csv 20111110.csv 20111206.csv 20120101.csv
20110825.csv 20110920.csv 20111016.csv 20111111.csv 20111207.csv 20120102.csv
20110826.csv 20110921.csv 20111017.csv 20111112.csv 20111208.csv 20120103.csv
20110827.csv 20110922.csv 20111018.csv 20111113.csv 20111209.csv 20120104.csv
20110828.csv 20110923.csv 20111019.csv 20111114.csv 20111210.csv all.csv

I generated the file named 'all.csv' using a script.  This file contains the data from all available .csv files in date/time order (and it has a single csv header).  The content of all.csv looks very similar to what you see below:

Actual UTC,Submitter,Met,DaysHoursMinutesSeconds,Mode,Batt V,Batt Cur,PSU Vdd,2.5V ref,Charging A-h,DisWed
03 Aug 2011 22:33:51 UTC,JA0CAW,13874,00d:03h:51m:14s,HIGH PWR,34.162,0.445,5.054,5.054, 0.762, 0.2Wed 03 Aug 2011 22:34:19 UTC,JA0CAW,13902,00d:03h:51m:42s,HIGH PWR,34.241,0.428,5.054,5.054, 0.765, 0.2Wed 03 Aug 2011 22:34:40 UTC,JA0CAW,13924,00d:03h:52m:04s,HIGH PWR,34.122,0.276,5.054,5.054, 0.767, 0.2Wed 03 Aug 2011 22:34:54 UTC,JA0CAW,13938,00d:03h:52m:18s,HIGH PWR,34.281,0.416,5.054,5.054, 0.769, 0.2Wed 03 Aug 2011 22:35:30 UTC,JA0CAW,13973,00d:03h:52m:53s,HIGH PWR,34.241,0.379,5.054,5.054, 0.773, 0.

The first line consists of a very large list of field names, separated by columns.  These columns are the meat of the telemetry that ARISSat-1 had to offer.  The rest of the lines in the file contain the actual data, also separated by commas.  At this particular moment, I am not very interested in delving into each of these fields.  Right now, I am most interested in plotting the data to see how well the thermistor and solar panel values correlate with my previously generated Eclipse data.  To start analyzing this data I have to make an assumption; namely that the UTC time provided with a single telemetry set is the true flight-time.  The problem here is that this particular UTC value may or may not be the actual UTC time of the telemetry frame.  This value is derived from the computer that collected the telemetry data (which may or may not have occurred in real-time).  For instance, someone may have been outside with their HT and a recorded the ARISSat-1 telemetry signal with their voice recorded.  A day or two later they may have fed this audio into the ARISSat-TLM software and it would have been sent off to the telemetry server.  As a result, the UTC time on the telemetry set may actually reflect a date/time of two days after the data was collected.  This is a problem that needs to be addressed.  To address the problem, we first have to look at the data and understand it.  For my preliminary analysis, I made a huge assumption; namely that the UTC time that is in the first column of these data points is within a second of the real telemetry values.  Making this assumption allows me to use these times to determine the satellites location over Earth.  I can accomplish this by utilizing the Keplerian Element with the epoch closest to the telemetry frame time.  By doing this, I should be able to make a plot of the points where telemetry was collected over time and examine the thermistor and solar panel values.  If they were high while we were in eclipse, we most likely have a bad data point.  The question is, how can we identify these bad data points?  Once we have identified these bad data points, can we approximate the correct place and time for them?  These are the questions we ultimately wish to answer.  We know which particular station collected the data points and in some cases we also know the stations geographic location.  This data may help us on our journey.

To get started, I wrote some code that dumps out the telemetry data points and displayed them along-side my previous eclipse dataset.  The image below is a snapshot over the United States of America during August 5.  Each yellow dot represents an individual telemetry frame that was collected.

Each individual telemetry frame can be identified by its date, time and location during orbit.  As you zoom in you can start to see the dates and times come into view.  This is a snapshot of some of the telemetry frames that were gathered over the south-east.

And here is a snapshot of some of the telemetry frames that were gathered over the north east.

If you are interested in finding out who collected a particular telemetry frame, all you have to do is click on the spot of interest.  When you do this, a popup will appear that contains all of the raw-telemetry data.  

I have to admit that this is reasonably ugly...  I honestly can't stand it.  So I am going to go away for a few minutes and make it display this data in a "Field: Value" format.  After I do this, we will be in a better position to start looking at data values. Be back in a few!

Update: Ok, i'm back!  The data is now formatted in a more user-friendly format.  Analysis will begin tomorrow, right now I need to sleep!

Update:  And, i'm back again.  I added the ability to filter on any of the CSV fields.  In this image, I am filtering on all the telemetry frames collected by a single call sign out of Florida!

No comments: