[..] L'étude de cas [scg] nouvimage_lptscg

Code
int nouvimage_lpt_scg(){ scltracefa(§, ƒ, ); scltracefc("scl-%s (%s) : %s\n\n", sclver(), sclsec(), temps_char(0)); // Définition de la grille station double satlon_deg=-4.649509, satlat_deg=0, η=2.2, cglat_deg=48.0; double stlonmin_deg=-118.0, stlonmax_deg=182.0; double stlatmin_deg=-124.0, stlatmax_deg= 88.0; nouvimage_lpt_scg_(satlon_deg, satlat_deg, η, cglat_deg, "planisphere_stationsTM.png", "flat", 48.356444, 0, stlonmin_deg, stlonmax_deg, stlatmin_deg, stlatmax_deg); //-------------------------------------------------------------------- satlon_deg=-3; satlat_deg=48.0; η=1.02; cglat_deg=48.0; stlonmin_deg=-5.45; stlonmax_deg=-0.75; stlatmin_deg=46.75; stlatmax_deg=48.91; nouvimage_lpt_scg_(satlon_deg, satlat_deg, η, cglat_deg, "College-BZH-5-1.jpg.png", "lcon", /**/stlonmax_deg, (stlatmin_deg+stlatmax_deg)/2, stlonmin_deg, stlonmax_deg, stlatmin_deg, stlatmax_deg); //-------------------------------------------------------------------- satlon_deg=-3; satlat_deg=48.0; η=1.02; cglat_deg=48.0; stlonmin_deg=-5.34; stlonmax_deg=-0.8; stlatmin_deg=46.8; stlatmax_deg=48.7; nouvimage_lpt_scg_(satlon_deg, satlat_deg, η, cglat_deg, "College-BZH-5-1.jpg.png", "lazi", 3, 48.0, stlonmin_deg, stlonmax_deg, stlatmin_deg, stlatmax_deg); scltracefe(§, ƒ, ); return 0; } /* ƒ décorée par 🔬 le 22-02-2025 15:45:43 */
int nouvimage_lpt_scg_(double satlon_deg, double satlat_deg, double η, double cglat_deg, const char *phgname, const char *cproj, double phglon_deg, double phglat_deg, double phglona_deg, double phglone_deg, double phglata_deg, double phglate_deg){ double satxe_m, satye_m, satze_m; int ierr=-1; scltracefa(§, ƒ, ); // Coordonnées Satellite 🛰 double satlon_rad=satlon_deg/180*π; double satlat_rad=satlat_deg/180*π; double satalt_m=(η-1)*sclrtm_m(); llac_xyze(1, &satlon_rad, &satlat_rad, &satalt_m, &satxe_m, &satye_m, &satze_m); // Coordonnées du centrage géographique 🗺 double cglon_deg=satlon_deg, cglon_rad=cglon_deg/180*π; double cglat_rad=cglat_deg/180*π; double cgalt_m = 0; double phglona_rad=phglona_deg/180*π; double phglone_rad=phglone_deg/180*π; double phglata_rad=phglata_deg/180*π; double phglate_rad=phglate_deg/180*π; double phglon_rad=phglon_deg/180*π; double phglat_rad=phglat_deg/180*π; //--------------------------------------------------------------------- // Dynamique projetée double cxa, cxe, cya, cye; llaeg_proj(phglona_rad, phglone_rad, phglata_rad, phglate_rad, cproj, phglon_rad, phglat_rad, phglat_rad, &cxa, &cxe, &cya, &cye); //--------------------------------------------------------------------- char *phgpath=; strstag(&phgpath, ".\\don\\img\\", phgname, ); char **repnom = frepnom(phgpath); char *phgid = ; strstag(&phgid, repnom[2], "-", cproj, ); char *imgname=, *imgpath=; strstag(&imgname, phgid, "-inaxis.pdf", ); strstag(&imgpath, ".\\srt\\", imgname, ); phot_dis(imgpath, phgpath, "pxmin", cxa, "pxmax", cxe, "pymin", cya, "pymax", cye, "geographic", cproj, "linespeca", "-a", "subtitlex", imgname, "linespecw", "-p", "france", "on" , "linespecf", "-h", "image", "inaxis", "satlonrad", phglon_rad, "satlatrad", phglat_rad, /*"sataltm", satalt_m,*/ "cntrlatrad", phglat_rad, ); // Chargement de l'image int imgi=-1, widthn, widthi, heightn, heighti; chargimage_lpt(phgpath, &imgi, &widthn, &heightn); int widthm=widthn-1, heightm=heightn-1; double dwidthm=(double)widthm, dheightm=(double)heightm; double cgx=0, cgy=0; int visn = 1001; double *visx=(double*)malloc(visn*sizeof(double)), *visy=(double*)malloc(visn*sizeof(double)); int *visin = (int*)malloc(visn*sizeof(int)); covisible(satxe_m, satye_m, satze_m, satlon_rad, visn, visx, visy); llag_absg(visn, visx, visy, , satlon_rad, satlat_rad, satalt_m, cglon_rad, cglat_rad, cgalt_m, visin, visx, visy); double xmin=mintab(visn,visx,), xmax=maxtab(visn,visx,); double ymin=mintab(visn,visy,), ymax=maxtab(visn,visy,); double yeps=(ymax-ymin)*1/100; ymin=ymin-yeps; ymax=ymax+yeps; double xr = (ymax-ymin)/1400.0*1980.0; double xc = (xmin+xmax)/2; xmin=xc-xr/2; xmax=xc+xr/2; // Creation de l'image projetee int imgj=-1, colx=1980, colm=colx-1, coli, rowx=1400, rowm=rowx-1, rowi, layx=32; nouvimage_lpt(colx, rowx, layx, &imgj); int r=0, v=0, b=0; double dti, dtk, dcolm=(double)colm, drowm=(double)rowm; double clon, clat; int stin; double cx, cy, px, py; for(rowi=0;rowi<rowx;rowi++){ dti=(double)rowi; dtk=(double)(rowm-rowi); // Formulation barycentrique (meilleure precision) cy = (ymax*dtk + ymin*dti)/drowm; for(coli=0;coli<colx;coli++){ dti=(double)coli; dtk=(double)(colm-coli); // Formulation barycentrique (meilleure precision) cx = (xmin*dtk + xmax*dti)/dcolm; // Coodonnees geographiques du pixel projete absg_llg(1, &cx, &cy, satlon_rad, satlat_rad, satalt_m, cglon_rad, cglat_rad, cgalt_m, &stin, &clon, &clat); // Pixel if(stin>0){ llg_proj(clon, clat, cproj, phglon_rad, phglat_rad, phglat_rad, &px, &py); /*widthi =(int)round( (clon/M_PI*180.0-phglona_deg)*dwidthm / (phglone_deg-phglona_deg));*/ widthi =(int)round( (px-cxa)*dwidthm /(cxe-cxa)); /*heighti=(int)round( (clat/M_PI*180.0-phglata_deg)*dheightm/ (phglate_deg-phglata_deg));*/ heighti=(int)round( (py-cya)*dheightm/(cye-cya)); heighti = heightm-heighti; /*scltracefc("widthi=%d/%d, heighti=%d/%d\n", widthi, widthn, heighti, heightn);*/ //🔬 if((widthi>=0)&&(widthi<widthn)&&(heighti>=0)&&(heighti<heightn)){ recoirvb_lpt(imgi, widthi, heighti, &r, &v, &b); } else{ r=0; v=0; b=0; } } else{ r=0; v=0; b=0; } envoirvb_lpt(imgj, coli, rowi, r, v, b); } } char *eta_chr=num_str(η,5); strstag(&phgpath, ".\\srt\\", phgid, "_eta-", eta_chr, "_proj.png", ); sauvimage_lpt(imgj, phgpath); //--------------------------------------------------------------------- //[>PLOT] //--------------------------------------------------------------------- strstag(&imgname, phgid, "_eta-", eta_chr, "_proj.pdf", ); strstag(&imgpath, "./srt/", imgname, ); char *title = newchar(0, "Projection AB satellite géolocal"); char *titlex = ; char *cglon_chr = num_str(cglon_deg,5); char *cglat_chr = num_str(cglat_deg,5); strstag(&titlex, "Centrage lon.=", cglon_chr, " [deg] lat.=", cglat_chr, " [deg]", ); char *subtitle = ; char *satlon_chr = num_str(satlon_deg,5); char *satlat_chr = num_str(satlat_deg,5); strstag(&subtitle, "Satellite lon.=", satlon_chr, " [deg] lat.=", satlat_chr, " [deg]", ); char *subtitlex = ; char *satalt_chr = num_str(satalt_m/103,5); strstag(&subtitlex, "Satellite alt.=", satalt_chr, " [km]", ); phot_dis(imgpath, phgpath, "curve", 1, &cgx, &cgy, "linespec", "n+", "title", title, "titlex", titlex, "subtitlex", subtitlex, "subtitle", subtitle, "geographic", "absg", "linespecw", "-p", "axis", "on", /*"axis", "equal",*/ "pxmin", xmin, "pxmax", xmax, "pymin", ymin, "pymax", ymax, "image", "inaxis", "linespeca", "-a", "satlonrad", satlon_rad, "satlatrad", satlat_rad, "sataltm", satalt_m, "cntrlonrad", cglon_rad, "cntrlatrad", cglat_rad, "cntraltm", cgalt_m, "france", "on", "linespecf", "-t", ); //--------------------------------------------------------------------- //[<PLOT] //--------------------------------------------------------------------- //--------------------------------------------------------------------- //[>LIBERE MEMOIRE] //--------------------------------------------------------------------- free(imgname); imgname=; free(imgpath); imgpath=; free(phgpath); phgpath=; free(title); title=; free(subtitle); subtitle=; free(subtitlex); subtitlex=; free(visx); visx=; free(visy); visy=; free(visin); visin=; librimage_lpt(imgi); librimage_lpt(imgj); deletemat(4, (void***)&repnom); repnom=; phgid=; //--------------------------------------------------------------------- //[<LIBERE MEMOIRE] //--------------------------------------------------------------------- scltracefe(§, ƒ, ); return 0; } /* ƒ décorée par 🔬 le 22-02-2025 15:45:43 */
Sortie

©️ CNES 🚀

©️ Mikael Couteller

©️ Mikael Couteller
[>./src/sclimg.lpt.scg.c.nouvimage_lpt_scg] scl-25.02 (twin64) : 22-02-2025 15:45:43 [>./src/sclimg.lpt.scg.c.nouvimage_lpt_scg_] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< << END OF DISLIN / VERSION 11.3.2 << << Date : 22.02.2025 Time : 15:45:49 Pageformat: DA4L << << Vectors : 1518980 Warnings: 0 Fileformat: PDF << << Metafile: .\srt\planisphere_stationsTM-flat-inaxis.pdf << <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< << END OF DISLIN / VERSION 11.3.2 << << Date : 22.02.2025 Time : 15:45:53 Pageformat: DA4L << << Vectors : 17871 Warnings: 0 Fileformat: PDF << << Metafile: ./srt/planisphere_stationsTM-flat_eta-2.2_proj.p << <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< [<./src/sclimg.lpt.scg.c.nouvimage_lpt_scg_] [>./src/sclimg.lpt.scg.c.nouvimage_lpt_scg_] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< << END OF DISLIN / VERSION 11.3.2 << << Date : 22.02.2025 Time : 15:45:54 Pageformat: DA4L << << Vectors : 7450 Warnings: 0 Fileformat: PDF << << Metafile: .\srt\College-BZH-5-1.jpg-lcon-inaxis.pdf << <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< << END OF DISLIN / VERSION 11.3.2 << << Date : 22.02.2025 Time : 15:46:08 Pageformat: DA4L << << Vectors : 12070 Warnings: 0 Fileformat: PDF << << Metafile: ./srt/College-BZH-5-1.jpg-lcon_eta-1.02_proj.pdf << <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< [<./src/sclimg.lpt.scg.c.nouvimage_lpt_scg_] [>./src/sclimg.lpt.scg.c.nouvimage_lpt_scg_] <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< << END OF DISLIN / VERSION 11.3.2 << << Date : 22.02.2025 Time : 15:46:09 Pageformat: DA4L << << Vectors : 9490 Warnings: 0 Fileformat: PDF << << Metafile: .\srt\College-BZH-5-1.jpg-lazi-inaxis.pdf << <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< << END OF DISLIN / VERSION 11.3.2 << << Date : 22.02.2025 Time : 15:46:14 Pageformat: DA4L << << Vectors : 12070 Warnings: 0 Fileformat: PDF << << Metafile: ./srt/College-BZH-5-1.jpg-lazi_eta-1.02_proj.pdf << <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< [<./src/sclimg.lpt.scg.c.nouvimage_lpt_scg_] [<./src/sclimg.lpt.scg.c.nouvimage_lpt_scg]