Home / Observing / Radio / Meteor / Spectrum Lab

Spectrum Lab set-up for Meteor Observing


Spectrum Lab comes with a basic scripting language I have set this up to complete the following tasks for me.
  1. Measure peak signal, noise and frequency of peak signal in the band of frequencies I am interested in
  2. Test if the signal is strong enough to be a meteor
  3. Log the meteor in 3 seperate files
    1. a file that lists the particulars for every meteor
    2. a file that logs the hourly meteor rate
    3. a file that logs the hourly meteor rate and a few other details
  4. Save an image of the waterfall with the meteor on
  5. Save the audio that contains the meteor
  6. Save an image of the plotter showing the signal level, noise and trigger level
  7. Mark the waterfall with the meteors details
  8. Periodically take an image of the waterfall so that I hae 24Hrs coverage (I use this during testing)

I also use Spectrum Lab to continually record the signal strength, noise and trigger level to a CSV file.

The main script (points 1-7 above) uses Spectrum Lab's 'conditional actions' and this is explained below.

Conditional Actions for Spectrum Lab

Variables

A=Noise value
Sig=Signal Value
C= duration of current meteor, if C =1 then this is a new meteor
D = total duration of all meteors for the hour
E = Hourly meteor count
h1 = holds mmss of last test
L = current hour of last test
t2 = flag to ensure RMOB files are only written once per hour
q2 = holds YYYYMMDD of last test
Name=used to record filename for WAV and JPG files
Mtime = time meteor first detected, this is stored for use in file names etc.
Msig = the signal strength that triggered the meteor
Mfreq = the Frequency that triggered the meteor
Mnoise = the noise when the meteor was triggered
Z = holds the longest duration for the whole hour
Dir = Holds the directory where the logged data will be held
low = lowest frequency to monitor
high = highest frequency to monitor

Script

if( (initialising) ) then F=1:A=0:Sig=0:C=0:D=0:E=0:L=0:t2=0:Z=0:MName="Meteor":Dir="c:\\spectrum\\meteorlog\\":Mtime=0: MSig=0: MFreq=0:Freq=0:MNoise=0:low =1740:high=2020
Set some variables, change the values in pink to the required bandwidth where your meteors occur, note this is not the frequency your receive is set to it is the audio frequency input into your PC sound card.

if(always ) then A=noise(low,high):Sig=peak_a(low,high):Freq=peak_f(low,high):q2=str("YYYYMMDD",now):L=str("hh",now):h1=str("mmss",now)
Gets some measurements and values.

if( (Sig>(A+17)) ) then C=C+1:D=D+1: timer1.restart(60):timer2.restart(10):timer3.restart(5):timer0.restart(2)
This tests for a meteor, if one is found C and D are incremented and the timers started, the number in pink determines how much above the noise a signal needs to be to be considered as a meteor.
Timer0 = 2s; used to check the meteor has ended, i.e if the meteor can have a gap of up to 2s and still be counted as a single meteor
Timer1 = 60s; used to wait 1 min after the meteor ends so the image will not be right at the top of the page when the waterfall is saved
Timer2 = 10s; used to trigger the end of the wav file 10s after the meteor ends
Timer3 = 5s; used to print the meteor details

if( (C>Z) ) then Z=C
Stores the highest value for duration of all meteors in the hour

if( (C=1) ) then Mtime=q2+" "+L+h1:MName="Meteor"+q2+L+h1:MSig=sig: MFreq=Freq:MNoise=A
if( (C=1) ) then rec.filename=Dir+Name+".wav"
if( (C=1) ) then rec.trigger=1
This tests if this is a 'new' meteor as opposed to a 'continuing meteor' and gives records the meteor details, the trigger audio recorder is set (this starts saving the WAV file but from 5s earlier than the meteor was detected, the 5s is set in the WAVE file settings).

if( (timer0.expired(1)) ) then E=E+1: sp.print("Meteor No.",E," | Duration:",C):fopen2(Dir+"MeteorLog-"+str("YYYYMM",now)+".dat",a):fp2(Mtime+","+str(MSig)+","+str(MNoise)+","+str(MFreq)+","+str(C)):fclose2:C=0
This draws on the waterfall the meteor number that hour and the measured duration and increments the hourly meteor count, it also records the details in a file.

if((timer3.expired(1) ) then sp.print(Mtime,"| Meteor No.",E," | Signal:",MSig," | Noise:",MNoise," | Frequency:",MFreq)
This draws on the waterfall the details for the meteor.

if( (timer2.expired(1)) ) then rec.trigger=0
This stops the triggered wav file, once stopped it will carry on for a further 10s (this 10s is set in the WAVE File Settings, post trigger)

if( (timer1.expired(1)) ) then capture(Dir+MName+".jpg",75):plot.capture(Dir++MName+"Plot.jpg",75)
This saves the waterfall image and the plot image (and thus the image of the meteor)

if( (val(h1,"####")=5955) ) then t2=t2+1
This checks to see if it is 5s before the hour

if( (t2=1) ) then fopen3(Dir+"RMOB_Dur-"+str("YYYYMM",now)+".dat",a): fp3(q2+L,",",L,",",E,",",D,",",Z,",",A):fclose3:fopen4(Dir+"RMOB-"+str("YYYYMM",now)+".dat",a):fp4(q2+L,",",L,",",E):fclose4
This saves the RMOB files

If((t2=1)) then sp.print("Last hour="+str(E)+" Meteor(s) | Total duration "+str(D)):C=0:E=0:Z=0:D=0
Resets the counters and prints a few details on the waterfall

if( ( val(h1,"####")=0000 ) ) then t2=0
This prevents the RMOB files from being written multiple times as t2 continues to increment until 5956

Summary of files output

For each meteor

MeteorYYYYMMDDhhmmss.jpg - image of the waterfall 60s after the meteor ended, the waterfall has a vertical scale of 5 minutes.
Meteor20110622105245t.jpg click on thumbnail for a full size image
MeteorYYYYMMDDhhmmss.wav - audio file starting 5s before the meteor and finishing 10s later, note for meteors in quick succession these might be in a single file.

Meteor20110622105245.wav
MeteorYYYYMMDDhhmmssPlot.jpg - image of the plotter 60s after the meteor ended, the plotter has a horizontal scale of 5 minutes.
Meteor20110622105245plott.jpg click on thumbnail for a full size image

Update of file called MeteorLog-YYYYMM.dat this is a monthly file, each line of this file contains the following...
Time meteor detected (YYYYMMDD hhmmss),signal strength that triggered meteor, Noise level when meteor triggered, Frequency of trigger event, duration in 'cycles'


Cycles - I believe are a multiple of the evaluation period.
RADIO_Meteor_Cycles.png

On the hour

RMOB_Dur-YYYYMM.dat this is a 'Radio Meteor Observing Bulletin' file see www.rmob.org it is a monthly file and stores ...
Current hour (YYYYMMDDhh), hour (hh), meteors detected in the hour, the total duration of all meteors detected in the hour in 'cycles' (see above), the duration of the longest meteor in the hour, and the Noise measured at 59:55 i.e. 5 seconds before the end of the hour.
Each hour this file is updated with the last hours data.

RMOB-YYYYMM.dat this holds a subset of the data in the other file...
Current hour (YYYYMMDDhh), hour (hh), meteors detected in the hour.
Each hour this files is updated with the last hours data.

Periodic actions

I take an image of the waterfall every 5 minutes , this is also the period displayed by the waterfall so I have images for the whole period.
RADIO_Meteor_Periodic.png
capture("c:\\Spectrum\\meteorlog\\periodic\\"+str("YYYYMMDDhhmm",now)+".jpg",100)

Plotter

I also monitor everything with the built-in plotter
RADIO_Meteor_Plotter.png


Copyright © 2005-2017 Crayford Manor House Astronomical Society Dartford, Kent.Registered Charity Number 1156678. All rights reserved. No part of this website may be reproduced.
Page edited 8 times. Last edit by - SimonTelescopium SimonTelescopium on Jun 29, 2011 3:17 pm. This site contains 560 pages
CMHASD - slmeteorv1