diff --git a/satschedule.py b/satschedule.py index ba02709..86281fe 100644 --- a/satschedule.py +++ b/satschedule.py @@ -5,12 +5,12 @@ import time import datetime -ppmshift = '1' -name = sys.argv[1].upper() -input_sample_rate = '48000' -output_sample_rate = '11025' -gain = '40' -gain_lower_pass = gain +ppmshift = '1' #adjust this if you don't have a TCXO equipped RTLSDR +name = sys.argv[1].upper() #what satellite we're using +input_sample_rate = '48000' #actually the bandwidth of the audio sample we're taking from the RTLSDR +output_sample_rate = '11025' #what we downconvert to to play nicely with wxtoimg +gain = '40' #software gain +gain_lower_pass = gain #we can add more or less gain if a satellite is at a lower elevation, currently disabled gain_lower_pass_requirement = 40 data = json.load(open('satpredict.txt')) @@ -18,8 +18,11 @@ data = json.load(open('satpredict.txt')) af_folder = '/tmp/' output_folder = '~/sat_output/' -wxtoimg_options = ['HVCT', 'MCIR', 'NO'] #['ZA', 'HVCT', 'therm'] +#this line is depreciated, make it a zero element array to do rtl_power surveys of the downline band +wxtoimg_options = ['HVCT', 'MCIR', 'NO'] +#set options for various to-bash lines +#I don't recommend touching any of these rtl_fm_options = { '-f':data[name]['frequency'], '-M':'fm', '-p':ppmshift, @@ -29,13 +32,14 @@ rtl_fm_options = { '-f':data[name]['frequency'], '-E': 'dc', '-A': 'fast' } -rtl_power_options = { '-f':'137M:138M:4k', +rtl_power_options = { '-f':'136.9M:138.1M:4k', '-g':gain, '-i':'1s', '-e':str(data[name]['duration_seconds']) + 's', '-p':ppmshift, '-c':'0.2' } +#I REALLY don't recommend touching these, stuff breaks without it and I can't explain why sox_options = [ '-b16', '-c1', '-V1', @@ -43,6 +47,7 @@ sox_options = [ '-b16', '-r ' + input_sample_rate, '-t raw' ] +#depreciated def filename(satname, part): if(part != ''): return satname + '_' + part + '.wav' @@ -58,12 +63,16 @@ def convert_time( unixtime ): int(unixtime) ).strftime('%H:%M %Y-%m-%d') +#gain adjustment based on pass elevationg if( data[name]['elevation'] < gain_lower_pass_requirement ): gain = gain_lower_pass +#a bash line timeoutstr = 'timeout ' + str(data[name]['duration_seconds']) +#a filename filename = datestamp(data[name]['start_unix']) + name + '_' + str(int(data[name]['elevation'])) +#I may or may not have forgotten to specify you need the heatmap.py from the rtl_power page on keenerd. if( len(wxtoimg_options) == 0 ): rtlpower = 'rtl_power -f 137M:138M:4k -g ' + gain + ' -i 1s -e ' + str(data[name]['duration_seconds']) + 's -p ' + ppmshift + ' -c 0.2 ' + output_folder + filename + '.csv' @@ -88,7 +97,7 @@ else: print timeoutstr, rtlstr, af_folder + filename + '.raw' print soxstr, af_folder + filename + '.raw', af_folder + filename + '.wav', 'rate 11025' print 'touch -r', af_folder + filename + '.raw', af_folder + filename + '.wav' - print 'bash', 'render.sh', af_folder + filename + '.wav', data[name]['start_unix']+60 #+60 is just for wxmap to work properly + print 'bash', 'render.sh', af_folder + filename + '.wav' f = open(name + '_sched.txt', 'w') f.write(convert_time(data[name]['start_unix']))