int main(int argc,char *argv[]) { char *envstr; FILE *fp; char *code=NULL; int st; int bm,rng; int frang=180,rsep=45,rxrise=100.0; double hgt=150.0; double x,y,z; envstr=getenv("SD_RADAR"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_RADAR' must be defined.\n"); exit(-1); } fp=fopen(envstr,"r"); if (fp==NULL) { fprintf(stderr,"Could not locate radar information file.\n"); exit(-1); } network=RadarLoad(fp); fclose(fp); if (network==NULL) { fprintf(stderr,"Failed to read radar information.\n"); exit(-1); } envstr=getenv("SD_HDWPATH"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_HDWPATH' must be defined.\n"); exit(-1); } RadarLoadHardware(envstr,network); code=argv[1]; bm=atoi(argv[2]); rng=atoi(argv[3]); st=RadarGetID(network,code); site=RadarYMDHMSGetSite(RadarGetRadar(network,st),2002,8,30,10,30,0); RPosCubicGS(1,bm,rng,site,frang,rsep,rxrise,hgt,&x,&y,&z); fprintf(stdout,"RPosCubicGS\n"); fprintf(stdout,"%s bm=%d rng=%d\n",code,bm,rng); fprintf(stdout,"x=%g y=%g z=%g\n",x,y,z); return 0; }
static PyObject * PosCubic(PyRPosObject *self, PyObject *args, PyObject *kwds) { PyObject *list=NULL, *timetuple=NULL; char *radarcode; struct RadarNetwork *network; struct Radar *radar; struct RadarSite *site; int center, bcrd, rcrd; int frang,rsep,rxrise,height; int yr,mo,dy,hr,mt; double sc; int stid; double x,y,z; char *envstr=NULL; FILE *fp; static char *kwlist[] = {"center","bcrd","rcrd","frang","rsep","rxrise","height", "radarcode","radarid","time",NULL}; PyDateTime_IMPORT; center=0; bcrd=1; rcrd=15; frang=1200; rxrise=0; rsep=100; height=300; radarcode="kod"; stid=-1; yr=2008; mo=7; dy=12; hr=12; mt=0; sc=0; if (! PyArg_ParseTupleAndKeywords(args, kwds, "|iiiiiiisiO", kwlist, ¢er,&bcrd,&rcrd,&frang,&rsep,&rxrise,&height,&radarcode,&stid,&timetuple)) return NULL; if ( timetuple != NULL) { if (PyDateTime_Check(timetuple)) { yr=PyDateTime_GET_YEAR(timetuple); mo=PyDateTime_GET_MONTH(timetuple); dy=PyDateTime_GET_DAY(timetuple); hr=PyDateTime_DATE_GET_HOUR(timetuple); mt=PyDateTime_DATE_GET_MINUTE(timetuple); sc=PyDateTime_DATE_GET_SECOND(timetuple); } } envstr=getenv("SD_RADAR"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_RADAR' must be defined.\n"); exit(-1); } fp=fopen(envstr,"r"); if (fp==NULL) { fprintf(stderr,"Could not locate radar information file.\n"); exit(-1); } network=RadarLoad(fp); fclose(fp); if (network==NULL) { fprintf(stderr,"Failed to read radar information.\n"); exit(-1); } envstr=getenv("SD_HDWPATH"); if (envstr==NULL) { fprintf(stderr,"Environment variable 'SD_HDWPATH' must be defined.\n"); exit(-1); } RadarLoadHardware(envstr,network); if (stid==-1) { stid=RadarGetID(network,radarcode); } radar=RadarGetRadar(network,stid); site=RadarYMDHMSGetSite(radar,yr,mo,dy,hr,mt,(int) sc); RPosCubicGS(center,bcrd,rcrd,site,frang,rsep,rxrise,height,&x,&y,&z); list = PyList_New(0); PyList_Append(list,Py_BuildValue("d",x)); PyList_Append(list,Py_BuildValue("d",y)); PyList_Append(list,Py_BuildValue("d",z)); return list; }