diff --git a/pgm2fits.c b/pgm2fits.c index c4f49a8..3f30c0a 100644 --- a/pgm2fits.c +++ b/pgm2fits.c @@ -219,8 +219,8 @@ int main(int argc,char *argv[]) } s1-=max; s2-=max*max; - avg=s1/(float) ff.nt; - std=sqrt((s2-s1*avg)/(float) (ff.nt-1)); + avg=s1/(float) (ff.nt-1); + std=sqrt((s2-s1*avg)/(float) (ff.nt-2)); // Reset masked pixels if (maskin==1 && msk.c[n]==0.0) { @@ -409,7 +409,7 @@ void write_fits(char *filename,struct fourframe ff) // MJD-OBS sprintf(val,"%lf",ff.mjd); qfits_header_add(qh,"MJD-OBS",val," ",NULL); - sprintf(val,"%f",ff.dt[ff.nt-1],ff.dt[0]); + sprintf(val,"%f",ff.dt[ff.nt-1]-ff.dt[0]); qfits_header_add(qh,"EXPTIME",val," ",NULL); sprintf(val,"%d",ff.nt); qfits_header_add(qh,"NFRAMES",val," ",NULL); diff --git a/planscan.c b/planscan.c index 9be2d7b..070e524 100644 --- a/planscan.c +++ b/planscan.c @@ -67,6 +67,20 @@ float semimajoraxis(orbit_t orb) void usage(void) { + printf("planscan -t -c -s -l -i \n"); + printf(" -r -A -S \n\n"); + printf("-t UT Start date/time in yyyy-mm-ddThh:mm:ss [default: now]\n"); + printf("-c Input TLE catalog to use [default: classfd.tle]\n"); + printf("-s Site number from sites.txt [default: 4171]\n"); + printf("-l Search length from UT start in seconds [default: 86400 s]\n"); + printf("-i NORAD number of satellite to select [default: 41334]\n"); + printf("-r Satellite altitude above surface in km [default: mean orbital altitude]\n"); + printf("-A Minimum satellite elevation in degrees [default: 10 degrees]\n"); + printf("-S Maximum solar elevation in degrees [default: -6 degrees\n"); + printf("-d Time step in seconds [default: 60s]\n"); + printf("-C Select on culmination instead of maximum brightness\n"); + printf("-h Shows this help\n"); + return; } diff --git a/reduce.c b/reduce.c index 3ba5fda..be630a4 100644 --- a/reduce.c +++ b/reduce.c @@ -2,6 +2,7 @@ #include #include #include +#include #include "cel.h" #include "cpgplot.h" #include "qfits.h" @@ -653,7 +654,7 @@ int autotrack(char *fileroot,struct observation obs,struct image *img,int cflag) file=fopen(filename,"r"); if (file==NULL) { fprintf(stderr,"ID file %s not found\n",filename); - return; + return -1; } while (fgetline(file,line,LIM)>0) { if (cflag==1 && strstr(line,"classfd")==NULL) @@ -781,7 +782,7 @@ int main(int argc,char *argv[]) if (layer==4) compute_cuts(img.zd,img.mask,img.naxis1*img.naxis2,&zmin,&zmax,lcut,hcut); if (layer==5) { zmin=5.0; - zmax=10.0; + zmax=20.0; } if (layer==0) cpgimag(img.zavg,img.naxis1,img.naxis2,1,img.naxis1,1,img.naxis2,zmin,zmax,tr); diff --git a/runsched.c b/runsched.c index b943e9c..912286f 100644 --- a/runsched.c +++ b/runsched.c @@ -129,14 +129,14 @@ void send_position(char *sra,char *sde) close(skt); // Set restart - file=fopen("/data1/satobs/control/state.txt","w"); + file=fopen("/data2/satobs/control/state.txt","w"); if (file!=NULL) { fprintf(file,"restart"); fclose(file); } // Set position - file=fopen("/data1/satobs/control/position.txt","w"); + file=fopen("/data2/satobs/control/position.txt","w"); if (file!=NULL) { fprintf(file,"%s %s\n",sra,sde); fclose(file); diff --git a/satid.c b/satid.c index b9ad7e3..2fd57cb 100644 --- a/satid.c +++ b/satid.c @@ -108,13 +108,13 @@ void plot_satellites(char *tlefile,struct image img,long satno,double mjd0,float int i; orbit_t orb; struct sat s; - int imode,flag,textflag; + int imode,flag,textflag,sflag; FILE *fp=NULL,*file;; xyz_t satpos,obspos,satvel,sunpos; double mjd,jd,dx,dy,dz; double rx,ry,ra,de,azi,alt,r,t,d; float x,y,x0,y0; - char norad[7],satname[30]; + char norad[7],satname[30],state[16]; float isch; float rsun,rearth,psun,pearth,p; char filename[128]; @@ -145,7 +145,7 @@ void plot_satellites(char *tlefile,struct image img,long satno,double mjd0,float if (imode==SGDP4_ERROR) continue; - for (flag=0,textflag=0,i=0;i-s.psun && s.p-s.pearths.psun) { cpgsls(1); + strcpy(state,"sunlit"); + sflag=1; } // Print name if in viewport @@ -203,8 +208,12 @@ void plot_satellites(char *tlefile,struct image img,long satno,double mjd0,float cpgdraw(x,y); } } - if (textflag==1) - fprintf(file,"%.23s %8.3f %8.3f %8.3f %8.3f %8.5f %s %s\n",img.nfd+1,x0,y0,x,y,img.exptime,norad,tlefile); + if (textflag==1) { + if (sflag==0) + fprintf(file,"%.23s %8.3f %8.3f %8.3f %8.3f %8.5f %s %s eclipsed\n",img.nfd+1,x0,y0,x,y,img.exptime,norad,tlefile); + else + fprintf(file,"%.23s %8.3f %8.3f %8.3f %8.3f %8.5f %s %s sunlit\n",img.nfd+1,x0,y0,x,y,img.exptime,norad,tlefile); + } } fclose(fp); @@ -274,6 +283,7 @@ int main(int argc,char *argv[]) float heat_b[] = {0.0, 0.0, 0.0, 0.3, 1.0}; char text[128]; char *env,filename[128]; + float sx,sy,wx,wy; img=read_fits(argv[1]); @@ -301,6 +311,13 @@ int main(int argc,char *argv[]) zmax=zavg+6*zstd; } + // Sizes + sx=sqrt(img.a[1]*img.a[1]+img.b[1]*img.b[1]); + sy=sqrt(img.a[2]*img.a[2]+img.b[2]*img.b[2]); + wx=img.naxis1*sx/3600.0; + wy=img.naxis2*sy/3600.0; + + if (argc==3) cpgopen(argv[2]); else @@ -312,8 +329,15 @@ int main(int argc,char *argv[]) sprintf(text,"UT Date: %.23s COSPAR ID: %04d",img.nfd+1,img.cospar); cpgmtxt("T",6.0,0.0,0.0,text); sprintf(text,"R.A.: %10.5f (%4.1f'') Decl.: %10.5f (%4.1f'')",img.ra0,img.xrms,img.de0,img.yrms); + if (img.xrms<1e-3 || img.yrms<1e-3 || img.xrms/sx>2.0 || img.yrms/sy>2.0) + cpgsci(2); + else + cpgsci(1); cpgmtxt("T",4.8,0.0,0.0,text); - sprintf(text,"FoV: %.2f\\(2218)x%.2f\\(2218) Scale: %.2f''x%.2f'' pix\\u-1\\d",img.naxis1*sqrt(img.a[1]*img.a[1]+img.b[1]*img.b[1])/3600.0,img.naxis2*sqrt(img.a[2]*img.a[2]+img.b[2]*img.b[2])/3600.0,sqrt(img.a[1]*img.a[1]+img.b[1]*img.b[1]),sqrt(img.a[2]*img.a[2]+img.b[2]*img.b[2])); + cpgsci(1); + + + sprintf(text,"FoV: %.2f\\(2218)x%.2f\\(2218) Scale: %.2f''x%.2f'' pix\\u-1\\d",wx,wy,sx,sy); cpgmtxt("T",3.6,0.0,0.0,text); sprintf(text,"Stat: %5.1f+-%.1f (%.1f-%.1f)",zavg,zstd,zmin,zmax); cpgmtxt("T",2.4,0.0,0.0,text); diff --git a/skymap.c b/skymap.c index cbf4458..acc5bd9 100644 --- a/skymap.c +++ b/skymap.c @@ -2376,9 +2376,14 @@ int plot_skymap(void) plot_apex(35786.0,0.0); plot_apex(39035,63.4); plot_apex(1100,63.4); + // plot_apex(1100,63.4); + // plot_apex(1100,123.0); plot_apex(800,98.7); plot_apex(1100,-63.4); plot_apex(800,-98.7); + // plot_apex(480.0,141.7); + // plot_apex(400.0,40.0); + // plot_apex(320.0,38.0); if (Isatsel>=0 && m.leoflag>=0) skymap_plotsatellite(m.tlefile,Isatsel,m.mjd,m.length);