// Utilisation de SOPHYA pour faciliter les tests ... #include "sopnamsp.h" #include "machdefs.h" // include standard c/c++ #include #include #include #include #include #include "pexceptions.h" // les exceptions SOPHYA // Include sophya des tableaux #include "tvector.h" // Pour l'utilisation des classes TArray, TMatrix , TVector #include "fioarr.h" // Pour IO PPF TArray #include "sopemtx.h" #include "matharr.h" #include "tarrinit.h" // Pour l'utilisation des classes TArray, TMatrix , TVector // include sophya mesure ressource CPU/memoire ... #include "resusage.h" #include "ctimer.h" #include "timing.h" // include mini-fits lib #include "minifits.h" int main(int narg, char* arg[]) { // Sophya modules initialization TArrayInitiator _inia; //------- AU LIEU DE ------> SophyaInit(); InitTim(); // Initializing the CPU timer cout << " ---------- tstminifits.cc Start ------------- " << endl; int rc = 0; try { { cout << "1/ Creation tableau " << endl; size_t sx = 300; size_t sy = 200; TArray ta(sx, sy); TArray arr(sx, sy); ta = RegularSequence(0.,0.5); ta.Show(); arr = RandomSequence(RandomSequence::Gaussian, 510.,30.); arr.Show(); cout << "2/ ecriture tableaux ta (int_2) arr (r_4) ds tmf.ppf " << endl; POutPersist po("tmf.ppf"); po << ta << arr; cout << "3/ ecriture tableau ds tmf.fits " << endl; { MiniFITSFile mff; mff.setDTypeNaxis(MF_Float32, sx, sy); mff.Open("tmf.fits", MF_Write); // Exemple d'ajout d'information dans l'entete FITS mff.AddKeyI("CleI_A", 12); mff.AddKeyD("CleD_B", 3.1415, " Valeur de Pi"); mff.AddKeyS("CleS_C", "Prog. tstminifits", " Cle de type string"); // Ajout de date-heure dans l'entete FITS TimeStamp tsc; string cdtu=tsc.ToString(); mff.AddKeyS("DATEOBS", cdtu.c_str(), " Observation Time (YYYY-MM-DDThh:mm:ss UT) "); mff.WriteI(ta.Data(), sx*sy); } cout << "3.b/ ecriture tableau arr (r_4) ds tmf2.fits " << endl; { MiniFITSFile mff; mff.setDTypeNaxis(MF_Int16, sx, sy); mff.Open("tmf2.fits", MF_Write); TimeStamp tsc; string cdtu=tsc.ToString(); mff.AddKeyS("DATE", cdtu.c_str(), " File Creation time(YYYY-MM-DDThh:mm:ss UT) "); mff.WriteF(arr.Data(), sx*sy); } cout << "3.c/ FIN ecriture tableau ds tmf.fits " << endl; } // -------------- Ecriture de bytes par morceaux { cout << "4/ Creation tableau uint_1" << endl; size_t sx = 178; size_t sy = 14; uint_1* data = new uint_1[sx]; MiniFITSFile mff("tmfb.fits", MF_Write); for(int k=0; k ta(sx, sy); for(int k=0; k>>> tstminifits.cc ------- FIN ----------- RC=" << rc << endl; PrtTim("FIN tstminifits.cc"); return rc; }