From a1c95548eb0443cb3abdbb4f29a5c12c7c1115e0 Mon Sep 17 00:00:00 2001 From: Cees Bassa Date: Fri, 17 Jun 2022 09:49:29 +0200 Subject: [PATCH] Freqlist for rfpng --- rfpng.c | 41 ++++++++++++++++++++++++++--------------- rftrace.c | 2 +- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/rfpng.c b/rfpng.c index 128ef0e..a608752 100644 --- a/rfpng.c +++ b/rfpng.c @@ -24,7 +24,7 @@ void dec2sex(double x,char *s,int f,int len); void time_axis(double *mjd,int n,float xmin,float xmax,float ymin,float ymax); void usage(void); void plot_traces(struct trace *t,int nsat,float foff,int type,int isci); - void filter(struct spectrogram s,int site_id,float sigma,char *filename,int graves); +void filter(struct spectrogram s,int site_id,float sigma,char *filename,int graves); int main(int argc,char *argv[]) { @@ -50,7 +50,7 @@ int main(int argc,char *argv[]) float width=1500,sigma=5.0,foff=0.0; float x,y,x0,y0; char c; - char path[128],xlabel[64],ylabel[64],filename[32],tlefile[128],pngfile[128],datfile[128]; + char path[128],xlabel[64],ylabel[64],filename[32],tlefile[128],pngfile[128],datfile[128],freqlist[128]; int sec,lsec,ssec; char stime[16]; double fmin,fmax,fcen,f; @@ -72,11 +72,17 @@ int main(int argc,char *argv[]) printf("ST_COSPAR environment variable not found.\n"); } env=getenv("ST_TLEDIR"); - sprintf(tlefile,"%s/bulk.tle",env); + if(env==NULL||strlen(env)==0) + env="."; + sprintf(tlefile,"%s/bulk.tle",env); + env=getenv("ST_DATADIR"); + if(env==NULL||strlen(env)==0) + env="."; + sprintf(freqlist,"%s/data/frequencies.txt",env); // Read arguments if (argc>1) { - while ((arg=getopt(argc,argv,"p:f:w:s:l:b:z:hc:C:m:gS:qo:O:"))!=-1) { + while ((arg=getopt(argc,argv,"p:f:w:s:l:b:z:hc:C:m:gS:qo:O:F:"))!=-1) { switch (arg) { case 'p': @@ -103,7 +109,11 @@ int main(int argc,char *argv[]) case 'l': nsub=atoi(optarg); break; - + + case 'F': + strcpy(freqlist,optarg); + break; + case 'w': df0=(double) atof(optarg); break; @@ -167,7 +177,7 @@ int main(int argc,char *argv[]) printf("Read spectrogram\n%d channels, %d subints\nFrequency: %g MHz\nBandwidth: %g MHz\n",s.nchan,s.nsub,s.freq*1e-6,s.samp_rate*1e-6); // Compute traces - t=compute_trace(tlefile,s.mjd,s.nsub,site_id,s.freq*1e-6,s.samp_rate*1e-6,&nsat,graves); + t=compute_trace(tlefile,s.mjd,s.nsub,site_id,s.freq*1e-6,s.samp_rate*1e-6,&nsat,graves,freqlist); printf("Traces for %d objects for location %d\n",nsat,site_id); cpgopen(pngfile); @@ -368,15 +378,16 @@ void time_axis(double *mjd,int n,float xmin,float xmax,float ymin,float ymax) void usage(void) { printf("rfplot: plot RF observations\n\n"); - printf("-p Input path to file /a/b/c_??????.bin\n"); - printf("-s Number of starting subintegration [0]\n"); - printf("-l Number of subintegrations to plot [3600]\n"); - printf("-b Number of subintegrations to bin [1]\n"); - printf("-z Image scaling upper limit [8.0]\n"); - printf("-f Frequency to zoom into (Hz)\n"); - printf("-w Bandwidth to zoom into (Hz)\n"); - printf("-O Frequency offset to apply (Hz) [0]\n"); - printf("-h This help\n"); + printf("-p Input path to file /a/b/c_??????.bin\n"); + printf("-s Number of starting subintegration [0]\n"); + printf("-l Number of subintegrations to plot [3600]\n"); + printf("-b Number of subintegrations to bin [1]\n"); + printf("-z Image scaling upper limit [8.0]\n"); + printf("-f Frequency to zoom into (Hz)\n"); + printf("-w Bandwidth to zoom into (Hz)\n"); + printf("-O Frequency offset to apply (Hz) [0]\n"); + printf("-F List with frequencies [$ST_DATADIR/data/frequencies.txt]\n"); + printf("-h This help\n"); return; } diff --git a/rftrace.c b/rftrace.c index 05f1156..e8219c4 100644 --- a/rftrace.c +++ b/rftrace.c @@ -503,7 +503,7 @@ struct trace *compute_trace(char *tlefile,double *mjd,int n,int site_id,float fr return NULL; } else { for (i=0;;) { - if (fgetline(infile,line,LIM)<=0) + if (fgetline(infile,line,LIM)<=0) break; if (line[0]=='#') continue;