##// END OF EJS Templates
Faraday manual processing improved
Christianpl -
r1774:e7bb496918b2
parent child
Show More
@@ -0,0 +1,37
1 C -*- fortran -*-
2 C This file is autogenerated with f2py (version:2)
3 C It contains Fortran 77 wrappers to fortran functions.
4
5 subroutine f2pywrapspect1 (spect1f2pywrap, omega)
6 external spect1
7 real omega
8 real spect1f2pywrap, spect1
9 spect1f2pywrap = spect1(omega)
10 end
11
12
13 subroutine f2pyinitspec(setupfunc)
14 external setupfunc
15 real te
16 real ti(10)
17 real fi(10)
18 real ven
19 real vin(10)
20 real alpha
21 real dens
22 real bfld
23 integer nion
24 integer wi(10)
25 real ak
26 common /spec/ te,ti,fi,ven,vin,alpha,dens,bfld,nion,wi,ak
27 call setupfunc(te,ti,fi,ven,vin,alpha,dens,bfld,nion,wi,ak)
28 end
29
30 subroutine f2pyinitmode(setupfunc)
31 external setupfunc
32 integer imode
33 common /mode/ imode
34 call setupfunc(imode)
35 end
36
37
This diff has been collapsed as it changes many lines, (797 lines changed) Show them Hide them
@@ -0,0 +1,797
1 /* File: fitacf_acf2module.c
2 * This file is auto-generated with f2py (version:2).
3 * f2py is a Fortran to Python Interface Generator (FPIG), Second Edition,
4 * written by Pearu Peterson <pearu@cens.ioc.ee>.
5 * Generation date: Wed Jan 8 13:23:37 2025
6 * Do not edit this file directly unless you know what you are doing!!!
7 */
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 /*********************** See f2py2e/cfuncs.py: includes ***********************/
14 #include "Python.h"
15 #include <stdarg.h>
16 #include "fortranobject.h"
17 #include <math.h>
18
19 /**************** See f2py2e/rules.py: mod_rules['modulebody'] ****************/
20 static PyObject *fitacf_acf2_error;
21 static PyObject *fitacf_acf2_module;
22
23 /*********************** See f2py2e/cfuncs.py: typedefs ***********************/
24 /*need_typedefs*/
25
26 /****************** See f2py2e/cfuncs.py: typedefs_generated ******************/
27 /*need_typedefs_generated*/
28
29 /********************** See f2py2e/cfuncs.py: cppmacros **********************/
30 #if defined(PREPEND_FORTRAN)
31 #if defined(NO_APPEND_FORTRAN)
32 #if defined(UPPERCASE_FORTRAN)
33 #define F_FUNC(f,F) _##F
34 #else
35 #define F_FUNC(f,F) _##f
36 #endif
37 #else
38 #if defined(UPPERCASE_FORTRAN)
39 #define F_FUNC(f,F) _##F##_
40 #else
41 #define F_FUNC(f,F) _##f##_
42 #endif
43 #endif
44 #else
45 #if defined(NO_APPEND_FORTRAN)
46 #if defined(UPPERCASE_FORTRAN)
47 #define F_FUNC(f,F) F
48 #else
49 #define F_FUNC(f,F) f
50 #endif
51 #else
52 #if defined(UPPERCASE_FORTRAN)
53 #define F_FUNC(f,F) F##_
54 #else
55 #define F_FUNC(f,F) f##_
56 #endif
57 #endif
58 #endif
59 #if defined(UNDERSCORE_G77)
60 #define F_FUNC_US(f,F) F_FUNC(f##_,F##_)
61 #else
62 #define F_FUNC_US(f,F) F_FUNC(f,F)
63 #endif
64
65 #define rank(var) var ## _Rank
66 #define shape(var,dim) var ## _Dims[dim]
67 #define old_rank(var) (PyArray_NDIM((PyArrayObject *)(capi_ ## var ## _tmp)))
68 #define old_shape(var,dim) PyArray_DIM(((PyArrayObject *)(capi_ ## var ## _tmp)),dim)
69 #define fshape(var,dim) shape(var,rank(var)-dim-1)
70 #define len(var) shape(var,0)
71 #define flen(var) fshape(var,0)
72 #define old_size(var) PyArray_SIZE((PyArrayObject *)(capi_ ## var ## _tmp))
73 /* #define index(i) capi_i ## i */
74 #define slen(var) capi_ ## var ## _len
75 #define size(var, ...) f2py_size((PyArrayObject *)(capi_ ## var ## _tmp), ## __VA_ARGS__, -1)
76
77 #define CHECKSCALAR(check,tcheck,name,show,var)\
78 if (!(check)) {\
79 char errstring[256];\
80 sprintf(errstring, "%s: "show, "("tcheck") failed for "name, var);\
81 PyErr_SetString(fitacf_acf2_error,errstring);\
82 /*goto capi_fail;*/\
83 } else
84 #ifdef DEBUGCFUNCS
85 #define CFUNCSMESS(mess) fprintf(stderr,"debug-capi:"mess);
86 #define CFUNCSMESSPY(mess,obj) CFUNCSMESS(mess) \
87 PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
88 fprintf(stderr,"\n");
89 #else
90 #define CFUNCSMESS(mess)
91 #define CFUNCSMESSPY(mess,obj)
92 #endif
93
94 #ifndef max
95 #define max(a,b) ((a > b) ? (a) : (b))
96 #endif
97 #ifndef min
98 #define min(a,b) ((a < b) ? (a) : (b))
99 #endif
100 #ifndef MAX
101 #define MAX(a,b) ((a > b) ? (a) : (b))
102 #endif
103 #ifndef MIN
104 #define MIN(a,b) ((a < b) ? (a) : (b))
105 #endif
106
107 #if defined(PREPEND_FORTRAN)
108 #if defined(NO_APPEND_FORTRAN)
109 #if defined(UPPERCASE_FORTRAN)
110 #define F_WRAPPEDFUNC(f,F) _F2PYWRAP##F
111 #else
112 #define F_WRAPPEDFUNC(f,F) _f2pywrap##f
113 #endif
114 #else
115 #if defined(UPPERCASE_FORTRAN)
116 #define F_WRAPPEDFUNC(f,F) _F2PYWRAP##F##_
117 #else
118 #define F_WRAPPEDFUNC(f,F) _f2pywrap##f##_
119 #endif
120 #endif
121 #else
122 #if defined(NO_APPEND_FORTRAN)
123 #if defined(UPPERCASE_FORTRAN)
124 #define F_WRAPPEDFUNC(f,F) F2PYWRAP##F
125 #else
126 #define F_WRAPPEDFUNC(f,F) f2pywrap##f
127 #endif
128 #else
129 #if defined(UPPERCASE_FORTRAN)
130 #define F_WRAPPEDFUNC(f,F) F2PYWRAP##F##_
131 #else
132 #define F_WRAPPEDFUNC(f,F) f2pywrap##f##_
133 #endif
134 #endif
135 #endif
136 #if defined(UNDERSCORE_G77)
137 #define F_WRAPPEDFUNC_US(f,F) F_WRAPPEDFUNC(f##_,F##_)
138 #else
139 #define F_WRAPPEDFUNC_US(f,F) F_WRAPPEDFUNC(f,F)
140 #endif
141
142
143 /************************ See f2py2e/cfuncs.py: cfuncs ************************/
144 static int double_from_pyobj(double* v,PyObject *obj,const char *errmess) {
145 PyObject* tmp = NULL;
146 if (PyFloat_Check(obj)) {
147 #ifdef __sgi
148 *v = PyFloat_AsDouble(obj);
149 #else
150 *v = PyFloat_AS_DOUBLE(obj);
151 #endif
152 return 1;
153 }
154 tmp = PyNumber_Float(obj);
155 if (tmp) {
156 #ifdef __sgi
157 *v = PyFloat_AsDouble(tmp);
158 #else
159 *v = PyFloat_AS_DOUBLE(tmp);
160 #endif
161 Py_DECREF(tmp);
162 return 1;
163 }
164 if (PyComplex_Check(obj))
165 tmp = PyObject_GetAttrString(obj,"real");
166 else if (PyString_Check(obj) || PyUnicode_Check(obj))
167 /*pass*/;
168 else if (PySequence_Check(obj))
169 tmp = PySequence_GetItem(obj,0);
170 if (tmp) {
171 PyErr_Clear();
172 if (double_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
173 Py_DECREF(tmp);
174 }
175 {
176 PyObject* err = PyErr_Occurred();
177 if (err==NULL) err = fitacf_acf2_error;
178 PyErr_SetString(err,errmess);
179 }
180 return 0;
181 }
182
183 static int f2py_size(PyArrayObject* var, ...)
184 {
185 npy_int sz = 0;
186 npy_int dim;
187 npy_int rank;
188 va_list argp;
189 va_start(argp, var);
190 dim = va_arg(argp, npy_int);
191 if (dim==-1)
192 {
193 sz = PyArray_SIZE(var);
194 }
195 else
196 {
197 rank = PyArray_NDIM(var);
198 if (dim>=1 && dim<=rank)
199 sz = PyArray_DIM(var, dim-1);
200 else
201 fprintf(stderr, "f2py_size: 2nd argument value=%d fails to satisfy 1<=value<=%d. Result will be 0.\n", dim, rank);
202 }
203 va_end(argp);
204 return sz;
205 }
206
207 static int float_from_pyobj(float* v,PyObject *obj,const char *errmess) {
208 double d=0.0;
209 if (double_from_pyobj(&d,obj,errmess)) {
210 *v = (float)d;
211 return 1;
212 }
213 return 0;
214 }
215
216 static int int_from_pyobj(int* v,PyObject *obj,const char *errmess) {
217 PyObject* tmp = NULL;
218 if (PyInt_Check(obj)) {
219 *v = (int)PyInt_AS_LONG(obj);
220 return 1;
221 }
222 tmp = PyNumber_Int(obj);
223 if (tmp) {
224 *v = PyInt_AS_LONG(tmp);
225 Py_DECREF(tmp);
226 return 1;
227 }
228 if (PyComplex_Check(obj))
229 tmp = PyObject_GetAttrString(obj,"real");
230 else if (PyString_Check(obj) || PyUnicode_Check(obj))
231 /*pass*/;
232 else if (PySequence_Check(obj))
233 tmp = PySequence_GetItem(obj,0);
234 if (tmp) {
235 PyErr_Clear();
236 if (int_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
237 Py_DECREF(tmp);
238 }
239 {
240 PyObject* err = PyErr_Occurred();
241 if (err==NULL) err = fitacf_acf2_error;
242 PyErr_SetString(err,errmess);
243 }
244 return 0;
245 }
246
247
248 /********************* See f2py2e/cfuncs.py: userincludes *********************/
249 /*need_userincludes*/
250
251 /********************* See f2py2e/capi_rules.py: usercode *********************/
252
253
254 /* See f2py2e/rules.py */
255 extern void F_FUNC(acf2,ACF2)(float*,float*,float*,float*,float*,float*,float*,int*,int*,float*,float*,float*,float*);
256 extern void F_WRAPPEDFUNC(spect1,SPECT1)(float*,float*);
257 extern void F_FUNC(gaussq,GAUSSQ)(float*,float*);
258 /*eof externroutines*/
259
260 /******************** See f2py2e/capi_rules.py: usercode1 ********************/
261
262
263 /******************* See f2py2e/cb_rules.py: buildcallback *******************/
264 /*need_callbacks*/
265
266 /*********************** See f2py2e/rules.py: buildapi ***********************/
267
268 /************************************ acf2 ************************************/
269 static char doc_f2py_rout_fitacf_acf2_acf2[] = "\
270 acf = acf2(wl,tau,te1,ti1,fi1,ven1,vin1,wi1,alpha1,dens1,bfld1,acf,[nion1])\n\nWrapper for ``acf2``.\
271 \n\nParameters\n----------\n"
272 "wl : input float\n"
273 "tau : input float\n"
274 "te1 : input float\n"
275 "ti1 : input rank-1 array('f') with bounds (nion1)\n"
276 "fi1 : input rank-1 array('f') with bounds (nion1)\n"
277 "ven1 : input float\n"
278 "vin1 : input rank-1 array('f') with bounds (nion1)\n"
279 "wi1 : input rank-1 array('i') with bounds (nion1)\n"
280 "alpha1 : input float\n"
281 "dens1 : input float\n"
282 "bfld1 : input float\n"
283 "acf : input float\n"
284 "\nOther Parameters\n----------------\n"
285 "nion1 : input int, optional\n Default: len(ti1)\n"
286 "\nReturns\n-------\n"
287 "acf : float";
288 /* extern void F_FUNC(acf2,ACF2)(float*,float*,float*,float*,float*,float*,float*,int*,int*,float*,float*,float*,float*); */
289 static PyObject *f2py_rout_fitacf_acf2_acf2(const PyObject *capi_self,
290 PyObject *capi_args,
291 PyObject *capi_keywds,
292 void (*f2py_func)(float*,float*,float*,float*,float*,float*,float*,int*,int*,float*,float*,float*,float*)) {
293 PyObject * volatile capi_buildvalue = NULL;
294 volatile int f2py_success = 1;
295 /*decl*/
296
297 float wl = 0;
298 PyObject *wl_capi = Py_None;
299 float tau = 0;
300 PyObject *tau_capi = Py_None;
301 float te1 = 0;
302 PyObject *te1_capi = Py_None;
303 float *ti1 = NULL;
304 npy_intp ti1_Dims[1] = {-1};
305 const int ti1_Rank = 1;
306 PyArrayObject *capi_ti1_tmp = NULL;
307 int capi_ti1_intent = 0;
308 PyObject *ti1_capi = Py_None;
309 float *fi1 = NULL;
310 npy_intp fi1_Dims[1] = {-1};
311 const int fi1_Rank = 1;
312 PyArrayObject *capi_fi1_tmp = NULL;
313 int capi_fi1_intent = 0;
314 PyObject *fi1_capi = Py_None;
315 float ven1 = 0;
316 PyObject *ven1_capi = Py_None;
317 float *vin1 = NULL;
318 npy_intp vin1_Dims[1] = {-1};
319 const int vin1_Rank = 1;
320 PyArrayObject *capi_vin1_tmp = NULL;
321 int capi_vin1_intent = 0;
322 PyObject *vin1_capi = Py_None;
323 int *wi1 = NULL;
324 npy_intp wi1_Dims[1] = {-1};
325 const int wi1_Rank = 1;
326 PyArrayObject *capi_wi1_tmp = NULL;
327 int capi_wi1_intent = 0;
328 PyObject *wi1_capi = Py_None;
329 int nion1 = 0;
330 PyObject *nion1_capi = Py_None;
331 float alpha1 = 0;
332 PyObject *alpha1_capi = Py_None;
333 float dens1 = 0;
334 PyObject *dens1_capi = Py_None;
335 float bfld1 = 0;
336 PyObject *bfld1_capi = Py_None;
337 float acf = 0;
338 PyObject *acf_capi = Py_None;
339 static char *capi_kwlist[] = {"wl","tau","te1","ti1","fi1","ven1","vin1","wi1","alpha1","dens1","bfld1","acf","nion1",NULL};
340
341 /*routdebugenter*/
342 #ifdef F2PY_REPORT_ATEXIT
343 f2py_start_clock();
344 #endif
345 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
346 "OOOOOOOOOOOO|O:fitacf_acf2.acf2",\
347 capi_kwlist,&wl_capi,&tau_capi,&te1_capi,&ti1_capi,&fi1_capi,&ven1_capi,&vin1_capi,&wi1_capi,&alpha1_capi,&dens1_capi,&bfld1_capi,&acf_capi,&nion1_capi))
348 return NULL;
349 /*frompyobj*/
350 /* Processing variable wl */
351 f2py_success = float_from_pyobj(&wl,wl_capi,"fitacf_acf2.acf2() 1st argument (wl) can't be converted to float");
352 if (f2py_success) {
353 /* Processing variable tau */
354 f2py_success = float_from_pyobj(&tau,tau_capi,"fitacf_acf2.acf2() 2nd argument (tau) can't be converted to float");
355 if (f2py_success) {
356 /* Processing variable te1 */
357 f2py_success = float_from_pyobj(&te1,te1_capi,"fitacf_acf2.acf2() 3rd argument (te1) can't be converted to float");
358 if (f2py_success) {
359 /* Processing variable ti1 */
360 ;
361 capi_ti1_intent |= F2PY_INTENT_IN;
362 capi_ti1_tmp = array_from_pyobj(NPY_FLOAT,ti1_Dims,ti1_Rank,capi_ti1_intent,ti1_capi);
363 if (capi_ti1_tmp == NULL) {
364 PyObject *exc, *val, *tb;
365 PyErr_Fetch(&exc, &val, &tb);
366 PyErr_SetString(exc ? exc : fitacf_acf2_error,"failed in converting 4th argument `ti1' of fitacf_acf2.acf2 to C/Fortran array" );
367 npy_PyErr_ChainExceptionsCause(exc, val, tb);
368 } else {
369 ti1 = (float *)(PyArray_DATA(capi_ti1_tmp));
370
371 /* Processing variable ven1 */
372 f2py_success = float_from_pyobj(&ven1,ven1_capi,"fitacf_acf2.acf2() 6th argument (ven1) can't be converted to float");
373 if (f2py_success) {
374 /* Processing variable alpha1 */
375 f2py_success = float_from_pyobj(&alpha1,alpha1_capi,"fitacf_acf2.acf2() 9th argument (alpha1) can't be converted to float");
376 if (f2py_success) {
377 /* Processing variable dens1 */
378 f2py_success = float_from_pyobj(&dens1,dens1_capi,"fitacf_acf2.acf2() 10th argument (dens1) can't be converted to float");
379 if (f2py_success) {
380 /* Processing variable bfld1 */
381 f2py_success = float_from_pyobj(&bfld1,bfld1_capi,"fitacf_acf2.acf2() 11st argument (bfld1) can't be converted to float");
382 if (f2py_success) {
383 /* Processing variable acf */
384 f2py_success = float_from_pyobj(&acf,acf_capi,"fitacf_acf2.acf2() 12nd argument (acf) can't be converted to float");
385 if (f2py_success) {
386 /* Processing variable nion1 */
387 if (nion1_capi == Py_None) nion1 = len(ti1); else
388 f2py_success = int_from_pyobj(&nion1,nion1_capi,"fitacf_acf2.acf2() 1st keyword (nion1) can't be converted to int");
389 if (f2py_success) {
390 CHECKSCALAR(len(ti1)>=nion1,"len(ti1)>=nion1","1st keyword nion1","acf2:nion1=%d",nion1) {
391 /* Processing variable fi1 */
392 fi1_Dims[0]=nion1;
393 capi_fi1_intent |= F2PY_INTENT_IN;
394 capi_fi1_tmp = array_from_pyobj(NPY_FLOAT,fi1_Dims,fi1_Rank,capi_fi1_intent,fi1_capi);
395 if (capi_fi1_tmp == NULL) {
396 PyObject *exc, *val, *tb;
397 PyErr_Fetch(&exc, &val, &tb);
398 PyErr_SetString(exc ? exc : fitacf_acf2_error,"failed in converting 5th argument `fi1' of fitacf_acf2.acf2 to C/Fortran array" );
399 npy_PyErr_ChainExceptionsCause(exc, val, tb);
400 } else {
401 fi1 = (float *)(PyArray_DATA(capi_fi1_tmp));
402
403 /* Processing variable vin1 */
404 vin1_Dims[0]=nion1;
405 capi_vin1_intent |= F2PY_INTENT_IN;
406 capi_vin1_tmp = array_from_pyobj(NPY_FLOAT,vin1_Dims,vin1_Rank,capi_vin1_intent,vin1_capi);
407 if (capi_vin1_tmp == NULL) {
408 PyObject *exc, *val, *tb;
409 PyErr_Fetch(&exc, &val, &tb);
410 PyErr_SetString(exc ? exc : fitacf_acf2_error,"failed in converting 7th argument `vin1' of fitacf_acf2.acf2 to C/Fortran array" );
411 npy_PyErr_ChainExceptionsCause(exc, val, tb);
412 } else {
413 vin1 = (float *)(PyArray_DATA(capi_vin1_tmp));
414
415 /* Processing variable wi1 */
416 wi1_Dims[0]=nion1;
417 capi_wi1_intent |= F2PY_INTENT_IN;
418 capi_wi1_tmp = array_from_pyobj(NPY_INT,wi1_Dims,wi1_Rank,capi_wi1_intent,wi1_capi);
419 if (capi_wi1_tmp == NULL) {
420 PyObject *exc, *val, *tb;
421 PyErr_Fetch(&exc, &val, &tb);
422 PyErr_SetString(exc ? exc : fitacf_acf2_error,"failed in converting 8th argument `wi1' of fitacf_acf2.acf2 to C/Fortran array" );
423 npy_PyErr_ChainExceptionsCause(exc, val, tb);
424 } else {
425 wi1 = (int *)(PyArray_DATA(capi_wi1_tmp));
426
427 /*end of frompyobj*/
428 #ifdef F2PY_REPORT_ATEXIT
429 f2py_start_call_clock();
430 #endif
431 /*callfortranroutine*/
432 (*f2py_func)(&wl,&tau,&te1,ti1,fi1,&ven1,vin1,wi1,&nion1,&alpha1,&dens1,&bfld1,&acf);
433 if (PyErr_Occurred())
434 f2py_success = 0;
435 #ifdef F2PY_REPORT_ATEXIT
436 f2py_stop_call_clock();
437 #endif
438 /*end of callfortranroutine*/
439 if (f2py_success) {
440 /*pyobjfrom*/
441 /*end of pyobjfrom*/
442 CFUNCSMESS("Building return value.\n");
443 capi_buildvalue = Py_BuildValue("f",acf);
444 /*closepyobjfrom*/
445 /*end of closepyobjfrom*/
446 } /*if (f2py_success) after callfortranroutine*/
447 /*cleanupfrompyobj*/
448 if((PyObject *)capi_wi1_tmp!=wi1_capi) {
449 Py_XDECREF(capi_wi1_tmp); }
450 } /*if (capi_wi1_tmp == NULL) ... else of wi1*/
451 /* End of cleaning variable wi1 */
452 if((PyObject *)capi_vin1_tmp!=vin1_capi) {
453 Py_XDECREF(capi_vin1_tmp); }
454 } /*if (capi_vin1_tmp == NULL) ... else of vin1*/
455 /* End of cleaning variable vin1 */
456 if((PyObject *)capi_fi1_tmp!=fi1_capi) {
457 Py_XDECREF(capi_fi1_tmp); }
458 } /*if (capi_fi1_tmp == NULL) ... else of fi1*/
459 /* End of cleaning variable fi1 */
460 } /*CHECKSCALAR(len(ti1)>=nion1)*/
461 } /*if (f2py_success) of nion1*/
462 /* End of cleaning variable nion1 */
463 } /*if (f2py_success) of acf*/
464 /* End of cleaning variable acf */
465 } /*if (f2py_success) of bfld1*/
466 /* End of cleaning variable bfld1 */
467 } /*if (f2py_success) of dens1*/
468 /* End of cleaning variable dens1 */
469 } /*if (f2py_success) of alpha1*/
470 /* End of cleaning variable alpha1 */
471 } /*if (f2py_success) of ven1*/
472 /* End of cleaning variable ven1 */
473 if((PyObject *)capi_ti1_tmp!=ti1_capi) {
474 Py_XDECREF(capi_ti1_tmp); }
475 } /*if (capi_ti1_tmp == NULL) ... else of ti1*/
476 /* End of cleaning variable ti1 */
477 } /*if (f2py_success) of te1*/
478 /* End of cleaning variable te1 */
479 } /*if (f2py_success) of tau*/
480 /* End of cleaning variable tau */
481 } /*if (f2py_success) of wl*/
482 /* End of cleaning variable wl */
483 /*end of cleanupfrompyobj*/
484 if (capi_buildvalue == NULL) {
485 /*routdebugfailure*/
486 } else {
487 /*routdebugleave*/
488 }
489 CFUNCSMESS("Freeing memory.\n");
490 /*freemem*/
491 #ifdef F2PY_REPORT_ATEXIT
492 f2py_stop_clock();
493 #endif
494 return capi_buildvalue;
495 }
496 /******************************** end of acf2 ********************************/
497
498 /*********************************** spect1 ***********************************/
499 static char doc_f2py_rout_fitacf_acf2_spect1[] = "\
500 spect1 = spect1(omega)\n\nWrapper for ``spect1``.\
501 \n\nParameters\n----------\n"
502 "omega : input float\n"
503 "\nReturns\n-------\n"
504 "spect1 : float";
505 /* extern void F_WRAPPEDFUNC(spect1,SPECT1)(float*,float*); */
506 static PyObject *f2py_rout_fitacf_acf2_spect1(const PyObject *capi_self,
507 PyObject *capi_args,
508 PyObject *capi_keywds,
509 void (*f2py_func)(float*,float*)) {
510 PyObject * volatile capi_buildvalue = NULL;
511 volatile int f2py_success = 1;
512 /*decl*/
513
514 float spect1 = 0;
515 float omega = 0;
516 PyObject *omega_capi = Py_None;
517 static char *capi_kwlist[] = {"omega",NULL};
518
519 /*routdebugenter*/
520 #ifdef F2PY_REPORT_ATEXIT
521 f2py_start_clock();
522 #endif
523 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
524 "O|:fitacf_acf2.spect1",\
525 capi_kwlist,&omega_capi))
526 return NULL;
527 /*frompyobj*/
528 /* Processing variable omega */
529 f2py_success = float_from_pyobj(&omega,omega_capi,"fitacf_acf2.spect1() 1st argument (omega) can't be converted to float");
530 if (f2py_success) {
531 /* Processing variable spect1 */
532 /*end of frompyobj*/
533 #ifdef F2PY_REPORT_ATEXIT
534 f2py_start_call_clock();
535 #endif
536 /*callfortranroutine*/
537 (*f2py_func)(&spect1,&omega);
538 if (PyErr_Occurred())
539 f2py_success = 0;
540 #ifdef F2PY_REPORT_ATEXIT
541 f2py_stop_call_clock();
542 #endif
543 /*end of callfortranroutine*/
544 if (f2py_success) {
545 /*pyobjfrom*/
546 /*end of pyobjfrom*/
547 CFUNCSMESS("Building return value.\n");
548 capi_buildvalue = Py_BuildValue("f",spect1);
549 /*closepyobjfrom*/
550 /*end of closepyobjfrom*/
551 } /*if (f2py_success) after callfortranroutine*/
552 /*cleanupfrompyobj*/
553 /* End of cleaning variable spect1 */
554 } /*if (f2py_success) of omega*/
555 /* End of cleaning variable omega */
556 /*end of cleanupfrompyobj*/
557 if (capi_buildvalue == NULL) {
558 /*routdebugfailure*/
559 } else {
560 /*routdebugleave*/
561 }
562 CFUNCSMESS("Freeing memory.\n");
563 /*freemem*/
564 #ifdef F2PY_REPORT_ATEXIT
565 f2py_stop_clock();
566 #endif
567 return capi_buildvalue;
568 }
569 /******************************* end of spect1 *******************************/
570
571 /*********************************** gaussq ***********************************/
572 static char doc_f2py_rout_fitacf_acf2_gaussq[] = "\
573 gaussq(tau,acf)\n\nWrapper for ``gaussq``.\
574 \n\nParameters\n----------\n"
575 "tau : input float\n"
576 "acf : input float";
577 /* extern void F_FUNC(gaussq,GAUSSQ)(float*,float*); */
578 static PyObject *f2py_rout_fitacf_acf2_gaussq(const PyObject *capi_self,
579 PyObject *capi_args,
580 PyObject *capi_keywds,
581 void (*f2py_func)(float*,float*)) {
582 PyObject * volatile capi_buildvalue = NULL;
583 volatile int f2py_success = 1;
584 /*decl*/
585
586 float tau = 0;
587 PyObject *tau_capi = Py_None;
588 float acf = 0;
589 PyObject *acf_capi = Py_None;
590 static char *capi_kwlist[] = {"tau","acf",NULL};
591
592 /*routdebugenter*/
593 #ifdef F2PY_REPORT_ATEXIT
594 f2py_start_clock();
595 #endif
596 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
597 "OO|:fitacf_acf2.gaussq",\
598 capi_kwlist,&tau_capi,&acf_capi))
599 return NULL;
600 /*frompyobj*/
601 /* Processing variable tau */
602 f2py_success = float_from_pyobj(&tau,tau_capi,"fitacf_acf2.gaussq() 1st argument (tau) can't be converted to float");
603 if (f2py_success) {
604 /* Processing variable acf */
605 f2py_success = float_from_pyobj(&acf,acf_capi,"fitacf_acf2.gaussq() 2nd argument (acf) can't be converted to float");
606 if (f2py_success) {
607 /*end of frompyobj*/
608 #ifdef F2PY_REPORT_ATEXIT
609 f2py_start_call_clock();
610 #endif
611 /*callfortranroutine*/
612 (*f2py_func)(&tau,&acf);
613 if (PyErr_Occurred())
614 f2py_success = 0;
615 #ifdef F2PY_REPORT_ATEXIT
616 f2py_stop_call_clock();
617 #endif
618 /*end of callfortranroutine*/
619 if (f2py_success) {
620 /*pyobjfrom*/
621 /*end of pyobjfrom*/
622 CFUNCSMESS("Building return value.\n");
623 capi_buildvalue = Py_BuildValue("");
624 /*closepyobjfrom*/
625 /*end of closepyobjfrom*/
626 } /*if (f2py_success) after callfortranroutine*/
627 /*cleanupfrompyobj*/
628 } /*if (f2py_success) of acf*/
629 /* End of cleaning variable acf */
630 } /*if (f2py_success) of tau*/
631 /* End of cleaning variable tau */
632 /*end of cleanupfrompyobj*/
633 if (capi_buildvalue == NULL) {
634 /*routdebugfailure*/
635 } else {
636 /*routdebugleave*/
637 }
638 CFUNCSMESS("Freeing memory.\n");
639 /*freemem*/
640 #ifdef F2PY_REPORT_ATEXIT
641 f2py_stop_clock();
642 #endif
643 return capi_buildvalue;
644 }
645 /******************************* end of gaussq *******************************/
646 /*eof body*/
647
648 /******************* See f2py2e/f90mod_rules.py: buildhooks *******************/
649 /*need_f90modhooks*/
650
651 /************** See f2py2e/rules.py: module_rules['modulebody'] **************/
652
653 /******************* See f2py2e/common_rules.py: buildhooks *******************/
654
655 static FortranDataDef f2py_spec_def[] = {
656 {"te",0,{{-1}},NPY_FLOAT},
657 {"ti",1,{{10}},NPY_FLOAT},
658 {"fi",1,{{10}},NPY_FLOAT},
659 {"ven",0,{{-1}},NPY_FLOAT},
660 {"vin",1,{{10}},NPY_FLOAT},
661 {"alpha",0,{{-1}},NPY_FLOAT},
662 {"dens",0,{{-1}},NPY_FLOAT},
663 {"bfld",0,{{-1}},NPY_FLOAT},
664 {"nion",0,{{-1}},NPY_INT},
665 {"wi",1,{{10}},NPY_INT},
666 {"ak",0,{{-1}},NPY_FLOAT},
667 {NULL}
668 };
669 static void f2py_setup_spec(char *te,char *ti,char *fi,char *ven,char *vin,char *alpha,char *dens,char *bfld,char *nion,char *wi,char *ak) {
670 int i_f2py=0;
671 f2py_spec_def[i_f2py++].data = te;
672 f2py_spec_def[i_f2py++].data = ti;
673 f2py_spec_def[i_f2py++].data = fi;
674 f2py_spec_def[i_f2py++].data = ven;
675 f2py_spec_def[i_f2py++].data = vin;
676 f2py_spec_def[i_f2py++].data = alpha;
677 f2py_spec_def[i_f2py++].data = dens;
678 f2py_spec_def[i_f2py++].data = bfld;
679 f2py_spec_def[i_f2py++].data = nion;
680 f2py_spec_def[i_f2py++].data = wi;
681 f2py_spec_def[i_f2py++].data = ak;
682 }
683 extern void F_FUNC(f2pyinitspec,F2PYINITSPEC)(void(*)(char*,char*,char*,char*,char*,char*,char*,char*,char*,char*,char*));
684 static void f2py_init_spec(void) {
685 F_FUNC(f2pyinitspec,F2PYINITSPEC)(f2py_setup_spec);
686 }
687
688 static FortranDataDef f2py_mode_def[] = {
689 {"imode",0,{{-1}},NPY_INT},
690 {NULL}
691 };
692 static void f2py_setup_mode(char *imode) {
693 int i_f2py=0;
694 f2py_mode_def[i_f2py++].data = imode;
695 }
696 extern void F_FUNC(f2pyinitmode,F2PYINITMODE)(void(*)(char*));
697 static void f2py_init_mode(void) {
698 F_FUNC(f2pyinitmode,F2PYINITMODE)(f2py_setup_mode);
699 }
700
701 /*need_commonhooks*/
702
703 /**************************** See f2py2e/rules.py ****************************/
704
705 static FortranDataDef f2py_routine_defs[] = {
706 {"acf2",-1,{{-1}},0,(char *)F_FUNC(acf2,ACF2),(f2py_init_func)f2py_rout_fitacf_acf2_acf2,doc_f2py_rout_fitacf_acf2_acf2},
707 {"spect1",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(spect1,SPECT1),(f2py_init_func)f2py_rout_fitacf_acf2_spect1,doc_f2py_rout_fitacf_acf2_spect1},
708 {"gaussq",-1,{{-1}},0,(char *)F_FUNC(gaussq,GAUSSQ),(f2py_init_func)f2py_rout_fitacf_acf2_gaussq,doc_f2py_rout_fitacf_acf2_gaussq},
709
710 /*eof routine_defs*/
711 {NULL}
712 };
713
714 static PyMethodDef f2py_module_methods[] = {
715
716 {NULL,NULL}
717 };
718
719 static struct PyModuleDef moduledef = {
720 PyModuleDef_HEAD_INIT,
721 "fitacf_acf2",
722 NULL,
723 -1,
724 f2py_module_methods,
725 NULL,
726 NULL,
727 NULL,
728 NULL
729 };
730
731 PyMODINIT_FUNC PyInit_fitacf_acf2(void) {
732 int i;
733 PyObject *m,*d, *s, *tmp;
734 m = fitacf_acf2_module = PyModule_Create(&moduledef);
735 Py_SET_TYPE(&PyFortran_Type, &PyType_Type);
736 import_array();
737 if (PyErr_Occurred())
738 {PyErr_SetString(PyExc_ImportError, "can't initialize module fitacf_acf2 (failed to import numpy)"); return m;}
739 d = PyModule_GetDict(m);
740 s = PyString_FromString("$Revision: $");
741 PyDict_SetItemString(d, "__version__", s);
742 Py_DECREF(s);
743 s = PyUnicode_FromString(
744 "This module 'fitacf_acf2' is auto-generated with f2py (version:2).\nFunctions:\n"
745 " acf = acf2(wl,tau,te1,ti1,fi1,ven1,vin1,wi1,alpha1,dens1,bfld1,acf,nion1=len(ti1))\n"
746 " spect1 = spect1(omega)\n"
747 " gaussq(tau,acf)\n"
748 "COMMON blocks:\n"" /spec/ te,ti(10),fi(10),ven,vin(10),alpha,dens,bfld,nion,wi(10),ak\n"" /mode/ imode\n"".");
749 PyDict_SetItemString(d, "__doc__", s);
750 Py_DECREF(s);
751 fitacf_acf2_error = PyErr_NewException ("fitacf_acf2.error", NULL, NULL);
752 /*
753 * Store the error object inside the dict, so that it could get deallocated.
754 * (in practice, this is a module, so it likely will not and cannot.)
755 */
756 PyDict_SetItemString(d, "_fitacf_acf2_error", fitacf_acf2_error);
757 Py_DECREF(fitacf_acf2_error);
758 for(i=0;f2py_routine_defs[i].name!=NULL;i++) {
759 tmp = PyFortranObject_NewAsAttr(&f2py_routine_defs[i]);
760 PyDict_SetItemString(d, f2py_routine_defs[i].name, tmp);
761 Py_DECREF(tmp);
762 }
763
764
765 {
766 extern float F_FUNC(spect1,SPECT1)(void);
767 PyObject* o = PyDict_GetItemString(d,"spect1");
768 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(spect1,SPECT1),NULL);
769 PyObject_SetAttrString(o,"_cpointer", tmp);
770 Py_DECREF(tmp);
771 s = PyUnicode_FromString("spect1");
772 PyObject_SetAttrString(o,"__name__", s);
773 Py_DECREF(s);
774 }
775
776
777 /*eof initf2pywraphooks*/
778 /*eof initf90modhooks*/
779
780 tmp = PyFortranObject_New(f2py_spec_def,f2py_init_spec);
781 F2PyDict_SetItemString(d, "spec", tmp);
782 Py_DECREF(tmp);
783 tmp = PyFortranObject_New(f2py_mode_def,f2py_init_mode);
784 F2PyDict_SetItemString(d, "mode", tmp);
785 Py_DECREF(tmp);
786 /*eof initcommonhooks*/
787
788
789 #ifdef F2PY_REPORT_ATEXIT
790 if (! PyErr_Occurred())
791 on_exit(f2py_report_on_exit,(void*)"fitacf_acf2");
792 #endif
793 return m;
794 }
795 #ifdef __cplusplus
796 }
797 #endif
@@ -0,0 +1,63
1 C -*- fortran -*-
2 C This file is autogenerated with f2py (version:2)
3 C It contains Fortran 77 wrappers to fortran functions.
4
5 subroutine f2pywrapspect1 (spect1f2pywrap, omega)
6 external spect1
7 real omega
8 real spect1f2pywrap, spect1
9 spect1f2pywrap = spect1(omega)
10 end
11
12
13 subroutine f2pywrapspmpar (spmparf2pywrap, i)
14 external spmpar
15 integer i
16 real spmparf2pywrap, spmpar
17 spmparf2pywrap = spmpar(i)
18 end
19
20
21 subroutine f2pyinitspec(setupfunc)
22 external setupfunc
23 real te
24 real ti(10)
25 real fi(10)
26 real ven
27 real vin(10)
28 real alpha
29 real dens
30 real bfld
31 integer nion
32 integer wi(10)
33 real ak
34 common /spec/ te,ti,fi,ven,vin,alpha,dens,bfld,nion,wi,ak
35 call setupfunc(te,ti,fi,ven,vin,alpha,dens,bfld,nion,wi,ak)
36 end
37
38 subroutine f2pyinitmode(setupfunc)
39 external setupfunc
40 integer imode
41 common /mode/ imode
42 call setupfunc(imode)
43 end
44
45 subroutine f2pyinitfitter(setupfunc)
46 external setupfunc
47 real tau(100)
48 real rho(100)
49 real sigma2(100)
50 real params(10)
51 integer ifit(10)
52 common /fitter/ tau,rho,sigma2,params,ifit
53 call setupfunc(tau,rho,sigma2,params,ifit)
54 end
55
56 subroutine f2pyinittrans(setupfunc)
57 external setupfunc
58 real ev(10000)
59 common /trans/ ev
60 call setupfunc(ev)
61 end
62
63
This diff has been collapsed as it changes many lines, (1986 lines changed) Show them Hide them
@@ -0,0 +1,1986
1 /* File: fitacf_fit_shortmodule.c
2 * This file is auto-generated with f2py (version:2).
3 * f2py is a Fortran to Python Interface Generator (FPIG), Second Edition,
4 * written by Pearu Peterson <pearu@cens.ioc.ee>.
5 * Generation date: Wed Jan 8 13:23:37 2025
6 * Do not edit this file directly unless you know what you are doing!!!
7 */
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 /*********************** See f2py2e/cfuncs.py: includes ***********************/
14 #include "Python.h"
15 #include <stdarg.h>
16 #include "fortranobject.h"
17 #include <string.h>
18 #include <setjmp.h>
19 #include <math.h>
20
21 /**************** See f2py2e/rules.py: mod_rules['modulebody'] ****************/
22 static PyObject *fitacf_fit_short_error;
23 static PyObject *fitacf_fit_short_module;
24
25 /*********************** See f2py2e/cfuncs.py: typedefs ***********************/
26 typedef signed char signed_char;
27 typedef struct {float r,i;} complex_float;
28
29 /****************** See f2py2e/cfuncs.py: typedefs_generated ******************/
30 typedef void(*cb_fcn_in_lmdif__user__routines_typedef)(int *,int *,float *,float *,int *);
31
32 /********************** See f2py2e/cfuncs.py: cppmacros **********************/
33 #define PRINTPYOBJERR(obj)\
34 fprintf(stderr,"fitacf_fit_short.error is related to ");\
35 PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
36 fprintf(stderr,"\n");
37
38 \
39 #define FAILNULL(p) do { \
40 if ((p) == NULL) { \
41 PyErr_SetString(PyExc_MemoryError, "NULL pointer found"); \
42 goto capi_fail; \
43 } \
44 } while (0)
45
46 #define MEMCOPY(to,from,n)\
47 do { FAILNULL(to); FAILNULL(from); (void)memcpy(to,from,n); } while (0)
48
49 #ifdef DEBUGCFUNCS
50 #define CFUNCSMESS(mess) fprintf(stderr,"debug-capi:"mess);
51 #define CFUNCSMESSPY(mess,obj) CFUNCSMESS(mess) \
52 PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
53 fprintf(stderr,"\n");
54 #else
55 #define CFUNCSMESS(mess)
56 #define CFUNCSMESSPY(mess,obj)
57 #endif
58
59 #define pyobj_from_int1(v) (PyInt_FromLong(v))
60 #if defined(PREPEND_FORTRAN)
61 #if defined(NO_APPEND_FORTRAN)
62 #if defined(UPPERCASE_FORTRAN)
63 #define F_FUNC(f,F) _##F
64 #else
65 #define F_FUNC(f,F) _##f
66 #endif
67 #else
68 #if defined(UPPERCASE_FORTRAN)
69 #define F_FUNC(f,F) _##F##_
70 #else
71 #define F_FUNC(f,F) _##f##_
72 #endif
73 #endif
74 #else
75 #if defined(NO_APPEND_FORTRAN)
76 #if defined(UPPERCASE_FORTRAN)
77 #define F_FUNC(f,F) F
78 #else
79 #define F_FUNC(f,F) f
80 #endif
81 #else
82 #if defined(UPPERCASE_FORTRAN)
83 #define F_FUNC(f,F) F##_
84 #else
85 #define F_FUNC(f,F) f##_
86 #endif
87 #endif
88 #endif
89 #if defined(UNDERSCORE_G77)
90 #define F_FUNC_US(f,F) F_FUNC(f##_,F##_)
91 #else
92 #define F_FUNC_US(f,F) F_FUNC(f,F)
93 #endif
94
95 #define rank(var) var ## _Rank
96 #define shape(var,dim) var ## _Dims[dim]
97 #define old_rank(var) (PyArray_NDIM((PyArrayObject *)(capi_ ## var ## _tmp)))
98 #define old_shape(var,dim) PyArray_DIM(((PyArrayObject *)(capi_ ## var ## _tmp)),dim)
99 #define fshape(var,dim) shape(var,rank(var)-dim-1)
100 #define len(var) shape(var,0)
101 #define flen(var) fshape(var,0)
102 #define old_size(var) PyArray_SIZE((PyArrayObject *)(capi_ ## var ## _tmp))
103 /* #define index(i) capi_i ## i */
104 #define slen(var) capi_ ## var ## _len
105 #define size(var, ...) f2py_size((PyArrayObject *)(capi_ ## var ## _tmp), ## __VA_ARGS__, -1)
106
107 #define CHECKSCALAR(check,tcheck,name,show,var)\
108 if (!(check)) {\
109 char errstring[256];\
110 sprintf(errstring, "%s: "show, "("tcheck") failed for "name, var);\
111 PyErr_SetString(fitacf_fit_short_error,errstring);\
112 /*goto capi_fail;*/\
113 } else
114 #ifndef max
115 #define max(a,b) ((a > b) ? (a) : (b))
116 #endif
117 #ifndef min
118 #define min(a,b) ((a < b) ? (a) : (b))
119 #endif
120 #ifndef MAX
121 #define MAX(a,b) ((a > b) ? (a) : (b))
122 #endif
123 #ifndef MIN
124 #define MIN(a,b) ((a < b) ? (a) : (b))
125 #endif
126
127 #if defined(PREPEND_FORTRAN)
128 #if defined(NO_APPEND_FORTRAN)
129 #if defined(UPPERCASE_FORTRAN)
130 #define F_WRAPPEDFUNC(f,F) _F2PYWRAP##F
131 #else
132 #define F_WRAPPEDFUNC(f,F) _f2pywrap##f
133 #endif
134 #else
135 #if defined(UPPERCASE_FORTRAN)
136 #define F_WRAPPEDFUNC(f,F) _F2PYWRAP##F##_
137 #else
138 #define F_WRAPPEDFUNC(f,F) _f2pywrap##f##_
139 #endif
140 #endif
141 #else
142 #if defined(NO_APPEND_FORTRAN)
143 #if defined(UPPERCASE_FORTRAN)
144 #define F_WRAPPEDFUNC(f,F) F2PYWRAP##F
145 #else
146 #define F_WRAPPEDFUNC(f,F) f2pywrap##f
147 #endif
148 #else
149 #if defined(UPPERCASE_FORTRAN)
150 #define F_WRAPPEDFUNC(f,F) F2PYWRAP##F##_
151 #else
152 #define F_WRAPPEDFUNC(f,F) f2pywrap##f##_
153 #endif
154 #endif
155 #endif
156 #if defined(UNDERSCORE_G77)
157 #define F_WRAPPEDFUNC_US(f,F) F_WRAPPEDFUNC(f##_,F##_)
158 #else
159 #define F_WRAPPEDFUNC_US(f,F) F_WRAPPEDFUNC(f,F)
160 #endif
161
162 #define SWAP(a,b,t) {\
163 t *c;\
164 c = a;\
165 a = b;\
166 b = c;}
167
168
169 /************************ See f2py2e/cfuncs.py: cfuncs ************************/
170 static int double_from_pyobj(double* v,PyObject *obj,const char *errmess) {
171 PyObject* tmp = NULL;
172 if (PyFloat_Check(obj)) {
173 #ifdef __sgi
174 *v = PyFloat_AsDouble(obj);
175 #else
176 *v = PyFloat_AS_DOUBLE(obj);
177 #endif
178 return 1;
179 }
180 tmp = PyNumber_Float(obj);
181 if (tmp) {
182 #ifdef __sgi
183 *v = PyFloat_AsDouble(tmp);
184 #else
185 *v = PyFloat_AS_DOUBLE(tmp);
186 #endif
187 Py_DECREF(tmp);
188 return 1;
189 }
190 if (PyComplex_Check(obj))
191 tmp = PyObject_GetAttrString(obj,"real");
192 else if (PyString_Check(obj) || PyUnicode_Check(obj))
193 /*pass*/;
194 else if (PySequence_Check(obj))
195 tmp = PySequence_GetItem(obj,0);
196 if (tmp) {
197 PyErr_Clear();
198 if (double_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
199 Py_DECREF(tmp);
200 }
201 {
202 PyObject* err = PyErr_Occurred();
203 if (err==NULL) err = fitacf_fit_short_error;
204 PyErr_SetString(err,errmess);
205 }
206 return 0;
207 }
208
209 static int f2py_size(PyArrayObject* var, ...)
210 {
211 npy_int sz = 0;
212 npy_int dim;
213 npy_int rank;
214 va_list argp;
215 va_start(argp, var);
216 dim = va_arg(argp, npy_int);
217 if (dim==-1)
218 {
219 sz = PyArray_SIZE(var);
220 }
221 else
222 {
223 rank = PyArray_NDIM(var);
224 if (dim>=1 && dim<=rank)
225 sz = PyArray_DIM(var, dim-1);
226 else
227 fprintf(stderr, "f2py_size: 2nd argument value=%d fails to satisfy 1<=value<=%d. Result will be 0.\n", dim, rank);
228 }
229 va_end(argp);
230 return sz;
231 }
232
233 static int float_from_pyobj(float* v,PyObject *obj,const char *errmess) {
234 double d=0.0;
235 if (double_from_pyobj(&d,obj,errmess)) {
236 *v = (float)d;
237 return 1;
238 }
239 return 0;
240 }
241
242 static int int_from_pyobj(int* v,PyObject *obj,const char *errmess) {
243 PyObject* tmp = NULL;
244 if (PyInt_Check(obj)) {
245 *v = (int)PyInt_AS_LONG(obj);
246 return 1;
247 }
248 tmp = PyNumber_Int(obj);
249 if (tmp) {
250 *v = PyInt_AS_LONG(tmp);
251 Py_DECREF(tmp);
252 return 1;
253 }
254 if (PyComplex_Check(obj))
255 tmp = PyObject_GetAttrString(obj,"real");
256 else if (PyString_Check(obj) || PyUnicode_Check(obj))
257 /*pass*/;
258 else if (PySequence_Check(obj))
259 tmp = PySequence_GetItem(obj,0);
260 if (tmp) {
261 PyErr_Clear();
262 if (int_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
263 Py_DECREF(tmp);
264 }
265 {
266 PyObject* err = PyErr_Occurred();
267 if (err==NULL) err = fitacf_fit_short_error;
268 PyErr_SetString(err,errmess);
269 }
270 return 0;
271 }
272
273 static int create_cb_arglist(PyObject* fun,PyTupleObject* xa,const int maxnofargs,const int nofoptargs,int *nofargs,PyTupleObject **args,const char *errmess) {
274 PyObject *tmp = NULL;
275 PyObject *tmp_fun = NULL;
276 int tot,opt,ext,siz,i,di=0;
277 CFUNCSMESS("create_cb_arglist\n");
278 tot=opt=ext=siz=0;
279 /* Get the total number of arguments */
280 if (PyFunction_Check(fun)) {
281 tmp_fun = fun;
282 Py_INCREF(tmp_fun);
283 }
284 else {
285 di = 1;
286 if (PyObject_HasAttrString(fun,"im_func")) {
287 tmp_fun = PyObject_GetAttrString(fun,"im_func");
288 }
289 else if (PyObject_HasAttrString(fun,"__call__")) {
290 tmp = PyObject_GetAttrString(fun,"__call__");
291 if (PyObject_HasAttrString(tmp,"im_func"))
292 tmp_fun = PyObject_GetAttrString(tmp,"im_func");
293 else {
294 tmp_fun = fun; /* built-in function */
295 Py_INCREF(tmp_fun);
296 tot = maxnofargs;
297 if (PyCFunction_Check(fun)) {
298 /* In case the function has a co_argcount (like on PyPy) */
299 di = 0;
300 }
301 if (xa != NULL)
302 tot += PyTuple_Size((PyObject *)xa);
303 }
304 Py_XDECREF(tmp);
305 }
306 else if (PyFortran_Check(fun) || PyFortran_Check1(fun)) {
307 tot = maxnofargs;
308 if (xa != NULL)
309 tot += PyTuple_Size((PyObject *)xa);
310 tmp_fun = fun;
311 Py_INCREF(tmp_fun);
312 }
313 else if (F2PyCapsule_Check(fun)) {
314 tot = maxnofargs;
315 if (xa != NULL)
316 ext = PyTuple_Size((PyObject *)xa);
317 if(ext>0) {
318 fprintf(stderr,"extra arguments tuple cannot be used with CObject call-back\n");
319 goto capi_fail;
320 }
321 tmp_fun = fun;
322 Py_INCREF(tmp_fun);
323 }
324 }
325 if (tmp_fun==NULL) {
326 fprintf(stderr,"Call-back argument must be function|instance|instance.__call__|f2py-function but got %s.\n",(fun==NULL?"NULL":Py_TYPE(fun)->tp_name));
327 goto capi_fail;
328 }
329 if (PyObject_HasAttrString(tmp_fun,"__code__")) {
330 if (PyObject_HasAttrString(tmp = PyObject_GetAttrString(tmp_fun,"__code__"),"co_argcount")) {
331 PyObject *tmp_argcount = PyObject_GetAttrString(tmp,"co_argcount");
332 Py_DECREF(tmp);
333 if (tmp_argcount == NULL) {
334 goto capi_fail;
335 }
336 tot = PyInt_AsLong(tmp_argcount) - di;
337 Py_DECREF(tmp_argcount);
338 }
339 }
340 /* Get the number of optional arguments */
341 if (PyObject_HasAttrString(tmp_fun,"__defaults__")) {
342 if (PyTuple_Check(tmp = PyObject_GetAttrString(tmp_fun,"__defaults__")))
343 opt = PyTuple_Size(tmp);
344 Py_XDECREF(tmp);
345 }
346 /* Get the number of extra arguments */
347 if (xa != NULL)
348 ext = PyTuple_Size((PyObject *)xa);
349 /* Calculate the size of call-backs argument list */
350 siz = MIN(maxnofargs+ext,tot);
351 *nofargs = MAX(0,siz-ext);
352 #ifdef DEBUGCFUNCS
353 fprintf(stderr,"debug-capi:create_cb_arglist:maxnofargs(-nofoptargs),tot,opt,ext,siz,nofargs=%d(-%d),%d,%d,%d,%d,%d\n",maxnofargs,nofoptargs,tot,opt,ext,siz,*nofargs);
354 #endif
355 if (siz<tot-opt) {
356 fprintf(stderr,"create_cb_arglist: Failed to build argument list (siz) with enough arguments (tot-opt) required by user-supplied function (siz,tot,opt=%d,%d,%d).\n",siz,tot,opt);
357 goto capi_fail;
358 }
359 /* Initialize argument list */
360 *args = (PyTupleObject *)PyTuple_New(siz);
361 for (i=0;i<*nofargs;i++) {
362 Py_INCREF(Py_None);
363 PyTuple_SET_ITEM((PyObject *)(*args),i,Py_None);
364 }
365 if (xa != NULL)
366 for (i=(*nofargs);i<siz;i++) {
367 tmp = PyTuple_GetItem((PyObject *)xa,i-(*nofargs));
368 Py_INCREF(tmp);
369 PyTuple_SET_ITEM(*args,i,tmp);
370 }
371 CFUNCSMESS("create_cb_arglist-end\n");
372 Py_DECREF(tmp_fun);
373 return 1;
374 capi_fail:
375 if ((PyErr_Occurred())==NULL)
376 PyErr_SetString(fitacf_fit_short_error,errmess);
377 Py_XDECREF(tmp_fun);
378 return 0;
379 }
380
381
382 /********************* See f2py2e/cfuncs.py: userincludes *********************/
383 /*need_userincludes*/
384
385 /********************* See f2py2e/capi_rules.py: usercode *********************/
386
387
388 /* See f2py2e/rules.py */
389 extern void F_FUNC(fit,FIT)(float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,int*,int*,int*);
390 extern void F_WRAPPEDFUNC(spect1,SPECT1)(float*,float*);
391 extern void F_FUNC(gaussq,GAUSSQ)(float*,float*);
392 extern void F_FUNC(lmdif1,LMDIF1)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,int*,int*,float*,int*);
393 extern void F_FUNC(lmdif,LMDIF)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,float*,float*,int*,float*,float*,int*,float*,int*,int*,int*,float*,int*,int*,float*,float*,float*,float*,float*);
394 extern void F_WRAPPEDFUNC(spmpar,SPMPAR)(float*,int*);
395 /*eof externroutines*/
396
397 /******************** See f2py2e/capi_rules.py: usercode1 ********************/
398
399
400 /******************* See f2py2e/cb_rules.py: buildcallback *******************/
401
402 /********************** cb_fcn_in_lmdif__user__routines **********************/
403 PyObject *cb_fcn_in_lmdif__user__routines_capi = NULL;/*was Py_None*/
404 PyTupleObject *cb_fcn_in_lmdif__user__routines_args_capi = NULL;
405 int cb_fcn_in_lmdif__user__routines_nofargs = 0;
406 jmp_buf cb_fcn_in_lmdif__user__routines_jmpbuf;
407 /*typedef void(*cb_fcn_in_lmdif__user__routines_typedef)(int *,int *,float *,float *,int *);*/
408 static void cb_fcn_in_lmdif__user__routines (int *m_cb_capi,int *n_cb_capi,float *x,float *fvec,int *iflag_cb_capi) {
409 PyTupleObject *capi_arglist = cb_fcn_in_lmdif__user__routines_args_capi;
410 PyObject *capi_return = NULL;
411 PyObject *capi_tmp = NULL;
412 PyObject *capi_arglist_list = NULL;
413 int capi_j,capi_i = 0;
414 int capi_longjmp_ok = 1;
415 /*decl*/
416 int m=(*m_cb_capi);
417 int n=(*n_cb_capi);
418 int iflag=(*iflag_cb_capi);
419 npy_intp x_Dims[1] = {-1};
420 npy_intp fvec_Dims[1] = {-1};
421 #ifdef F2PY_REPORT_ATEXIT
422 f2py_cb_start_clock();
423 #endif
424 CFUNCSMESS("cb:Call-back function cb_fcn_in_lmdif__user__routines (maxnofargs=5(-2))\n");
425 CFUNCSMESSPY("cb:cb_fcn_in_lmdif__user__routines_capi=",cb_fcn_in_lmdif__user__routines_capi);
426 if (cb_fcn_in_lmdif__user__routines_capi==NULL) {
427 capi_longjmp_ok = 0;
428 cb_fcn_in_lmdif__user__routines_capi = PyObject_GetAttrString(fitacf_fit_short_module,"fcn");
429 }
430 if (cb_fcn_in_lmdif__user__routines_capi==NULL) {
431 PyErr_SetString(fitacf_fit_short_error,"cb: Callback fcn not defined (as an argument or module fitacf_fit_short attribute).\n");
432 goto capi_fail;
433 }
434 if (F2PyCapsule_Check(cb_fcn_in_lmdif__user__routines_capi)) {
435 cb_fcn_in_lmdif__user__routines_typedef cb_fcn_in_lmdif__user__routines_cptr;
436 cb_fcn_in_lmdif__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb_fcn_in_lmdif__user__routines_capi);
437 (*cb_fcn_in_lmdif__user__routines_cptr)(m_cb_capi,n_cb_capi,x,fvec,iflag_cb_capi);
438 return;
439 }
440 if (capi_arglist==NULL) {
441 capi_longjmp_ok = 0;
442 capi_tmp = PyObject_GetAttrString(fitacf_fit_short_module,"fcn_extra_args");
443 if (capi_tmp) {
444 capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
445 if (capi_arglist==NULL) {
446 PyErr_SetString(fitacf_fit_short_error,"Failed to convert fitacf_fit_short.fcn_extra_args to tuple.\n");
447 goto capi_fail;
448 }
449 } else {
450 PyErr_Clear();
451 capi_arglist = (PyTupleObject *)Py_BuildValue("()");
452 }
453 }
454 if (capi_arglist == NULL) {
455 PyErr_SetString(fitacf_fit_short_error,"Callback fcn argument list is not set.\n");
456 goto capi_fail;
457 }
458 /*setdims*/
459 x_Dims[0]=n;
460 fvec_Dims[0]=m;
461 #ifdef PYPY_VERSION
462 #define CAPI_ARGLIST_SETITEM(idx, value) PyList_SetItem((PyObject *)capi_arglist_list, idx, value)
463 capi_arglist_list = PySequence_List(capi_arglist);
464 if (capi_arglist_list == NULL) goto capi_fail;
465 #else
466 #define CAPI_ARGLIST_SETITEM(idx, value) PyTuple_SetItem((PyObject *)capi_arglist, idx, value)
467 #endif
468 /*pyobjfrom*/
469 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i) {
470 int itemsize_ = NPY_FLOAT == NPY_STRING ? 1 : 0;
471 /*XXX: Hmm, what will destroy this array??? */
472 PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,1,x_Dims,NPY_FLOAT,NULL,(char*)x,itemsize_,NPY_ARRAY_FARRAY,NULL);
473
474
475 if (tmp_arr==NULL)
476 goto capi_fail;
477 if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr))
478 goto capi_fail;
479 }
480 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i) {
481 int itemsize_ = NPY_FLOAT == NPY_STRING ? 1 : 0;
482 /*XXX: Hmm, what will destroy this array??? */
483 PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,1,fvec_Dims,NPY_FLOAT,NULL,(char*)fvec,itemsize_,NPY_ARRAY_FARRAY,NULL);
484
485
486 if (tmp_arr==NULL)
487 goto capi_fail;
488 if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr))
489 goto capi_fail;
490 }
491 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i)
492 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(iflag)))
493 goto capi_fail;
494 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i)
495 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(m)))
496 goto capi_fail;
497 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i)
498 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(n)))
499 goto capi_fail;
500 #undef CAPI_ARGLIST_SETITEM
501 #ifdef PYPY_VERSION
502 CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
503 #else
504 CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
505 #endif
506 CFUNCSMESS("cb:Call-back calling Python function fcn.\n");
507 #ifdef F2PY_REPORT_ATEXIT
508 f2py_cb_start_call_clock();
509 #endif
510 #ifdef PYPY_VERSION
511 capi_return = PyObject_CallObject(cb_fcn_in_lmdif__user__routines_capi,(PyObject *)capi_arglist_list);
512 Py_DECREF(capi_arglist_list);
513 capi_arglist_list = NULL;
514 #else
515 capi_return = PyObject_CallObject(cb_fcn_in_lmdif__user__routines_capi,(PyObject *)capi_arglist);
516 #endif
517 #ifdef F2PY_REPORT_ATEXIT
518 f2py_cb_stop_call_clock();
519 #endif
520 CFUNCSMESSPY("cb:capi_return=",capi_return);
521 if (capi_return == NULL) {
522 fprintf(stderr,"capi_return is NULL\n");
523 goto capi_fail;
524 }
525 if (capi_return == Py_None) {
526 Py_DECREF(capi_return);
527 capi_return = Py_BuildValue("()");
528 }
529 else if (!PyTuple_Check(capi_return)) {
530 capi_return = Py_BuildValue("(N)",capi_return);
531 }
532 capi_j = PyTuple_Size(capi_return);
533 capi_i = 0;
534 /*frompyobj*/
535 CFUNCSMESS("cb:cb_fcn_in_lmdif__user__routines:successful\n");
536 Py_DECREF(capi_return);
537 #ifdef F2PY_REPORT_ATEXIT
538 f2py_cb_stop_clock();
539 #endif
540 goto capi_return_pt;
541 capi_fail:
542 fprintf(stderr,"Call-back cb_fcn_in_lmdif__user__routines failed.\n");
543 Py_XDECREF(capi_return);
544 Py_XDECREF(capi_arglist_list);
545 if (capi_longjmp_ok)
546 longjmp(cb_fcn_in_lmdif__user__routines_jmpbuf,-1);
547 capi_return_pt:
548 ;
549 return;
550 }
551 /******************* end of cb_fcn_in_lmdif__user__routines *******************/
552
553
554 /*********************** See f2py2e/rules.py: buildapi ***********************/
555
556 /************************************ fit ************************************/
557 static char doc_f2py_rout_fitacf_fit_short_fit[] = "\
558 cinv,sigma2p,paramp,ebp,ist = fit(wl,taup,rhop,covar,cinv,sigma2p,paramp,bfldp,alphap,densp,alt,time,ifitp,ist,[nl])\n\nWrapper for ``fit``.\
559 \n\nParameters\n----------\n"
560 "wl : input float\n"
561 "taup : input rank-1 array('f') with bounds (nl)\n"
562 "rhop : input rank-1 array('f') with bounds (nl)\n"
563 "covar : input rank-2 array('f') with bounds (nl,nl)\n"
564 "cinv : input rank-2 array('f') with bounds (nl,nl)\n"
565 "sigma2p : input rank-1 array('f') with bounds (nl)\n"
566 "paramp : input rank-1 array('f') with bounds (10)\n"
567 "bfldp : input float\n"
568 "alphap : input float\n"
569 "densp : input float\n"
570 "alt : input float\n"
571 "time : input float\n"
572 "ifitp : input rank-1 array('i') with bounds (10)\n"
573 "ist : input int\n"
574 "\nOther Parameters\n----------------\n"
575 "nl : input int, optional\n Default: len(taup)\n"
576 "\nReturns\n-------\n"
577 "cinv : rank-2 array('f') with bounds (nl,nl)\n"
578 "sigma2p : rank-1 array('f') with bounds (nl)\n"
579 "paramp : rank-1 array('f') with bounds (10)\n"
580 "ebp : rank-1 array('f') with bounds (10)\n"
581 "ist : int";
582 /* extern void F_FUNC(fit,FIT)(float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,int*,int*,int*); */
583 static PyObject *f2py_rout_fitacf_fit_short_fit(const PyObject *capi_self,
584 PyObject *capi_args,
585 PyObject *capi_keywds,
586 void (*f2py_func)(float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,int*,int*,int*)) {
587 PyObject * volatile capi_buildvalue = NULL;
588 volatile int f2py_success = 1;
589 /*decl*/
590
591 float wl = 0;
592 PyObject *wl_capi = Py_None;
593 float *taup = NULL;
594 npy_intp taup_Dims[1] = {-1};
595 const int taup_Rank = 1;
596 PyArrayObject *capi_taup_tmp = NULL;
597 int capi_taup_intent = 0;
598 PyObject *taup_capi = Py_None;
599 float *rhop = NULL;
600 npy_intp rhop_Dims[1] = {-1};
601 const int rhop_Rank = 1;
602 PyArrayObject *capi_rhop_tmp = NULL;
603 int capi_rhop_intent = 0;
604 PyObject *rhop_capi = Py_None;
605 float *covar = NULL;
606 npy_intp covar_Dims[2] = {-1, -1};
607 const int covar_Rank = 2;
608 PyArrayObject *capi_covar_tmp = NULL;
609 int capi_covar_intent = 0;
610 PyObject *covar_capi = Py_None;
611 float *cinv = NULL;
612 npy_intp cinv_Dims[2] = {-1, -1};
613 const int cinv_Rank = 2;
614 PyArrayObject *capi_cinv_tmp = NULL;
615 int capi_cinv_intent = 0;
616 PyObject *cinv_capi = Py_None;
617 float *sigma2p = NULL;
618 npy_intp sigma2p_Dims[1] = {-1};
619 const int sigma2p_Rank = 1;
620 PyArrayObject *capi_sigma2p_tmp = NULL;
621 int capi_sigma2p_intent = 0;
622 PyObject *sigma2p_capi = Py_None;
623 float *paramp = NULL;
624 npy_intp paramp_Dims[1] = {-1};
625 const int paramp_Rank = 1;
626 PyArrayObject *capi_paramp_tmp = NULL;
627 int capi_paramp_intent = 0;
628 PyObject *paramp_capi = Py_None;
629 float *ebp = NULL;
630 npy_intp ebp_Dims[1] = {-1};
631 const int ebp_Rank = 1;
632 PyArrayObject *capi_ebp_tmp = NULL;
633 int capi_ebp_intent = 0;
634 float bfldp = 0;
635 PyObject *bfldp_capi = Py_None;
636 float alphap = 0;
637 PyObject *alphap_capi = Py_None;
638 float densp = 0;
639 PyObject *densp_capi = Py_None;
640 float alt = 0;
641 PyObject *alt_capi = Py_None;
642 float time = 0;
643 PyObject *time_capi = Py_None;
644 int *ifitp = NULL;
645 npy_intp ifitp_Dims[1] = {-1};
646 const int ifitp_Rank = 1;
647 PyArrayObject *capi_ifitp_tmp = NULL;
648 int capi_ifitp_intent = 0;
649 PyObject *ifitp_capi = Py_None;
650 int ist = 0;
651 PyObject *ist_capi = Py_None;
652 int nl = 0;
653 PyObject *nl_capi = Py_None;
654 static char *capi_kwlist[] = {"wl","taup","rhop","covar","cinv","sigma2p","paramp","bfldp","alphap","densp","alt","time","ifitp","ist","nl",NULL};
655
656 /*routdebugenter*/
657 #ifdef F2PY_REPORT_ATEXIT
658 f2py_start_clock();
659 #endif
660 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
661 "OOOOOOOOOOOOOO|O:fitacf_fit_short.fit",\
662 capi_kwlist,&wl_capi,&taup_capi,&rhop_capi,&covar_capi,&cinv_capi,&sigma2p_capi,&paramp_capi,&bfldp_capi,&alphap_capi,&densp_capi,&alt_capi,&time_capi,&ifitp_capi,&ist_capi,&nl_capi))
663 return NULL;
664 /*frompyobj*/
665 /* Processing variable wl */
666 f2py_success = float_from_pyobj(&wl,wl_capi,"fitacf_fit_short.fit() 1st argument (wl) can't be converted to float");
667 if (f2py_success) {
668 /* Processing variable taup */
669 ;
670 capi_taup_intent |= F2PY_INTENT_IN;
671 capi_taup_tmp = array_from_pyobj(NPY_FLOAT,taup_Dims,taup_Rank,capi_taup_intent,taup_capi);
672 if (capi_taup_tmp == NULL) {
673 PyObject *exc, *val, *tb;
674 PyErr_Fetch(&exc, &val, &tb);
675 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 2nd argument `taup' of fitacf_fit_short.fit to C/Fortran array" );
676 npy_PyErr_ChainExceptionsCause(exc, val, tb);
677 } else {
678 taup = (float *)(PyArray_DATA(capi_taup_tmp));
679
680 /* Processing variable paramp */
681 paramp_Dims[0]=10;
682 capi_paramp_intent |= F2PY_INTENT_IN|F2PY_INTENT_OUT;
683 capi_paramp_tmp = array_from_pyobj(NPY_FLOAT,paramp_Dims,paramp_Rank,capi_paramp_intent,paramp_capi);
684 if (capi_paramp_tmp == NULL) {
685 PyObject *exc, *val, *tb;
686 PyErr_Fetch(&exc, &val, &tb);
687 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 7th argument `paramp' of fitacf_fit_short.fit to C/Fortran array" );
688 npy_PyErr_ChainExceptionsCause(exc, val, tb);
689 } else {
690 paramp = (float *)(PyArray_DATA(capi_paramp_tmp));
691
692 /* Processing variable ebp */
693 ebp_Dims[0]=10;
694 capi_ebp_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
695 capi_ebp_tmp = array_from_pyobj(NPY_FLOAT,ebp_Dims,ebp_Rank,capi_ebp_intent,Py_None);
696 if (capi_ebp_tmp == NULL) {
697 PyObject *exc, *val, *tb;
698 PyErr_Fetch(&exc, &val, &tb);
699 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting hidden `ebp' of fitacf_fit_short.fit to C/Fortran array" );
700 npy_PyErr_ChainExceptionsCause(exc, val, tb);
701 } else {
702 ebp = (float *)(PyArray_DATA(capi_ebp_tmp));
703
704 /* Processing variable bfldp */
705 f2py_success = float_from_pyobj(&bfldp,bfldp_capi,"fitacf_fit_short.fit() 8th argument (bfldp) can't be converted to float");
706 if (f2py_success) {
707 /* Processing variable alphap */
708 f2py_success = float_from_pyobj(&alphap,alphap_capi,"fitacf_fit_short.fit() 9th argument (alphap) can't be converted to float");
709 if (f2py_success) {
710 /* Processing variable densp */
711 f2py_success = float_from_pyobj(&densp,densp_capi,"fitacf_fit_short.fit() 10th argument (densp) can't be converted to float");
712 if (f2py_success) {
713 /* Processing variable alt */
714 f2py_success = float_from_pyobj(&alt,alt_capi,"fitacf_fit_short.fit() 11st argument (alt) can't be converted to float");
715 if (f2py_success) {
716 /* Processing variable time */
717 f2py_success = float_from_pyobj(&time,time_capi,"fitacf_fit_short.fit() 12nd argument (time) can't be converted to float");
718 if (f2py_success) {
719 /* Processing variable ifitp */
720 ifitp_Dims[0]=10;
721 capi_ifitp_intent |= F2PY_INTENT_IN;
722 capi_ifitp_tmp = array_from_pyobj(NPY_INT,ifitp_Dims,ifitp_Rank,capi_ifitp_intent,ifitp_capi);
723 if (capi_ifitp_tmp == NULL) {
724 PyObject *exc, *val, *tb;
725 PyErr_Fetch(&exc, &val, &tb);
726 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 13rd argument `ifitp' of fitacf_fit_short.fit to C/Fortran array" );
727 npy_PyErr_ChainExceptionsCause(exc, val, tb);
728 } else {
729 ifitp = (int *)(PyArray_DATA(capi_ifitp_tmp));
730
731 /* Processing variable ist */
732 f2py_success = int_from_pyobj(&ist,ist_capi,"fitacf_fit_short.fit() 14th argument (ist) can't be converted to int");
733 if (f2py_success) {
734 /* Processing variable nl */
735 if (nl_capi == Py_None) nl = len(taup); else
736 f2py_success = int_from_pyobj(&nl,nl_capi,"fitacf_fit_short.fit() 1st keyword (nl) can't be converted to int");
737 if (f2py_success) {
738 CHECKSCALAR(len(taup)>=nl,"len(taup)>=nl","1st keyword nl","fit:nl=%d",nl) {
739 /* Processing variable rhop */
740 rhop_Dims[0]=nl;
741 capi_rhop_intent |= F2PY_INTENT_IN;
742 capi_rhop_tmp = array_from_pyobj(NPY_FLOAT,rhop_Dims,rhop_Rank,capi_rhop_intent,rhop_capi);
743 if (capi_rhop_tmp == NULL) {
744 PyObject *exc, *val, *tb;
745 PyErr_Fetch(&exc, &val, &tb);
746 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 3rd argument `rhop' of fitacf_fit_short.fit to C/Fortran array" );
747 npy_PyErr_ChainExceptionsCause(exc, val, tb);
748 } else {
749 rhop = (float *)(PyArray_DATA(capi_rhop_tmp));
750
751 /* Processing variable covar */
752 covar_Dims[0]=nl,covar_Dims[1]=nl;
753 capi_covar_intent |= F2PY_INTENT_IN;
754 capi_covar_tmp = array_from_pyobj(NPY_FLOAT,covar_Dims,covar_Rank,capi_covar_intent,covar_capi);
755 if (capi_covar_tmp == NULL) {
756 PyObject *exc, *val, *tb;
757 PyErr_Fetch(&exc, &val, &tb);
758 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 4th argument `covar' of fitacf_fit_short.fit to C/Fortran array" );
759 npy_PyErr_ChainExceptionsCause(exc, val, tb);
760 } else {
761 covar = (float *)(PyArray_DATA(capi_covar_tmp));
762
763 /* Processing variable cinv */
764 cinv_Dims[0]=nl,cinv_Dims[1]=nl;
765 capi_cinv_intent |= F2PY_INTENT_IN|F2PY_INTENT_OUT;
766 capi_cinv_tmp = array_from_pyobj(NPY_FLOAT,cinv_Dims,cinv_Rank,capi_cinv_intent,cinv_capi);
767 if (capi_cinv_tmp == NULL) {
768 PyObject *exc, *val, *tb;
769 PyErr_Fetch(&exc, &val, &tb);
770 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 5th argument `cinv' of fitacf_fit_short.fit to C/Fortran array" );
771 npy_PyErr_ChainExceptionsCause(exc, val, tb);
772 } else {
773 cinv = (float *)(PyArray_DATA(capi_cinv_tmp));
774
775 /* Processing variable sigma2p */
776 sigma2p_Dims[0]=nl;
777 capi_sigma2p_intent |= F2PY_INTENT_IN|F2PY_INTENT_OUT;
778 capi_sigma2p_tmp = array_from_pyobj(NPY_FLOAT,sigma2p_Dims,sigma2p_Rank,capi_sigma2p_intent,sigma2p_capi);
779 if (capi_sigma2p_tmp == NULL) {
780 PyObject *exc, *val, *tb;
781 PyErr_Fetch(&exc, &val, &tb);
782 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 6th argument `sigma2p' of fitacf_fit_short.fit to C/Fortran array" );
783 npy_PyErr_ChainExceptionsCause(exc, val, tb);
784 } else {
785 sigma2p = (float *)(PyArray_DATA(capi_sigma2p_tmp));
786
787 /*end of frompyobj*/
788 #ifdef F2PY_REPORT_ATEXIT
789 f2py_start_call_clock();
790 #endif
791 /*callfortranroutine*/
792 (*f2py_func)(&wl,taup,rhop,covar,cinv,sigma2p,paramp,ebp,&bfldp,&alphap,&densp,&alt,&time,ifitp,&ist,&nl);
793 if (PyErr_Occurred())
794 f2py_success = 0;
795 #ifdef F2PY_REPORT_ATEXIT
796 f2py_stop_call_clock();
797 #endif
798 /*end of callfortranroutine*/
799 if (f2py_success) {
800 /*pyobjfrom*/
801 /*end of pyobjfrom*/
802 CFUNCSMESS("Building return value.\n");
803 capi_buildvalue = Py_BuildValue("NNNNi",capi_cinv_tmp,capi_sigma2p_tmp,capi_paramp_tmp,capi_ebp_tmp,ist);
804 /*closepyobjfrom*/
805 /*end of closepyobjfrom*/
806 } /*if (f2py_success) after callfortranroutine*/
807 /*cleanupfrompyobj*/
808 } /*if (capi_sigma2p_tmp == NULL) ... else of sigma2p*/
809 /* End of cleaning variable sigma2p */
810 } /*if (capi_cinv_tmp == NULL) ... else of cinv*/
811 /* End of cleaning variable cinv */
812 if((PyObject *)capi_covar_tmp!=covar_capi) {
813 Py_XDECREF(capi_covar_tmp); }
814 } /*if (capi_covar_tmp == NULL) ... else of covar*/
815 /* End of cleaning variable covar */
816 if((PyObject *)capi_rhop_tmp!=rhop_capi) {
817 Py_XDECREF(capi_rhop_tmp); }
818 } /*if (capi_rhop_tmp == NULL) ... else of rhop*/
819 /* End of cleaning variable rhop */
820 } /*CHECKSCALAR(len(taup)>=nl)*/
821 } /*if (f2py_success) of nl*/
822 /* End of cleaning variable nl */
823 } /*if (f2py_success) of ist*/
824 /* End of cleaning variable ist */
825 if((PyObject *)capi_ifitp_tmp!=ifitp_capi) {
826 Py_XDECREF(capi_ifitp_tmp); }
827 } /*if (capi_ifitp_tmp == NULL) ... else of ifitp*/
828 /* End of cleaning variable ifitp */
829 } /*if (f2py_success) of time*/
830 /* End of cleaning variable time */
831 } /*if (f2py_success) of alt*/
832 /* End of cleaning variable alt */
833 } /*if (f2py_success) of densp*/
834 /* End of cleaning variable densp */
835 } /*if (f2py_success) of alphap*/
836 /* End of cleaning variable alphap */
837 } /*if (f2py_success) of bfldp*/
838 /* End of cleaning variable bfldp */
839 } /*if (capi_ebp_tmp == NULL) ... else of ebp*/
840 /* End of cleaning variable ebp */
841 } /*if (capi_paramp_tmp == NULL) ... else of paramp*/
842 /* End of cleaning variable paramp */
843 if((PyObject *)capi_taup_tmp!=taup_capi) {
844 Py_XDECREF(capi_taup_tmp); }
845 } /*if (capi_taup_tmp == NULL) ... else of taup*/
846 /* End of cleaning variable taup */
847 } /*if (f2py_success) of wl*/
848 /* End of cleaning variable wl */
849 /*end of cleanupfrompyobj*/
850 if (capi_buildvalue == NULL) {
851 /*routdebugfailure*/
852 } else {
853 /*routdebugleave*/
854 }
855 CFUNCSMESS("Freeing memory.\n");
856 /*freemem*/
857 #ifdef F2PY_REPORT_ATEXIT
858 f2py_stop_clock();
859 #endif
860 return capi_buildvalue;
861 }
862 /********************************* end of fit *********************************/
863
864 /*********************************** spect1 ***********************************/
865 static char doc_f2py_rout_fitacf_fit_short_spect1[] = "\
866 spect1 = spect1(omega)\n\nWrapper for ``spect1``.\
867 \n\nParameters\n----------\n"
868 "omega : input float\n"
869 "\nReturns\n-------\n"
870 "spect1 : float";
871 /* extern void F_WRAPPEDFUNC(spect1,SPECT1)(float*,float*); */
872 static PyObject *f2py_rout_fitacf_fit_short_spect1(const PyObject *capi_self,
873 PyObject *capi_args,
874 PyObject *capi_keywds,
875 void (*f2py_func)(float*,float*)) {
876 PyObject * volatile capi_buildvalue = NULL;
877 volatile int f2py_success = 1;
878 /*decl*/
879
880 float spect1 = 0;
881 float omega = 0;
882 PyObject *omega_capi = Py_None;
883 static char *capi_kwlist[] = {"omega",NULL};
884
885 /*routdebugenter*/
886 #ifdef F2PY_REPORT_ATEXIT
887 f2py_start_clock();
888 #endif
889 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
890 "O|:fitacf_fit_short.spect1",\
891 capi_kwlist,&omega_capi))
892 return NULL;
893 /*frompyobj*/
894 /* Processing variable omega */
895 f2py_success = float_from_pyobj(&omega,omega_capi,"fitacf_fit_short.spect1() 1st argument (omega) can't be converted to float");
896 if (f2py_success) {
897 /* Processing variable spect1 */
898 /*end of frompyobj*/
899 #ifdef F2PY_REPORT_ATEXIT
900 f2py_start_call_clock();
901 #endif
902 /*callfortranroutine*/
903 (*f2py_func)(&spect1,&omega);
904 if (PyErr_Occurred())
905 f2py_success = 0;
906 #ifdef F2PY_REPORT_ATEXIT
907 f2py_stop_call_clock();
908 #endif
909 /*end of callfortranroutine*/
910 if (f2py_success) {
911 /*pyobjfrom*/
912 /*end of pyobjfrom*/
913 CFUNCSMESS("Building return value.\n");
914 capi_buildvalue = Py_BuildValue("f",spect1);
915 /*closepyobjfrom*/
916 /*end of closepyobjfrom*/
917 } /*if (f2py_success) after callfortranroutine*/
918 /*cleanupfrompyobj*/
919 /* End of cleaning variable spect1 */
920 } /*if (f2py_success) of omega*/
921 /* End of cleaning variable omega */
922 /*end of cleanupfrompyobj*/
923 if (capi_buildvalue == NULL) {
924 /*routdebugfailure*/
925 } else {
926 /*routdebugleave*/
927 }
928 CFUNCSMESS("Freeing memory.\n");
929 /*freemem*/
930 #ifdef F2PY_REPORT_ATEXIT
931 f2py_stop_clock();
932 #endif
933 return capi_buildvalue;
934 }
935 /******************************* end of spect1 *******************************/
936
937 /*********************************** gaussq ***********************************/
938 static char doc_f2py_rout_fitacf_fit_short_gaussq[] = "\
939 gaussq(tau,acf)\n\nWrapper for ``gaussq``.\
940 \n\nParameters\n----------\n"
941 "tau : input float\n"
942 "acf : input float";
943 /* extern void F_FUNC(gaussq,GAUSSQ)(float*,float*); */
944 static PyObject *f2py_rout_fitacf_fit_short_gaussq(const PyObject *capi_self,
945 PyObject *capi_args,
946 PyObject *capi_keywds,
947 void (*f2py_func)(float*,float*)) {
948 PyObject * volatile capi_buildvalue = NULL;
949 volatile int f2py_success = 1;
950 /*decl*/
951
952 float tau = 0;
953 PyObject *tau_capi = Py_None;
954 float acf = 0;
955 PyObject *acf_capi = Py_None;
956 static char *capi_kwlist[] = {"tau","acf",NULL};
957
958 /*routdebugenter*/
959 #ifdef F2PY_REPORT_ATEXIT
960 f2py_start_clock();
961 #endif
962 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
963 "OO|:fitacf_fit_short.gaussq",\
964 capi_kwlist,&tau_capi,&acf_capi))
965 return NULL;
966 /*frompyobj*/
967 /* Processing variable tau */
968 f2py_success = float_from_pyobj(&tau,tau_capi,"fitacf_fit_short.gaussq() 1st argument (tau) can't be converted to float");
969 if (f2py_success) {
970 /* Processing variable acf */
971 f2py_success = float_from_pyobj(&acf,acf_capi,"fitacf_fit_short.gaussq() 2nd argument (acf) can't be converted to float");
972 if (f2py_success) {
973 /*end of frompyobj*/
974 #ifdef F2PY_REPORT_ATEXIT
975 f2py_start_call_clock();
976 #endif
977 /*callfortranroutine*/
978 (*f2py_func)(&tau,&acf);
979 if (PyErr_Occurred())
980 f2py_success = 0;
981 #ifdef F2PY_REPORT_ATEXIT
982 f2py_stop_call_clock();
983 #endif
984 /*end of callfortranroutine*/
985 if (f2py_success) {
986 /*pyobjfrom*/
987 /*end of pyobjfrom*/
988 CFUNCSMESS("Building return value.\n");
989 capi_buildvalue = Py_BuildValue("");
990 /*closepyobjfrom*/
991 /*end of closepyobjfrom*/
992 } /*if (f2py_success) after callfortranroutine*/
993 /*cleanupfrompyobj*/
994 } /*if (f2py_success) of acf*/
995 /* End of cleaning variable acf */
996 } /*if (f2py_success) of tau*/
997 /* End of cleaning variable tau */
998 /*end of cleanupfrompyobj*/
999 if (capi_buildvalue == NULL) {
1000 /*routdebugfailure*/
1001 } else {
1002 /*routdebugleave*/
1003 }
1004 CFUNCSMESS("Freeing memory.\n");
1005 /*freemem*/
1006 #ifdef F2PY_REPORT_ATEXIT
1007 f2py_stop_clock();
1008 #endif
1009 return capi_buildvalue;
1010 }
1011 /******************************* end of gaussq *******************************/
1012
1013 /*********************************** lmdif1 ***********************************/
1014 static char doc_f2py_rout_fitacf_fit_short_lmdif1[] = "\
1015 lmdif1(fcn,x,fvec,tol,info,iwa,wa,[m,n,lwa,fcn_extra_args])\n\nWrapper for ``lmdif1``.\
1016 \n\nParameters\n----------\n"
1017 "fcn : call-back function\n"
1018 "x : input rank-1 array('f') with bounds (n)\n"
1019 "fvec : input rank-1 array('f') with bounds (m)\n"
1020 "tol : input float\n"
1021 "info : input int\n"
1022 "iwa : input rank-1 array('i') with bounds (n)\n"
1023 "wa : input rank-1 array('f') with bounds (lwa)\n"
1024 "\nOther Parameters\n----------------\n"
1025 "fcn_extra_args : input tuple, optional\n Default: ()\n"
1026 "m : input int, optional\n Default: len(fvec)\n"
1027 "n : input int, optional\n Default: len(x)\n"
1028 "lwa : input int, optional\n Default: len(wa)\n"
1029 "\nNotes\n-----\nCall-back functions::\n\n"
1030 " def fcn(x,fvec,iflag,[m,n]): return \n\
1031 Required arguments:\n"
1032 " x : input rank-1 array('f') with bounds (n)\n"
1033 " fvec : input rank-1 array('f') with bounds (m)\n"
1034 " iflag : input int\n"
1035 " Optional arguments:\n"
1036 " m : input int, optional\n Default: len(fvec)\n"
1037 " n : input int, optional\n Default: len(x)";
1038 /* extern void F_FUNC(lmdif1,LMDIF1)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,int*,int*,float*,int*); */
1039 static PyObject *f2py_rout_fitacf_fit_short_lmdif1(const PyObject *capi_self,
1040 PyObject *capi_args,
1041 PyObject *capi_keywds,
1042 void (*f2py_func)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,int*,int*,float*,int*)) {
1043 PyObject * volatile capi_buildvalue = NULL;
1044 volatile int f2py_success = 1;
1045 /*decl*/
1046
1047 PyObject *fcn_capi = Py_None;
1048 PyTupleObject *fcn_xa_capi = NULL;
1049 PyTupleObject *fcn_args_capi = NULL;
1050 int fcn_nofargs_capi = 0;
1051 cb_fcn_in_lmdif__user__routines_typedef fcn_cptr;
1052 int m = 0;
1053 PyObject *m_capi = Py_None;
1054 int n = 0;
1055 PyObject *n_capi = Py_None;
1056 float *x = NULL;
1057 npy_intp x_Dims[1] = {-1};
1058 const int x_Rank = 1;
1059 PyArrayObject *capi_x_tmp = NULL;
1060 int capi_x_intent = 0;
1061 PyObject *x_capi = Py_None;
1062 float *fvec = NULL;
1063 npy_intp fvec_Dims[1] = {-1};
1064 const int fvec_Rank = 1;
1065 PyArrayObject *capi_fvec_tmp = NULL;
1066 int capi_fvec_intent = 0;
1067 PyObject *fvec_capi = Py_None;
1068 float tol = 0;
1069 PyObject *tol_capi = Py_None;
1070 int info = 0;
1071 PyObject *info_capi = Py_None;
1072 int *iwa = NULL;
1073 npy_intp iwa_Dims[1] = {-1};
1074 const int iwa_Rank = 1;
1075 PyArrayObject *capi_iwa_tmp = NULL;
1076 int capi_iwa_intent = 0;
1077 PyObject *iwa_capi = Py_None;
1078 float *wa = NULL;
1079 npy_intp wa_Dims[1] = {-1};
1080 const int wa_Rank = 1;
1081 PyArrayObject *capi_wa_tmp = NULL;
1082 int capi_wa_intent = 0;
1083 PyObject *wa_capi = Py_None;
1084 int lwa = 0;
1085 PyObject *lwa_capi = Py_None;
1086 static char *capi_kwlist[] = {"fcn","x","fvec","tol","info","iwa","wa","m","n","lwa","fcn_extra_args",NULL};
1087
1088 /*routdebugenter*/
1089 #ifdef F2PY_REPORT_ATEXIT
1090 f2py_start_clock();
1091 #endif
1092 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1093 "OOOOOOO|OOOO!:fitacf_fit_short.lmdif1",\
1094 capi_kwlist,&fcn_capi,&x_capi,&fvec_capi,&tol_capi,&info_capi,&iwa_capi,&wa_capi,&m_capi,&n_capi,&lwa_capi,&PyTuple_Type,&fcn_xa_capi))
1095 return NULL;
1096 /*frompyobj*/
1097 /* Processing variable fcn */
1098 if(F2PyCapsule_Check(fcn_capi)) {
1099 fcn_cptr = F2PyCapsule_AsVoidPtr(fcn_capi);
1100 } else {
1101 fcn_cptr = cb_fcn_in_lmdif__user__routines;
1102 }
1103
1104 fcn_nofargs_capi = cb_fcn_in_lmdif__user__routines_nofargs;
1105 if (create_cb_arglist(fcn_capi,fcn_xa_capi,5,2,&cb_fcn_in_lmdif__user__routines_nofargs,&fcn_args_capi,"failed in processing argument list for call-back fcn.")) {
1106 jmp_buf fcn_jmpbuf;
1107 CFUNCSMESS("Saving jmpbuf for `fcn`.\n");
1108 SWAP(fcn_capi,cb_fcn_in_lmdif__user__routines_capi,PyObject);
1109 SWAP(fcn_args_capi,cb_fcn_in_lmdif__user__routines_args_capi,PyTupleObject);
1110 memcpy(&fcn_jmpbuf,&cb_fcn_in_lmdif__user__routines_jmpbuf,sizeof(jmp_buf));
1111 /* Processing variable x */
1112 ;
1113 capi_x_intent |= F2PY_INTENT_IN;
1114 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
1115 if (capi_x_tmp == NULL) {
1116 PyObject *exc, *val, *tb;
1117 PyErr_Fetch(&exc, &val, &tb);
1118 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 2nd argument `x' of fitacf_fit_short.lmdif1 to C/Fortran array" );
1119 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1120 } else {
1121 x = (float *)(PyArray_DATA(capi_x_tmp));
1122
1123 /* Processing variable fvec */
1124 ;
1125 capi_fvec_intent |= F2PY_INTENT_IN;
1126 capi_fvec_tmp = array_from_pyobj(NPY_FLOAT,fvec_Dims,fvec_Rank,capi_fvec_intent,fvec_capi);
1127 if (capi_fvec_tmp == NULL) {
1128 PyObject *exc, *val, *tb;
1129 PyErr_Fetch(&exc, &val, &tb);
1130 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 3rd argument `fvec' of fitacf_fit_short.lmdif1 to C/Fortran array" );
1131 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1132 } else {
1133 fvec = (float *)(PyArray_DATA(capi_fvec_tmp));
1134
1135 /* Processing variable tol */
1136 f2py_success = float_from_pyobj(&tol,tol_capi,"fitacf_fit_short.lmdif1() 4th argument (tol) can't be converted to float");
1137 if (f2py_success) {
1138 /* Processing variable info */
1139 f2py_success = int_from_pyobj(&info,info_capi,"fitacf_fit_short.lmdif1() 5th argument (info) can't be converted to int");
1140 if (f2py_success) {
1141 /* Processing variable wa */
1142 ;
1143 capi_wa_intent |= F2PY_INTENT_IN;
1144 capi_wa_tmp = array_from_pyobj(NPY_FLOAT,wa_Dims,wa_Rank,capi_wa_intent,wa_capi);
1145 if (capi_wa_tmp == NULL) {
1146 PyObject *exc, *val, *tb;
1147 PyErr_Fetch(&exc, &val, &tb);
1148 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 7th argument `wa' of fitacf_fit_short.lmdif1 to C/Fortran array" );
1149 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1150 } else {
1151 wa = (float *)(PyArray_DATA(capi_wa_tmp));
1152
1153 /* Processing variable m */
1154 if (m_capi == Py_None) m = len(fvec); else
1155 f2py_success = int_from_pyobj(&m,m_capi,"fitacf_fit_short.lmdif1() 1st keyword (m) can't be converted to int");
1156 if (f2py_success) {
1157 CHECKSCALAR(len(fvec)>=m,"len(fvec)>=m","1st keyword m","lmdif1:m=%d",m) {
1158 /* Processing variable n */
1159 if (n_capi == Py_None) n = len(x); else
1160 f2py_success = int_from_pyobj(&n,n_capi,"fitacf_fit_short.lmdif1() 2nd keyword (n) can't be converted to int");
1161 if (f2py_success) {
1162 CHECKSCALAR(len(x)>=n,"len(x)>=n","2nd keyword n","lmdif1:n=%d",n) {
1163 /* Processing variable iwa */
1164 iwa_Dims[0]=n;
1165 capi_iwa_intent |= F2PY_INTENT_IN;
1166 capi_iwa_tmp = array_from_pyobj(NPY_INT,iwa_Dims,iwa_Rank,capi_iwa_intent,iwa_capi);
1167 if (capi_iwa_tmp == NULL) {
1168 PyObject *exc, *val, *tb;
1169 PyErr_Fetch(&exc, &val, &tb);
1170 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 6th argument `iwa' of fitacf_fit_short.lmdif1 to C/Fortran array" );
1171 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1172 } else {
1173 iwa = (int *)(PyArray_DATA(capi_iwa_tmp));
1174
1175 /* Processing variable lwa */
1176 if (lwa_capi == Py_None) lwa = len(wa); else
1177 f2py_success = int_from_pyobj(&lwa,lwa_capi,"fitacf_fit_short.lmdif1() 3rd keyword (lwa) can't be converted to int");
1178 if (f2py_success) {
1179 CHECKSCALAR(len(wa)>=lwa,"len(wa)>=lwa","3rd keyword lwa","lmdif1:lwa=%d",lwa) {
1180 /*end of frompyobj*/
1181 #ifdef F2PY_REPORT_ATEXIT
1182 f2py_start_call_clock();
1183 #endif
1184 /*callfortranroutine*/
1185 if ((setjmp(cb_fcn_in_lmdif__user__routines_jmpbuf))) {
1186 f2py_success = 0;
1187 } else {
1188 (*f2py_func)(fcn_cptr,&m,&n,x,fvec,&tol,&info,iwa,wa,&lwa);
1189 }
1190 if (PyErr_Occurred())
1191 f2py_success = 0;
1192 #ifdef F2PY_REPORT_ATEXIT
1193 f2py_stop_call_clock();
1194 #endif
1195 /*end of callfortranroutine*/
1196 if (f2py_success) {
1197 /*pyobjfrom*/
1198 /*end of pyobjfrom*/
1199 CFUNCSMESS("Building return value.\n");
1200 capi_buildvalue = Py_BuildValue("");
1201 /*closepyobjfrom*/
1202 /*end of closepyobjfrom*/
1203 } /*if (f2py_success) after callfortranroutine*/
1204 /*cleanupfrompyobj*/
1205 } /*CHECKSCALAR(len(wa)>=lwa)*/
1206 } /*if (f2py_success) of lwa*/
1207 /* End of cleaning variable lwa */
1208 if((PyObject *)capi_iwa_tmp!=iwa_capi) {
1209 Py_XDECREF(capi_iwa_tmp); }
1210 } /*if (capi_iwa_tmp == NULL) ... else of iwa*/
1211 /* End of cleaning variable iwa */
1212 } /*CHECKSCALAR(len(x)>=n)*/
1213 } /*if (f2py_success) of n*/
1214 /* End of cleaning variable n */
1215 } /*CHECKSCALAR(len(fvec)>=m)*/
1216 } /*if (f2py_success) of m*/
1217 /* End of cleaning variable m */
1218 if((PyObject *)capi_wa_tmp!=wa_capi) {
1219 Py_XDECREF(capi_wa_tmp); }
1220 } /*if (capi_wa_tmp == NULL) ... else of wa*/
1221 /* End of cleaning variable wa */
1222 } /*if (f2py_success) of info*/
1223 /* End of cleaning variable info */
1224 } /*if (f2py_success) of tol*/
1225 /* End of cleaning variable tol */
1226 if((PyObject *)capi_fvec_tmp!=fvec_capi) {
1227 Py_XDECREF(capi_fvec_tmp); }
1228 } /*if (capi_fvec_tmp == NULL) ... else of fvec*/
1229 /* End of cleaning variable fvec */
1230 if((PyObject *)capi_x_tmp!=x_capi) {
1231 Py_XDECREF(capi_x_tmp); }
1232 } /*if (capi_x_tmp == NULL) ... else of x*/
1233 /* End of cleaning variable x */
1234 CFUNCSMESS("Restoring jmpbuf for `fcn`.\n");
1235 cb_fcn_in_lmdif__user__routines_capi = fcn_capi;
1236 Py_DECREF(cb_fcn_in_lmdif__user__routines_args_capi);
1237 cb_fcn_in_lmdif__user__routines_args_capi = fcn_args_capi;
1238 cb_fcn_in_lmdif__user__routines_nofargs = fcn_nofargs_capi;
1239 memcpy(&cb_fcn_in_lmdif__user__routines_jmpbuf,&fcn_jmpbuf,sizeof(jmp_buf));
1240 }
1241 /* End of cleaning variable fcn */
1242 /*end of cleanupfrompyobj*/
1243 if (capi_buildvalue == NULL) {
1244 /*routdebugfailure*/
1245 } else {
1246 /*routdebugleave*/
1247 }
1248 CFUNCSMESS("Freeing memory.\n");
1249 /*freemem*/
1250 #ifdef F2PY_REPORT_ATEXIT
1251 f2py_stop_clock();
1252 #endif
1253 return capi_buildvalue;
1254 }
1255 /******************************* end of lmdif1 *******************************/
1256
1257 /*********************************** lmdif ***********************************/
1258 static char doc_f2py_rout_fitacf_fit_short_lmdif[] = "\
1259 lmdif(fcn,x,fvec,ftol,xtol,gtol,maxfev,epsfcn,diag,mode,factor,nprint,info,nfev,fjac,ipvt,qtf,wa1,wa2,wa3,wa4,[m,n,ldfjac,fcn_extra_args])\n\nWrapper for ``lmdif``.\
1260 \n\nParameters\n----------\n"
1261 "fcn : call-back function\n"
1262 "x : input rank-1 array('f') with bounds (n)\n"
1263 "fvec : input rank-1 array('f') with bounds (m)\n"
1264 "ftol : input float\n"
1265 "xtol : input float\n"
1266 "gtol : input float\n"
1267 "maxfev : input int\n"
1268 "epsfcn : input float\n"
1269 "diag : input rank-1 array('f') with bounds (n)\n"
1270 "mode : input int\n"
1271 "factor : input float\n"
1272 "nprint : input int\n"
1273 "info : input int\n"
1274 "nfev : input int\n"
1275 "fjac : input rank-2 array('f') with bounds (ldfjac,n)\n"
1276 "ipvt : input rank-1 array('i') with bounds (n)\n"
1277 "qtf : input rank-1 array('f') with bounds (n)\n"
1278 "wa1 : input rank-1 array('f') with bounds (n)\n"
1279 "wa2 : input rank-1 array('f') with bounds (n)\n"
1280 "wa3 : input rank-1 array('f') with bounds (n)\n"
1281 "wa4 : input rank-1 array('f') with bounds (m)\n"
1282 "\nOther Parameters\n----------------\n"
1283 "fcn_extra_args : input tuple, optional\n Default: ()\n"
1284 "m : input int, optional\n Default: len(fvec)\n"
1285 "n : input int, optional\n Default: len(x)\n"
1286 "ldfjac : input int, optional\n Default: shape(fjac,0)\n"
1287 "\nNotes\n-----\nCall-back functions::\n\n"
1288 " def fcn(x,fvec,iflag,[m,n]): return \n\
1289 Required arguments:\n"
1290 " x : input rank-1 array('f') with bounds (n)\n"
1291 " fvec : input rank-1 array('f') with bounds (m)\n"
1292 " iflag : input int\n"
1293 " Optional arguments:\n"
1294 " m : input int, optional\n Default: len(fvec)\n"
1295 " n : input int, optional\n Default: len(x)";
1296 /* extern void F_FUNC(lmdif,LMDIF)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,float*,float*,int*,float*,float*,int*,float*,int*,int*,int*,float*,int*,int*,float*,float*,float*,float*,float*); */
1297 static PyObject *f2py_rout_fitacf_fit_short_lmdif(const PyObject *capi_self,
1298 PyObject *capi_args,
1299 PyObject *capi_keywds,
1300 void (*f2py_func)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,float*,float*,int*,float*,float*,int*,float*,int*,int*,int*,float*,int*,int*,float*,float*,float*,float*,float*)) {
1301 PyObject * volatile capi_buildvalue = NULL;
1302 volatile int f2py_success = 1;
1303 /*decl*/
1304
1305 PyObject *fcn_capi = Py_None;
1306 PyTupleObject *fcn_xa_capi = NULL;
1307 PyTupleObject *fcn_args_capi = NULL;
1308 int fcn_nofargs_capi = 0;
1309 cb_fcn_in_lmdif__user__routines_typedef fcn_cptr;
1310 int m = 0;
1311 PyObject *m_capi = Py_None;
1312 int n = 0;
1313 PyObject *n_capi = Py_None;
1314 float *x = NULL;
1315 npy_intp x_Dims[1] = {-1};
1316 const int x_Rank = 1;
1317 PyArrayObject *capi_x_tmp = NULL;
1318 int capi_x_intent = 0;
1319 PyObject *x_capi = Py_None;
1320 float *fvec = NULL;
1321 npy_intp fvec_Dims[1] = {-1};
1322 const int fvec_Rank = 1;
1323 PyArrayObject *capi_fvec_tmp = NULL;
1324 int capi_fvec_intent = 0;
1325 PyObject *fvec_capi = Py_None;
1326 float ftol = 0;
1327 PyObject *ftol_capi = Py_None;
1328 float xtol = 0;
1329 PyObject *xtol_capi = Py_None;
1330 float gtol = 0;
1331 PyObject *gtol_capi = Py_None;
1332 int maxfev = 0;
1333 PyObject *maxfev_capi = Py_None;
1334 float epsfcn = 0;
1335 PyObject *epsfcn_capi = Py_None;
1336 float *diag = NULL;
1337 npy_intp diag_Dims[1] = {-1};
1338 const int diag_Rank = 1;
1339 PyArrayObject *capi_diag_tmp = NULL;
1340 int capi_diag_intent = 0;
1341 PyObject *diag_capi = Py_None;
1342 int mode = 0;
1343 PyObject *mode_capi = Py_None;
1344 float factor = 0;
1345 PyObject *factor_capi = Py_None;
1346 int nprint = 0;
1347 PyObject *nprint_capi = Py_None;
1348 int info = 0;
1349 PyObject *info_capi = Py_None;
1350 int nfev = 0;
1351 PyObject *nfev_capi = Py_None;
1352 float *fjac = NULL;
1353 npy_intp fjac_Dims[2] = {-1, -1};
1354 const int fjac_Rank = 2;
1355 PyArrayObject *capi_fjac_tmp = NULL;
1356 int capi_fjac_intent = 0;
1357 PyObject *fjac_capi = Py_None;
1358 int ldfjac = 0;
1359 PyObject *ldfjac_capi = Py_None;
1360 int *ipvt = NULL;
1361 npy_intp ipvt_Dims[1] = {-1};
1362 const int ipvt_Rank = 1;
1363 PyArrayObject *capi_ipvt_tmp = NULL;
1364 int capi_ipvt_intent = 0;
1365 PyObject *ipvt_capi = Py_None;
1366 float *qtf = NULL;
1367 npy_intp qtf_Dims[1] = {-1};
1368 const int qtf_Rank = 1;
1369 PyArrayObject *capi_qtf_tmp = NULL;
1370 int capi_qtf_intent = 0;
1371 PyObject *qtf_capi = Py_None;
1372 float *wa1 = NULL;
1373 npy_intp wa1_Dims[1] = {-1};
1374 const int wa1_Rank = 1;
1375 PyArrayObject *capi_wa1_tmp = NULL;
1376 int capi_wa1_intent = 0;
1377 PyObject *wa1_capi = Py_None;
1378 float *wa2 = NULL;
1379 npy_intp wa2_Dims[1] = {-1};
1380 const int wa2_Rank = 1;
1381 PyArrayObject *capi_wa2_tmp = NULL;
1382 int capi_wa2_intent = 0;
1383 PyObject *wa2_capi = Py_None;
1384 float *wa3 = NULL;
1385 npy_intp wa3_Dims[1] = {-1};
1386 const int wa3_Rank = 1;
1387 PyArrayObject *capi_wa3_tmp = NULL;
1388 int capi_wa3_intent = 0;
1389 PyObject *wa3_capi = Py_None;
1390 float *wa4 = NULL;
1391 npy_intp wa4_Dims[1] = {-1};
1392 const int wa4_Rank = 1;
1393 PyArrayObject *capi_wa4_tmp = NULL;
1394 int capi_wa4_intent = 0;
1395 PyObject *wa4_capi = Py_None;
1396 static char *capi_kwlist[] = {"fcn","x","fvec","ftol","xtol","gtol","maxfev","epsfcn","diag","mode","factor","nprint","info","nfev","fjac","ipvt","qtf","wa1","wa2","wa3","wa4","m","n","ldfjac","fcn_extra_args",NULL};
1397
1398 /*routdebugenter*/
1399 #ifdef F2PY_REPORT_ATEXIT
1400 f2py_start_clock();
1401 #endif
1402 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1403 "OOOOOOOOOOOOOOOOOOOOO|OOOO!:fitacf_fit_short.lmdif",\
1404 capi_kwlist,&fcn_capi,&x_capi,&fvec_capi,&ftol_capi,&xtol_capi,&gtol_capi,&maxfev_capi,&epsfcn_capi,&diag_capi,&mode_capi,&factor_capi,&nprint_capi,&info_capi,&nfev_capi,&fjac_capi,&ipvt_capi,&qtf_capi,&wa1_capi,&wa2_capi,&wa3_capi,&wa4_capi,&m_capi,&n_capi,&ldfjac_capi,&PyTuple_Type,&fcn_xa_capi))
1405 return NULL;
1406 /*frompyobj*/
1407 /* Processing variable fcn */
1408 if(F2PyCapsule_Check(fcn_capi)) {
1409 fcn_cptr = F2PyCapsule_AsVoidPtr(fcn_capi);
1410 } else {
1411 fcn_cptr = cb_fcn_in_lmdif__user__routines;
1412 }
1413
1414 fcn_nofargs_capi = cb_fcn_in_lmdif__user__routines_nofargs;
1415 if (create_cb_arglist(fcn_capi,fcn_xa_capi,5,2,&cb_fcn_in_lmdif__user__routines_nofargs,&fcn_args_capi,"failed in processing argument list for call-back fcn.")) {
1416 jmp_buf fcn_jmpbuf;
1417 CFUNCSMESS("Saving jmpbuf for `fcn`.\n");
1418 SWAP(fcn_capi,cb_fcn_in_lmdif__user__routines_capi,PyObject);
1419 SWAP(fcn_args_capi,cb_fcn_in_lmdif__user__routines_args_capi,PyTupleObject);
1420 memcpy(&fcn_jmpbuf,&cb_fcn_in_lmdif__user__routines_jmpbuf,sizeof(jmp_buf));
1421 /* Processing variable x */
1422 ;
1423 capi_x_intent |= F2PY_INTENT_IN;
1424 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
1425 if (capi_x_tmp == NULL) {
1426 PyObject *exc, *val, *tb;
1427 PyErr_Fetch(&exc, &val, &tb);
1428 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 2nd argument `x' of fitacf_fit_short.lmdif to C/Fortran array" );
1429 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1430 } else {
1431 x = (float *)(PyArray_DATA(capi_x_tmp));
1432
1433 /* Processing variable fvec */
1434 ;
1435 capi_fvec_intent |= F2PY_INTENT_IN;
1436 capi_fvec_tmp = array_from_pyobj(NPY_FLOAT,fvec_Dims,fvec_Rank,capi_fvec_intent,fvec_capi);
1437 if (capi_fvec_tmp == NULL) {
1438 PyObject *exc, *val, *tb;
1439 PyErr_Fetch(&exc, &val, &tb);
1440 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 3rd argument `fvec' of fitacf_fit_short.lmdif to C/Fortran array" );
1441 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1442 } else {
1443 fvec = (float *)(PyArray_DATA(capi_fvec_tmp));
1444
1445 /* Processing variable ftol */
1446 f2py_success = float_from_pyobj(&ftol,ftol_capi,"fitacf_fit_short.lmdif() 4th argument (ftol) can't be converted to float");
1447 if (f2py_success) {
1448 /* Processing variable xtol */
1449 f2py_success = float_from_pyobj(&xtol,xtol_capi,"fitacf_fit_short.lmdif() 5th argument (xtol) can't be converted to float");
1450 if (f2py_success) {
1451 /* Processing variable gtol */
1452 f2py_success = float_from_pyobj(&gtol,gtol_capi,"fitacf_fit_short.lmdif() 6th argument (gtol) can't be converted to float");
1453 if (f2py_success) {
1454 /* Processing variable maxfev */
1455 f2py_success = int_from_pyobj(&maxfev,maxfev_capi,"fitacf_fit_short.lmdif() 7th argument (maxfev) can't be converted to int");
1456 if (f2py_success) {
1457 /* Processing variable epsfcn */
1458 f2py_success = float_from_pyobj(&epsfcn,epsfcn_capi,"fitacf_fit_short.lmdif() 8th argument (epsfcn) can't be converted to float");
1459 if (f2py_success) {
1460 /* Processing variable mode */
1461 f2py_success = int_from_pyobj(&mode,mode_capi,"fitacf_fit_short.lmdif() 10th argument (mode) can't be converted to int");
1462 if (f2py_success) {
1463 /* Processing variable factor */
1464 f2py_success = float_from_pyobj(&factor,factor_capi,"fitacf_fit_short.lmdif() 11st argument (factor) can't be converted to float");
1465 if (f2py_success) {
1466 /* Processing variable nprint */
1467 f2py_success = int_from_pyobj(&nprint,nprint_capi,"fitacf_fit_short.lmdif() 12nd argument (nprint) can't be converted to int");
1468 if (f2py_success) {
1469 /* Processing variable info */
1470 f2py_success = int_from_pyobj(&info,info_capi,"fitacf_fit_short.lmdif() 13rd argument (info) can't be converted to int");
1471 if (f2py_success) {
1472 /* Processing variable nfev */
1473 f2py_success = int_from_pyobj(&nfev,nfev_capi,"fitacf_fit_short.lmdif() 14th argument (nfev) can't be converted to int");
1474 if (f2py_success) {
1475 /* Processing variable m */
1476 if (m_capi == Py_None) m = len(fvec); else
1477 f2py_success = int_from_pyobj(&m,m_capi,"fitacf_fit_short.lmdif() 1st keyword (m) can't be converted to int");
1478 if (f2py_success) {
1479 CHECKSCALAR(len(fvec)>=m,"len(fvec)>=m","1st keyword m","lmdif:m=%d",m) {
1480 /* Processing variable n */
1481 if (n_capi == Py_None) n = len(x); else
1482 f2py_success = int_from_pyobj(&n,n_capi,"fitacf_fit_short.lmdif() 2nd keyword (n) can't be converted to int");
1483 if (f2py_success) {
1484 CHECKSCALAR(len(x)>=n,"len(x)>=n","2nd keyword n","lmdif:n=%d",n) {
1485 /* Processing variable diag */
1486 diag_Dims[0]=n;
1487 capi_diag_intent |= F2PY_INTENT_IN;
1488 capi_diag_tmp = array_from_pyobj(NPY_FLOAT,diag_Dims,diag_Rank,capi_diag_intent,diag_capi);
1489 if (capi_diag_tmp == NULL) {
1490 PyObject *exc, *val, *tb;
1491 PyErr_Fetch(&exc, &val, &tb);
1492 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 9th argument `diag' of fitacf_fit_short.lmdif to C/Fortran array" );
1493 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1494 } else {
1495 diag = (float *)(PyArray_DATA(capi_diag_tmp));
1496
1497 /* Processing variable fjac */
1498 fjac_Dims[1]=n;
1499 capi_fjac_intent |= F2PY_INTENT_IN;
1500 capi_fjac_tmp = array_from_pyobj(NPY_FLOAT,fjac_Dims,fjac_Rank,capi_fjac_intent,fjac_capi);
1501 if (capi_fjac_tmp == NULL) {
1502 PyObject *exc, *val, *tb;
1503 PyErr_Fetch(&exc, &val, &tb);
1504 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 15th argument `fjac' of fitacf_fit_short.lmdif to C/Fortran array" );
1505 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1506 } else {
1507 fjac = (float *)(PyArray_DATA(capi_fjac_tmp));
1508
1509 /* Processing variable ldfjac */
1510 if (ldfjac_capi == Py_None) ldfjac = shape(fjac,0); else
1511 f2py_success = int_from_pyobj(&ldfjac,ldfjac_capi,"fitacf_fit_short.lmdif() 3rd keyword (ldfjac) can't be converted to int");
1512 if (f2py_success) {
1513 CHECKSCALAR(shape(fjac,0)==ldfjac,"shape(fjac,0)==ldfjac","3rd keyword ldfjac","lmdif:ldfjac=%d",ldfjac) {
1514 /* Processing variable ipvt */
1515 ipvt_Dims[0]=n;
1516 capi_ipvt_intent |= F2PY_INTENT_IN;
1517 capi_ipvt_tmp = array_from_pyobj(NPY_INT,ipvt_Dims,ipvt_Rank,capi_ipvt_intent,ipvt_capi);
1518 if (capi_ipvt_tmp == NULL) {
1519 PyObject *exc, *val, *tb;
1520 PyErr_Fetch(&exc, &val, &tb);
1521 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 16th argument `ipvt' of fitacf_fit_short.lmdif to C/Fortran array" );
1522 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1523 } else {
1524 ipvt = (int *)(PyArray_DATA(capi_ipvt_tmp));
1525
1526 /* Processing variable qtf */
1527 qtf_Dims[0]=n;
1528 capi_qtf_intent |= F2PY_INTENT_IN;
1529 capi_qtf_tmp = array_from_pyobj(NPY_FLOAT,qtf_Dims,qtf_Rank,capi_qtf_intent,qtf_capi);
1530 if (capi_qtf_tmp == NULL) {
1531 PyObject *exc, *val, *tb;
1532 PyErr_Fetch(&exc, &val, &tb);
1533 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 17th argument `qtf' of fitacf_fit_short.lmdif to C/Fortran array" );
1534 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1535 } else {
1536 qtf = (float *)(PyArray_DATA(capi_qtf_tmp));
1537
1538 /* Processing variable wa1 */
1539 wa1_Dims[0]=n;
1540 capi_wa1_intent |= F2PY_INTENT_IN;
1541 capi_wa1_tmp = array_from_pyobj(NPY_FLOAT,wa1_Dims,wa1_Rank,capi_wa1_intent,wa1_capi);
1542 if (capi_wa1_tmp == NULL) {
1543 PyObject *exc, *val, *tb;
1544 PyErr_Fetch(&exc, &val, &tb);
1545 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 18th argument `wa1' of fitacf_fit_short.lmdif to C/Fortran array" );
1546 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1547 } else {
1548 wa1 = (float *)(PyArray_DATA(capi_wa1_tmp));
1549
1550 /* Processing variable wa2 */
1551 wa2_Dims[0]=n;
1552 capi_wa2_intent |= F2PY_INTENT_IN;
1553 capi_wa2_tmp = array_from_pyobj(NPY_FLOAT,wa2_Dims,wa2_Rank,capi_wa2_intent,wa2_capi);
1554 if (capi_wa2_tmp == NULL) {
1555 PyObject *exc, *val, *tb;
1556 PyErr_Fetch(&exc, &val, &tb);
1557 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 19th argument `wa2' of fitacf_fit_short.lmdif to C/Fortran array" );
1558 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1559 } else {
1560 wa2 = (float *)(PyArray_DATA(capi_wa2_tmp));
1561
1562 /* Processing variable wa3 */
1563 wa3_Dims[0]=n;
1564 capi_wa3_intent |= F2PY_INTENT_IN;
1565 capi_wa3_tmp = array_from_pyobj(NPY_FLOAT,wa3_Dims,wa3_Rank,capi_wa3_intent,wa3_capi);
1566 if (capi_wa3_tmp == NULL) {
1567 PyObject *exc, *val, *tb;
1568 PyErr_Fetch(&exc, &val, &tb);
1569 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 20th argument `wa3' of fitacf_fit_short.lmdif to C/Fortran array" );
1570 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1571 } else {
1572 wa3 = (float *)(PyArray_DATA(capi_wa3_tmp));
1573
1574 /* Processing variable wa4 */
1575 wa4_Dims[0]=m;
1576 capi_wa4_intent |= F2PY_INTENT_IN;
1577 capi_wa4_tmp = array_from_pyobj(NPY_FLOAT,wa4_Dims,wa4_Rank,capi_wa4_intent,wa4_capi);
1578 if (capi_wa4_tmp == NULL) {
1579 PyObject *exc, *val, *tb;
1580 PyErr_Fetch(&exc, &val, &tb);
1581 PyErr_SetString(exc ? exc : fitacf_fit_short_error,"failed in converting 21st argument `wa4' of fitacf_fit_short.lmdif to C/Fortran array" );
1582 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1583 } else {
1584 wa4 = (float *)(PyArray_DATA(capi_wa4_tmp));
1585
1586 /*end of frompyobj*/
1587 #ifdef F2PY_REPORT_ATEXIT
1588 f2py_start_call_clock();
1589 #endif
1590 /*callfortranroutine*/
1591 if ((setjmp(cb_fcn_in_lmdif__user__routines_jmpbuf))) {
1592 f2py_success = 0;
1593 } else {
1594 (*f2py_func)(fcn_cptr,&m,&n,x,fvec,&ftol,&xtol,&gtol,&maxfev,&epsfcn,diag,&mode,&factor,&nprint,&info,&nfev,fjac,&ldfjac,ipvt,qtf,wa1,wa2,wa3,wa4);
1595 }
1596 if (PyErr_Occurred())
1597 f2py_success = 0;
1598 #ifdef F2PY_REPORT_ATEXIT
1599 f2py_stop_call_clock();
1600 #endif
1601 /*end of callfortranroutine*/
1602 if (f2py_success) {
1603 /*pyobjfrom*/
1604 /*end of pyobjfrom*/
1605 CFUNCSMESS("Building return value.\n");
1606 capi_buildvalue = Py_BuildValue("");
1607 /*closepyobjfrom*/
1608 /*end of closepyobjfrom*/
1609 } /*if (f2py_success) after callfortranroutine*/
1610 /*cleanupfrompyobj*/
1611 if((PyObject *)capi_wa4_tmp!=wa4_capi) {
1612 Py_XDECREF(capi_wa4_tmp); }
1613 } /*if (capi_wa4_tmp == NULL) ... else of wa4*/
1614 /* End of cleaning variable wa4 */
1615 if((PyObject *)capi_wa3_tmp!=wa3_capi) {
1616 Py_XDECREF(capi_wa3_tmp); }
1617 } /*if (capi_wa3_tmp == NULL) ... else of wa3*/
1618 /* End of cleaning variable wa3 */
1619 if((PyObject *)capi_wa2_tmp!=wa2_capi) {
1620 Py_XDECREF(capi_wa2_tmp); }
1621 } /*if (capi_wa2_tmp == NULL) ... else of wa2*/
1622 /* End of cleaning variable wa2 */
1623 if((PyObject *)capi_wa1_tmp!=wa1_capi) {
1624 Py_XDECREF(capi_wa1_tmp); }
1625 } /*if (capi_wa1_tmp == NULL) ... else of wa1*/
1626 /* End of cleaning variable wa1 */
1627 if((PyObject *)capi_qtf_tmp!=qtf_capi) {
1628 Py_XDECREF(capi_qtf_tmp); }
1629 } /*if (capi_qtf_tmp == NULL) ... else of qtf*/
1630 /* End of cleaning variable qtf */
1631 if((PyObject *)capi_ipvt_tmp!=ipvt_capi) {
1632 Py_XDECREF(capi_ipvt_tmp); }
1633 } /*if (capi_ipvt_tmp == NULL) ... else of ipvt*/
1634 /* End of cleaning variable ipvt */
1635 } /*CHECKSCALAR(shape(fjac,0)==ldfjac)*/
1636 } /*if (f2py_success) of ldfjac*/
1637 /* End of cleaning variable ldfjac */
1638 if((PyObject *)capi_fjac_tmp!=fjac_capi) {
1639 Py_XDECREF(capi_fjac_tmp); }
1640 } /*if (capi_fjac_tmp == NULL) ... else of fjac*/
1641 /* End of cleaning variable fjac */
1642 if((PyObject *)capi_diag_tmp!=diag_capi) {
1643 Py_XDECREF(capi_diag_tmp); }
1644 } /*if (capi_diag_tmp == NULL) ... else of diag*/
1645 /* End of cleaning variable diag */
1646 } /*CHECKSCALAR(len(x)>=n)*/
1647 } /*if (f2py_success) of n*/
1648 /* End of cleaning variable n */
1649 } /*CHECKSCALAR(len(fvec)>=m)*/
1650 } /*if (f2py_success) of m*/
1651 /* End of cleaning variable m */
1652 } /*if (f2py_success) of nfev*/
1653 /* End of cleaning variable nfev */
1654 } /*if (f2py_success) of info*/
1655 /* End of cleaning variable info */
1656 } /*if (f2py_success) of nprint*/
1657 /* End of cleaning variable nprint */
1658 } /*if (f2py_success) of factor*/
1659 /* End of cleaning variable factor */
1660 } /*if (f2py_success) of mode*/
1661 /* End of cleaning variable mode */
1662 } /*if (f2py_success) of epsfcn*/
1663 /* End of cleaning variable epsfcn */
1664 } /*if (f2py_success) of maxfev*/
1665 /* End of cleaning variable maxfev */
1666 } /*if (f2py_success) of gtol*/
1667 /* End of cleaning variable gtol */
1668 } /*if (f2py_success) of xtol*/
1669 /* End of cleaning variable xtol */
1670 } /*if (f2py_success) of ftol*/
1671 /* End of cleaning variable ftol */
1672 if((PyObject *)capi_fvec_tmp!=fvec_capi) {
1673 Py_XDECREF(capi_fvec_tmp); }
1674 } /*if (capi_fvec_tmp == NULL) ... else of fvec*/
1675 /* End of cleaning variable fvec */
1676 if((PyObject *)capi_x_tmp!=x_capi) {
1677 Py_XDECREF(capi_x_tmp); }
1678 } /*if (capi_x_tmp == NULL) ... else of x*/
1679 /* End of cleaning variable x */
1680 CFUNCSMESS("Restoring jmpbuf for `fcn`.\n");
1681 cb_fcn_in_lmdif__user__routines_capi = fcn_capi;
1682 Py_DECREF(cb_fcn_in_lmdif__user__routines_args_capi);
1683 cb_fcn_in_lmdif__user__routines_args_capi = fcn_args_capi;
1684 cb_fcn_in_lmdif__user__routines_nofargs = fcn_nofargs_capi;
1685 memcpy(&cb_fcn_in_lmdif__user__routines_jmpbuf,&fcn_jmpbuf,sizeof(jmp_buf));
1686 }
1687 /* End of cleaning variable fcn */
1688 /*end of cleanupfrompyobj*/
1689 if (capi_buildvalue == NULL) {
1690 /*routdebugfailure*/
1691 } else {
1692 /*routdebugleave*/
1693 }
1694 CFUNCSMESS("Freeing memory.\n");
1695 /*freemem*/
1696 #ifdef F2PY_REPORT_ATEXIT
1697 f2py_stop_clock();
1698 #endif
1699 return capi_buildvalue;
1700 }
1701 /******************************** end of lmdif ********************************/
1702
1703 /*********************************** spmpar ***********************************/
1704 static char doc_f2py_rout_fitacf_fit_short_spmpar[] = "\
1705 spmpar = spmpar(i)\n\nWrapper for ``spmpar``.\
1706 \n\nParameters\n----------\n"
1707 "i : input int\n"
1708 "\nReturns\n-------\n"
1709 "spmpar : float";
1710 /* extern void F_WRAPPEDFUNC(spmpar,SPMPAR)(float*,int*); */
1711 static PyObject *f2py_rout_fitacf_fit_short_spmpar(const PyObject *capi_self,
1712 PyObject *capi_args,
1713 PyObject *capi_keywds,
1714 void (*f2py_func)(float*,int*)) {
1715 PyObject * volatile capi_buildvalue = NULL;
1716 volatile int f2py_success = 1;
1717 /*decl*/
1718
1719 float spmpar = 0;
1720 int i = 0;
1721 PyObject *i_capi = Py_None;
1722 static char *capi_kwlist[] = {"i",NULL};
1723
1724 /*routdebugenter*/
1725 #ifdef F2PY_REPORT_ATEXIT
1726 f2py_start_clock();
1727 #endif
1728 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1729 "O|:fitacf_fit_short.spmpar",\
1730 capi_kwlist,&i_capi))
1731 return NULL;
1732 /*frompyobj*/
1733 /* Processing variable i */
1734 f2py_success = int_from_pyobj(&i,i_capi,"fitacf_fit_short.spmpar() 1st argument (i) can't be converted to int");
1735 if (f2py_success) {
1736 /* Processing variable spmpar */
1737 /*end of frompyobj*/
1738 #ifdef F2PY_REPORT_ATEXIT
1739 f2py_start_call_clock();
1740 #endif
1741 /*callfortranroutine*/
1742 (*f2py_func)(&spmpar,&i);
1743 if (PyErr_Occurred())
1744 f2py_success = 0;
1745 #ifdef F2PY_REPORT_ATEXIT
1746 f2py_stop_call_clock();
1747 #endif
1748 /*end of callfortranroutine*/
1749 if (f2py_success) {
1750 /*pyobjfrom*/
1751 /*end of pyobjfrom*/
1752 CFUNCSMESS("Building return value.\n");
1753 capi_buildvalue = Py_BuildValue("f",spmpar);
1754 /*closepyobjfrom*/
1755 /*end of closepyobjfrom*/
1756 } /*if (f2py_success) after callfortranroutine*/
1757 /*cleanupfrompyobj*/
1758 /* End of cleaning variable spmpar */
1759 } /*if (f2py_success) of i*/
1760 /* End of cleaning variable i */
1761 /*end of cleanupfrompyobj*/
1762 if (capi_buildvalue == NULL) {
1763 /*routdebugfailure*/
1764 } else {
1765 /*routdebugleave*/
1766 }
1767 CFUNCSMESS("Freeing memory.\n");
1768 /*freemem*/
1769 #ifdef F2PY_REPORT_ATEXIT
1770 f2py_stop_clock();
1771 #endif
1772 return capi_buildvalue;
1773 }
1774 /******************************* end of spmpar *******************************/
1775 /*eof body*/
1776
1777 /******************* See f2py2e/f90mod_rules.py: buildhooks *******************/
1778 /*need_f90modhooks*/
1779
1780 /************** See f2py2e/rules.py: module_rules['modulebody'] **************/
1781
1782 /******************* See f2py2e/common_rules.py: buildhooks *******************/
1783
1784 static FortranDataDef f2py_spec_def[] = {
1785 {"te",0,{{-1}},NPY_FLOAT},
1786 {"ti",1,{{10}},NPY_FLOAT},
1787 {"fi",1,{{10}},NPY_FLOAT},
1788 {"ven",0,{{-1}},NPY_FLOAT},
1789 {"vin",1,{{10}},NPY_FLOAT},
1790 {"alpha",0,{{-1}},NPY_FLOAT},
1791 {"dens",0,{{-1}},NPY_FLOAT},
1792 {"bfld",0,{{-1}},NPY_FLOAT},
1793 {"nion",0,{{-1}},NPY_INT},
1794 {"wi",1,{{10}},NPY_INT},
1795 {"ak",0,{{-1}},NPY_FLOAT},
1796 {NULL}
1797 };
1798 static void f2py_setup_spec(char *te,char *ti,char *fi,char *ven,char *vin,char *alpha,char *dens,char *bfld,char *nion,char *wi,char *ak) {
1799 int i_f2py=0;
1800 f2py_spec_def[i_f2py++].data = te;
1801 f2py_spec_def[i_f2py++].data = ti;
1802 f2py_spec_def[i_f2py++].data = fi;
1803 f2py_spec_def[i_f2py++].data = ven;
1804 f2py_spec_def[i_f2py++].data = vin;
1805 f2py_spec_def[i_f2py++].data = alpha;
1806 f2py_spec_def[i_f2py++].data = dens;
1807 f2py_spec_def[i_f2py++].data = bfld;
1808 f2py_spec_def[i_f2py++].data = nion;
1809 f2py_spec_def[i_f2py++].data = wi;
1810 f2py_spec_def[i_f2py++].data = ak;
1811 }
1812 extern void F_FUNC(f2pyinitspec,F2PYINITSPEC)(void(*)(char*,char*,char*,char*,char*,char*,char*,char*,char*,char*,char*));
1813 static void f2py_init_spec(void) {
1814 F_FUNC(f2pyinitspec,F2PYINITSPEC)(f2py_setup_spec);
1815 }
1816
1817 static FortranDataDef f2py_mode_def[] = {
1818 {"imode",0,{{-1}},NPY_INT},
1819 {NULL}
1820 };
1821 static void f2py_setup_mode(char *imode) {
1822 int i_f2py=0;
1823 f2py_mode_def[i_f2py++].data = imode;
1824 }
1825 extern void F_FUNC(f2pyinitmode,F2PYINITMODE)(void(*)(char*));
1826 static void f2py_init_mode(void) {
1827 F_FUNC(f2pyinitmode,F2PYINITMODE)(f2py_setup_mode);
1828 }
1829
1830 static FortranDataDef f2py_fitter_def[] = {
1831 {"tau",1,{{100}},NPY_FLOAT},
1832 {"rho",1,{{100}},NPY_FLOAT},
1833 {"sigma2",1,{{100}},NPY_FLOAT},
1834 {"params",1,{{10}},NPY_FLOAT},
1835 {"ifit",1,{{10}},NPY_INT},
1836 {NULL}
1837 };
1838 static void f2py_setup_fitter(char *tau,char *rho,char *sigma2,char *params,char *ifit) {
1839 int i_f2py=0;
1840 f2py_fitter_def[i_f2py++].data = tau;
1841 f2py_fitter_def[i_f2py++].data = rho;
1842 f2py_fitter_def[i_f2py++].data = sigma2;
1843 f2py_fitter_def[i_f2py++].data = params;
1844 f2py_fitter_def[i_f2py++].data = ifit;
1845 }
1846 extern void F_FUNC(f2pyinitfitter,F2PYINITFITTER)(void(*)(char*,char*,char*,char*,char*));
1847 static void f2py_init_fitter(void) {
1848 F_FUNC(f2pyinitfitter,F2PYINITFITTER)(f2py_setup_fitter);
1849 }
1850
1851 static FortranDataDef f2py_trans_def[] = {
1852 {"ev",1,{{10000}},NPY_FLOAT},
1853 {NULL}
1854 };
1855 static void f2py_setup_trans(char *ev) {
1856 int i_f2py=0;
1857 f2py_trans_def[i_f2py++].data = ev;
1858 }
1859 extern void F_FUNC(f2pyinittrans,F2PYINITTRANS)(void(*)(char*));
1860 static void f2py_init_trans(void) {
1861 F_FUNC(f2pyinittrans,F2PYINITTRANS)(f2py_setup_trans);
1862 }
1863
1864 /*need_commonhooks*/
1865
1866 /**************************** See f2py2e/rules.py ****************************/
1867
1868 static FortranDataDef f2py_routine_defs[] = {
1869 {"fit",-1,{{-1}},0,(char *)F_FUNC(fit,FIT),(f2py_init_func)f2py_rout_fitacf_fit_short_fit,doc_f2py_rout_fitacf_fit_short_fit},
1870 {"spect1",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(spect1,SPECT1),(f2py_init_func)f2py_rout_fitacf_fit_short_spect1,doc_f2py_rout_fitacf_fit_short_spect1},
1871 {"gaussq",-1,{{-1}},0,(char *)F_FUNC(gaussq,GAUSSQ),(f2py_init_func)f2py_rout_fitacf_fit_short_gaussq,doc_f2py_rout_fitacf_fit_short_gaussq},
1872 {"lmdif1",-1,{{-1}},0,(char *)F_FUNC(lmdif1,LMDIF1),(f2py_init_func)f2py_rout_fitacf_fit_short_lmdif1,doc_f2py_rout_fitacf_fit_short_lmdif1},
1873 {"lmdif",-1,{{-1}},0,(char *)F_FUNC(lmdif,LMDIF),(f2py_init_func)f2py_rout_fitacf_fit_short_lmdif,doc_f2py_rout_fitacf_fit_short_lmdif},
1874 {"spmpar",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(spmpar,SPMPAR),(f2py_init_func)f2py_rout_fitacf_fit_short_spmpar,doc_f2py_rout_fitacf_fit_short_spmpar},
1875
1876 /*eof routine_defs*/
1877 {NULL}
1878 };
1879
1880 static PyMethodDef f2py_module_methods[] = {
1881
1882 {NULL,NULL}
1883 };
1884
1885 static struct PyModuleDef moduledef = {
1886 PyModuleDef_HEAD_INIT,
1887 "fitacf_fit_short",
1888 NULL,
1889 -1,
1890 f2py_module_methods,
1891 NULL,
1892 NULL,
1893 NULL,
1894 NULL
1895 };
1896
1897 PyMODINIT_FUNC PyInit_fitacf_fit_short(void) {
1898 int i;
1899 PyObject *m,*d, *s, *tmp;
1900 m = fitacf_fit_short_module = PyModule_Create(&moduledef);
1901 Py_SET_TYPE(&PyFortran_Type, &PyType_Type);
1902 import_array();
1903 if (PyErr_Occurred())
1904 {PyErr_SetString(PyExc_ImportError, "can't initialize module fitacf_fit_short (failed to import numpy)"); return m;}
1905 d = PyModule_GetDict(m);
1906 s = PyString_FromString("$Revision: $");
1907 PyDict_SetItemString(d, "__version__", s);
1908 Py_DECREF(s);
1909 s = PyUnicode_FromString(
1910 "This module 'fitacf_fit_short' is auto-generated with f2py (version:2).\nFunctions:\n"
1911 " cinv,sigma2p,paramp,ebp,ist = fit(wl,taup,rhop,covar,cinv,sigma2p,paramp,bfldp,alphap,densp,alt,time,ifitp,ist,nl=len(taup))\n"
1912 " spect1 = spect1(omega)\n"
1913 " gaussq(tau,acf)\n"
1914 " lmdif1(fcn,x,fvec,tol,info,iwa,wa,m=len(fvec),n=len(x),lwa=len(wa),fcn_extra_args=())\n"
1915 " lmdif(fcn,x,fvec,ftol,xtol,gtol,maxfev,epsfcn,diag,mode,factor,nprint,info,nfev,fjac,ipvt,qtf,wa1,wa2,wa3,wa4,m=len(fvec),n=len(x),ldfjac=shape(fjac,0),fcn_extra_args=())\n"
1916 " spmpar = spmpar(i)\n"
1917 "COMMON blocks:\n"" /spec/ te,ti(10),fi(10),ven,vin(10),alpha,dens,bfld,nion,wi(10),ak\n"" /mode/ imode\n"" /fitter/ tau(100),rho(100),sigma2(100),params(10),ifit(10)\n"" /trans/ ev(10000)\n"".");
1918 PyDict_SetItemString(d, "__doc__", s);
1919 Py_DECREF(s);
1920 fitacf_fit_short_error = PyErr_NewException ("fitacf_fit_short.error", NULL, NULL);
1921 /*
1922 * Store the error object inside the dict, so that it could get deallocated.
1923 * (in practice, this is a module, so it likely will not and cannot.)
1924 */
1925 PyDict_SetItemString(d, "_fitacf_fit_short_error", fitacf_fit_short_error);
1926 Py_DECREF(fitacf_fit_short_error);
1927 for(i=0;f2py_routine_defs[i].name!=NULL;i++) {
1928 tmp = PyFortranObject_NewAsAttr(&f2py_routine_defs[i]);
1929 PyDict_SetItemString(d, f2py_routine_defs[i].name, tmp);
1930 Py_DECREF(tmp);
1931 }
1932
1933
1934 {
1935 extern float F_FUNC(spect1,SPECT1)(void);
1936 PyObject* o = PyDict_GetItemString(d,"spect1");
1937 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(spect1,SPECT1),NULL);
1938 PyObject_SetAttrString(o,"_cpointer", tmp);
1939 Py_DECREF(tmp);
1940 s = PyUnicode_FromString("spect1");
1941 PyObject_SetAttrString(o,"__name__", s);
1942 Py_DECREF(s);
1943 }
1944
1945
1946
1947
1948
1949 {
1950 extern float F_FUNC(spmpar,SPMPAR)(void);
1951 PyObject* o = PyDict_GetItemString(d,"spmpar");
1952 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(spmpar,SPMPAR),NULL);
1953 PyObject_SetAttrString(o,"_cpointer", tmp);
1954 Py_DECREF(tmp);
1955 s = PyUnicode_FromString("spmpar");
1956 PyObject_SetAttrString(o,"__name__", s);
1957 Py_DECREF(s);
1958 }
1959
1960 /*eof initf2pywraphooks*/
1961 /*eof initf90modhooks*/
1962
1963 tmp = PyFortranObject_New(f2py_spec_def,f2py_init_spec);
1964 F2PyDict_SetItemString(d, "spec", tmp);
1965 Py_DECREF(tmp);
1966 tmp = PyFortranObject_New(f2py_mode_def,f2py_init_mode);
1967 F2PyDict_SetItemString(d, "mode", tmp);
1968 Py_DECREF(tmp);
1969 tmp = PyFortranObject_New(f2py_fitter_def,f2py_init_fitter);
1970 F2PyDict_SetItemString(d, "fitter", tmp);
1971 Py_DECREF(tmp);
1972 tmp = PyFortranObject_New(f2py_trans_def,f2py_init_trans);
1973 F2PyDict_SetItemString(d, "trans", tmp);
1974 Py_DECREF(tmp);
1975 /*eof initcommonhooks*/
1976
1977
1978 #ifdef F2PY_REPORT_ATEXIT
1979 if (! PyErr_Occurred())
1980 on_exit(f2py_report_on_exit,(void*)"fitacf_fit_short");
1981 #endif
1982 return m;
1983 }
1984 #ifdef __cplusplus
1985 }
1986 #endif
@@ -0,0 +1,20
1 C -*- fortran -*-
2 C This file is autogenerated with f2py (version:2)
3 C It contains Fortran 77 wrappers to fortran functions.
4
5 subroutine f2pywrapcdtr1 (cdtr1f2pywrap, depth)
6 external cdtr1
7 real depth
8 real cdtr1f2pywrap, cdtr1
9 cdtr1f2pywrap = cdtr1(depth)
10 end
11
12
13 subroutine f2pywrapczte1 (czte1f2pywrap, zlag, tr)
14 external czte1
15 real zlag
16 real tr
17 real czte1f2pywrap, czte1
18 czte1f2pywrap = czte1(zlag, tr)
19 end
20
This diff has been collapsed as it changes many lines, (871 lines changed) Show them Hide them
@@ -0,0 +1,871
1 /* File: fitacf_guessmodule.c
2 * This file is auto-generated with f2py (version:2).
3 * f2py is a Fortran to Python Interface Generator (FPIG), Second Edition,
4 * written by Pearu Peterson <pearu@cens.ioc.ee>.
5 * Generation date: Wed Jan 8 13:23:37 2025
6 * Do not edit this file directly unless you know what you are doing!!!
7 */
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 /*********************** See f2py2e/cfuncs.py: includes ***********************/
14 #include "Python.h"
15 #include <stdarg.h>
16 #include "fortranobject.h"
17 #include <math.h>
18
19 /**************** See f2py2e/rules.py: mod_rules['modulebody'] ****************/
20 static PyObject *fitacf_guess_error;
21 static PyObject *fitacf_guess_module;
22
23 /*********************** See f2py2e/cfuncs.py: typedefs ***********************/
24 /*need_typedefs*/
25
26 /****************** See f2py2e/cfuncs.py: typedefs_generated ******************/
27 /*need_typedefs_generated*/
28
29 /********************** See f2py2e/cfuncs.py: cppmacros **********************/
30 #define PRINTPYOBJERR(obj)\
31 fprintf(stderr,"fitacf_guess.error is related to ");\
32 PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
33 fprintf(stderr,"\n");
34
35 #define pyobj_from_float1(v) (PyFloat_FromDouble(v))
36 #if defined(PREPEND_FORTRAN)
37 #if defined(NO_APPEND_FORTRAN)
38 #if defined(UPPERCASE_FORTRAN)
39 #define F_FUNC(f,F) _##F
40 #else
41 #define F_FUNC(f,F) _##f
42 #endif
43 #else
44 #if defined(UPPERCASE_FORTRAN)
45 #define F_FUNC(f,F) _##F##_
46 #else
47 #define F_FUNC(f,F) _##f##_
48 #endif
49 #endif
50 #else
51 #if defined(NO_APPEND_FORTRAN)
52 #if defined(UPPERCASE_FORTRAN)
53 #define F_FUNC(f,F) F
54 #else
55 #define F_FUNC(f,F) f
56 #endif
57 #else
58 #if defined(UPPERCASE_FORTRAN)
59 #define F_FUNC(f,F) F##_
60 #else
61 #define F_FUNC(f,F) f##_
62 #endif
63 #endif
64 #endif
65 #if defined(UNDERSCORE_G77)
66 #define F_FUNC_US(f,F) F_FUNC(f##_,F##_)
67 #else
68 #define F_FUNC_US(f,F) F_FUNC(f,F)
69 #endif
70
71 #define rank(var) var ## _Rank
72 #define shape(var,dim) var ## _Dims[dim]
73 #define old_rank(var) (PyArray_NDIM((PyArrayObject *)(capi_ ## var ## _tmp)))
74 #define old_shape(var,dim) PyArray_DIM(((PyArrayObject *)(capi_ ## var ## _tmp)),dim)
75 #define fshape(var,dim) shape(var,rank(var)-dim-1)
76 #define len(var) shape(var,0)
77 #define flen(var) fshape(var,0)
78 #define old_size(var) PyArray_SIZE((PyArrayObject *)(capi_ ## var ## _tmp))
79 /* #define index(i) capi_i ## i */
80 #define slen(var) capi_ ## var ## _len
81 #define size(var, ...) f2py_size((PyArrayObject *)(capi_ ## var ## _tmp), ## __VA_ARGS__, -1)
82
83 #define CHECKSCALAR(check,tcheck,name,show,var)\
84 if (!(check)) {\
85 char errstring[256];\
86 sprintf(errstring, "%s: "show, "("tcheck") failed for "name, var);\
87 PyErr_SetString(fitacf_guess_error,errstring);\
88 /*goto capi_fail;*/\
89 } else
90 #ifdef DEBUGCFUNCS
91 #define CFUNCSMESS(mess) fprintf(stderr,"debug-capi:"mess);
92 #define CFUNCSMESSPY(mess,obj) CFUNCSMESS(mess) \
93 PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
94 fprintf(stderr,"\n");
95 #else
96 #define CFUNCSMESS(mess)
97 #define CFUNCSMESSPY(mess,obj)
98 #endif
99
100 #ifndef max
101 #define max(a,b) ((a > b) ? (a) : (b))
102 #endif
103 #ifndef min
104 #define min(a,b) ((a < b) ? (a) : (b))
105 #endif
106 #ifndef MAX
107 #define MAX(a,b) ((a > b) ? (a) : (b))
108 #endif
109 #ifndef MIN
110 #define MIN(a,b) ((a < b) ? (a) : (b))
111 #endif
112
113 #if defined(PREPEND_FORTRAN)
114 #if defined(NO_APPEND_FORTRAN)
115 #if defined(UPPERCASE_FORTRAN)
116 #define F_WRAPPEDFUNC(f,F) _F2PYWRAP##F
117 #else
118 #define F_WRAPPEDFUNC(f,F) _f2pywrap##f
119 #endif
120 #else
121 #if defined(UPPERCASE_FORTRAN)
122 #define F_WRAPPEDFUNC(f,F) _F2PYWRAP##F##_
123 #else
124 #define F_WRAPPEDFUNC(f,F) _f2pywrap##f##_
125 #endif
126 #endif
127 #else
128 #if defined(NO_APPEND_FORTRAN)
129 #if defined(UPPERCASE_FORTRAN)
130 #define F_WRAPPEDFUNC(f,F) F2PYWRAP##F
131 #else
132 #define F_WRAPPEDFUNC(f,F) f2pywrap##f
133 #endif
134 #else
135 #if defined(UPPERCASE_FORTRAN)
136 #define F_WRAPPEDFUNC(f,F) F2PYWRAP##F##_
137 #else
138 #define F_WRAPPEDFUNC(f,F) f2pywrap##f##_
139 #endif
140 #endif
141 #endif
142 #if defined(UNDERSCORE_G77)
143 #define F_WRAPPEDFUNC_US(f,F) F_WRAPPEDFUNC(f##_,F##_)
144 #else
145 #define F_WRAPPEDFUNC_US(f,F) F_WRAPPEDFUNC(f,F)
146 #endif
147
148 /* New SciPy */
149 #define TRYPYARRAYTEMPLATECHAR case NPY_STRING: *(char *)(PyArray_DATA(arr))=*v; break;
150 #define TRYPYARRAYTEMPLATELONG case NPY_LONG: *(long *)(PyArray_DATA(arr))=*v; break;
151 #define TRYPYARRAYTEMPLATEOBJECT case NPY_OBJECT: PyArray_SETITEM(arr,PyArray_DATA(arr),pyobj_from_ ## ctype ## 1(*v)); break;
152
153 #define TRYPYARRAYTEMPLATE(ctype,typecode) \
154 PyArrayObject *arr = NULL;\
155 if (!obj) return -2;\
156 if (!PyArray_Check(obj)) return -1;\
157 if (!(arr=(PyArrayObject *)obj)) {fprintf(stderr,"TRYPYARRAYTEMPLATE:");PRINTPYOBJERR(obj);return 0;}\
158 if (PyArray_DESCR(arr)->type==typecode) {*(ctype *)(PyArray_DATA(arr))=*v; return 1;}\
159 switch (PyArray_TYPE(arr)) {\
160 case NPY_DOUBLE: *(double *)(PyArray_DATA(arr))=*v; break;\
161 case NPY_INT: *(int *)(PyArray_DATA(arr))=*v; break;\
162 case NPY_LONG: *(long *)(PyArray_DATA(arr))=*v; break;\
163 case NPY_FLOAT: *(float *)(PyArray_DATA(arr))=*v; break;\
164 case NPY_CDOUBLE: *(double *)(PyArray_DATA(arr))=*v; break;\
165 case NPY_CFLOAT: *(float *)(PyArray_DATA(arr))=*v; break;\
166 case NPY_BOOL: *(npy_bool *)(PyArray_DATA(arr))=(*v!=0); break;\
167 case NPY_UBYTE: *(unsigned char *)(PyArray_DATA(arr))=*v; break;\
168 case NPY_BYTE: *(signed char *)(PyArray_DATA(arr))=*v; break;\
169 case NPY_SHORT: *(short *)(PyArray_DATA(arr))=*v; break;\
170 case NPY_USHORT: *(npy_ushort *)(PyArray_DATA(arr))=*v; break;\
171 case NPY_UINT: *(npy_uint *)(PyArray_DATA(arr))=*v; break;\
172 case NPY_ULONG: *(npy_ulong *)(PyArray_DATA(arr))=*v; break;\
173 case NPY_LONGLONG: *(npy_longlong *)(PyArray_DATA(arr))=*v; break;\
174 case NPY_ULONGLONG: *(npy_ulonglong *)(PyArray_DATA(arr))=*v; break;\
175 case NPY_LONGDOUBLE: *(npy_longdouble *)(PyArray_DATA(arr))=*v; break;\
176 case NPY_CLONGDOUBLE: *(npy_longdouble *)(PyArray_DATA(arr))=*v; break;\
177 case NPY_OBJECT: PyArray_SETITEM(arr, PyArray_DATA(arr), pyobj_from_ ## ctype ## 1(*v)); break;\
178 default: return -2;\
179 };\
180 return 1
181
182
183 /************************ See f2py2e/cfuncs.py: cfuncs ************************/
184 static int double_from_pyobj(double* v,PyObject *obj,const char *errmess) {
185 PyObject* tmp = NULL;
186 if (PyFloat_Check(obj)) {
187 #ifdef __sgi
188 *v = PyFloat_AsDouble(obj);
189 #else
190 *v = PyFloat_AS_DOUBLE(obj);
191 #endif
192 return 1;
193 }
194 tmp = PyNumber_Float(obj);
195 if (tmp) {
196 #ifdef __sgi
197 *v = PyFloat_AsDouble(tmp);
198 #else
199 *v = PyFloat_AS_DOUBLE(tmp);
200 #endif
201 Py_DECREF(tmp);
202 return 1;
203 }
204 if (PyComplex_Check(obj))
205 tmp = PyObject_GetAttrString(obj,"real");
206 else if (PyString_Check(obj) || PyUnicode_Check(obj))
207 /*pass*/;
208 else if (PySequence_Check(obj))
209 tmp = PySequence_GetItem(obj,0);
210 if (tmp) {
211 PyErr_Clear();
212 if (double_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
213 Py_DECREF(tmp);
214 }
215 {
216 PyObject* err = PyErr_Occurred();
217 if (err==NULL) err = fitacf_guess_error;
218 PyErr_SetString(err,errmess);
219 }
220 return 0;
221 }
222
223 static int f2py_size(PyArrayObject* var, ...)
224 {
225 npy_int sz = 0;
226 npy_int dim;
227 npy_int rank;
228 va_list argp;
229 va_start(argp, var);
230 dim = va_arg(argp, npy_int);
231 if (dim==-1)
232 {
233 sz = PyArray_SIZE(var);
234 }
235 else
236 {
237 rank = PyArray_NDIM(var);
238 if (dim>=1 && dim<=rank)
239 sz = PyArray_DIM(var, dim-1);
240 else
241 fprintf(stderr, "f2py_size: 2nd argument value=%d fails to satisfy 1<=value<=%d. Result will be 0.\n", dim, rank);
242 }
243 va_end(argp);
244 return sz;
245 }
246
247 static int try_pyarr_from_float(PyObject* obj,float* v) {
248 TRYPYARRAYTEMPLATE(float,'f');
249 }
250
251 static int float_from_pyobj(float* v,PyObject *obj,const char *errmess) {
252 double d=0.0;
253 if (double_from_pyobj(&d,obj,errmess)) {
254 *v = (float)d;
255 return 1;
256 }
257 return 0;
258 }
259
260 static int int_from_pyobj(int* v,PyObject *obj,const char *errmess) {
261 PyObject* tmp = NULL;
262 if (PyInt_Check(obj)) {
263 *v = (int)PyInt_AS_LONG(obj);
264 return 1;
265 }
266 tmp = PyNumber_Int(obj);
267 if (tmp) {
268 *v = PyInt_AS_LONG(tmp);
269 Py_DECREF(tmp);
270 return 1;
271 }
272 if (PyComplex_Check(obj))
273 tmp = PyObject_GetAttrString(obj,"real");
274 else if (PyString_Check(obj) || PyUnicode_Check(obj))
275 /*pass*/;
276 else if (PySequence_Check(obj))
277 tmp = PySequence_GetItem(obj,0);
278 if (tmp) {
279 PyErr_Clear();
280 if (int_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
281 Py_DECREF(tmp);
282 }
283 {
284 PyObject* err = PyErr_Occurred();
285 if (err==NULL) err = fitacf_guess_error;
286 PyErr_SetString(err,errmess);
287 }
288 return 0;
289 }
290
291
292 /********************* See f2py2e/cfuncs.py: userincludes *********************/
293 /*need_userincludes*/
294
295 /********************* See f2py2e/capi_rules.py: usercode *********************/
296
297
298 /* See f2py2e/rules.py */
299 extern void F_FUNC(guess,GUESS)(float*,float*,int*,float*,float*,float*,float*);
300 extern void F_FUNC(parab1,PARAB1)(float*,float*,float*,float*,float*);
301 extern void F_WRAPPEDFUNC(cdtr1,CDTR1)(float*,float*);
302 extern void F_WRAPPEDFUNC(czte1,CZTE1)(float*,float*,float*);
303 /*eof externroutines*/
304
305 /******************** See f2py2e/capi_rules.py: usercode1 ********************/
306
307
308 /******************* See f2py2e/cb_rules.py: buildcallback *******************/
309 /*need_callbacks*/
310
311 /*********************** See f2py2e/rules.py: buildapi ***********************/
312
313 /*********************************** guess ***********************************/
314 static char doc_f2py_rout_fitacf_guess_guess[] = "\
315 guess(acf,tau,zero,amin,te,tr,[npts])\n\nWrapper for ``guess``.\
316 \n\nParameters\n----------\n"
317 "acf : input rank-1 array('f') with bounds (npts)\n"
318 "tau : input rank-1 array('f') with bounds (npts)\n"
319 "zero : in/output rank-0 array(float,'f')\n"
320 "amin : in/output rank-0 array(float,'f')\n"
321 "te : in/output rank-0 array(float,'f')\n"
322 "tr : in/output rank-0 array(float,'f')\n"
323 "\nOther Parameters\n----------------\n"
324 "npts : input int, optional\n Default: len(acf)";
325 /* extern void F_FUNC(guess,GUESS)(float*,float*,int*,float*,float*,float*,float*); */
326 static PyObject *f2py_rout_fitacf_guess_guess(const PyObject *capi_self,
327 PyObject *capi_args,
328 PyObject *capi_keywds,
329 void (*f2py_func)(float*,float*,int*,float*,float*,float*,float*)) {
330 PyObject * volatile capi_buildvalue = NULL;
331 volatile int f2py_success = 1;
332 /*decl*/
333
334 float *acf = NULL;
335 npy_intp acf_Dims[1] = {-1};
336 const int acf_Rank = 1;
337 PyArrayObject *capi_acf_tmp = NULL;
338 int capi_acf_intent = 0;
339 PyObject *acf_capi = Py_None;
340 float *tau = NULL;
341 npy_intp tau_Dims[1] = {-1};
342 const int tau_Rank = 1;
343 PyArrayObject *capi_tau_tmp = NULL;
344 int capi_tau_intent = 0;
345 PyObject *tau_capi = Py_None;
346 int npts = 0;
347 PyObject *npts_capi = Py_None;
348 float zero = 0;
349 PyObject *zero_capi = Py_None;
350 float amin = 0;
351 PyObject *amin_capi = Py_None;
352 float te = 0;
353 PyObject *te_capi = Py_None;
354 float tr = 0;
355 PyObject *tr_capi = Py_None;
356 static char *capi_kwlist[] = {"acf","tau","zero","amin","te","tr","npts",NULL};
357
358 /*routdebugenter*/
359 #ifdef F2PY_REPORT_ATEXIT
360 f2py_start_clock();
361 #endif
362 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
363 "OOOOOO|O:fitacf_guess.guess",\
364 capi_kwlist,&acf_capi,&tau_capi,&zero_capi,&amin_capi,&te_capi,&tr_capi,&npts_capi))
365 return NULL;
366 /*frompyobj*/
367 /* Processing variable acf */
368 ;
369 capi_acf_intent |= F2PY_INTENT_IN;
370 capi_acf_tmp = array_from_pyobj(NPY_FLOAT,acf_Dims,acf_Rank,capi_acf_intent,acf_capi);
371 if (capi_acf_tmp == NULL) {
372 PyObject *exc, *val, *tb;
373 PyErr_Fetch(&exc, &val, &tb);
374 PyErr_SetString(exc ? exc : fitacf_guess_error,"failed in converting 1st argument `acf' of fitacf_guess.guess to C/Fortran array" );
375 npy_PyErr_ChainExceptionsCause(exc, val, tb);
376 } else {
377 acf = (float *)(PyArray_DATA(capi_acf_tmp));
378
379 /* Processing variable zero */
380 f2py_success = float_from_pyobj(&zero,zero_capi,"fitacf_guess.guess() 3rd argument (zero) can't be converted to float");
381 if (f2py_success) {
382 /* Processing variable amin */
383 f2py_success = float_from_pyobj(&amin,amin_capi,"fitacf_guess.guess() 4th argument (amin) can't be converted to float");
384 if (f2py_success) {
385 /* Processing variable te */
386 f2py_success = float_from_pyobj(&te,te_capi,"fitacf_guess.guess() 5th argument (te) can't be converted to float");
387 if (f2py_success) {
388 /* Processing variable tr */
389 f2py_success = float_from_pyobj(&tr,tr_capi,"fitacf_guess.guess() 6th argument (tr) can't be converted to float");
390 if (f2py_success) {
391 /* Processing variable npts */
392 if (npts_capi == Py_None) npts = len(acf); else
393 f2py_success = int_from_pyobj(&npts,npts_capi,"fitacf_guess.guess() 1st keyword (npts) can't be converted to int");
394 if (f2py_success) {
395 CHECKSCALAR(len(acf)>=npts,"len(acf)>=npts","1st keyword npts","guess:npts=%d",npts) {
396 /* Processing variable tau */
397 tau_Dims[0]=npts;
398 capi_tau_intent |= F2PY_INTENT_IN;
399 capi_tau_tmp = array_from_pyobj(NPY_FLOAT,tau_Dims,tau_Rank,capi_tau_intent,tau_capi);
400 if (capi_tau_tmp == NULL) {
401 PyObject *exc, *val, *tb;
402 PyErr_Fetch(&exc, &val, &tb);
403 PyErr_SetString(exc ? exc : fitacf_guess_error,"failed in converting 2nd argument `tau' of fitacf_guess.guess to C/Fortran array" );
404 npy_PyErr_ChainExceptionsCause(exc, val, tb);
405 } else {
406 tau = (float *)(PyArray_DATA(capi_tau_tmp));
407
408 /*end of frompyobj*/
409 #ifdef F2PY_REPORT_ATEXIT
410 f2py_start_call_clock();
411 #endif
412 /*callfortranroutine*/
413 (*f2py_func)(acf,tau,&npts,&zero,&amin,&te,&tr);
414 if (PyErr_Occurred())
415 f2py_success = 0;
416 #ifdef F2PY_REPORT_ATEXIT
417 f2py_stop_call_clock();
418 #endif
419 /*end of callfortranroutine*/
420 if (f2py_success) {
421 /*pyobjfrom*/
422 f2py_success = try_pyarr_from_float(zero_capi,&zero);
423 if (f2py_success) {
424 f2py_success = try_pyarr_from_float(amin_capi,&amin);
425 if (f2py_success) {
426 f2py_success = try_pyarr_from_float(te_capi,&te);
427 if (f2py_success) {
428 f2py_success = try_pyarr_from_float(tr_capi,&tr);
429 if (f2py_success) {
430 /*end of pyobjfrom*/
431 CFUNCSMESS("Building return value.\n");
432 capi_buildvalue = Py_BuildValue("");
433 /*closepyobjfrom*/
434 } /*if (f2py_success) of tr pyobjfrom*/
435 } /*if (f2py_success) of te pyobjfrom*/
436 } /*if (f2py_success) of amin pyobjfrom*/
437 } /*if (f2py_success) of zero pyobjfrom*/
438 /*end of closepyobjfrom*/
439 } /*if (f2py_success) after callfortranroutine*/
440 /*cleanupfrompyobj*/
441 if((PyObject *)capi_tau_tmp!=tau_capi) {
442 Py_XDECREF(capi_tau_tmp); }
443 } /*if (capi_tau_tmp == NULL) ... else of tau*/
444 /* End of cleaning variable tau */
445 } /*CHECKSCALAR(len(acf)>=npts)*/
446 } /*if (f2py_success) of npts*/
447 /* End of cleaning variable npts */
448 } /*if (f2py_success) of tr*/
449 /* End of cleaning variable tr */
450 } /*if (f2py_success) of te*/
451 /* End of cleaning variable te */
452 } /*if (f2py_success) of amin*/
453 /* End of cleaning variable amin */
454 } /*if (f2py_success) of zero*/
455 /* End of cleaning variable zero */
456 if((PyObject *)capi_acf_tmp!=acf_capi) {
457 Py_XDECREF(capi_acf_tmp); }
458 } /*if (capi_acf_tmp == NULL) ... else of acf*/
459 /* End of cleaning variable acf */
460 /*end of cleanupfrompyobj*/
461 if (capi_buildvalue == NULL) {
462 /*routdebugfailure*/
463 } else {
464 /*routdebugleave*/
465 }
466 CFUNCSMESS("Freeing memory.\n");
467 /*freemem*/
468 #ifdef F2PY_REPORT_ATEXIT
469 f2py_stop_clock();
470 #endif
471 return capi_buildvalue;
472 }
473 /******************************** end of guess ********************************/
474
475 /*********************************** parab1 ***********************************/
476 static char doc_f2py_rout_fitacf_guess_parab1[] = "\
477 parab1(x,y,a,b,c)\n\nWrapper for ``parab1``.\
478 \n\nParameters\n----------\n"
479 "x : input rank-1 array('f') with bounds (3)\n"
480 "y : input rank-1 array('f') with bounds (3)\n"
481 "a : input float\n"
482 "b : input float\n"
483 "c : input float";
484 /* extern void F_FUNC(parab1,PARAB1)(float*,float*,float*,float*,float*); */
485 static PyObject *f2py_rout_fitacf_guess_parab1(const PyObject *capi_self,
486 PyObject *capi_args,
487 PyObject *capi_keywds,
488 void (*f2py_func)(float*,float*,float*,float*,float*)) {
489 PyObject * volatile capi_buildvalue = NULL;
490 volatile int f2py_success = 1;
491 /*decl*/
492
493 float *x = NULL;
494 npy_intp x_Dims[1] = {-1};
495 const int x_Rank = 1;
496 PyArrayObject *capi_x_tmp = NULL;
497 int capi_x_intent = 0;
498 PyObject *x_capi = Py_None;
499 float *y = NULL;
500 npy_intp y_Dims[1] = {-1};
501 const int y_Rank = 1;
502 PyArrayObject *capi_y_tmp = NULL;
503 int capi_y_intent = 0;
504 PyObject *y_capi = Py_None;
505 float a = 0;
506 PyObject *a_capi = Py_None;
507 float b = 0;
508 PyObject *b_capi = Py_None;
509 float c = 0;
510 PyObject *c_capi = Py_None;
511 static char *capi_kwlist[] = {"x","y","a","b","c",NULL};
512
513 /*routdebugenter*/
514 #ifdef F2PY_REPORT_ATEXIT
515 f2py_start_clock();
516 #endif
517 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
518 "OOOOO|:fitacf_guess.parab1",\
519 capi_kwlist,&x_capi,&y_capi,&a_capi,&b_capi,&c_capi))
520 return NULL;
521 /*frompyobj*/
522 /* Processing variable x */
523 x_Dims[0]=3;
524 capi_x_intent |= F2PY_INTENT_IN;
525 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
526 if (capi_x_tmp == NULL) {
527 PyObject *exc, *val, *tb;
528 PyErr_Fetch(&exc, &val, &tb);
529 PyErr_SetString(exc ? exc : fitacf_guess_error,"failed in converting 1st argument `x' of fitacf_guess.parab1 to C/Fortran array" );
530 npy_PyErr_ChainExceptionsCause(exc, val, tb);
531 } else {
532 x = (float *)(PyArray_DATA(capi_x_tmp));
533
534 /* Processing variable y */
535 y_Dims[0]=3;
536 capi_y_intent |= F2PY_INTENT_IN;
537 capi_y_tmp = array_from_pyobj(NPY_FLOAT,y_Dims,y_Rank,capi_y_intent,y_capi);
538 if (capi_y_tmp == NULL) {
539 PyObject *exc, *val, *tb;
540 PyErr_Fetch(&exc, &val, &tb);
541 PyErr_SetString(exc ? exc : fitacf_guess_error,"failed in converting 2nd argument `y' of fitacf_guess.parab1 to C/Fortran array" );
542 npy_PyErr_ChainExceptionsCause(exc, val, tb);
543 } else {
544 y = (float *)(PyArray_DATA(capi_y_tmp));
545
546 /* Processing variable a */
547 f2py_success = float_from_pyobj(&a,a_capi,"fitacf_guess.parab1() 3rd argument (a) can't be converted to float");
548 if (f2py_success) {
549 /* Processing variable b */
550 f2py_success = float_from_pyobj(&b,b_capi,"fitacf_guess.parab1() 4th argument (b) can't be converted to float");
551 if (f2py_success) {
552 /* Processing variable c */
553 f2py_success = float_from_pyobj(&c,c_capi,"fitacf_guess.parab1() 5th argument (c) can't be converted to float");
554 if (f2py_success) {
555 /*end of frompyobj*/
556 #ifdef F2PY_REPORT_ATEXIT
557 f2py_start_call_clock();
558 #endif
559 /*callfortranroutine*/
560 (*f2py_func)(x,y,&a,&b,&c);
561 if (PyErr_Occurred())
562 f2py_success = 0;
563 #ifdef F2PY_REPORT_ATEXIT
564 f2py_stop_call_clock();
565 #endif
566 /*end of callfortranroutine*/
567 if (f2py_success) {
568 /*pyobjfrom*/
569 /*end of pyobjfrom*/
570 CFUNCSMESS("Building return value.\n");
571 capi_buildvalue = Py_BuildValue("");
572 /*closepyobjfrom*/
573 /*end of closepyobjfrom*/
574 } /*if (f2py_success) after callfortranroutine*/
575 /*cleanupfrompyobj*/
576 } /*if (f2py_success) of c*/
577 /* End of cleaning variable c */
578 } /*if (f2py_success) of b*/
579 /* End of cleaning variable b */
580 } /*if (f2py_success) of a*/
581 /* End of cleaning variable a */
582 if((PyObject *)capi_y_tmp!=y_capi) {
583 Py_XDECREF(capi_y_tmp); }
584 } /*if (capi_y_tmp == NULL) ... else of y*/
585 /* End of cleaning variable y */
586 if((PyObject *)capi_x_tmp!=x_capi) {
587 Py_XDECREF(capi_x_tmp); }
588 } /*if (capi_x_tmp == NULL) ... else of x*/
589 /* End of cleaning variable x */
590 /*end of cleanupfrompyobj*/
591 if (capi_buildvalue == NULL) {
592 /*routdebugfailure*/
593 } else {
594 /*routdebugleave*/
595 }
596 CFUNCSMESS("Freeing memory.\n");
597 /*freemem*/
598 #ifdef F2PY_REPORT_ATEXIT
599 f2py_stop_clock();
600 #endif
601 return capi_buildvalue;
602 }
603 /******************************* end of parab1 *******************************/
604
605 /*********************************** cdtr1 ***********************************/
606 static char doc_f2py_rout_fitacf_guess_cdtr1[] = "\
607 cdtr1 = cdtr1(depth)\n\nWrapper for ``cdtr1``.\
608 \n\nParameters\n----------\n"
609 "depth : input float\n"
610 "\nReturns\n-------\n"
611 "cdtr1 : float";
612 /* extern void F_WRAPPEDFUNC(cdtr1,CDTR1)(float*,float*); */
613 static PyObject *f2py_rout_fitacf_guess_cdtr1(const PyObject *capi_self,
614 PyObject *capi_args,
615 PyObject *capi_keywds,
616 void (*f2py_func)(float*,float*)) {
617 PyObject * volatile capi_buildvalue = NULL;
618 volatile int f2py_success = 1;
619 /*decl*/
620
621 float cdtr1 = 0;
622 float depth = 0;
623 PyObject *depth_capi = Py_None;
624 static char *capi_kwlist[] = {"depth",NULL};
625
626 /*routdebugenter*/
627 #ifdef F2PY_REPORT_ATEXIT
628 f2py_start_clock();
629 #endif
630 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
631 "O|:fitacf_guess.cdtr1",\
632 capi_kwlist,&depth_capi))
633 return NULL;
634 /*frompyobj*/
635 /* Processing variable depth */
636 f2py_success = float_from_pyobj(&depth,depth_capi,"fitacf_guess.cdtr1() 1st argument (depth) can't be converted to float");
637 if (f2py_success) {
638 /* Processing variable cdtr1 */
639 /*end of frompyobj*/
640 #ifdef F2PY_REPORT_ATEXIT
641 f2py_start_call_clock();
642 #endif
643 /*callfortranroutine*/
644 (*f2py_func)(&cdtr1,&depth);
645 if (PyErr_Occurred())
646 f2py_success = 0;
647 #ifdef F2PY_REPORT_ATEXIT
648 f2py_stop_call_clock();
649 #endif
650 /*end of callfortranroutine*/
651 if (f2py_success) {
652 /*pyobjfrom*/
653 /*end of pyobjfrom*/
654 CFUNCSMESS("Building return value.\n");
655 capi_buildvalue = Py_BuildValue("f",cdtr1);
656 /*closepyobjfrom*/
657 /*end of closepyobjfrom*/
658 } /*if (f2py_success) after callfortranroutine*/
659 /*cleanupfrompyobj*/
660 /* End of cleaning variable cdtr1 */
661 } /*if (f2py_success) of depth*/
662 /* End of cleaning variable depth */
663 /*end of cleanupfrompyobj*/
664 if (capi_buildvalue == NULL) {
665 /*routdebugfailure*/
666 } else {
667 /*routdebugleave*/
668 }
669 CFUNCSMESS("Freeing memory.\n");
670 /*freemem*/
671 #ifdef F2PY_REPORT_ATEXIT
672 f2py_stop_clock();
673 #endif
674 return capi_buildvalue;
675 }
676 /******************************** end of cdtr1 ********************************/
677
678 /*********************************** czte1 ***********************************/
679 static char doc_f2py_rout_fitacf_guess_czte1[] = "\
680 czte1 = czte1(zlag,tr)\n\nWrapper for ``czte1``.\
681 \n\nParameters\n----------\n"
682 "zlag : input float\n"
683 "tr : input float\n"
684 "\nReturns\n-------\n"
685 "czte1 : float";
686 /* extern void F_WRAPPEDFUNC(czte1,CZTE1)(float*,float*,float*); */
687 static PyObject *f2py_rout_fitacf_guess_czte1(const PyObject *capi_self,
688 PyObject *capi_args,
689 PyObject *capi_keywds,
690 void (*f2py_func)(float*,float*,float*)) {
691 PyObject * volatile capi_buildvalue = NULL;
692 volatile int f2py_success = 1;
693 /*decl*/
694
695 float czte1 = 0;
696 float zlag = 0;
697 PyObject *zlag_capi = Py_None;
698 float tr = 0;
699 PyObject *tr_capi = Py_None;
700 static char *capi_kwlist[] = {"zlag","tr",NULL};
701
702 /*routdebugenter*/
703 #ifdef F2PY_REPORT_ATEXIT
704 f2py_start_clock();
705 #endif
706 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
707 "OO|:fitacf_guess.czte1",\
708 capi_kwlist,&zlag_capi,&tr_capi))
709 return NULL;
710 /*frompyobj*/
711 /* Processing variable zlag */
712 f2py_success = float_from_pyobj(&zlag,zlag_capi,"fitacf_guess.czte1() 1st argument (zlag) can't be converted to float");
713 if (f2py_success) {
714 /* Processing variable tr */
715 f2py_success = float_from_pyobj(&tr,tr_capi,"fitacf_guess.czte1() 2nd argument (tr) can't be converted to float");
716 if (f2py_success) {
717 /* Processing variable czte1 */
718 /*end of frompyobj*/
719 #ifdef F2PY_REPORT_ATEXIT
720 f2py_start_call_clock();
721 #endif
722 /*callfortranroutine*/
723 (*f2py_func)(&czte1,&zlag,&tr);
724 if (PyErr_Occurred())
725 f2py_success = 0;
726 #ifdef F2PY_REPORT_ATEXIT
727 f2py_stop_call_clock();
728 #endif
729 /*end of callfortranroutine*/
730 if (f2py_success) {
731 /*pyobjfrom*/
732 /*end of pyobjfrom*/
733 CFUNCSMESS("Building return value.\n");
734 capi_buildvalue = Py_BuildValue("f",czte1);
735 /*closepyobjfrom*/
736 /*end of closepyobjfrom*/
737 } /*if (f2py_success) after callfortranroutine*/
738 /*cleanupfrompyobj*/
739 /* End of cleaning variable czte1 */
740 } /*if (f2py_success) of tr*/
741 /* End of cleaning variable tr */
742 } /*if (f2py_success) of zlag*/
743 /* End of cleaning variable zlag */
744 /*end of cleanupfrompyobj*/
745 if (capi_buildvalue == NULL) {
746 /*routdebugfailure*/
747 } else {
748 /*routdebugleave*/
749 }
750 CFUNCSMESS("Freeing memory.\n");
751 /*freemem*/
752 #ifdef F2PY_REPORT_ATEXIT
753 f2py_stop_clock();
754 #endif
755 return capi_buildvalue;
756 }
757 /******************************** end of czte1 ********************************/
758 /*eof body*/
759
760 /******************* See f2py2e/f90mod_rules.py: buildhooks *******************/
761 /*need_f90modhooks*/
762
763 /************** See f2py2e/rules.py: module_rules['modulebody'] **************/
764
765 /******************* See f2py2e/common_rules.py: buildhooks *******************/
766
767 /*need_commonhooks*/
768
769 /**************************** See f2py2e/rules.py ****************************/
770
771 static FortranDataDef f2py_routine_defs[] = {
772 {"guess",-1,{{-1}},0,(char *)F_FUNC(guess,GUESS),(f2py_init_func)f2py_rout_fitacf_guess_guess,doc_f2py_rout_fitacf_guess_guess},
773 {"parab1",-1,{{-1}},0,(char *)F_FUNC(parab1,PARAB1),(f2py_init_func)f2py_rout_fitacf_guess_parab1,doc_f2py_rout_fitacf_guess_parab1},
774 {"cdtr1",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(cdtr1,CDTR1),(f2py_init_func)f2py_rout_fitacf_guess_cdtr1,doc_f2py_rout_fitacf_guess_cdtr1},
775 {"czte1",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(czte1,CZTE1),(f2py_init_func)f2py_rout_fitacf_guess_czte1,doc_f2py_rout_fitacf_guess_czte1},
776
777 /*eof routine_defs*/
778 {NULL}
779 };
780
781 static PyMethodDef f2py_module_methods[] = {
782
783 {NULL,NULL}
784 };
785
786 static struct PyModuleDef moduledef = {
787 PyModuleDef_HEAD_INIT,
788 "fitacf_guess",
789 NULL,
790 -1,
791 f2py_module_methods,
792 NULL,
793 NULL,
794 NULL,
795 NULL
796 };
797
798 PyMODINIT_FUNC PyInit_fitacf_guess(void) {
799 int i;
800 PyObject *m,*d, *s, *tmp;
801 m = fitacf_guess_module = PyModule_Create(&moduledef);
802 Py_SET_TYPE(&PyFortran_Type, &PyType_Type);
803 import_array();
804 if (PyErr_Occurred())
805 {PyErr_SetString(PyExc_ImportError, "can't initialize module fitacf_guess (failed to import numpy)"); return m;}
806 d = PyModule_GetDict(m);
807 s = PyString_FromString("$Revision: $");
808 PyDict_SetItemString(d, "__version__", s);
809 Py_DECREF(s);
810 s = PyUnicode_FromString(
811 "This module 'fitacf_guess' is auto-generated with f2py (version:2).\nFunctions:\n"
812 " guess(acf,tau,zero,amin,te,tr,npts=len(acf))\n"
813 " parab1(x,y,a,b,c)\n"
814 " cdtr1 = cdtr1(depth)\n"
815 " czte1 = czte1(zlag,tr)\n"
816 ".");
817 PyDict_SetItemString(d, "__doc__", s);
818 Py_DECREF(s);
819 fitacf_guess_error = PyErr_NewException ("fitacf_guess.error", NULL, NULL);
820 /*
821 * Store the error object inside the dict, so that it could get deallocated.
822 * (in practice, this is a module, so it likely will not and cannot.)
823 */
824 PyDict_SetItemString(d, "_fitacf_guess_error", fitacf_guess_error);
825 Py_DECREF(fitacf_guess_error);
826 for(i=0;f2py_routine_defs[i].name!=NULL;i++) {
827 tmp = PyFortranObject_NewAsAttr(&f2py_routine_defs[i]);
828 PyDict_SetItemString(d, f2py_routine_defs[i].name, tmp);
829 Py_DECREF(tmp);
830 }
831
832
833
834 {
835 extern float F_FUNC(cdtr1,CDTR1)(void);
836 PyObject* o = PyDict_GetItemString(d,"cdtr1");
837 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(cdtr1,CDTR1),NULL);
838 PyObject_SetAttrString(o,"_cpointer", tmp);
839 Py_DECREF(tmp);
840 s = PyUnicode_FromString("cdtr1");
841 PyObject_SetAttrString(o,"__name__", s);
842 Py_DECREF(s);
843 }
844
845
846 {
847 extern float F_FUNC(czte1,CZTE1)(void);
848 PyObject* o = PyDict_GetItemString(d,"czte1");
849 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(czte1,CZTE1),NULL);
850 PyObject_SetAttrString(o,"_cpointer", tmp);
851 Py_DECREF(tmp);
852 s = PyUnicode_FromString("czte1");
853 PyObject_SetAttrString(o,"__name__", s);
854 Py_DECREF(s);
855 }
856
857 /*eof initf2pywraphooks*/
858 /*eof initf90modhooks*/
859
860 /*eof initcommonhooks*/
861
862
863 #ifdef F2PY_REPORT_ATEXIT
864 if (! PyErr_Occurred())
865 on_exit(f2py_report_on_exit,(void*)"fitacf_guess");
866 #endif
867 return m;
868 }
869 #ifdef __cplusplus
870 }
871 #endif
@@ -0,0 +1,240
1 C -*- fortran -*-
2 C This file is autogenerated with f2py (version:2)
3 C It contains Fortran 77 wrappers to fortran functions.
4
5 subroutine f2pywrapenorm (enormf2pywrap, n, x)
6 external enorm
7 integer n
8 real x(n)
9 real enormf2pywrap, enorm
10 enormf2pywrap = enorm(n, x)
11 end
12
13
14 subroutine f2pywrapspmpar (spmparf2pywrap, i)
15 external spmpar
16 integer i
17 real spmparf2pywrap, spmpar
18 spmparf2pywrap = spmpar(i)
19 end
20
21
22 subroutine f2pywrapcdtr1 (cdtr1f2pywrap, depth)
23 external cdtr1
24 real depth
25 real cdtr1f2pywrap, cdtr1
26 cdtr1f2pywrap = cdtr1(depth)
27 end
28
29
30 subroutine f2pywrapczte1 (czte1f2pywrap, zlag, tr)
31 external czte1
32 real zlag
33 real tr
34 real czte1f2pywrap, czte1
35 czte1f2pywrap = czte1(zlag, tr)
36 end
37
38
39 subroutine f2pywrapcj_ion (cj_ionf2pywrap, theta, psi)
40 external cj_ion
41 real theta
42 real psi
43 complex cj_ionf2pywrap, cj_ion
44 cj_ionf2pywrap = cj_ion(theta, psi)
45 end
46
47
48 subroutine f2pywrapcj_electron (cj_electronf2pywrap, theta,
49 &phi, psi, alpha)
50 external cj_electron
51 real theta
52 real phi
53 real psi
54 real alpha
55 complex cj_electronf2pywrap, cj_electron
56 cj_electronf2pywrap = cj_electron(theta, phi, psi, alpha)
57 end
58
59
60 subroutine f2pywrapy_ion (y_ionf2pywrap, theta, psi)
61 external y_ion
62 real theta
63 real psi
64 complex y_ionf2pywrap, y_ion
65 y_ionf2pywrap = y_ion(theta, psi)
66 end
67
68
69 subroutine f2pywrapy_electron (y_electronf2pywrap, theta, ph
70 &i, psi, alpha)
71 external y_electron
72 real theta
73 real phi
74 real psi
75 real alpha
76 complex y_electronf2pywrap, y_electron
77 y_electronf2pywrap = y_electron(theta, phi, psi, alpha)
78 end
79
80
81 subroutine f2pywrapspect1 (spect1f2pywrap, omega)
82 external spect1
83 real omega
84 real spect1f2pywrap, spect1
85 spect1f2pywrap = spect1(omega)
86 end
87
88
89 subroutine f2pywrapatanh (atanhf2pywrap, x)
90 external atanh
91 real x
92 real atanhf2pywrap, atanh
93 atanhf2pywrap = atanh(x)
94 end
95
96
97 subroutine f2pywrapbvalue (bvaluef2pywrap, t, bcoef, n, k, x
98 &, jderiv)
99 external bvalue
100 integer n
101 integer k
102 real x
103 integer jderiv
104 real t(n+k)
105 real bcoef(n)
106 real bvaluef2pywrap, bvalue
107 bvaluef2pywrap = bvalue(t, bcoef, n, k, x, jderiv)
108 end
109
110
111 subroutine f2pywrapr1mach (r1machf2pywrap, i)
112 external r1mach
113 integer i
114 real r1machf2pywrap, r1mach
115 r1machf2pywrap = r1mach(i)
116 end
117
118
119 subroutine f2pyinitchisq(setupfunc)
120 external setupfunc
121 real chi2
122 common /chisq/ chi2
123 call setupfunc(chi2)
124 end
125
126 subroutine f2pyinitfpa(setupfunc)
127 external setupfunc
128 real densp(91)
129 real tep(91)
130 real trp(91)
131 real tip(91)
132 real hfp(91)
133 real hefp(91)
134 real altp(91)
135 real r0
136 real dr
137 real wl
138 common /fpa/ densp,tep,trp,tip,hfp,hefp,altp,r0,dr,wl
139 call setupfunc(densp,tep,trp,tip,hfp,hefp,altp,r0,dr,wl)
140 end
141
142 subroutine f2pyinitdata(setupfunc)
143 external setupfunc
144 real plag(16,91)
145 real plag_errors(16,91)
146 common /data/ plag,plag_errors
147 call setupfunc(plag,plag_errors)
148 end
149
150 subroutine f2pyinitsys(setupfunc)
151 external setupfunc
152 real sconst
153 common /sys/ sconst
154 call setupfunc(sconst)
155 end
156
157 subroutine f2pyiniterrs(setupfunc)
158 external setupfunc
159 real edensp(91)
160 real etep(91)
161 real etip(91)
162 real ehfp(91)
163 real ehefp(91)
164 common /errs/ edensp,etep,etip,ehfp,ehefp
165 call setupfunc(edensp,etep,etip,ehfp,ehefp)
166 end
167
168 subroutine f2pyinitmag(setupfunc)
169 external setupfunc
170 real bfld_prof(85)
171 real alpha_prof(85)
172 common /mag/ bfld_prof,alpha_prof
173 call setupfunc(bfld_prof,alpha_prof)
174 end
175
176 subroutine f2pyinitmode(setupfunc)
177 external setupfunc
178 integer imode
179 common /mode/ imode
180 call setupfunc(imode)
181 end
182
183 subroutine f2pyinitutime(setupfunc)
184 external setupfunc
185 real uttime
186 common /utime/ uttime
187 call setupfunc(uttime)
188 end
189
190 subroutine f2pyinitspline(setupfunc)
191 external setupfunc
192 real ta(34)
193 real bcoef(30,5)
194 common /spline/ ta,bcoef
195 call setupfunc(ta,bcoef)
196 end
197
198 subroutine f2pyinitspec(setupfunc)
199 external setupfunc
200 real te
201 real ti(10)
202 real fi(10)
203 real ven
204 real vin(10)
205 real alpha
206 real dens
207 real bfld
208 integer nion
209 integer wi(10)
210 real ak
211 common /spec/ te,ti,fi,ven,vin,alpha,dens,bfld,nion,wi,ak
212 call setupfunc(te,ti,fi,ven,vin,alpha,dens,bfld,nion,wi,ak)
213 end
214
215 subroutine f2pyinitfitter(setupfunc)
216 external setupfunc
217 real tau(100)
218 real rho(100)
219 real sigma2(100)
220 real params(10)
221 integer ifit(10)
222 common /fitter/ tau,rho,sigma2,params,ifit
223 call setupfunc(tau,rho,sigma2,params,ifit)
224 end
225
226 subroutine f2pyinittrans(setupfunc)
227 external setupfunc
228 real ev(10000)
229 common /trans/ ev
230 call setupfunc(ev)
231 end
232
233 subroutine f2pyinitd8mach(setupfunc)
234 external setupfunc
235 integer cray1
236 common /d8mach/ cray1
237 call setupfunc(cray1)
238 end
239
240
This diff has been collapsed as it changes many lines, (5456 lines changed) Show them Hide them
@@ -0,0 +1,5456
1 /* File: full_profile_profilemodule.c
2 * This file is auto-generated with f2py (version:2).
3 * f2py is a Fortran to Python Interface Generator (FPIG), Second Edition,
4 * written by Pearu Peterson <pearu@cens.ioc.ee>.
5 * Generation date: Wed Jan 8 13:23:37 2025
6 * Do not edit this file directly unless you know what you are doing!!!
7 */
8
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12
13 /*********************** See f2py2e/cfuncs.py: includes ***********************/
14 #include "Python.h"
15 #include <stdarg.h>
16 #include "fortranobject.h"
17 #include <setjmp.h>
18 #include <math.h>
19
20 /**************** See f2py2e/rules.py: mod_rules['modulebody'] ****************/
21 static PyObject *full_profile_profile_error;
22 static PyObject *full_profile_profile_module;
23
24 /*********************** See f2py2e/cfuncs.py: typedefs ***********************/
25 typedef signed char signed_char;
26 typedef struct {float r,i;} complex_float;
27
28 /****************** See f2py2e/cfuncs.py: typedefs_generated ******************/
29 typedef void(*cb_fcn_in_lmdif__user__routines_typedef)(int *,int *,float *,float *,int *);
30 typedef void(*cb_fcn_in_fdjac2__user__routines_typedef)(int *,int *,float *,float *,int *);
31
32 /********************** See f2py2e/cfuncs.py: cppmacros **********************/
33 #define PRINTPYOBJERR(obj)\
34 fprintf(stderr,"full_profile_profile.error is related to ");\
35 PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
36 fprintf(stderr,"\n");
37
38 #define pyobj_from_int1(v) (PyInt_FromLong(v))
39 #ifdef DEBUGCFUNCS
40 #define CFUNCSMESS(mess) fprintf(stderr,"debug-capi:"mess);
41 #define CFUNCSMESSPY(mess,obj) CFUNCSMESS(mess) \
42 PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
43 fprintf(stderr,"\n");
44 #else
45 #define CFUNCSMESS(mess)
46 #define CFUNCSMESSPY(mess,obj)
47 #endif
48
49 #if defined(PREPEND_FORTRAN)
50 #if defined(NO_APPEND_FORTRAN)
51 #if defined(UPPERCASE_FORTRAN)
52 #define F_FUNC(f,F) _##F
53 #else
54 #define F_FUNC(f,F) _##f
55 #endif
56 #else
57 #if defined(UPPERCASE_FORTRAN)
58 #define F_FUNC(f,F) _##F##_
59 #else
60 #define F_FUNC(f,F) _##f##_
61 #endif
62 #endif
63 #else
64 #if defined(NO_APPEND_FORTRAN)
65 #if defined(UPPERCASE_FORTRAN)
66 #define F_FUNC(f,F) F
67 #else
68 #define F_FUNC(f,F) f
69 #endif
70 #else
71 #if defined(UPPERCASE_FORTRAN)
72 #define F_FUNC(f,F) F##_
73 #else
74 #define F_FUNC(f,F) f##_
75 #endif
76 #endif
77 #endif
78 #if defined(UNDERSCORE_G77)
79 #define F_FUNC_US(f,F) F_FUNC(f##_,F##_)
80 #else
81 #define F_FUNC_US(f,F) F_FUNC(f,F)
82 #endif
83
84 #define rank(var) var ## _Rank
85 #define shape(var,dim) var ## _Dims[dim]
86 #define old_rank(var) (PyArray_NDIM((PyArrayObject *)(capi_ ## var ## _tmp)))
87 #define old_shape(var,dim) PyArray_DIM(((PyArrayObject *)(capi_ ## var ## _tmp)),dim)
88 #define fshape(var,dim) shape(var,rank(var)-dim-1)
89 #define len(var) shape(var,0)
90 #define flen(var) fshape(var,0)
91 #define old_size(var) PyArray_SIZE((PyArrayObject *)(capi_ ## var ## _tmp))
92 /* #define index(i) capi_i ## i */
93 #define slen(var) capi_ ## var ## _len
94 #define size(var, ...) f2py_size((PyArrayObject *)(capi_ ## var ## _tmp), ## __VA_ARGS__, -1)
95
96 #define CHECKSCALAR(check,tcheck,name,show,var)\
97 if (!(check)) {\
98 char errstring[256];\
99 sprintf(errstring, "%s: "show, "("tcheck") failed for "name, var);\
100 PyErr_SetString(full_profile_profile_error,errstring);\
101 /*goto capi_fail;*/\
102 } else
103 #ifndef max
104 #define max(a,b) ((a > b) ? (a) : (b))
105 #endif
106 #ifndef min
107 #define min(a,b) ((a < b) ? (a) : (b))
108 #endif
109 #ifndef MAX
110 #define MAX(a,b) ((a > b) ? (a) : (b))
111 #endif
112 #ifndef MIN
113 #define MIN(a,b) ((a < b) ? (a) : (b))
114 #endif
115
116 #if defined(PREPEND_FORTRAN)
117 #if defined(NO_APPEND_FORTRAN)
118 #if defined(UPPERCASE_FORTRAN)
119 #define F_WRAPPEDFUNC(f,F) _F2PYWRAP##F
120 #else
121 #define F_WRAPPEDFUNC(f,F) _f2pywrap##f
122 #endif
123 #else
124 #if defined(UPPERCASE_FORTRAN)
125 #define F_WRAPPEDFUNC(f,F) _F2PYWRAP##F##_
126 #else
127 #define F_WRAPPEDFUNC(f,F) _f2pywrap##f##_
128 #endif
129 #endif
130 #else
131 #if defined(NO_APPEND_FORTRAN)
132 #if defined(UPPERCASE_FORTRAN)
133 #define F_WRAPPEDFUNC(f,F) F2PYWRAP##F
134 #else
135 #define F_WRAPPEDFUNC(f,F) f2pywrap##f
136 #endif
137 #else
138 #if defined(UPPERCASE_FORTRAN)
139 #define F_WRAPPEDFUNC(f,F) F2PYWRAP##F##_
140 #else
141 #define F_WRAPPEDFUNC(f,F) f2pywrap##f##_
142 #endif
143 #endif
144 #endif
145 #if defined(UNDERSCORE_G77)
146 #define F_WRAPPEDFUNC_US(f,F) F_WRAPPEDFUNC(f##_,F##_)
147 #else
148 #define F_WRAPPEDFUNC_US(f,F) F_WRAPPEDFUNC(f,F)
149 #endif
150
151 #define SWAP(a,b,t) {\
152 t *c;\
153 c = a;\
154 a = b;\
155 b = c;}
156
157 #define pyobj_from_complex_float1(v) (PyComplex_FromDoubles(v.r,v.i))
158
159 /************************ See f2py2e/cfuncs.py: cfuncs ************************/
160 static int double_from_pyobj(double* v,PyObject *obj,const char *errmess) {
161 PyObject* tmp = NULL;
162 if (PyFloat_Check(obj)) {
163 #ifdef __sgi
164 *v = PyFloat_AsDouble(obj);
165 #else
166 *v = PyFloat_AS_DOUBLE(obj);
167 #endif
168 return 1;
169 }
170 tmp = PyNumber_Float(obj);
171 if (tmp) {
172 #ifdef __sgi
173 *v = PyFloat_AsDouble(tmp);
174 #else
175 *v = PyFloat_AS_DOUBLE(tmp);
176 #endif
177 Py_DECREF(tmp);
178 return 1;
179 }
180 if (PyComplex_Check(obj))
181 tmp = PyObject_GetAttrString(obj,"real");
182 else if (PyString_Check(obj) || PyUnicode_Check(obj))
183 /*pass*/;
184 else if (PySequence_Check(obj))
185 tmp = PySequence_GetItem(obj,0);
186 if (tmp) {
187 PyErr_Clear();
188 if (double_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
189 Py_DECREF(tmp);
190 }
191 {
192 PyObject* err = PyErr_Occurred();
193 if (err==NULL) err = full_profile_profile_error;
194 PyErr_SetString(err,errmess);
195 }
196 return 0;
197 }
198
199 static int f2py_size(PyArrayObject* var, ...)
200 {
201 npy_int sz = 0;
202 npy_int dim;
203 npy_int rank;
204 va_list argp;
205 va_start(argp, var);
206 dim = va_arg(argp, npy_int);
207 if (dim==-1)
208 {
209 sz = PyArray_SIZE(var);
210 }
211 else
212 {
213 rank = PyArray_NDIM(var);
214 if (dim>=1 && dim<=rank)
215 sz = PyArray_DIM(var, dim-1);
216 else
217 fprintf(stderr, "f2py_size: 2nd argument value=%d fails to satisfy 1<=value<=%d. Result will be 0.\n", dim, rank);
218 }
219 va_end(argp);
220 return sz;
221 }
222
223 static int float_from_pyobj(float* v,PyObject *obj,const char *errmess) {
224 double d=0.0;
225 if (double_from_pyobj(&d,obj,errmess)) {
226 *v = (float)d;
227 return 1;
228 }
229 return 0;
230 }
231
232 static int int_from_pyobj(int* v,PyObject *obj,const char *errmess) {
233 PyObject* tmp = NULL;
234 if (PyInt_Check(obj)) {
235 *v = (int)PyInt_AS_LONG(obj);
236 return 1;
237 }
238 tmp = PyNumber_Int(obj);
239 if (tmp) {
240 *v = PyInt_AS_LONG(tmp);
241 Py_DECREF(tmp);
242 return 1;
243 }
244 if (PyComplex_Check(obj))
245 tmp = PyObject_GetAttrString(obj,"real");
246 else if (PyString_Check(obj) || PyUnicode_Check(obj))
247 /*pass*/;
248 else if (PySequence_Check(obj))
249 tmp = PySequence_GetItem(obj,0);
250 if (tmp) {
251 PyErr_Clear();
252 if (int_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
253 Py_DECREF(tmp);
254 }
255 {
256 PyObject* err = PyErr_Occurred();
257 if (err==NULL) err = full_profile_profile_error;
258 PyErr_SetString(err,errmess);
259 }
260 return 0;
261 }
262
263 static int create_cb_arglist(PyObject* fun,PyTupleObject* xa,const int maxnofargs,const int nofoptargs,int *nofargs,PyTupleObject **args,const char *errmess) {
264 PyObject *tmp = NULL;
265 PyObject *tmp_fun = NULL;
266 int tot,opt,ext,siz,i,di=0;
267 CFUNCSMESS("create_cb_arglist\n");
268 tot=opt=ext=siz=0;
269 /* Get the total number of arguments */
270 if (PyFunction_Check(fun)) {
271 tmp_fun = fun;
272 Py_INCREF(tmp_fun);
273 }
274 else {
275 di = 1;
276 if (PyObject_HasAttrString(fun,"im_func")) {
277 tmp_fun = PyObject_GetAttrString(fun,"im_func");
278 }
279 else if (PyObject_HasAttrString(fun,"__call__")) {
280 tmp = PyObject_GetAttrString(fun,"__call__");
281 if (PyObject_HasAttrString(tmp,"im_func"))
282 tmp_fun = PyObject_GetAttrString(tmp,"im_func");
283 else {
284 tmp_fun = fun; /* built-in function */
285 Py_INCREF(tmp_fun);
286 tot = maxnofargs;
287 if (PyCFunction_Check(fun)) {
288 /* In case the function has a co_argcount (like on PyPy) */
289 di = 0;
290 }
291 if (xa != NULL)
292 tot += PyTuple_Size((PyObject *)xa);
293 }
294 Py_XDECREF(tmp);
295 }
296 else if (PyFortran_Check(fun) || PyFortran_Check1(fun)) {
297 tot = maxnofargs;
298 if (xa != NULL)
299 tot += PyTuple_Size((PyObject *)xa);
300 tmp_fun = fun;
301 Py_INCREF(tmp_fun);
302 }
303 else if (F2PyCapsule_Check(fun)) {
304 tot = maxnofargs;
305 if (xa != NULL)
306 ext = PyTuple_Size((PyObject *)xa);
307 if(ext>0) {
308 fprintf(stderr,"extra arguments tuple cannot be used with CObject call-back\n");
309 goto capi_fail;
310 }
311 tmp_fun = fun;
312 Py_INCREF(tmp_fun);
313 }
314 }
315 if (tmp_fun==NULL) {
316 fprintf(stderr,"Call-back argument must be function|instance|instance.__call__|f2py-function but got %s.\n",(fun==NULL?"NULL":Py_TYPE(fun)->tp_name));
317 goto capi_fail;
318 }
319 if (PyObject_HasAttrString(tmp_fun,"__code__")) {
320 if (PyObject_HasAttrString(tmp = PyObject_GetAttrString(tmp_fun,"__code__"),"co_argcount")) {
321 PyObject *tmp_argcount = PyObject_GetAttrString(tmp,"co_argcount");
322 Py_DECREF(tmp);
323 if (tmp_argcount == NULL) {
324 goto capi_fail;
325 }
326 tot = PyInt_AsLong(tmp_argcount) - di;
327 Py_DECREF(tmp_argcount);
328 }
329 }
330 /* Get the number of optional arguments */
331 if (PyObject_HasAttrString(tmp_fun,"__defaults__")) {
332 if (PyTuple_Check(tmp = PyObject_GetAttrString(tmp_fun,"__defaults__")))
333 opt = PyTuple_Size(tmp);
334 Py_XDECREF(tmp);
335 }
336 /* Get the number of extra arguments */
337 if (xa != NULL)
338 ext = PyTuple_Size((PyObject *)xa);
339 /* Calculate the size of call-backs argument list */
340 siz = MIN(maxnofargs+ext,tot);
341 *nofargs = MAX(0,siz-ext);
342 #ifdef DEBUGCFUNCS
343 fprintf(stderr,"debug-capi:create_cb_arglist:maxnofargs(-nofoptargs),tot,opt,ext,siz,nofargs=%d(-%d),%d,%d,%d,%d,%d\n",maxnofargs,nofoptargs,tot,opt,ext,siz,*nofargs);
344 #endif
345 if (siz<tot-opt) {
346 fprintf(stderr,"create_cb_arglist: Failed to build argument list (siz) with enough arguments (tot-opt) required by user-supplied function (siz,tot,opt=%d,%d,%d).\n",siz,tot,opt);
347 goto capi_fail;
348 }
349 /* Initialize argument list */
350 *args = (PyTupleObject *)PyTuple_New(siz);
351 for (i=0;i<*nofargs;i++) {
352 Py_INCREF(Py_None);
353 PyTuple_SET_ITEM((PyObject *)(*args),i,Py_None);
354 }
355 if (xa != NULL)
356 for (i=(*nofargs);i<siz;i++) {
357 tmp = PyTuple_GetItem((PyObject *)xa,i-(*nofargs));
358 Py_INCREF(tmp);
359 PyTuple_SET_ITEM(*args,i,tmp);
360 }
361 CFUNCSMESS("create_cb_arglist-end\n");
362 Py_DECREF(tmp_fun);
363 return 1;
364 capi_fail:
365 if ((PyErr_Occurred())==NULL)
366 PyErr_SetString(full_profile_profile_error,errmess);
367 Py_XDECREF(tmp_fun);
368 return 0;
369 }
370
371
372 /********************* See f2py2e/cfuncs.py: userincludes *********************/
373 /*need_userincludes*/
374
375 /********************* See f2py2e/capi_rules.py: usercode *********************/
376
377
378 /* See f2py2e/rules.py */
379 extern void F_FUNC(profile,PROFILE)(complex_float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,int*,int*,int*,float*,float*);
380 extern void F_FUNC(grid,GRID)(void);
381 extern void F_FUNC(propagate,PROPAGATE)(float*);
382 extern void F_FUNC_US(fcn_lpreg,FCN_LPREG)(int*,int*,float*,float*,int*);
383 extern void F_FUNC_US(get_scale,GET_SCALE)(float*);
384 extern void F_WRAPPEDFUNC(enorm,ENORM)(float*,int*,float*);
385 extern void F_FUNC(fdjac2,FDJAC2)(cb_fcn_in_fdjac2__user__routines_typedef,int*,int*,float*,float*,float*,int*,int*,float*,float*);
386 extern void F_FUNC(lmdif,LMDIF)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,float*,float*,int*,float*,float*,int*,float*,int*,int*,int*,float*,int*,int*,float*,float*,float*,float*,float*);
387 extern void F_FUNC(lmpar,LMPAR)(int*,float*,int*,int*,float*,float*,float*,float*,float*,float*,float*,float*);
388 extern void F_FUNC(qrfac,QRFAC)(int*,int*,float*,int*,int*,int*,int*,float*,float*,float*);
389 extern void F_FUNC(qrsolv,QRSOLV)(int*,float*,int*,int*,float*,float*,float*,float*,float*);
390 extern void F_WRAPPEDFUNC(spmpar,SPMPAR)(float*,int*);
391 extern void F_WRAPPEDFUNC(cdtr1,CDTR1)(float*,float*);
392 extern void F_WRAPPEDFUNC(czte1,CZTE1)(float*,float*,float*);
393 extern void F_FUNC(fcn,FCN)(int*,int*,float*,float*,int*);
394 extern void F_WRAPPEDFUNC_US(cj_ion,CJ_ION)(complex_float*,float*,float*);
395 extern void F_WRAPPEDFUNC_US(cj_electron,CJ_ELECTRON)(complex_float*,float*,float*,float*,float*);
396 extern void F_WRAPPEDFUNC_US(y_ion,Y_ION)(complex_float*,float*,float*);
397 extern void F_WRAPPEDFUNC_US(y_electron,Y_ELECTRON)(complex_float*,float*,float*,float*,float*);
398 extern void F_WRAPPEDFUNC(spect1,SPECT1)(float*,float*);
399 extern void F_FUNC(acf2,ACF2)(float*,float*,float*,float*,float*,float*,float*,int*,int*,float*,float*,float*,float*);
400 extern void F_FUNC(gaussq,GAUSSQ)(float*,float*);
401 extern void F_FUNC(lagp,LAGP)(float*,float*,float*,float*,int*,int*);
402 extern void F_WRAPPEDFUNC(atanh,ATANH)(float*,float*);
403 extern void F_FUNC_US(get_spline,GET_SPLINE)(float*,float*,float*,float*,float*,float*);
404 extern void F_WRAPPEDFUNC(bvalue,BVALUE)(float*,float*,float*,int*,int*,float*,int*);
405 extern void F_FUNC(interv,INTERV)(float*,int*,float*,int*,int*);
406 extern void F_WRAPPEDFUNC(r1mach,R1MACH)(float*,int*);
407 /*eof externroutines*/
408
409 /******************** See f2py2e/capi_rules.py: usercode1 ********************/
410
411
412 /******************* See f2py2e/cb_rules.py: buildcallback *******************/
413
414 /********************** cb_fcn_in_fdjac2__user__routines **********************/
415 PyObject *cb_fcn_in_fdjac2__user__routines_capi = NULL;/*was Py_None*/
416 PyTupleObject *cb_fcn_in_fdjac2__user__routines_args_capi = NULL;
417 int cb_fcn_in_fdjac2__user__routines_nofargs = 0;
418 jmp_buf cb_fcn_in_fdjac2__user__routines_jmpbuf;
419 /*typedef void(*cb_fcn_in_fdjac2__user__routines_typedef)(int *,int *,float *,float *,int *);*/
420 static void cb_fcn_in_fdjac2__user__routines (int *m_cb_capi,int *n_cb_capi,float *x,float *wa,int *iflag_cb_capi) {
421 PyTupleObject *capi_arglist = cb_fcn_in_fdjac2__user__routines_args_capi;
422 PyObject *capi_return = NULL;
423 PyObject *capi_tmp = NULL;
424 PyObject *capi_arglist_list = NULL;
425 int capi_j,capi_i = 0;
426 int capi_longjmp_ok = 1;
427 /*decl*/
428 int m=(*m_cb_capi);
429 int n=(*n_cb_capi);
430 int iflag=(*iflag_cb_capi);
431 npy_intp x_Dims[1] = {-1};
432 npy_intp wa_Dims[1] = {-1};
433 #ifdef F2PY_REPORT_ATEXIT
434 f2py_cb_start_clock();
435 #endif
436 CFUNCSMESS("cb:Call-back function cb_fcn_in_fdjac2__user__routines (maxnofargs=5(-2))\n");
437 CFUNCSMESSPY("cb:cb_fcn_in_fdjac2__user__routines_capi=",cb_fcn_in_fdjac2__user__routines_capi);
438 if (cb_fcn_in_fdjac2__user__routines_capi==NULL) {
439 capi_longjmp_ok = 0;
440 cb_fcn_in_fdjac2__user__routines_capi = PyObject_GetAttrString(full_profile_profile_module,"fcn");
441 }
442 if (cb_fcn_in_fdjac2__user__routines_capi==NULL) {
443 PyErr_SetString(full_profile_profile_error,"cb: Callback fcn not defined (as an argument or module full_profile_profile attribute).\n");
444 goto capi_fail;
445 }
446 if (F2PyCapsule_Check(cb_fcn_in_fdjac2__user__routines_capi)) {
447 cb_fcn_in_fdjac2__user__routines_typedef cb_fcn_in_fdjac2__user__routines_cptr;
448 cb_fcn_in_fdjac2__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb_fcn_in_fdjac2__user__routines_capi);
449 (*cb_fcn_in_fdjac2__user__routines_cptr)(m_cb_capi,n_cb_capi,x,wa,iflag_cb_capi);
450 return;
451 }
452 if (capi_arglist==NULL) {
453 capi_longjmp_ok = 0;
454 capi_tmp = PyObject_GetAttrString(full_profile_profile_module,"fcn_extra_args");
455 if (capi_tmp) {
456 capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
457 if (capi_arglist==NULL) {
458 PyErr_SetString(full_profile_profile_error,"Failed to convert full_profile_profile.fcn_extra_args to tuple.\n");
459 goto capi_fail;
460 }
461 } else {
462 PyErr_Clear();
463 capi_arglist = (PyTupleObject *)Py_BuildValue("()");
464 }
465 }
466 if (capi_arglist == NULL) {
467 PyErr_SetString(full_profile_profile_error,"Callback fcn argument list is not set.\n");
468 goto capi_fail;
469 }
470 /*setdims*/
471 x_Dims[0]=n;
472 wa_Dims[0]=m;
473 #ifdef PYPY_VERSION
474 #define CAPI_ARGLIST_SETITEM(idx, value) PyList_SetItem((PyObject *)capi_arglist_list, idx, value)
475 capi_arglist_list = PySequence_List(capi_arglist);
476 if (capi_arglist_list == NULL) goto capi_fail;
477 #else
478 #define CAPI_ARGLIST_SETITEM(idx, value) PyTuple_SetItem((PyObject *)capi_arglist, idx, value)
479 #endif
480 /*pyobjfrom*/
481 if (cb_fcn_in_fdjac2__user__routines_nofargs>capi_i) {
482 int itemsize_ = NPY_FLOAT == NPY_STRING ? 1 : 0;
483 /*XXX: Hmm, what will destroy this array??? */
484 PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,1,x_Dims,NPY_FLOAT,NULL,(char*)x,itemsize_,NPY_ARRAY_FARRAY,NULL);
485
486
487 if (tmp_arr==NULL)
488 goto capi_fail;
489 if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr))
490 goto capi_fail;
491 }
492 if (cb_fcn_in_fdjac2__user__routines_nofargs>capi_i) {
493 int itemsize_ = NPY_FLOAT == NPY_STRING ? 1 : 0;
494 /*XXX: Hmm, what will destroy this array??? */
495 PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,1,wa_Dims,NPY_FLOAT,NULL,(char*)wa,itemsize_,NPY_ARRAY_FARRAY,NULL);
496
497
498 if (tmp_arr==NULL)
499 goto capi_fail;
500 if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr))
501 goto capi_fail;
502 }
503 if (cb_fcn_in_fdjac2__user__routines_nofargs>capi_i)
504 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(iflag)))
505 goto capi_fail;
506 if (cb_fcn_in_fdjac2__user__routines_nofargs>capi_i)
507 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(m)))
508 goto capi_fail;
509 if (cb_fcn_in_fdjac2__user__routines_nofargs>capi_i)
510 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(n)))
511 goto capi_fail;
512 #undef CAPI_ARGLIST_SETITEM
513 #ifdef PYPY_VERSION
514 CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
515 #else
516 CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
517 #endif
518 CFUNCSMESS("cb:Call-back calling Python function fcn.\n");
519 #ifdef F2PY_REPORT_ATEXIT
520 f2py_cb_start_call_clock();
521 #endif
522 #ifdef PYPY_VERSION
523 capi_return = PyObject_CallObject(cb_fcn_in_fdjac2__user__routines_capi,(PyObject *)capi_arglist_list);
524 Py_DECREF(capi_arglist_list);
525 capi_arglist_list = NULL;
526 #else
527 capi_return = PyObject_CallObject(cb_fcn_in_fdjac2__user__routines_capi,(PyObject *)capi_arglist);
528 #endif
529 #ifdef F2PY_REPORT_ATEXIT
530 f2py_cb_stop_call_clock();
531 #endif
532 CFUNCSMESSPY("cb:capi_return=",capi_return);
533 if (capi_return == NULL) {
534 fprintf(stderr,"capi_return is NULL\n");
535 goto capi_fail;
536 }
537 if (capi_return == Py_None) {
538 Py_DECREF(capi_return);
539 capi_return = Py_BuildValue("()");
540 }
541 else if (!PyTuple_Check(capi_return)) {
542 capi_return = Py_BuildValue("(N)",capi_return);
543 }
544 capi_j = PyTuple_Size(capi_return);
545 capi_i = 0;
546 /*frompyobj*/
547 CFUNCSMESS("cb:cb_fcn_in_fdjac2__user__routines:successful\n");
548 Py_DECREF(capi_return);
549 #ifdef F2PY_REPORT_ATEXIT
550 f2py_cb_stop_clock();
551 #endif
552 goto capi_return_pt;
553 capi_fail:
554 fprintf(stderr,"Call-back cb_fcn_in_fdjac2__user__routines failed.\n");
555 Py_XDECREF(capi_return);
556 Py_XDECREF(capi_arglist_list);
557 if (capi_longjmp_ok)
558 longjmp(cb_fcn_in_fdjac2__user__routines_jmpbuf,-1);
559 capi_return_pt:
560 ;
561 return;
562 }
563 /****************** end of cb_fcn_in_fdjac2__user__routines ******************/
564
565
566 /********************** cb_fcn_in_lmdif__user__routines **********************/
567 PyObject *cb_fcn_in_lmdif__user__routines_capi = NULL;/*was Py_None*/
568 PyTupleObject *cb_fcn_in_lmdif__user__routines_args_capi = NULL;
569 int cb_fcn_in_lmdif__user__routines_nofargs = 0;
570 jmp_buf cb_fcn_in_lmdif__user__routines_jmpbuf;
571 /*typedef void(*cb_fcn_in_lmdif__user__routines_typedef)(int *,int *,float *,float *,int *);*/
572 static void cb_fcn_in_lmdif__user__routines (int *m_cb_capi,int *n_cb_capi,float *x,float *fvec,int *iflag_cb_capi) {
573 PyTupleObject *capi_arglist = cb_fcn_in_lmdif__user__routines_args_capi;
574 PyObject *capi_return = NULL;
575 PyObject *capi_tmp = NULL;
576 PyObject *capi_arglist_list = NULL;
577 int capi_j,capi_i = 0;
578 int capi_longjmp_ok = 1;
579 /*decl*/
580 int m=(*m_cb_capi);
581 int n=(*n_cb_capi);
582 int iflag=(*iflag_cb_capi);
583 npy_intp x_Dims[1] = {-1};
584 npy_intp fvec_Dims[1] = {-1};
585 #ifdef F2PY_REPORT_ATEXIT
586 f2py_cb_start_clock();
587 #endif
588 CFUNCSMESS("cb:Call-back function cb_fcn_in_lmdif__user__routines (maxnofargs=5(-2))\n");
589 CFUNCSMESSPY("cb:cb_fcn_in_lmdif__user__routines_capi=",cb_fcn_in_lmdif__user__routines_capi);
590 if (cb_fcn_in_lmdif__user__routines_capi==NULL) {
591 capi_longjmp_ok = 0;
592 cb_fcn_in_lmdif__user__routines_capi = PyObject_GetAttrString(full_profile_profile_module,"fcn");
593 }
594 if (cb_fcn_in_lmdif__user__routines_capi==NULL) {
595 PyErr_SetString(full_profile_profile_error,"cb: Callback fcn not defined (as an argument or module full_profile_profile attribute).\n");
596 goto capi_fail;
597 }
598 if (F2PyCapsule_Check(cb_fcn_in_lmdif__user__routines_capi)) {
599 cb_fcn_in_lmdif__user__routines_typedef cb_fcn_in_lmdif__user__routines_cptr;
600 cb_fcn_in_lmdif__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb_fcn_in_lmdif__user__routines_capi);
601 (*cb_fcn_in_lmdif__user__routines_cptr)(m_cb_capi,n_cb_capi,x,fvec,iflag_cb_capi);
602 return;
603 }
604 if (capi_arglist==NULL) {
605 capi_longjmp_ok = 0;
606 capi_tmp = PyObject_GetAttrString(full_profile_profile_module,"fcn_extra_args");
607 if (capi_tmp) {
608 capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
609 if (capi_arglist==NULL) {
610 PyErr_SetString(full_profile_profile_error,"Failed to convert full_profile_profile.fcn_extra_args to tuple.\n");
611 goto capi_fail;
612 }
613 } else {
614 PyErr_Clear();
615 capi_arglist = (PyTupleObject *)Py_BuildValue("()");
616 }
617 }
618 if (capi_arglist == NULL) {
619 PyErr_SetString(full_profile_profile_error,"Callback fcn argument list is not set.\n");
620 goto capi_fail;
621 }
622 /*setdims*/
623 x_Dims[0]=n;
624 fvec_Dims[0]=m;
625 #ifdef PYPY_VERSION
626 #define CAPI_ARGLIST_SETITEM(idx, value) PyList_SetItem((PyObject *)capi_arglist_list, idx, value)
627 capi_arglist_list = PySequence_List(capi_arglist);
628 if (capi_arglist_list == NULL) goto capi_fail;
629 #else
630 #define CAPI_ARGLIST_SETITEM(idx, value) PyTuple_SetItem((PyObject *)capi_arglist, idx, value)
631 #endif
632 /*pyobjfrom*/
633 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i) {
634 int itemsize_ = NPY_FLOAT == NPY_STRING ? 1 : 0;
635 /*XXX: Hmm, what will destroy this array??? */
636 PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,1,x_Dims,NPY_FLOAT,NULL,(char*)x,itemsize_,NPY_ARRAY_FARRAY,NULL);
637
638
639 if (tmp_arr==NULL)
640 goto capi_fail;
641 if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr))
642 goto capi_fail;
643 }
644 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i) {
645 int itemsize_ = NPY_FLOAT == NPY_STRING ? 1 : 0;
646 /*XXX: Hmm, what will destroy this array??? */
647 PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,1,fvec_Dims,NPY_FLOAT,NULL,(char*)fvec,itemsize_,NPY_ARRAY_FARRAY,NULL);
648
649
650 if (tmp_arr==NULL)
651 goto capi_fail;
652 if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr))
653 goto capi_fail;
654 }
655 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i)
656 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(iflag)))
657 goto capi_fail;
658 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i)
659 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(m)))
660 goto capi_fail;
661 if (cb_fcn_in_lmdif__user__routines_nofargs>capi_i)
662 if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(n)))
663 goto capi_fail;
664 #undef CAPI_ARGLIST_SETITEM
665 #ifdef PYPY_VERSION
666 CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
667 #else
668 CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
669 #endif
670 CFUNCSMESS("cb:Call-back calling Python function fcn.\n");
671 #ifdef F2PY_REPORT_ATEXIT
672 f2py_cb_start_call_clock();
673 #endif
674 #ifdef PYPY_VERSION
675 capi_return = PyObject_CallObject(cb_fcn_in_lmdif__user__routines_capi,(PyObject *)capi_arglist_list);
676 Py_DECREF(capi_arglist_list);
677 capi_arglist_list = NULL;
678 #else
679 capi_return = PyObject_CallObject(cb_fcn_in_lmdif__user__routines_capi,(PyObject *)capi_arglist);
680 #endif
681 #ifdef F2PY_REPORT_ATEXIT
682 f2py_cb_stop_call_clock();
683 #endif
684 CFUNCSMESSPY("cb:capi_return=",capi_return);
685 if (capi_return == NULL) {
686 fprintf(stderr,"capi_return is NULL\n");
687 goto capi_fail;
688 }
689 if (capi_return == Py_None) {
690 Py_DECREF(capi_return);
691 capi_return = Py_BuildValue("()");
692 }
693 else if (!PyTuple_Check(capi_return)) {
694 capi_return = Py_BuildValue("(N)",capi_return);
695 }
696 capi_j = PyTuple_Size(capi_return);
697 capi_i = 0;
698 /*frompyobj*/
699 CFUNCSMESS("cb:cb_fcn_in_lmdif__user__routines:successful\n");
700 Py_DECREF(capi_return);
701 #ifdef F2PY_REPORT_ATEXIT
702 f2py_cb_stop_clock();
703 #endif
704 goto capi_return_pt;
705 capi_fail:
706 fprintf(stderr,"Call-back cb_fcn_in_lmdif__user__routines failed.\n");
707 Py_XDECREF(capi_return);
708 Py_XDECREF(capi_arglist_list);
709 if (capi_longjmp_ok)
710 longjmp(cb_fcn_in_lmdif__user__routines_jmpbuf,-1);
711 capi_return_pt:
712 ;
713 return;
714 }
715 /******************* end of cb_fcn_in_lmdif__user__routines *******************/
716
717
718 /*********************** See f2py2e/rules.py: buildapi ***********************/
719
720 /********************************** profile **********************************/
721 static char doc_f2py_rout_full_profile_profile_profile[] = "\
722 profile(acf_sum,acf_err,power,en,alag,thb2,bfm2,ote,ete,oti,eti,oph,eph,ophe,ephe,range2,ut,nacf,acf_avg_real,status,[nhts,ibits])\n\nWrapper for ``profile``.\
723 \n\nParameters\n----------\n"
724 "acf_sum : input rank-3 array('F') with bounds (4,nhts,ibits)\n"
725 "acf_err : input rank-2 array('f') with bounds (nhts,ibits)\n"
726 "power : input rank-1 array('f') with bounds (nhts)\n"
727 "en : input rank-1 array('f') with bounds (nhts)\n"
728 "alag : input rank-1 array('f') with bounds (ibits)\n"
729 "thb2 : input rank-1 array('f') with bounds (nhts)\n"
730 "bfm2 : input rank-1 array('f') with bounds (nhts)\n"
731 "ote : input rank-1 array('f') with bounds (nacf)\n"
732 "ete : input rank-1 array('f') with bounds (nacf)\n"
733 "oti : input rank-1 array('f') with bounds (nacf)\n"
734 "eti : input rank-1 array('f') with bounds (nacf)\n"
735 "oph : input rank-1 array('f') with bounds (nacf)\n"
736 "eph : input rank-1 array('f') with bounds (nacf)\n"
737 "ophe : input rank-1 array('f') with bounds (nacf)\n"
738 "ephe : input rank-1 array('f') with bounds (nacf)\n"
739 "range2 : input rank-1 array('f') with bounds (nhts)\n"
740 "ut : input float\n"
741 "nacf : input int\n"
742 "acf_avg_real : input rank-2 array('f') with bounds (nhts,ibits)\n"
743 "status : input rank-1 array('f') with bounds (1)\n"
744 "\nOther Parameters\n----------------\n"
745 "nhts : input int, optional\n Default: shape(acf_sum,1)\n"
746 "ibits : input int, optional\n Default: shape(acf_sum,2)";
747 /* extern void F_FUNC(profile,PROFILE)(complex_float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,int*,int*,int*,float*,float*); */
748 static PyObject *f2py_rout_full_profile_profile_profile(const PyObject *capi_self,
749 PyObject *capi_args,
750 PyObject *capi_keywds,
751 void (*f2py_func)(complex_float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,float*,int*,int*,int*,float*,float*)) {
752 PyObject * volatile capi_buildvalue = NULL;
753 volatile int f2py_success = 1;
754 /*decl*/
755
756 complex_float *acf_sum = NULL;
757 npy_intp acf_sum_Dims[3] = {-1, -1, -1};
758 const int acf_sum_Rank = 3;
759 PyArrayObject *capi_acf_sum_tmp = NULL;
760 int capi_acf_sum_intent = 0;
761 PyObject *acf_sum_capi = Py_None;
762 float *acf_err = NULL;
763 npy_intp acf_err_Dims[2] = {-1, -1};
764 const int acf_err_Rank = 2;
765 PyArrayObject *capi_acf_err_tmp = NULL;
766 int capi_acf_err_intent = 0;
767 PyObject *acf_err_capi = Py_None;
768 float *power = NULL;
769 npy_intp power_Dims[1] = {-1};
770 const int power_Rank = 1;
771 PyArrayObject *capi_power_tmp = NULL;
772 int capi_power_intent = 0;
773 PyObject *power_capi = Py_None;
774 float *en = NULL;
775 npy_intp en_Dims[1] = {-1};
776 const int en_Rank = 1;
777 PyArrayObject *capi_en_tmp = NULL;
778 int capi_en_intent = 0;
779 PyObject *en_capi = Py_None;
780 float *alag = NULL;
781 npy_intp alag_Dims[1] = {-1};
782 const int alag_Rank = 1;
783 PyArrayObject *capi_alag_tmp = NULL;
784 int capi_alag_intent = 0;
785 PyObject *alag_capi = Py_None;
786 float *thb2 = NULL;
787 npy_intp thb2_Dims[1] = {-1};
788 const int thb2_Rank = 1;
789 PyArrayObject *capi_thb2_tmp = NULL;
790 int capi_thb2_intent = 0;
791 PyObject *thb2_capi = Py_None;
792 float *bfm2 = NULL;
793 npy_intp bfm2_Dims[1] = {-1};
794 const int bfm2_Rank = 1;
795 PyArrayObject *capi_bfm2_tmp = NULL;
796 int capi_bfm2_intent = 0;
797 PyObject *bfm2_capi = Py_None;
798 float *ote = NULL;
799 npy_intp ote_Dims[1] = {-1};
800 const int ote_Rank = 1;
801 PyArrayObject *capi_ote_tmp = NULL;
802 int capi_ote_intent = 0;
803 PyObject *ote_capi = Py_None;
804 float *ete = NULL;
805 npy_intp ete_Dims[1] = {-1};
806 const int ete_Rank = 1;
807 PyArrayObject *capi_ete_tmp = NULL;
808 int capi_ete_intent = 0;
809 PyObject *ete_capi = Py_None;
810 float *oti = NULL;
811 npy_intp oti_Dims[1] = {-1};
812 const int oti_Rank = 1;
813 PyArrayObject *capi_oti_tmp = NULL;
814 int capi_oti_intent = 0;
815 PyObject *oti_capi = Py_None;
816 float *eti = NULL;
817 npy_intp eti_Dims[1] = {-1};
818 const int eti_Rank = 1;
819 PyArrayObject *capi_eti_tmp = NULL;
820 int capi_eti_intent = 0;
821 PyObject *eti_capi = Py_None;
822 float *oph = NULL;
823 npy_intp oph_Dims[1] = {-1};
824 const int oph_Rank = 1;
825 PyArrayObject *capi_oph_tmp = NULL;
826 int capi_oph_intent = 0;
827 PyObject *oph_capi = Py_None;
828 float *eph = NULL;
829 npy_intp eph_Dims[1] = {-1};
830 const int eph_Rank = 1;
831 PyArrayObject *capi_eph_tmp = NULL;
832 int capi_eph_intent = 0;
833 PyObject *eph_capi = Py_None;
834 float *ophe = NULL;
835 npy_intp ophe_Dims[1] = {-1};
836 const int ophe_Rank = 1;
837 PyArrayObject *capi_ophe_tmp = NULL;
838 int capi_ophe_intent = 0;
839 PyObject *ophe_capi = Py_None;
840 float *ephe = NULL;
841 npy_intp ephe_Dims[1] = {-1};
842 const int ephe_Rank = 1;
843 PyArrayObject *capi_ephe_tmp = NULL;
844 int capi_ephe_intent = 0;
845 PyObject *ephe_capi = Py_None;
846 float *range2 = NULL;
847 npy_intp range2_Dims[1] = {-1};
848 const int range2_Rank = 1;
849 PyArrayObject *capi_range2_tmp = NULL;
850 int capi_range2_intent = 0;
851 PyObject *range2_capi = Py_None;
852 float ut = 0;
853 PyObject *ut_capi = Py_None;
854 int nhts = 0;
855 PyObject *nhts_capi = Py_None;
856 int nacf = 0;
857 PyObject *nacf_capi = Py_None;
858 int ibits = 0;
859 PyObject *ibits_capi = Py_None;
860 float *acf_avg_real = NULL;
861 npy_intp acf_avg_real_Dims[2] = {-1, -1};
862 const int acf_avg_real_Rank = 2;
863 PyArrayObject *capi_acf_avg_real_tmp = NULL;
864 int capi_acf_avg_real_intent = 0;
865 PyObject *acf_avg_real_capi = Py_None;
866 float *status = NULL;
867 npy_intp status_Dims[1] = {-1};
868 const int status_Rank = 1;
869 PyArrayObject *capi_status_tmp = NULL;
870 int capi_status_intent = 0;
871 PyObject *status_capi = Py_None;
872 static char *capi_kwlist[] = {"acf_sum","acf_err","power","en","alag","thb2","bfm2","ote","ete","oti","eti","oph","eph","ophe","ephe","range2","ut","nacf","acf_avg_real","status","nhts","ibits",NULL};
873
874 /*routdebugenter*/
875 #ifdef F2PY_REPORT_ATEXIT
876 f2py_start_clock();
877 #endif
878 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
879 "OOOOOOOOOOOOOOOOOOOO|OO:full_profile_profile.profile",\
880 capi_kwlist,&acf_sum_capi,&acf_err_capi,&power_capi,&en_capi,&alag_capi,&thb2_capi,&bfm2_capi,&ote_capi,&ete_capi,&oti_capi,&eti_capi,&oph_capi,&eph_capi,&ophe_capi,&ephe_capi,&range2_capi,&ut_capi,&nacf_capi,&acf_avg_real_capi,&status_capi,&nhts_capi,&ibits_capi))
881 return NULL;
882 /*frompyobj*/
883 /* Processing variable acf_sum */
884 acf_sum_Dims[0]=4;
885 capi_acf_sum_intent |= F2PY_INTENT_IN;
886 capi_acf_sum_tmp = array_from_pyobj(NPY_CFLOAT,acf_sum_Dims,acf_sum_Rank,capi_acf_sum_intent,acf_sum_capi);
887 if (capi_acf_sum_tmp == NULL) {
888 PyObject *exc, *val, *tb;
889 PyErr_Fetch(&exc, &val, &tb);
890 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `acf_sum' of full_profile_profile.profile to C/Fortran array" );
891 npy_PyErr_ChainExceptionsCause(exc, val, tb);
892 } else {
893 acf_sum = (complex_float *)(PyArray_DATA(capi_acf_sum_tmp));
894
895 /* Processing variable ut */
896 f2py_success = float_from_pyobj(&ut,ut_capi,"full_profile_profile.profile() 17th argument (ut) can't be converted to float");
897 if (f2py_success) {
898 /* Processing variable nacf */
899 f2py_success = int_from_pyobj(&nacf,nacf_capi,"full_profile_profile.profile() 18th argument (nacf) can't be converted to int");
900 if (f2py_success) {
901 /* Processing variable status */
902 status_Dims[0]=1;
903 capi_status_intent |= F2PY_INTENT_IN;
904 capi_status_tmp = array_from_pyobj(NPY_FLOAT,status_Dims,status_Rank,capi_status_intent,status_capi);
905 if (capi_status_tmp == NULL) {
906 PyObject *exc, *val, *tb;
907 PyErr_Fetch(&exc, &val, &tb);
908 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 20th argument `status' of full_profile_profile.profile to C/Fortran array" );
909 npy_PyErr_ChainExceptionsCause(exc, val, tb);
910 } else {
911 status = (float *)(PyArray_DATA(capi_status_tmp));
912
913 /* Processing variable ote */
914 ote_Dims[0]=nacf;
915 capi_ote_intent |= F2PY_INTENT_IN;
916 capi_ote_tmp = array_from_pyobj(NPY_FLOAT,ote_Dims,ote_Rank,capi_ote_intent,ote_capi);
917 if (capi_ote_tmp == NULL) {
918 PyObject *exc, *val, *tb;
919 PyErr_Fetch(&exc, &val, &tb);
920 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 8th argument `ote' of full_profile_profile.profile to C/Fortran array" );
921 npy_PyErr_ChainExceptionsCause(exc, val, tb);
922 } else {
923 ote = (float *)(PyArray_DATA(capi_ote_tmp));
924
925 /* Processing variable ete */
926 ete_Dims[0]=nacf;
927 capi_ete_intent |= F2PY_INTENT_IN;
928 capi_ete_tmp = array_from_pyobj(NPY_FLOAT,ete_Dims,ete_Rank,capi_ete_intent,ete_capi);
929 if (capi_ete_tmp == NULL) {
930 PyObject *exc, *val, *tb;
931 PyErr_Fetch(&exc, &val, &tb);
932 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 9th argument `ete' of full_profile_profile.profile to C/Fortran array" );
933 npy_PyErr_ChainExceptionsCause(exc, val, tb);
934 } else {
935 ete = (float *)(PyArray_DATA(capi_ete_tmp));
936
937 /* Processing variable oti */
938 oti_Dims[0]=nacf;
939 capi_oti_intent |= F2PY_INTENT_IN;
940 capi_oti_tmp = array_from_pyobj(NPY_FLOAT,oti_Dims,oti_Rank,capi_oti_intent,oti_capi);
941 if (capi_oti_tmp == NULL) {
942 PyObject *exc, *val, *tb;
943 PyErr_Fetch(&exc, &val, &tb);
944 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 10th argument `oti' of full_profile_profile.profile to C/Fortran array" );
945 npy_PyErr_ChainExceptionsCause(exc, val, tb);
946 } else {
947 oti = (float *)(PyArray_DATA(capi_oti_tmp));
948
949 /* Processing variable eti */
950 eti_Dims[0]=nacf;
951 capi_eti_intent |= F2PY_INTENT_IN;
952 capi_eti_tmp = array_from_pyobj(NPY_FLOAT,eti_Dims,eti_Rank,capi_eti_intent,eti_capi);
953 if (capi_eti_tmp == NULL) {
954 PyObject *exc, *val, *tb;
955 PyErr_Fetch(&exc, &val, &tb);
956 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 11st argument `eti' of full_profile_profile.profile to C/Fortran array" );
957 npy_PyErr_ChainExceptionsCause(exc, val, tb);
958 } else {
959 eti = (float *)(PyArray_DATA(capi_eti_tmp));
960
961 /* Processing variable oph */
962 oph_Dims[0]=nacf;
963 capi_oph_intent |= F2PY_INTENT_IN;
964 capi_oph_tmp = array_from_pyobj(NPY_FLOAT,oph_Dims,oph_Rank,capi_oph_intent,oph_capi);
965 if (capi_oph_tmp == NULL) {
966 PyObject *exc, *val, *tb;
967 PyErr_Fetch(&exc, &val, &tb);
968 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 12nd argument `oph' of full_profile_profile.profile to C/Fortran array" );
969 npy_PyErr_ChainExceptionsCause(exc, val, tb);
970 } else {
971 oph = (float *)(PyArray_DATA(capi_oph_tmp));
972
973 /* Processing variable eph */
974 eph_Dims[0]=nacf;
975 capi_eph_intent |= F2PY_INTENT_IN;
976 capi_eph_tmp = array_from_pyobj(NPY_FLOAT,eph_Dims,eph_Rank,capi_eph_intent,eph_capi);
977 if (capi_eph_tmp == NULL) {
978 PyObject *exc, *val, *tb;
979 PyErr_Fetch(&exc, &val, &tb);
980 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 13rd argument `eph' of full_profile_profile.profile to C/Fortran array" );
981 npy_PyErr_ChainExceptionsCause(exc, val, tb);
982 } else {
983 eph = (float *)(PyArray_DATA(capi_eph_tmp));
984
985 /* Processing variable ophe */
986 ophe_Dims[0]=nacf;
987 capi_ophe_intent |= F2PY_INTENT_IN;
988 capi_ophe_tmp = array_from_pyobj(NPY_FLOAT,ophe_Dims,ophe_Rank,capi_ophe_intent,ophe_capi);
989 if (capi_ophe_tmp == NULL) {
990 PyObject *exc, *val, *tb;
991 PyErr_Fetch(&exc, &val, &tb);
992 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 14th argument `ophe' of full_profile_profile.profile to C/Fortran array" );
993 npy_PyErr_ChainExceptionsCause(exc, val, tb);
994 } else {
995 ophe = (float *)(PyArray_DATA(capi_ophe_tmp));
996
997 /* Processing variable ephe */
998 ephe_Dims[0]=nacf;
999 capi_ephe_intent |= F2PY_INTENT_IN;
1000 capi_ephe_tmp = array_from_pyobj(NPY_FLOAT,ephe_Dims,ephe_Rank,capi_ephe_intent,ephe_capi);
1001 if (capi_ephe_tmp == NULL) {
1002 PyObject *exc, *val, *tb;
1003 PyErr_Fetch(&exc, &val, &tb);
1004 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 15th argument `ephe' of full_profile_profile.profile to C/Fortran array" );
1005 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1006 } else {
1007 ephe = (float *)(PyArray_DATA(capi_ephe_tmp));
1008
1009 /* Processing variable nhts */
1010 if (nhts_capi == Py_None) nhts = shape(acf_sum,1); else
1011 f2py_success = int_from_pyobj(&nhts,nhts_capi,"full_profile_profile.profile() 1st keyword (nhts) can't be converted to int");
1012 if (f2py_success) {
1013 CHECKSCALAR(shape(acf_sum,1)==nhts,"shape(acf_sum,1)==nhts","1st keyword nhts","profile:nhts=%d",nhts) {
1014 /* Processing variable ibits */
1015 if (ibits_capi == Py_None) ibits = shape(acf_sum,2); else
1016 f2py_success = int_from_pyobj(&ibits,ibits_capi,"full_profile_profile.profile() 2nd keyword (ibits) can't be converted to int");
1017 if (f2py_success) {
1018 CHECKSCALAR(shape(acf_sum,2)==ibits,"shape(acf_sum,2)==ibits","2nd keyword ibits","profile:ibits=%d",ibits) {
1019 /* Processing variable acf_avg_real */
1020 acf_avg_real_Dims[0]=nhts,acf_avg_real_Dims[1]=ibits;
1021 capi_acf_avg_real_intent |= F2PY_INTENT_IN;
1022 capi_acf_avg_real_tmp = array_from_pyobj(NPY_FLOAT,acf_avg_real_Dims,acf_avg_real_Rank,capi_acf_avg_real_intent,acf_avg_real_capi);
1023 if (capi_acf_avg_real_tmp == NULL) {
1024 PyObject *exc, *val, *tb;
1025 PyErr_Fetch(&exc, &val, &tb);
1026 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 19th argument `acf_avg_real' of full_profile_profile.profile to C/Fortran array" );
1027 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1028 } else {
1029 acf_avg_real = (float *)(PyArray_DATA(capi_acf_avg_real_tmp));
1030
1031 /* Processing variable acf_err */
1032 acf_err_Dims[0]=nhts,acf_err_Dims[1]=ibits;
1033 capi_acf_err_intent |= F2PY_INTENT_IN;
1034 capi_acf_err_tmp = array_from_pyobj(NPY_FLOAT,acf_err_Dims,acf_err_Rank,capi_acf_err_intent,acf_err_capi);
1035 if (capi_acf_err_tmp == NULL) {
1036 PyObject *exc, *val, *tb;
1037 PyErr_Fetch(&exc, &val, &tb);
1038 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `acf_err' of full_profile_profile.profile to C/Fortran array" );
1039 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1040 } else {
1041 acf_err = (float *)(PyArray_DATA(capi_acf_err_tmp));
1042
1043 /* Processing variable power */
1044 power_Dims[0]=nhts;
1045 capi_power_intent |= F2PY_INTENT_IN;
1046 capi_power_tmp = array_from_pyobj(NPY_FLOAT,power_Dims,power_Rank,capi_power_intent,power_capi);
1047 if (capi_power_tmp == NULL) {
1048 PyObject *exc, *val, *tb;
1049 PyErr_Fetch(&exc, &val, &tb);
1050 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 3rd argument `power' of full_profile_profile.profile to C/Fortran array" );
1051 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1052 } else {
1053 power = (float *)(PyArray_DATA(capi_power_tmp));
1054
1055 /* Processing variable en */
1056 en_Dims[0]=nhts;
1057 capi_en_intent |= F2PY_INTENT_IN;
1058 capi_en_tmp = array_from_pyobj(NPY_FLOAT,en_Dims,en_Rank,capi_en_intent,en_capi);
1059 if (capi_en_tmp == NULL) {
1060 PyObject *exc, *val, *tb;
1061 PyErr_Fetch(&exc, &val, &tb);
1062 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 4th argument `en' of full_profile_profile.profile to C/Fortran array" );
1063 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1064 } else {
1065 en = (float *)(PyArray_DATA(capi_en_tmp));
1066
1067 /* Processing variable alag */
1068 alag_Dims[0]=ibits;
1069 capi_alag_intent |= F2PY_INTENT_IN;
1070 capi_alag_tmp = array_from_pyobj(NPY_FLOAT,alag_Dims,alag_Rank,capi_alag_intent,alag_capi);
1071 if (capi_alag_tmp == NULL) {
1072 PyObject *exc, *val, *tb;
1073 PyErr_Fetch(&exc, &val, &tb);
1074 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 5th argument `alag' of full_profile_profile.profile to C/Fortran array" );
1075 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1076 } else {
1077 alag = (float *)(PyArray_DATA(capi_alag_tmp));
1078
1079 /* Processing variable thb2 */
1080 thb2_Dims[0]=nhts;
1081 capi_thb2_intent |= F2PY_INTENT_IN;
1082 capi_thb2_tmp = array_from_pyobj(NPY_FLOAT,thb2_Dims,thb2_Rank,capi_thb2_intent,thb2_capi);
1083 if (capi_thb2_tmp == NULL) {
1084 PyObject *exc, *val, *tb;
1085 PyErr_Fetch(&exc, &val, &tb);
1086 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 6th argument `thb2' of full_profile_profile.profile to C/Fortran array" );
1087 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1088 } else {
1089 thb2 = (float *)(PyArray_DATA(capi_thb2_tmp));
1090
1091 /* Processing variable bfm2 */
1092 bfm2_Dims[0]=nhts;
1093 capi_bfm2_intent |= F2PY_INTENT_IN;
1094 capi_bfm2_tmp = array_from_pyobj(NPY_FLOAT,bfm2_Dims,bfm2_Rank,capi_bfm2_intent,bfm2_capi);
1095 if (capi_bfm2_tmp == NULL) {
1096 PyObject *exc, *val, *tb;
1097 PyErr_Fetch(&exc, &val, &tb);
1098 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 7th argument `bfm2' of full_profile_profile.profile to C/Fortran array" );
1099 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1100 } else {
1101 bfm2 = (float *)(PyArray_DATA(capi_bfm2_tmp));
1102
1103 /* Processing variable range2 */
1104 range2_Dims[0]=nhts;
1105 capi_range2_intent |= F2PY_INTENT_IN;
1106 capi_range2_tmp = array_from_pyobj(NPY_FLOAT,range2_Dims,range2_Rank,capi_range2_intent,range2_capi);
1107 if (capi_range2_tmp == NULL) {
1108 PyObject *exc, *val, *tb;
1109 PyErr_Fetch(&exc, &val, &tb);
1110 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 16th argument `range2' of full_profile_profile.profile to C/Fortran array" );
1111 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1112 } else {
1113 range2 = (float *)(PyArray_DATA(capi_range2_tmp));
1114
1115 /*end of frompyobj*/
1116 #ifdef F2PY_REPORT_ATEXIT
1117 f2py_start_call_clock();
1118 #endif
1119 /*callfortranroutine*/
1120 (*f2py_func)(acf_sum,acf_err,power,en,alag,thb2,bfm2,ote,ete,oti,eti,oph,eph,ophe,ephe,range2,&ut,&nhts,&nacf,&ibits,acf_avg_real,status);
1121 if (PyErr_Occurred())
1122 f2py_success = 0;
1123 #ifdef F2PY_REPORT_ATEXIT
1124 f2py_stop_call_clock();
1125 #endif
1126 /*end of callfortranroutine*/
1127 if (f2py_success) {
1128 /*pyobjfrom*/
1129 /*end of pyobjfrom*/
1130 CFUNCSMESS("Building return value.\n");
1131 capi_buildvalue = Py_BuildValue("");
1132 /*closepyobjfrom*/
1133 /*end of closepyobjfrom*/
1134 } /*if (f2py_success) after callfortranroutine*/
1135 /*cleanupfrompyobj*/
1136 if((PyObject *)capi_range2_tmp!=range2_capi) {
1137 Py_XDECREF(capi_range2_tmp); }
1138 } /*if (capi_range2_tmp == NULL) ... else of range2*/
1139 /* End of cleaning variable range2 */
1140 if((PyObject *)capi_bfm2_tmp!=bfm2_capi) {
1141 Py_XDECREF(capi_bfm2_tmp); }
1142 } /*if (capi_bfm2_tmp == NULL) ... else of bfm2*/
1143 /* End of cleaning variable bfm2 */
1144 if((PyObject *)capi_thb2_tmp!=thb2_capi) {
1145 Py_XDECREF(capi_thb2_tmp); }
1146 } /*if (capi_thb2_tmp == NULL) ... else of thb2*/
1147 /* End of cleaning variable thb2 */
1148 if((PyObject *)capi_alag_tmp!=alag_capi) {
1149 Py_XDECREF(capi_alag_tmp); }
1150 } /*if (capi_alag_tmp == NULL) ... else of alag*/
1151 /* End of cleaning variable alag */
1152 if((PyObject *)capi_en_tmp!=en_capi) {
1153 Py_XDECREF(capi_en_tmp); }
1154 } /*if (capi_en_tmp == NULL) ... else of en*/
1155 /* End of cleaning variable en */
1156 if((PyObject *)capi_power_tmp!=power_capi) {
1157 Py_XDECREF(capi_power_tmp); }
1158 } /*if (capi_power_tmp == NULL) ... else of power*/
1159 /* End of cleaning variable power */
1160 if((PyObject *)capi_acf_err_tmp!=acf_err_capi) {
1161 Py_XDECREF(capi_acf_err_tmp); }
1162 } /*if (capi_acf_err_tmp == NULL) ... else of acf_err*/
1163 /* End of cleaning variable acf_err */
1164 if((PyObject *)capi_acf_avg_real_tmp!=acf_avg_real_capi) {
1165 Py_XDECREF(capi_acf_avg_real_tmp); }
1166 } /*if (capi_acf_avg_real_tmp == NULL) ... else of acf_avg_real*/
1167 /* End of cleaning variable acf_avg_real */
1168 } /*CHECKSCALAR(shape(acf_sum,2)==ibits)*/
1169 } /*if (f2py_success) of ibits*/
1170 /* End of cleaning variable ibits */
1171 } /*CHECKSCALAR(shape(acf_sum,1)==nhts)*/
1172 } /*if (f2py_success) of nhts*/
1173 /* End of cleaning variable nhts */
1174 if((PyObject *)capi_ephe_tmp!=ephe_capi) {
1175 Py_XDECREF(capi_ephe_tmp); }
1176 } /*if (capi_ephe_tmp == NULL) ... else of ephe*/
1177 /* End of cleaning variable ephe */
1178 if((PyObject *)capi_ophe_tmp!=ophe_capi) {
1179 Py_XDECREF(capi_ophe_tmp); }
1180 } /*if (capi_ophe_tmp == NULL) ... else of ophe*/
1181 /* End of cleaning variable ophe */
1182 if((PyObject *)capi_eph_tmp!=eph_capi) {
1183 Py_XDECREF(capi_eph_tmp); }
1184 } /*if (capi_eph_tmp == NULL) ... else of eph*/
1185 /* End of cleaning variable eph */
1186 if((PyObject *)capi_oph_tmp!=oph_capi) {
1187 Py_XDECREF(capi_oph_tmp); }
1188 } /*if (capi_oph_tmp == NULL) ... else of oph*/
1189 /* End of cleaning variable oph */
1190 if((PyObject *)capi_eti_tmp!=eti_capi) {
1191 Py_XDECREF(capi_eti_tmp); }
1192 } /*if (capi_eti_tmp == NULL) ... else of eti*/
1193 /* End of cleaning variable eti */
1194 if((PyObject *)capi_oti_tmp!=oti_capi) {
1195 Py_XDECREF(capi_oti_tmp); }
1196 } /*if (capi_oti_tmp == NULL) ... else of oti*/
1197 /* End of cleaning variable oti */
1198 if((PyObject *)capi_ete_tmp!=ete_capi) {
1199 Py_XDECREF(capi_ete_tmp); }
1200 } /*if (capi_ete_tmp == NULL) ... else of ete*/
1201 /* End of cleaning variable ete */
1202 if((PyObject *)capi_ote_tmp!=ote_capi) {
1203 Py_XDECREF(capi_ote_tmp); }
1204 } /*if (capi_ote_tmp == NULL) ... else of ote*/
1205 /* End of cleaning variable ote */
1206 if((PyObject *)capi_status_tmp!=status_capi) {
1207 Py_XDECREF(capi_status_tmp); }
1208 } /*if (capi_status_tmp == NULL) ... else of status*/
1209 /* End of cleaning variable status */
1210 } /*if (f2py_success) of nacf*/
1211 /* End of cleaning variable nacf */
1212 } /*if (f2py_success) of ut*/
1213 /* End of cleaning variable ut */
1214 if((PyObject *)capi_acf_sum_tmp!=acf_sum_capi) {
1215 Py_XDECREF(capi_acf_sum_tmp); }
1216 } /*if (capi_acf_sum_tmp == NULL) ... else of acf_sum*/
1217 /* End of cleaning variable acf_sum */
1218 /*end of cleanupfrompyobj*/
1219 if (capi_buildvalue == NULL) {
1220 /*routdebugfailure*/
1221 } else {
1222 /*routdebugleave*/
1223 }
1224 CFUNCSMESS("Freeing memory.\n");
1225 /*freemem*/
1226 #ifdef F2PY_REPORT_ATEXIT
1227 f2py_stop_clock();
1228 #endif
1229 return capi_buildvalue;
1230 }
1231 /******************************* end of profile *******************************/
1232
1233 /************************************ grid ************************************/
1234 static char doc_f2py_rout_full_profile_profile_grid[] = "\
1235 grid()\n\nWrapper for ``grid``.\
1236 \n";
1237 /* extern void F_FUNC(grid,GRID)(void); */
1238 static PyObject *f2py_rout_full_profile_profile_grid(const PyObject *capi_self,
1239 PyObject *capi_args,
1240 PyObject *capi_keywds,
1241 void (*f2py_func)(void)) {
1242 PyObject * volatile capi_buildvalue = NULL;
1243 volatile int f2py_success = 1;
1244 /*decl*/
1245
1246 static char *capi_kwlist[] = {NULL};
1247
1248 /*routdebugenter*/
1249 #ifdef F2PY_REPORT_ATEXIT
1250 f2py_start_clock();
1251 #endif
1252 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1253 "|:full_profile_profile.grid",\
1254 capi_kwlist))
1255 return NULL;
1256 /*frompyobj*/
1257 /*end of frompyobj*/
1258 #ifdef F2PY_REPORT_ATEXIT
1259 f2py_start_call_clock();
1260 #endif
1261 /*callfortranroutine*/
1262 (*f2py_func)();
1263 if (PyErr_Occurred())
1264 f2py_success = 0;
1265 #ifdef F2PY_REPORT_ATEXIT
1266 f2py_stop_call_clock();
1267 #endif
1268 /*end of callfortranroutine*/
1269 if (f2py_success) {
1270 /*pyobjfrom*/
1271 /*end of pyobjfrom*/
1272 CFUNCSMESS("Building return value.\n");
1273 capi_buildvalue = Py_BuildValue("");
1274 /*closepyobjfrom*/
1275 /*end of closepyobjfrom*/
1276 } /*if (f2py_success) after callfortranroutine*/
1277 /*cleanupfrompyobj*/
1278 /*end of cleanupfrompyobj*/
1279 if (capi_buildvalue == NULL) {
1280 /*routdebugfailure*/
1281 } else {
1282 /*routdebugleave*/
1283 }
1284 CFUNCSMESS("Freeing memory.\n");
1285 /*freemem*/
1286 #ifdef F2PY_REPORT_ATEXIT
1287 f2py_stop_clock();
1288 #endif
1289 return capi_buildvalue;
1290 }
1291 /******************************** end of grid ********************************/
1292
1293 /********************************* propagate *********************************/
1294 static char doc_f2py_rout_full_profile_profile_propagate[] = "\
1295 propagate(xe)\n\nWrapper for ``propagate``.\
1296 \n\nParameters\n----------\n"
1297 "xe : input rank-1 array('f') with bounds (150)";
1298 /* extern void F_FUNC(propagate,PROPAGATE)(float*); */
1299 static PyObject *f2py_rout_full_profile_profile_propagate(const PyObject *capi_self,
1300 PyObject *capi_args,
1301 PyObject *capi_keywds,
1302 void (*f2py_func)(float*)) {
1303 PyObject * volatile capi_buildvalue = NULL;
1304 volatile int f2py_success = 1;
1305 /*decl*/
1306
1307 float *xe = NULL;
1308 npy_intp xe_Dims[1] = {-1};
1309 const int xe_Rank = 1;
1310 PyArrayObject *capi_xe_tmp = NULL;
1311 int capi_xe_intent = 0;
1312 PyObject *xe_capi = Py_None;
1313 static char *capi_kwlist[] = {"xe",NULL};
1314
1315 /*routdebugenter*/
1316 #ifdef F2PY_REPORT_ATEXIT
1317 f2py_start_clock();
1318 #endif
1319 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1320 "O|:full_profile_profile.propagate",\
1321 capi_kwlist,&xe_capi))
1322 return NULL;
1323 /*frompyobj*/
1324 /* Processing variable xe */
1325 xe_Dims[0]=150;
1326 capi_xe_intent |= F2PY_INTENT_IN;
1327 capi_xe_tmp = array_from_pyobj(NPY_FLOAT,xe_Dims,xe_Rank,capi_xe_intent,xe_capi);
1328 if (capi_xe_tmp == NULL) {
1329 PyObject *exc, *val, *tb;
1330 PyErr_Fetch(&exc, &val, &tb);
1331 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `xe' of full_profile_profile.propagate to C/Fortran array" );
1332 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1333 } else {
1334 xe = (float *)(PyArray_DATA(capi_xe_tmp));
1335
1336 /*end of frompyobj*/
1337 #ifdef F2PY_REPORT_ATEXIT
1338 f2py_start_call_clock();
1339 #endif
1340 /*callfortranroutine*/
1341 (*f2py_func)(xe);
1342 if (PyErr_Occurred())
1343 f2py_success = 0;
1344 #ifdef F2PY_REPORT_ATEXIT
1345 f2py_stop_call_clock();
1346 #endif
1347 /*end of callfortranroutine*/
1348 if (f2py_success) {
1349 /*pyobjfrom*/
1350 /*end of pyobjfrom*/
1351 CFUNCSMESS("Building return value.\n");
1352 capi_buildvalue = Py_BuildValue("");
1353 /*closepyobjfrom*/
1354 /*end of closepyobjfrom*/
1355 } /*if (f2py_success) after callfortranroutine*/
1356 /*cleanupfrompyobj*/
1357 if((PyObject *)capi_xe_tmp!=xe_capi) {
1358 Py_XDECREF(capi_xe_tmp); }
1359 } /*if (capi_xe_tmp == NULL) ... else of xe*/
1360 /* End of cleaning variable xe */
1361 /*end of cleanupfrompyobj*/
1362 if (capi_buildvalue == NULL) {
1363 /*routdebugfailure*/
1364 } else {
1365 /*routdebugleave*/
1366 }
1367 CFUNCSMESS("Freeing memory.\n");
1368 /*freemem*/
1369 #ifdef F2PY_REPORT_ATEXIT
1370 f2py_stop_clock();
1371 #endif
1372 return capi_buildvalue;
1373 }
1374 /****************************** end of propagate ******************************/
1375
1376 /********************************* fcn_lpreg *********************************/
1377 static char doc_f2py_rout_full_profile_profile_fcn_lpreg[] = "\
1378 fcn_lpreg(x,fvec,iflag,[m,n])\n\nWrapper for ``fcn_lpreg``.\
1379 \n\nParameters\n----------\n"
1380 "x : input rank-1 array('f') with bounds (n)\n"
1381 "fvec : input rank-1 array('f') with bounds (m)\n"
1382 "iflag : input int\n"
1383 "\nOther Parameters\n----------------\n"
1384 "m : input int, optional\n Default: len(fvec)\n"
1385 "n : input int, optional\n Default: len(x)";
1386 /* extern void F_FUNC_US(fcn_lpreg,FCN_LPREG)(int*,int*,float*,float*,int*); */
1387 static PyObject *f2py_rout_full_profile_profile_fcn_lpreg(const PyObject *capi_self,
1388 PyObject *capi_args,
1389 PyObject *capi_keywds,
1390 void (*f2py_func)(int*,int*,float*,float*,int*)) {
1391 PyObject * volatile capi_buildvalue = NULL;
1392 volatile int f2py_success = 1;
1393 /*decl*/
1394
1395 int m = 0;
1396 PyObject *m_capi = Py_None;
1397 int n = 0;
1398 PyObject *n_capi = Py_None;
1399 float *x = NULL;
1400 npy_intp x_Dims[1] = {-1};
1401 const int x_Rank = 1;
1402 PyArrayObject *capi_x_tmp = NULL;
1403 int capi_x_intent = 0;
1404 PyObject *x_capi = Py_None;
1405 float *fvec = NULL;
1406 npy_intp fvec_Dims[1] = {-1};
1407 const int fvec_Rank = 1;
1408 PyArrayObject *capi_fvec_tmp = NULL;
1409 int capi_fvec_intent = 0;
1410 PyObject *fvec_capi = Py_None;
1411 int iflag = 0;
1412 PyObject *iflag_capi = Py_None;
1413 static char *capi_kwlist[] = {"x","fvec","iflag","m","n",NULL};
1414
1415 /*routdebugenter*/
1416 #ifdef F2PY_REPORT_ATEXIT
1417 f2py_start_clock();
1418 #endif
1419 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1420 "OOO|OO:full_profile_profile.fcn_lpreg",\
1421 capi_kwlist,&x_capi,&fvec_capi,&iflag_capi,&m_capi,&n_capi))
1422 return NULL;
1423 /*frompyobj*/
1424 /* Processing variable x */
1425 ;
1426 capi_x_intent |= F2PY_INTENT_IN;
1427 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
1428 if (capi_x_tmp == NULL) {
1429 PyObject *exc, *val, *tb;
1430 PyErr_Fetch(&exc, &val, &tb);
1431 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `x' of full_profile_profile.fcn_lpreg to C/Fortran array" );
1432 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1433 } else {
1434 x = (float *)(PyArray_DATA(capi_x_tmp));
1435
1436 /* Processing variable fvec */
1437 ;
1438 capi_fvec_intent |= F2PY_INTENT_IN;
1439 capi_fvec_tmp = array_from_pyobj(NPY_FLOAT,fvec_Dims,fvec_Rank,capi_fvec_intent,fvec_capi);
1440 if (capi_fvec_tmp == NULL) {
1441 PyObject *exc, *val, *tb;
1442 PyErr_Fetch(&exc, &val, &tb);
1443 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `fvec' of full_profile_profile.fcn_lpreg to C/Fortran array" );
1444 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1445 } else {
1446 fvec = (float *)(PyArray_DATA(capi_fvec_tmp));
1447
1448 /* Processing variable iflag */
1449 f2py_success = int_from_pyobj(&iflag,iflag_capi,"full_profile_profile.fcn_lpreg() 3rd argument (iflag) can't be converted to int");
1450 if (f2py_success) {
1451 /* Processing variable m */
1452 if (m_capi == Py_None) m = len(fvec); else
1453 f2py_success = int_from_pyobj(&m,m_capi,"full_profile_profile.fcn_lpreg() 1st keyword (m) can't be converted to int");
1454 if (f2py_success) {
1455 CHECKSCALAR(len(fvec)>=m,"len(fvec)>=m","1st keyword m","fcn_lpreg:m=%d",m) {
1456 /* Processing variable n */
1457 if (n_capi == Py_None) n = len(x); else
1458 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.fcn_lpreg() 2nd keyword (n) can't be converted to int");
1459 if (f2py_success) {
1460 CHECKSCALAR(len(x)>=n,"len(x)>=n","2nd keyword n","fcn_lpreg:n=%d",n) {
1461 /*end of frompyobj*/
1462 #ifdef F2PY_REPORT_ATEXIT
1463 f2py_start_call_clock();
1464 #endif
1465 /*callfortranroutine*/
1466 (*f2py_func)(&m,&n,x,fvec,&iflag);
1467 if (PyErr_Occurred())
1468 f2py_success = 0;
1469 #ifdef F2PY_REPORT_ATEXIT
1470 f2py_stop_call_clock();
1471 #endif
1472 /*end of callfortranroutine*/
1473 if (f2py_success) {
1474 /*pyobjfrom*/
1475 /*end of pyobjfrom*/
1476 CFUNCSMESS("Building return value.\n");
1477 capi_buildvalue = Py_BuildValue("");
1478 /*closepyobjfrom*/
1479 /*end of closepyobjfrom*/
1480 } /*if (f2py_success) after callfortranroutine*/
1481 /*cleanupfrompyobj*/
1482 } /*CHECKSCALAR(len(x)>=n)*/
1483 } /*if (f2py_success) of n*/
1484 /* End of cleaning variable n */
1485 } /*CHECKSCALAR(len(fvec)>=m)*/
1486 } /*if (f2py_success) of m*/
1487 /* End of cleaning variable m */
1488 } /*if (f2py_success) of iflag*/
1489 /* End of cleaning variable iflag */
1490 if((PyObject *)capi_fvec_tmp!=fvec_capi) {
1491 Py_XDECREF(capi_fvec_tmp); }
1492 } /*if (capi_fvec_tmp == NULL) ... else of fvec*/
1493 /* End of cleaning variable fvec */
1494 if((PyObject *)capi_x_tmp!=x_capi) {
1495 Py_XDECREF(capi_x_tmp); }
1496 } /*if (capi_x_tmp == NULL) ... else of x*/
1497 /* End of cleaning variable x */
1498 /*end of cleanupfrompyobj*/
1499 if (capi_buildvalue == NULL) {
1500 /*routdebugfailure*/
1501 } else {
1502 /*routdebugleave*/
1503 }
1504 CFUNCSMESS("Freeing memory.\n");
1505 /*freemem*/
1506 #ifdef F2PY_REPORT_ATEXIT
1507 f2py_stop_clock();
1508 #endif
1509 return capi_buildvalue;
1510 }
1511 /****************************** end of fcn_lpreg ******************************/
1512
1513 /********************************* get_scale *********************************/
1514 static char doc_f2py_rout_full_profile_profile_get_scale[] = "\
1515 get_scale(plag2)\n\nWrapper for ``get_scale``.\
1516 \n\nParameters\n----------\n"
1517 "plag2 : input rank-2 array('f') with bounds (16,75)";
1518 /* extern void F_FUNC_US(get_scale,GET_SCALE)(float*); */
1519 static PyObject *f2py_rout_full_profile_profile_get_scale(const PyObject *capi_self,
1520 PyObject *capi_args,
1521 PyObject *capi_keywds,
1522 void (*f2py_func)(float*)) {
1523 PyObject * volatile capi_buildvalue = NULL;
1524 volatile int f2py_success = 1;
1525 /*decl*/
1526
1527 float *plag2 = NULL;
1528 npy_intp plag2_Dims[2] = {-1, -1};
1529 const int plag2_Rank = 2;
1530 PyArrayObject *capi_plag2_tmp = NULL;
1531 int capi_plag2_intent = 0;
1532 PyObject *plag2_capi = Py_None;
1533 static char *capi_kwlist[] = {"plag2",NULL};
1534
1535 /*routdebugenter*/
1536 #ifdef F2PY_REPORT_ATEXIT
1537 f2py_start_clock();
1538 #endif
1539 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1540 "O|:full_profile_profile.get_scale",\
1541 capi_kwlist,&plag2_capi))
1542 return NULL;
1543 /*frompyobj*/
1544 /* Processing variable plag2 */
1545 plag2_Dims[0]=16,plag2_Dims[1]=75;
1546 capi_plag2_intent |= F2PY_INTENT_IN;
1547 capi_plag2_tmp = array_from_pyobj(NPY_FLOAT,plag2_Dims,plag2_Rank,capi_plag2_intent,plag2_capi);
1548 if (capi_plag2_tmp == NULL) {
1549 PyObject *exc, *val, *tb;
1550 PyErr_Fetch(&exc, &val, &tb);
1551 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `plag2' of full_profile_profile.get_scale to C/Fortran array" );
1552 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1553 } else {
1554 plag2 = (float *)(PyArray_DATA(capi_plag2_tmp));
1555
1556 /*end of frompyobj*/
1557 #ifdef F2PY_REPORT_ATEXIT
1558 f2py_start_call_clock();
1559 #endif
1560 /*callfortranroutine*/
1561 (*f2py_func)(plag2);
1562 if (PyErr_Occurred())
1563 f2py_success = 0;
1564 #ifdef F2PY_REPORT_ATEXIT
1565 f2py_stop_call_clock();
1566 #endif
1567 /*end of callfortranroutine*/
1568 if (f2py_success) {
1569 /*pyobjfrom*/
1570 /*end of pyobjfrom*/
1571 CFUNCSMESS("Building return value.\n");
1572 capi_buildvalue = Py_BuildValue("");
1573 /*closepyobjfrom*/
1574 /*end of closepyobjfrom*/
1575 } /*if (f2py_success) after callfortranroutine*/
1576 /*cleanupfrompyobj*/
1577 if((PyObject *)capi_plag2_tmp!=plag2_capi) {
1578 Py_XDECREF(capi_plag2_tmp); }
1579 } /*if (capi_plag2_tmp == NULL) ... else of plag2*/
1580 /* End of cleaning variable plag2 */
1581 /*end of cleanupfrompyobj*/
1582 if (capi_buildvalue == NULL) {
1583 /*routdebugfailure*/
1584 } else {
1585 /*routdebugleave*/
1586 }
1587 CFUNCSMESS("Freeing memory.\n");
1588 /*freemem*/
1589 #ifdef F2PY_REPORT_ATEXIT
1590 f2py_stop_clock();
1591 #endif
1592 return capi_buildvalue;
1593 }
1594 /****************************** end of get_scale ******************************/
1595
1596 /*********************************** enorm ***********************************/
1597 static char doc_f2py_rout_full_profile_profile_enorm[] = "\
1598 enorm = enorm(x,[n])\n\nWrapper for ``enorm``.\
1599 \n\nParameters\n----------\n"
1600 "x : input rank-1 array('f') with bounds (n)\n"
1601 "\nOther Parameters\n----------------\n"
1602 "n : input int, optional\n Default: len(x)\n"
1603 "\nReturns\n-------\n"
1604 "enorm : float";
1605 /* extern void F_WRAPPEDFUNC(enorm,ENORM)(float*,int*,float*); */
1606 static PyObject *f2py_rout_full_profile_profile_enorm(const PyObject *capi_self,
1607 PyObject *capi_args,
1608 PyObject *capi_keywds,
1609 void (*f2py_func)(float*,int*,float*)) {
1610 PyObject * volatile capi_buildvalue = NULL;
1611 volatile int f2py_success = 1;
1612 /*decl*/
1613
1614 float enorm = 0;
1615 int n = 0;
1616 PyObject *n_capi = Py_None;
1617 float *x = NULL;
1618 npy_intp x_Dims[1] = {-1};
1619 const int x_Rank = 1;
1620 PyArrayObject *capi_x_tmp = NULL;
1621 int capi_x_intent = 0;
1622 PyObject *x_capi = Py_None;
1623 static char *capi_kwlist[] = {"x","n",NULL};
1624
1625 /*routdebugenter*/
1626 #ifdef F2PY_REPORT_ATEXIT
1627 f2py_start_clock();
1628 #endif
1629 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1630 "O|O:full_profile_profile.enorm",\
1631 capi_kwlist,&x_capi,&n_capi))
1632 return NULL;
1633 /*frompyobj*/
1634 /* Processing variable x */
1635 ;
1636 capi_x_intent |= F2PY_INTENT_IN;
1637 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
1638 if (capi_x_tmp == NULL) {
1639 PyObject *exc, *val, *tb;
1640 PyErr_Fetch(&exc, &val, &tb);
1641 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `x' of full_profile_profile.enorm to C/Fortran array" );
1642 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1643 } else {
1644 x = (float *)(PyArray_DATA(capi_x_tmp));
1645
1646 /* Processing variable enorm */
1647 /* Processing variable n */
1648 if (n_capi == Py_None) n = len(x); else
1649 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.enorm() 1st keyword (n) can't be converted to int");
1650 if (f2py_success) {
1651 CHECKSCALAR(len(x)>=n,"len(x)>=n","1st keyword n","enorm:n=%d",n) {
1652 /*end of frompyobj*/
1653 #ifdef F2PY_REPORT_ATEXIT
1654 f2py_start_call_clock();
1655 #endif
1656 /*callfortranroutine*/
1657 (*f2py_func)(&enorm,&n,x);
1658 if (PyErr_Occurred())
1659 f2py_success = 0;
1660 #ifdef F2PY_REPORT_ATEXIT
1661 f2py_stop_call_clock();
1662 #endif
1663 /*end of callfortranroutine*/
1664 if (f2py_success) {
1665 /*pyobjfrom*/
1666 /*end of pyobjfrom*/
1667 CFUNCSMESS("Building return value.\n");
1668 capi_buildvalue = Py_BuildValue("f",enorm);
1669 /*closepyobjfrom*/
1670 /*end of closepyobjfrom*/
1671 } /*if (f2py_success) after callfortranroutine*/
1672 /*cleanupfrompyobj*/
1673 } /*CHECKSCALAR(len(x)>=n)*/
1674 } /*if (f2py_success) of n*/
1675 /* End of cleaning variable n */
1676 /* End of cleaning variable enorm */
1677 if((PyObject *)capi_x_tmp!=x_capi) {
1678 Py_XDECREF(capi_x_tmp); }
1679 } /*if (capi_x_tmp == NULL) ... else of x*/
1680 /* End of cleaning variable x */
1681 /*end of cleanupfrompyobj*/
1682 if (capi_buildvalue == NULL) {
1683 /*routdebugfailure*/
1684 } else {
1685 /*routdebugleave*/
1686 }
1687 CFUNCSMESS("Freeing memory.\n");
1688 /*freemem*/
1689 #ifdef F2PY_REPORT_ATEXIT
1690 f2py_stop_clock();
1691 #endif
1692 return capi_buildvalue;
1693 }
1694 /******************************** end of enorm ********************************/
1695
1696 /*********************************** fdjac2 ***********************************/
1697 static char doc_f2py_rout_full_profile_profile_fdjac2[] = "\
1698 fdjac2(fcn,x,fvec,fjac,iflag,epsfcn,wa,[m,n,ldfjac,fcn_extra_args])\n\nWrapper for ``fdjac2``.\
1699 \n\nParameters\n----------\n"
1700 "fcn : call-back function\n"
1701 "x : input rank-1 array('f') with bounds (n)\n"
1702 "fvec : input rank-1 array('f') with bounds (m)\n"
1703 "fjac : input rank-2 array('f') with bounds (ldfjac,n)\n"
1704 "iflag : input int\n"
1705 "epsfcn : input float\n"
1706 "wa : input rank-1 array('f') with bounds (m)\n"
1707 "\nOther Parameters\n----------------\n"
1708 "fcn_extra_args : input tuple, optional\n Default: ()\n"
1709 "m : input int, optional\n Default: len(fvec)\n"
1710 "n : input int, optional\n Default: len(x)\n"
1711 "ldfjac : input int, optional\n Default: shape(fjac,0)\n"
1712 "\nNotes\n-----\nCall-back functions::\n\n"
1713 " def fcn(x,wa,iflag,[m,n]): return \n\
1714 Required arguments:\n"
1715 " x : input rank-1 array('f') with bounds (n)\n"
1716 " wa : input rank-1 array('f') with bounds (m)\n"
1717 " iflag : input int\n"
1718 " Optional arguments:\n"
1719 " m : input int, optional\n Default: len(wa)\n"
1720 " n : input int, optional\n Default: len(x)";
1721 /* extern void F_FUNC(fdjac2,FDJAC2)(cb_fcn_in_fdjac2__user__routines_typedef,int*,int*,float*,float*,float*,int*,int*,float*,float*); */
1722 static PyObject *f2py_rout_full_profile_profile_fdjac2(const PyObject *capi_self,
1723 PyObject *capi_args,
1724 PyObject *capi_keywds,
1725 void (*f2py_func)(cb_fcn_in_fdjac2__user__routines_typedef,int*,int*,float*,float*,float*,int*,int*,float*,float*)) {
1726 PyObject * volatile capi_buildvalue = NULL;
1727 volatile int f2py_success = 1;
1728 /*decl*/
1729
1730 PyObject *fcn_capi = Py_None;
1731 PyTupleObject *fcn_xa_capi = NULL;
1732 PyTupleObject *fcn_args_capi = NULL;
1733 int fcn_nofargs_capi = 0;
1734 cb_fcn_in_fdjac2__user__routines_typedef fcn_cptr;
1735 int m = 0;
1736 PyObject *m_capi = Py_None;
1737 int n = 0;
1738 PyObject *n_capi = Py_None;
1739 float *x = NULL;
1740 npy_intp x_Dims[1] = {-1};
1741 const int x_Rank = 1;
1742 PyArrayObject *capi_x_tmp = NULL;
1743 int capi_x_intent = 0;
1744 PyObject *x_capi = Py_None;
1745 float *fvec = NULL;
1746 npy_intp fvec_Dims[1] = {-1};
1747 const int fvec_Rank = 1;
1748 PyArrayObject *capi_fvec_tmp = NULL;
1749 int capi_fvec_intent = 0;
1750 PyObject *fvec_capi = Py_None;
1751 float *fjac = NULL;
1752 npy_intp fjac_Dims[2] = {-1, -1};
1753 const int fjac_Rank = 2;
1754 PyArrayObject *capi_fjac_tmp = NULL;
1755 int capi_fjac_intent = 0;
1756 PyObject *fjac_capi = Py_None;
1757 int ldfjac = 0;
1758 PyObject *ldfjac_capi = Py_None;
1759 int iflag = 0;
1760 PyObject *iflag_capi = Py_None;
1761 float epsfcn = 0;
1762 PyObject *epsfcn_capi = Py_None;
1763 float *wa = NULL;
1764 npy_intp wa_Dims[1] = {-1};
1765 const int wa_Rank = 1;
1766 PyArrayObject *capi_wa_tmp = NULL;
1767 int capi_wa_intent = 0;
1768 PyObject *wa_capi = Py_None;
1769 static char *capi_kwlist[] = {"fcn","x","fvec","fjac","iflag","epsfcn","wa","m","n","ldfjac","fcn_extra_args",NULL};
1770
1771 /*routdebugenter*/
1772 #ifdef F2PY_REPORT_ATEXIT
1773 f2py_start_clock();
1774 #endif
1775 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
1776 "OOOOOOO|OOOO!:full_profile_profile.fdjac2",\
1777 capi_kwlist,&fcn_capi,&x_capi,&fvec_capi,&fjac_capi,&iflag_capi,&epsfcn_capi,&wa_capi,&m_capi,&n_capi,&ldfjac_capi,&PyTuple_Type,&fcn_xa_capi))
1778 return NULL;
1779 /*frompyobj*/
1780 /* Processing variable fcn */
1781 if(F2PyCapsule_Check(fcn_capi)) {
1782 fcn_cptr = F2PyCapsule_AsVoidPtr(fcn_capi);
1783 } else {
1784 fcn_cptr = cb_fcn_in_fdjac2__user__routines;
1785 }
1786
1787 fcn_nofargs_capi = cb_fcn_in_fdjac2__user__routines_nofargs;
1788 if (create_cb_arglist(fcn_capi,fcn_xa_capi,5,2,&cb_fcn_in_fdjac2__user__routines_nofargs,&fcn_args_capi,"failed in processing argument list for call-back fcn.")) {
1789 jmp_buf fcn_jmpbuf;
1790 CFUNCSMESS("Saving jmpbuf for `fcn`.\n");
1791 SWAP(fcn_capi,cb_fcn_in_fdjac2__user__routines_capi,PyObject);
1792 SWAP(fcn_args_capi,cb_fcn_in_fdjac2__user__routines_args_capi,PyTupleObject);
1793 memcpy(&fcn_jmpbuf,&cb_fcn_in_fdjac2__user__routines_jmpbuf,sizeof(jmp_buf));
1794 /* Processing variable x */
1795 ;
1796 capi_x_intent |= F2PY_INTENT_IN;
1797 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
1798 if (capi_x_tmp == NULL) {
1799 PyObject *exc, *val, *tb;
1800 PyErr_Fetch(&exc, &val, &tb);
1801 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `x' of full_profile_profile.fdjac2 to C/Fortran array" );
1802 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1803 } else {
1804 x = (float *)(PyArray_DATA(capi_x_tmp));
1805
1806 /* Processing variable fvec */
1807 ;
1808 capi_fvec_intent |= F2PY_INTENT_IN;
1809 capi_fvec_tmp = array_from_pyobj(NPY_FLOAT,fvec_Dims,fvec_Rank,capi_fvec_intent,fvec_capi);
1810 if (capi_fvec_tmp == NULL) {
1811 PyObject *exc, *val, *tb;
1812 PyErr_Fetch(&exc, &val, &tb);
1813 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 3rd argument `fvec' of full_profile_profile.fdjac2 to C/Fortran array" );
1814 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1815 } else {
1816 fvec = (float *)(PyArray_DATA(capi_fvec_tmp));
1817
1818 /* Processing variable iflag */
1819 f2py_success = int_from_pyobj(&iflag,iflag_capi,"full_profile_profile.fdjac2() 5th argument (iflag) can't be converted to int");
1820 if (f2py_success) {
1821 /* Processing variable epsfcn */
1822 f2py_success = float_from_pyobj(&epsfcn,epsfcn_capi,"full_profile_profile.fdjac2() 6th argument (epsfcn) can't be converted to float");
1823 if (f2py_success) {
1824 /* Processing variable m */
1825 if (m_capi == Py_None) m = len(fvec); else
1826 f2py_success = int_from_pyobj(&m,m_capi,"full_profile_profile.fdjac2() 1st keyword (m) can't be converted to int");
1827 if (f2py_success) {
1828 CHECKSCALAR(len(fvec)>=m,"len(fvec)>=m","1st keyword m","fdjac2:m=%d",m) {
1829 /* Processing variable n */
1830 if (n_capi == Py_None) n = len(x); else
1831 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.fdjac2() 2nd keyword (n) can't be converted to int");
1832 if (f2py_success) {
1833 CHECKSCALAR(len(x)>=n,"len(x)>=n","2nd keyword n","fdjac2:n=%d",n) {
1834 /* Processing variable fjac */
1835 fjac_Dims[1]=n;
1836 capi_fjac_intent |= F2PY_INTENT_IN;
1837 capi_fjac_tmp = array_from_pyobj(NPY_FLOAT,fjac_Dims,fjac_Rank,capi_fjac_intent,fjac_capi);
1838 if (capi_fjac_tmp == NULL) {
1839 PyObject *exc, *val, *tb;
1840 PyErr_Fetch(&exc, &val, &tb);
1841 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 4th argument `fjac' of full_profile_profile.fdjac2 to C/Fortran array" );
1842 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1843 } else {
1844 fjac = (float *)(PyArray_DATA(capi_fjac_tmp));
1845
1846 /* Processing variable ldfjac */
1847 if (ldfjac_capi == Py_None) ldfjac = shape(fjac,0); else
1848 f2py_success = int_from_pyobj(&ldfjac,ldfjac_capi,"full_profile_profile.fdjac2() 3rd keyword (ldfjac) can't be converted to int");
1849 if (f2py_success) {
1850 CHECKSCALAR(shape(fjac,0)==ldfjac,"shape(fjac,0)==ldfjac","3rd keyword ldfjac","fdjac2:ldfjac=%d",ldfjac) {
1851 /* Processing variable wa */
1852 wa_Dims[0]=m;
1853 capi_wa_intent |= F2PY_INTENT_IN;
1854 capi_wa_tmp = array_from_pyobj(NPY_FLOAT,wa_Dims,wa_Rank,capi_wa_intent,wa_capi);
1855 if (capi_wa_tmp == NULL) {
1856 PyObject *exc, *val, *tb;
1857 PyErr_Fetch(&exc, &val, &tb);
1858 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 7th argument `wa' of full_profile_profile.fdjac2 to C/Fortran array" );
1859 npy_PyErr_ChainExceptionsCause(exc, val, tb);
1860 } else {
1861 wa = (float *)(PyArray_DATA(capi_wa_tmp));
1862
1863 /*end of frompyobj*/
1864 #ifdef F2PY_REPORT_ATEXIT
1865 f2py_start_call_clock();
1866 #endif
1867 /*callfortranroutine*/
1868 if ((setjmp(cb_fcn_in_fdjac2__user__routines_jmpbuf))) {
1869 f2py_success = 0;
1870 } else {
1871 (*f2py_func)(fcn_cptr,&m,&n,x,fvec,fjac,&ldfjac,&iflag,&epsfcn,wa);
1872 }
1873 if (PyErr_Occurred())
1874 f2py_success = 0;
1875 #ifdef F2PY_REPORT_ATEXIT
1876 f2py_stop_call_clock();
1877 #endif
1878 /*end of callfortranroutine*/
1879 if (f2py_success) {
1880 /*pyobjfrom*/
1881 /*end of pyobjfrom*/
1882 CFUNCSMESS("Building return value.\n");
1883 capi_buildvalue = Py_BuildValue("");
1884 /*closepyobjfrom*/
1885 /*end of closepyobjfrom*/
1886 } /*if (f2py_success) after callfortranroutine*/
1887 /*cleanupfrompyobj*/
1888 if((PyObject *)capi_wa_tmp!=wa_capi) {
1889 Py_XDECREF(capi_wa_tmp); }
1890 } /*if (capi_wa_tmp == NULL) ... else of wa*/
1891 /* End of cleaning variable wa */
1892 } /*CHECKSCALAR(shape(fjac,0)==ldfjac)*/
1893 } /*if (f2py_success) of ldfjac*/
1894 /* End of cleaning variable ldfjac */
1895 if((PyObject *)capi_fjac_tmp!=fjac_capi) {
1896 Py_XDECREF(capi_fjac_tmp); }
1897 } /*if (capi_fjac_tmp == NULL) ... else of fjac*/
1898 /* End of cleaning variable fjac */
1899 } /*CHECKSCALAR(len(x)>=n)*/
1900 } /*if (f2py_success) of n*/
1901 /* End of cleaning variable n */
1902 } /*CHECKSCALAR(len(fvec)>=m)*/
1903 } /*if (f2py_success) of m*/
1904 /* End of cleaning variable m */
1905 } /*if (f2py_success) of epsfcn*/
1906 /* End of cleaning variable epsfcn */
1907 } /*if (f2py_success) of iflag*/
1908 /* End of cleaning variable iflag */
1909 if((PyObject *)capi_fvec_tmp!=fvec_capi) {
1910 Py_XDECREF(capi_fvec_tmp); }
1911 } /*if (capi_fvec_tmp == NULL) ... else of fvec*/
1912 /* End of cleaning variable fvec */
1913 if((PyObject *)capi_x_tmp!=x_capi) {
1914 Py_XDECREF(capi_x_tmp); }
1915 } /*if (capi_x_tmp == NULL) ... else of x*/
1916 /* End of cleaning variable x */
1917 CFUNCSMESS("Restoring jmpbuf for `fcn`.\n");
1918 cb_fcn_in_fdjac2__user__routines_capi = fcn_capi;
1919 Py_DECREF(cb_fcn_in_fdjac2__user__routines_args_capi);
1920 cb_fcn_in_fdjac2__user__routines_args_capi = fcn_args_capi;
1921 cb_fcn_in_fdjac2__user__routines_nofargs = fcn_nofargs_capi;
1922 memcpy(&cb_fcn_in_fdjac2__user__routines_jmpbuf,&fcn_jmpbuf,sizeof(jmp_buf));
1923 }
1924 /* End of cleaning variable fcn */
1925 /*end of cleanupfrompyobj*/
1926 if (capi_buildvalue == NULL) {
1927 /*routdebugfailure*/
1928 } else {
1929 /*routdebugleave*/
1930 }
1931 CFUNCSMESS("Freeing memory.\n");
1932 /*freemem*/
1933 #ifdef F2PY_REPORT_ATEXIT
1934 f2py_stop_clock();
1935 #endif
1936 return capi_buildvalue;
1937 }
1938 /******************************* end of fdjac2 *******************************/
1939
1940 /*********************************** lmdif ***********************************/
1941 static char doc_f2py_rout_full_profile_profile_lmdif[] = "\
1942 lmdif(fcn,x,fvec,ftol,xtol,gtol,maxfev,epsfcn,diag,mode,factor,nprint,info,nfev,fjac,ipvt,qtf,wa1,wa2,wa3,wa4,[m,n,ldfjac,fcn_extra_args])\n\nWrapper for ``lmdif``.\
1943 \n\nParameters\n----------\n"
1944 "fcn : call-back function\n"
1945 "x : input rank-1 array('f') with bounds (n)\n"
1946 "fvec : input rank-1 array('f') with bounds (m)\n"
1947 "ftol : input float\n"
1948 "xtol : input float\n"
1949 "gtol : input float\n"
1950 "maxfev : input int\n"
1951 "epsfcn : input float\n"
1952 "diag : input rank-1 array('f') with bounds (n)\n"
1953 "mode : input int\n"
1954 "factor : input float\n"
1955 "nprint : input int\n"
1956 "info : input int\n"
1957 "nfev : input int\n"
1958 "fjac : input rank-2 array('f') with bounds (ldfjac,n)\n"
1959 "ipvt : input rank-1 array('i') with bounds (n)\n"
1960 "qtf : input rank-1 array('f') with bounds (n)\n"
1961 "wa1 : input rank-1 array('f') with bounds (n)\n"
1962 "wa2 : input rank-1 array('f') with bounds (n)\n"
1963 "wa3 : input rank-1 array('f') with bounds (n)\n"
1964 "wa4 : input rank-1 array('f') with bounds (m)\n"
1965 "\nOther Parameters\n----------------\n"
1966 "fcn_extra_args : input tuple, optional\n Default: ()\n"
1967 "m : input int, optional\n Default: len(fvec)\n"
1968 "n : input int, optional\n Default: len(x)\n"
1969 "ldfjac : input int, optional\n Default: shape(fjac,0)\n"
1970 "\nNotes\n-----\nCall-back functions::\n\n"
1971 " def fcn(x,fvec,iflag,[m,n]): return \n\
1972 Required arguments:\n"
1973 " x : input rank-1 array('f') with bounds (n)\n"
1974 " fvec : input rank-1 array('f') with bounds (m)\n"
1975 " iflag : input int\n"
1976 " Optional arguments:\n"
1977 " m : input int, optional\n Default: len(fvec)\n"
1978 " n : input int, optional\n Default: len(x)";
1979 /* extern void F_FUNC(lmdif,LMDIF)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,float*,float*,int*,float*,float*,int*,float*,int*,int*,int*,float*,int*,int*,float*,float*,float*,float*,float*); */
1980 static PyObject *f2py_rout_full_profile_profile_lmdif(const PyObject *capi_self,
1981 PyObject *capi_args,
1982 PyObject *capi_keywds,
1983 void (*f2py_func)(cb_fcn_in_lmdif__user__routines_typedef,int*,int*,float*,float*,float*,float*,float*,int*,float*,float*,int*,float*,int*,int*,int*,float*,int*,int*,float*,float*,float*,float*,float*)) {
1984 PyObject * volatile capi_buildvalue = NULL;
1985 volatile int f2py_success = 1;
1986 /*decl*/
1987
1988 PyObject *fcn_capi = Py_None;
1989 PyTupleObject *fcn_xa_capi = NULL;
1990 PyTupleObject *fcn_args_capi = NULL;
1991 int fcn_nofargs_capi = 0;
1992 cb_fcn_in_lmdif__user__routines_typedef fcn_cptr;
1993 int m = 0;
1994 PyObject *m_capi = Py_None;
1995 int n = 0;
1996 PyObject *n_capi = Py_None;
1997 float *x = NULL;
1998 npy_intp x_Dims[1] = {-1};
1999 const int x_Rank = 1;
2000 PyArrayObject *capi_x_tmp = NULL;
2001 int capi_x_intent = 0;
2002 PyObject *x_capi = Py_None;
2003 float *fvec = NULL;
2004 npy_intp fvec_Dims[1] = {-1};
2005 const int fvec_Rank = 1;
2006 PyArrayObject *capi_fvec_tmp = NULL;
2007 int capi_fvec_intent = 0;
2008 PyObject *fvec_capi = Py_None;
2009 float ftol = 0;
2010 PyObject *ftol_capi = Py_None;
2011 float xtol = 0;
2012 PyObject *xtol_capi = Py_None;
2013 float gtol = 0;
2014 PyObject *gtol_capi = Py_None;
2015 int maxfev = 0;
2016 PyObject *maxfev_capi = Py_None;
2017 float epsfcn = 0;
2018 PyObject *epsfcn_capi = Py_None;
2019 float *diag = NULL;
2020 npy_intp diag_Dims[1] = {-1};
2021 const int diag_Rank = 1;
2022 PyArrayObject *capi_diag_tmp = NULL;
2023 int capi_diag_intent = 0;
2024 PyObject *diag_capi = Py_None;
2025 int mode = 0;
2026 PyObject *mode_capi = Py_None;
2027 float factor = 0;
2028 PyObject *factor_capi = Py_None;
2029 int nprint = 0;
2030 PyObject *nprint_capi = Py_None;
2031 int info = 0;
2032 PyObject *info_capi = Py_None;
2033 int nfev = 0;
2034 PyObject *nfev_capi = Py_None;
2035 float *fjac = NULL;
2036 npy_intp fjac_Dims[2] = {-1, -1};
2037 const int fjac_Rank = 2;
2038 PyArrayObject *capi_fjac_tmp = NULL;
2039 int capi_fjac_intent = 0;
2040 PyObject *fjac_capi = Py_None;
2041 int ldfjac = 0;
2042 PyObject *ldfjac_capi = Py_None;
2043 int *ipvt = NULL;
2044 npy_intp ipvt_Dims[1] = {-1};
2045 const int ipvt_Rank = 1;
2046 PyArrayObject *capi_ipvt_tmp = NULL;
2047 int capi_ipvt_intent = 0;
2048 PyObject *ipvt_capi = Py_None;
2049 float *qtf = NULL;
2050 npy_intp qtf_Dims[1] = {-1};
2051 const int qtf_Rank = 1;
2052 PyArrayObject *capi_qtf_tmp = NULL;
2053 int capi_qtf_intent = 0;
2054 PyObject *qtf_capi = Py_None;
2055 float *wa1 = NULL;
2056 npy_intp wa1_Dims[1] = {-1};
2057 const int wa1_Rank = 1;
2058 PyArrayObject *capi_wa1_tmp = NULL;
2059 int capi_wa1_intent = 0;
2060 PyObject *wa1_capi = Py_None;
2061 float *wa2 = NULL;
2062 npy_intp wa2_Dims[1] = {-1};
2063 const int wa2_Rank = 1;
2064 PyArrayObject *capi_wa2_tmp = NULL;
2065 int capi_wa2_intent = 0;
2066 PyObject *wa2_capi = Py_None;
2067 float *wa3 = NULL;
2068 npy_intp wa3_Dims[1] = {-1};
2069 const int wa3_Rank = 1;
2070 PyArrayObject *capi_wa3_tmp = NULL;
2071 int capi_wa3_intent = 0;
2072 PyObject *wa3_capi = Py_None;
2073 float *wa4 = NULL;
2074 npy_intp wa4_Dims[1] = {-1};
2075 const int wa4_Rank = 1;
2076 PyArrayObject *capi_wa4_tmp = NULL;
2077 int capi_wa4_intent = 0;
2078 PyObject *wa4_capi = Py_None;
2079 static char *capi_kwlist[] = {"fcn","x","fvec","ftol","xtol","gtol","maxfev","epsfcn","diag","mode","factor","nprint","info","nfev","fjac","ipvt","qtf","wa1","wa2","wa3","wa4","m","n","ldfjac","fcn_extra_args",NULL};
2080
2081 /*routdebugenter*/
2082 #ifdef F2PY_REPORT_ATEXIT
2083 f2py_start_clock();
2084 #endif
2085 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
2086 "OOOOOOOOOOOOOOOOOOOOO|OOOO!:full_profile_profile.lmdif",\
2087 capi_kwlist,&fcn_capi,&x_capi,&fvec_capi,&ftol_capi,&xtol_capi,&gtol_capi,&maxfev_capi,&epsfcn_capi,&diag_capi,&mode_capi,&factor_capi,&nprint_capi,&info_capi,&nfev_capi,&fjac_capi,&ipvt_capi,&qtf_capi,&wa1_capi,&wa2_capi,&wa3_capi,&wa4_capi,&m_capi,&n_capi,&ldfjac_capi,&PyTuple_Type,&fcn_xa_capi))
2088 return NULL;
2089 /*frompyobj*/
2090 /* Processing variable fcn */
2091 if(F2PyCapsule_Check(fcn_capi)) {
2092 fcn_cptr = F2PyCapsule_AsVoidPtr(fcn_capi);
2093 } else {
2094 fcn_cptr = cb_fcn_in_lmdif__user__routines;
2095 }
2096
2097 fcn_nofargs_capi = cb_fcn_in_lmdif__user__routines_nofargs;
2098 if (create_cb_arglist(fcn_capi,fcn_xa_capi,5,2,&cb_fcn_in_lmdif__user__routines_nofargs,&fcn_args_capi,"failed in processing argument list for call-back fcn.")) {
2099 jmp_buf fcn_jmpbuf;
2100 CFUNCSMESS("Saving jmpbuf for `fcn`.\n");
2101 SWAP(fcn_capi,cb_fcn_in_lmdif__user__routines_capi,PyObject);
2102 SWAP(fcn_args_capi,cb_fcn_in_lmdif__user__routines_args_capi,PyTupleObject);
2103 memcpy(&fcn_jmpbuf,&cb_fcn_in_lmdif__user__routines_jmpbuf,sizeof(jmp_buf));
2104 /* Processing variable x */
2105 ;
2106 capi_x_intent |= F2PY_INTENT_IN;
2107 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
2108 if (capi_x_tmp == NULL) {
2109 PyObject *exc, *val, *tb;
2110 PyErr_Fetch(&exc, &val, &tb);
2111 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `x' of full_profile_profile.lmdif to C/Fortran array" );
2112 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2113 } else {
2114 x = (float *)(PyArray_DATA(capi_x_tmp));
2115
2116 /* Processing variable fvec */
2117 ;
2118 capi_fvec_intent |= F2PY_INTENT_IN;
2119 capi_fvec_tmp = array_from_pyobj(NPY_FLOAT,fvec_Dims,fvec_Rank,capi_fvec_intent,fvec_capi);
2120 if (capi_fvec_tmp == NULL) {
2121 PyObject *exc, *val, *tb;
2122 PyErr_Fetch(&exc, &val, &tb);
2123 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 3rd argument `fvec' of full_profile_profile.lmdif to C/Fortran array" );
2124 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2125 } else {
2126 fvec = (float *)(PyArray_DATA(capi_fvec_tmp));
2127
2128 /* Processing variable ftol */
2129 f2py_success = float_from_pyobj(&ftol,ftol_capi,"full_profile_profile.lmdif() 4th argument (ftol) can't be converted to float");
2130 if (f2py_success) {
2131 /* Processing variable xtol */
2132 f2py_success = float_from_pyobj(&xtol,xtol_capi,"full_profile_profile.lmdif() 5th argument (xtol) can't be converted to float");
2133 if (f2py_success) {
2134 /* Processing variable gtol */
2135 f2py_success = float_from_pyobj(&gtol,gtol_capi,"full_profile_profile.lmdif() 6th argument (gtol) can't be converted to float");
2136 if (f2py_success) {
2137 /* Processing variable maxfev */
2138 f2py_success = int_from_pyobj(&maxfev,maxfev_capi,"full_profile_profile.lmdif() 7th argument (maxfev) can't be converted to int");
2139 if (f2py_success) {
2140 /* Processing variable epsfcn */
2141 f2py_success = float_from_pyobj(&epsfcn,epsfcn_capi,"full_profile_profile.lmdif() 8th argument (epsfcn) can't be converted to float");
2142 if (f2py_success) {
2143 /* Processing variable mode */
2144 f2py_success = int_from_pyobj(&mode,mode_capi,"full_profile_profile.lmdif() 10th argument (mode) can't be converted to int");
2145 if (f2py_success) {
2146 /* Processing variable factor */
2147 f2py_success = float_from_pyobj(&factor,factor_capi,"full_profile_profile.lmdif() 11st argument (factor) can't be converted to float");
2148 if (f2py_success) {
2149 /* Processing variable nprint */
2150 f2py_success = int_from_pyobj(&nprint,nprint_capi,"full_profile_profile.lmdif() 12nd argument (nprint) can't be converted to int");
2151 if (f2py_success) {
2152 /* Processing variable info */
2153 f2py_success = int_from_pyobj(&info,info_capi,"full_profile_profile.lmdif() 13rd argument (info) can't be converted to int");
2154 if (f2py_success) {
2155 /* Processing variable nfev */
2156 f2py_success = int_from_pyobj(&nfev,nfev_capi,"full_profile_profile.lmdif() 14th argument (nfev) can't be converted to int");
2157 if (f2py_success) {
2158 /* Processing variable m */
2159 if (m_capi == Py_None) m = len(fvec); else
2160 f2py_success = int_from_pyobj(&m,m_capi,"full_profile_profile.lmdif() 1st keyword (m) can't be converted to int");
2161 if (f2py_success) {
2162 CHECKSCALAR(len(fvec)>=m,"len(fvec)>=m","1st keyword m","lmdif:m=%d",m) {
2163 /* Processing variable n */
2164 if (n_capi == Py_None) n = len(x); else
2165 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.lmdif() 2nd keyword (n) can't be converted to int");
2166 if (f2py_success) {
2167 CHECKSCALAR(len(x)>=n,"len(x)>=n","2nd keyword n","lmdif:n=%d",n) {
2168 /* Processing variable diag */
2169 diag_Dims[0]=n;
2170 capi_diag_intent |= F2PY_INTENT_IN;
2171 capi_diag_tmp = array_from_pyobj(NPY_FLOAT,diag_Dims,diag_Rank,capi_diag_intent,diag_capi);
2172 if (capi_diag_tmp == NULL) {
2173 PyObject *exc, *val, *tb;
2174 PyErr_Fetch(&exc, &val, &tb);
2175 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 9th argument `diag' of full_profile_profile.lmdif to C/Fortran array" );
2176 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2177 } else {
2178 diag = (float *)(PyArray_DATA(capi_diag_tmp));
2179
2180 /* Processing variable fjac */
2181 fjac_Dims[1]=n;
2182 capi_fjac_intent |= F2PY_INTENT_IN;
2183 capi_fjac_tmp = array_from_pyobj(NPY_FLOAT,fjac_Dims,fjac_Rank,capi_fjac_intent,fjac_capi);
2184 if (capi_fjac_tmp == NULL) {
2185 PyObject *exc, *val, *tb;
2186 PyErr_Fetch(&exc, &val, &tb);
2187 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 15th argument `fjac' of full_profile_profile.lmdif to C/Fortran array" );
2188 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2189 } else {
2190 fjac = (float *)(PyArray_DATA(capi_fjac_tmp));
2191
2192 /* Processing variable ldfjac */
2193 if (ldfjac_capi == Py_None) ldfjac = shape(fjac,0); else
2194 f2py_success = int_from_pyobj(&ldfjac,ldfjac_capi,"full_profile_profile.lmdif() 3rd keyword (ldfjac) can't be converted to int");
2195 if (f2py_success) {
2196 CHECKSCALAR(shape(fjac,0)==ldfjac,"shape(fjac,0)==ldfjac","3rd keyword ldfjac","lmdif:ldfjac=%d",ldfjac) {
2197 /* Processing variable ipvt */
2198 ipvt_Dims[0]=n;
2199 capi_ipvt_intent |= F2PY_INTENT_IN;
2200 capi_ipvt_tmp = array_from_pyobj(NPY_INT,ipvt_Dims,ipvt_Rank,capi_ipvt_intent,ipvt_capi);
2201 if (capi_ipvt_tmp == NULL) {
2202 PyObject *exc, *val, *tb;
2203 PyErr_Fetch(&exc, &val, &tb);
2204 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 16th argument `ipvt' of full_profile_profile.lmdif to C/Fortran array" );
2205 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2206 } else {
2207 ipvt = (int *)(PyArray_DATA(capi_ipvt_tmp));
2208
2209 /* Processing variable qtf */
2210 qtf_Dims[0]=n;
2211 capi_qtf_intent |= F2PY_INTENT_IN;
2212 capi_qtf_tmp = array_from_pyobj(NPY_FLOAT,qtf_Dims,qtf_Rank,capi_qtf_intent,qtf_capi);
2213 if (capi_qtf_tmp == NULL) {
2214 PyObject *exc, *val, *tb;
2215 PyErr_Fetch(&exc, &val, &tb);
2216 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 17th argument `qtf' of full_profile_profile.lmdif to C/Fortran array" );
2217 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2218 } else {
2219 qtf = (float *)(PyArray_DATA(capi_qtf_tmp));
2220
2221 /* Processing variable wa1 */
2222 wa1_Dims[0]=n;
2223 capi_wa1_intent |= F2PY_INTENT_IN;
2224 capi_wa1_tmp = array_from_pyobj(NPY_FLOAT,wa1_Dims,wa1_Rank,capi_wa1_intent,wa1_capi);
2225 if (capi_wa1_tmp == NULL) {
2226 PyObject *exc, *val, *tb;
2227 PyErr_Fetch(&exc, &val, &tb);
2228 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 18th argument `wa1' of full_profile_profile.lmdif to C/Fortran array" );
2229 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2230 } else {
2231 wa1 = (float *)(PyArray_DATA(capi_wa1_tmp));
2232
2233 /* Processing variable wa2 */
2234 wa2_Dims[0]=n;
2235 capi_wa2_intent |= F2PY_INTENT_IN;
2236 capi_wa2_tmp = array_from_pyobj(NPY_FLOAT,wa2_Dims,wa2_Rank,capi_wa2_intent,wa2_capi);
2237 if (capi_wa2_tmp == NULL) {
2238 PyObject *exc, *val, *tb;
2239 PyErr_Fetch(&exc, &val, &tb);
2240 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 19th argument `wa2' of full_profile_profile.lmdif to C/Fortran array" );
2241 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2242 } else {
2243 wa2 = (float *)(PyArray_DATA(capi_wa2_tmp));
2244
2245 /* Processing variable wa3 */
2246 wa3_Dims[0]=n;
2247 capi_wa3_intent |= F2PY_INTENT_IN;
2248 capi_wa3_tmp = array_from_pyobj(NPY_FLOAT,wa3_Dims,wa3_Rank,capi_wa3_intent,wa3_capi);
2249 if (capi_wa3_tmp == NULL) {
2250 PyObject *exc, *val, *tb;
2251 PyErr_Fetch(&exc, &val, &tb);
2252 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 20th argument `wa3' of full_profile_profile.lmdif to C/Fortran array" );
2253 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2254 } else {
2255 wa3 = (float *)(PyArray_DATA(capi_wa3_tmp));
2256
2257 /* Processing variable wa4 */
2258 wa4_Dims[0]=m;
2259 capi_wa4_intent |= F2PY_INTENT_IN;
2260 capi_wa4_tmp = array_from_pyobj(NPY_FLOAT,wa4_Dims,wa4_Rank,capi_wa4_intent,wa4_capi);
2261 if (capi_wa4_tmp == NULL) {
2262 PyObject *exc, *val, *tb;
2263 PyErr_Fetch(&exc, &val, &tb);
2264 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 21st argument `wa4' of full_profile_profile.lmdif to C/Fortran array" );
2265 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2266 } else {
2267 wa4 = (float *)(PyArray_DATA(capi_wa4_tmp));
2268
2269 /*end of frompyobj*/
2270 #ifdef F2PY_REPORT_ATEXIT
2271 f2py_start_call_clock();
2272 #endif
2273 /*callfortranroutine*/
2274 if ((setjmp(cb_fcn_in_lmdif__user__routines_jmpbuf))) {
2275 f2py_success = 0;
2276 } else {
2277 (*f2py_func)(fcn_cptr,&m,&n,x,fvec,&ftol,&xtol,&gtol,&maxfev,&epsfcn,diag,&mode,&factor,&nprint,&info,&nfev,fjac,&ldfjac,ipvt,qtf,wa1,wa2,wa3,wa4);
2278 }
2279 if (PyErr_Occurred())
2280 f2py_success = 0;
2281 #ifdef F2PY_REPORT_ATEXIT
2282 f2py_stop_call_clock();
2283 #endif
2284 /*end of callfortranroutine*/
2285 if (f2py_success) {
2286 /*pyobjfrom*/
2287 /*end of pyobjfrom*/
2288 CFUNCSMESS("Building return value.\n");
2289 capi_buildvalue = Py_BuildValue("");
2290 /*closepyobjfrom*/
2291 /*end of closepyobjfrom*/
2292 } /*if (f2py_success) after callfortranroutine*/
2293 /*cleanupfrompyobj*/
2294 if((PyObject *)capi_wa4_tmp!=wa4_capi) {
2295 Py_XDECREF(capi_wa4_tmp); }
2296 } /*if (capi_wa4_tmp == NULL) ... else of wa4*/
2297 /* End of cleaning variable wa4 */
2298 if((PyObject *)capi_wa3_tmp!=wa3_capi) {
2299 Py_XDECREF(capi_wa3_tmp); }
2300 } /*if (capi_wa3_tmp == NULL) ... else of wa3*/
2301 /* End of cleaning variable wa3 */
2302 if((PyObject *)capi_wa2_tmp!=wa2_capi) {
2303 Py_XDECREF(capi_wa2_tmp); }
2304 } /*if (capi_wa2_tmp == NULL) ... else of wa2*/
2305 /* End of cleaning variable wa2 */
2306 if((PyObject *)capi_wa1_tmp!=wa1_capi) {
2307 Py_XDECREF(capi_wa1_tmp); }
2308 } /*if (capi_wa1_tmp == NULL) ... else of wa1*/
2309 /* End of cleaning variable wa1 */
2310 if((PyObject *)capi_qtf_tmp!=qtf_capi) {
2311 Py_XDECREF(capi_qtf_tmp); }
2312 } /*if (capi_qtf_tmp == NULL) ... else of qtf*/
2313 /* End of cleaning variable qtf */
2314 if((PyObject *)capi_ipvt_tmp!=ipvt_capi) {
2315 Py_XDECREF(capi_ipvt_tmp); }
2316 } /*if (capi_ipvt_tmp == NULL) ... else of ipvt*/
2317 /* End of cleaning variable ipvt */
2318 } /*CHECKSCALAR(shape(fjac,0)==ldfjac)*/
2319 } /*if (f2py_success) of ldfjac*/
2320 /* End of cleaning variable ldfjac */
2321 if((PyObject *)capi_fjac_tmp!=fjac_capi) {
2322 Py_XDECREF(capi_fjac_tmp); }
2323 } /*if (capi_fjac_tmp == NULL) ... else of fjac*/
2324 /* End of cleaning variable fjac */
2325 if((PyObject *)capi_diag_tmp!=diag_capi) {
2326 Py_XDECREF(capi_diag_tmp); }
2327 } /*if (capi_diag_tmp == NULL) ... else of diag*/
2328 /* End of cleaning variable diag */
2329 } /*CHECKSCALAR(len(x)>=n)*/
2330 } /*if (f2py_success) of n*/
2331 /* End of cleaning variable n */
2332 } /*CHECKSCALAR(len(fvec)>=m)*/
2333 } /*if (f2py_success) of m*/
2334 /* End of cleaning variable m */
2335 } /*if (f2py_success) of nfev*/
2336 /* End of cleaning variable nfev */
2337 } /*if (f2py_success) of info*/
2338 /* End of cleaning variable info */
2339 } /*if (f2py_success) of nprint*/
2340 /* End of cleaning variable nprint */
2341 } /*if (f2py_success) of factor*/
2342 /* End of cleaning variable factor */
2343 } /*if (f2py_success) of mode*/
2344 /* End of cleaning variable mode */
2345 } /*if (f2py_success) of epsfcn*/
2346 /* End of cleaning variable epsfcn */
2347 } /*if (f2py_success) of maxfev*/
2348 /* End of cleaning variable maxfev */
2349 } /*if (f2py_success) of gtol*/
2350 /* End of cleaning variable gtol */
2351 } /*if (f2py_success) of xtol*/
2352 /* End of cleaning variable xtol */
2353 } /*if (f2py_success) of ftol*/
2354 /* End of cleaning variable ftol */
2355 if((PyObject *)capi_fvec_tmp!=fvec_capi) {
2356 Py_XDECREF(capi_fvec_tmp); }
2357 } /*if (capi_fvec_tmp == NULL) ... else of fvec*/
2358 /* End of cleaning variable fvec */
2359 if((PyObject *)capi_x_tmp!=x_capi) {
2360 Py_XDECREF(capi_x_tmp); }
2361 } /*if (capi_x_tmp == NULL) ... else of x*/
2362 /* End of cleaning variable x */
2363 CFUNCSMESS("Restoring jmpbuf for `fcn`.\n");
2364 cb_fcn_in_lmdif__user__routines_capi = fcn_capi;
2365 Py_DECREF(cb_fcn_in_lmdif__user__routines_args_capi);
2366 cb_fcn_in_lmdif__user__routines_args_capi = fcn_args_capi;
2367 cb_fcn_in_lmdif__user__routines_nofargs = fcn_nofargs_capi;
2368 memcpy(&cb_fcn_in_lmdif__user__routines_jmpbuf,&fcn_jmpbuf,sizeof(jmp_buf));
2369 }
2370 /* End of cleaning variable fcn */
2371 /*end of cleanupfrompyobj*/
2372 if (capi_buildvalue == NULL) {
2373 /*routdebugfailure*/
2374 } else {
2375 /*routdebugleave*/
2376 }
2377 CFUNCSMESS("Freeing memory.\n");
2378 /*freemem*/
2379 #ifdef F2PY_REPORT_ATEXIT
2380 f2py_stop_clock();
2381 #endif
2382 return capi_buildvalue;
2383 }
2384 /******************************** end of lmdif ********************************/
2385
2386 /*********************************** lmpar ***********************************/
2387 static char doc_f2py_rout_full_profile_profile_lmpar[] = "\
2388 lmpar(r,ipvt,diag,qtb,delta,par,x,sdiag,wa1,wa2,[n,ldr])\n\nWrapper for ``lmpar``.\
2389 \n\nParameters\n----------\n"
2390 "r : input rank-2 array('f') with bounds (ldr,n)\n"
2391 "ipvt : input rank-1 array('i') with bounds (n)\n"
2392 "diag : input rank-1 array('f') with bounds (n)\n"
2393 "qtb : input rank-1 array('f') with bounds (n)\n"
2394 "delta : input float\n"
2395 "par : input float\n"
2396 "x : input rank-1 array('f') with bounds (n)\n"
2397 "sdiag : input rank-1 array('f') with bounds (n)\n"
2398 "wa1 : input rank-1 array('f') with bounds (n)\n"
2399 "wa2 : input rank-1 array('f') with bounds (n)\n"
2400 "\nOther Parameters\n----------------\n"
2401 "n : input int, optional\n Default: shape(r,1)\n"
2402 "ldr : input int, optional\n Default: shape(r,0)";
2403 /* extern void F_FUNC(lmpar,LMPAR)(int*,float*,int*,int*,float*,float*,float*,float*,float*,float*,float*,float*); */
2404 static PyObject *f2py_rout_full_profile_profile_lmpar(const PyObject *capi_self,
2405 PyObject *capi_args,
2406 PyObject *capi_keywds,
2407 void (*f2py_func)(int*,float*,int*,int*,float*,float*,float*,float*,float*,float*,float*,float*)) {
2408 PyObject * volatile capi_buildvalue = NULL;
2409 volatile int f2py_success = 1;
2410 /*decl*/
2411
2412 int n = 0;
2413 PyObject *n_capi = Py_None;
2414 float *r = NULL;
2415 npy_intp r_Dims[2] = {-1, -1};
2416 const int r_Rank = 2;
2417 PyArrayObject *capi_r_tmp = NULL;
2418 int capi_r_intent = 0;
2419 PyObject *r_capi = Py_None;
2420 int ldr = 0;
2421 PyObject *ldr_capi = Py_None;
2422 int *ipvt = NULL;
2423 npy_intp ipvt_Dims[1] = {-1};
2424 const int ipvt_Rank = 1;
2425 PyArrayObject *capi_ipvt_tmp = NULL;
2426 int capi_ipvt_intent = 0;
2427 PyObject *ipvt_capi = Py_None;
2428 float *diag = NULL;
2429 npy_intp diag_Dims[1] = {-1};
2430 const int diag_Rank = 1;
2431 PyArrayObject *capi_diag_tmp = NULL;
2432 int capi_diag_intent = 0;
2433 PyObject *diag_capi = Py_None;
2434 float *qtb = NULL;
2435 npy_intp qtb_Dims[1] = {-1};
2436 const int qtb_Rank = 1;
2437 PyArrayObject *capi_qtb_tmp = NULL;
2438 int capi_qtb_intent = 0;
2439 PyObject *qtb_capi = Py_None;
2440 float delta = 0;
2441 PyObject *delta_capi = Py_None;
2442 float par = 0;
2443 PyObject *par_capi = Py_None;
2444 float *x = NULL;
2445 npy_intp x_Dims[1] = {-1};
2446 const int x_Rank = 1;
2447 PyArrayObject *capi_x_tmp = NULL;
2448 int capi_x_intent = 0;
2449 PyObject *x_capi = Py_None;
2450 float *sdiag = NULL;
2451 npy_intp sdiag_Dims[1] = {-1};
2452 const int sdiag_Rank = 1;
2453 PyArrayObject *capi_sdiag_tmp = NULL;
2454 int capi_sdiag_intent = 0;
2455 PyObject *sdiag_capi = Py_None;
2456 float *wa1 = NULL;
2457 npy_intp wa1_Dims[1] = {-1};
2458 const int wa1_Rank = 1;
2459 PyArrayObject *capi_wa1_tmp = NULL;
2460 int capi_wa1_intent = 0;
2461 PyObject *wa1_capi = Py_None;
2462 float *wa2 = NULL;
2463 npy_intp wa2_Dims[1] = {-1};
2464 const int wa2_Rank = 1;
2465 PyArrayObject *capi_wa2_tmp = NULL;
2466 int capi_wa2_intent = 0;
2467 PyObject *wa2_capi = Py_None;
2468 static char *capi_kwlist[] = {"r","ipvt","diag","qtb","delta","par","x","sdiag","wa1","wa2","n","ldr",NULL};
2469
2470 /*routdebugenter*/
2471 #ifdef F2PY_REPORT_ATEXIT
2472 f2py_start_clock();
2473 #endif
2474 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
2475 "OOOOOOOOOO|OO:full_profile_profile.lmpar",\
2476 capi_kwlist,&r_capi,&ipvt_capi,&diag_capi,&qtb_capi,&delta_capi,&par_capi,&x_capi,&sdiag_capi,&wa1_capi,&wa2_capi,&n_capi,&ldr_capi))
2477 return NULL;
2478 /*frompyobj*/
2479 /* Processing variable r */
2480 ;
2481 capi_r_intent |= F2PY_INTENT_IN;
2482 capi_r_tmp = array_from_pyobj(NPY_FLOAT,r_Dims,r_Rank,capi_r_intent,r_capi);
2483 if (capi_r_tmp == NULL) {
2484 PyObject *exc, *val, *tb;
2485 PyErr_Fetch(&exc, &val, &tb);
2486 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `r' of full_profile_profile.lmpar to C/Fortran array" );
2487 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2488 } else {
2489 r = (float *)(PyArray_DATA(capi_r_tmp));
2490
2491 /* Processing variable delta */
2492 f2py_success = float_from_pyobj(&delta,delta_capi,"full_profile_profile.lmpar() 5th argument (delta) can't be converted to float");
2493 if (f2py_success) {
2494 /* Processing variable par */
2495 f2py_success = float_from_pyobj(&par,par_capi,"full_profile_profile.lmpar() 6th argument (par) can't be converted to float");
2496 if (f2py_success) {
2497 /* Processing variable n */
2498 if (n_capi == Py_None) n = shape(r,1); else
2499 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.lmpar() 1st keyword (n) can't be converted to int");
2500 if (f2py_success) {
2501 CHECKSCALAR(shape(r,1)==n,"shape(r,1)==n","1st keyword n","lmpar:n=%d",n) {
2502 /* Processing variable ldr */
2503 if (ldr_capi == Py_None) ldr = shape(r,0); else
2504 f2py_success = int_from_pyobj(&ldr,ldr_capi,"full_profile_profile.lmpar() 2nd keyword (ldr) can't be converted to int");
2505 if (f2py_success) {
2506 CHECKSCALAR(shape(r,0)==ldr,"shape(r,0)==ldr","2nd keyword ldr","lmpar:ldr=%d",ldr) {
2507 /* Processing variable ipvt */
2508 ipvt_Dims[0]=n;
2509 capi_ipvt_intent |= F2PY_INTENT_IN;
2510 capi_ipvt_tmp = array_from_pyobj(NPY_INT,ipvt_Dims,ipvt_Rank,capi_ipvt_intent,ipvt_capi);
2511 if (capi_ipvt_tmp == NULL) {
2512 PyObject *exc, *val, *tb;
2513 PyErr_Fetch(&exc, &val, &tb);
2514 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `ipvt' of full_profile_profile.lmpar to C/Fortran array" );
2515 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2516 } else {
2517 ipvt = (int *)(PyArray_DATA(capi_ipvt_tmp));
2518
2519 /* Processing variable diag */
2520 diag_Dims[0]=n;
2521 capi_diag_intent |= F2PY_INTENT_IN;
2522 capi_diag_tmp = array_from_pyobj(NPY_FLOAT,diag_Dims,diag_Rank,capi_diag_intent,diag_capi);
2523 if (capi_diag_tmp == NULL) {
2524 PyObject *exc, *val, *tb;
2525 PyErr_Fetch(&exc, &val, &tb);
2526 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 3rd argument `diag' of full_profile_profile.lmpar to C/Fortran array" );
2527 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2528 } else {
2529 diag = (float *)(PyArray_DATA(capi_diag_tmp));
2530
2531 /* Processing variable qtb */
2532 qtb_Dims[0]=n;
2533 capi_qtb_intent |= F2PY_INTENT_IN;
2534 capi_qtb_tmp = array_from_pyobj(NPY_FLOAT,qtb_Dims,qtb_Rank,capi_qtb_intent,qtb_capi);
2535 if (capi_qtb_tmp == NULL) {
2536 PyObject *exc, *val, *tb;
2537 PyErr_Fetch(&exc, &val, &tb);
2538 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 4th argument `qtb' of full_profile_profile.lmpar to C/Fortran array" );
2539 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2540 } else {
2541 qtb = (float *)(PyArray_DATA(capi_qtb_tmp));
2542
2543 /* Processing variable x */
2544 x_Dims[0]=n;
2545 capi_x_intent |= F2PY_INTENT_IN;
2546 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
2547 if (capi_x_tmp == NULL) {
2548 PyObject *exc, *val, *tb;
2549 PyErr_Fetch(&exc, &val, &tb);
2550 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 7th argument `x' of full_profile_profile.lmpar to C/Fortran array" );
2551 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2552 } else {
2553 x = (float *)(PyArray_DATA(capi_x_tmp));
2554
2555 /* Processing variable sdiag */
2556 sdiag_Dims[0]=n;
2557 capi_sdiag_intent |= F2PY_INTENT_IN;
2558 capi_sdiag_tmp = array_from_pyobj(NPY_FLOAT,sdiag_Dims,sdiag_Rank,capi_sdiag_intent,sdiag_capi);
2559 if (capi_sdiag_tmp == NULL) {
2560 PyObject *exc, *val, *tb;
2561 PyErr_Fetch(&exc, &val, &tb);
2562 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 8th argument `sdiag' of full_profile_profile.lmpar to C/Fortran array" );
2563 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2564 } else {
2565 sdiag = (float *)(PyArray_DATA(capi_sdiag_tmp));
2566
2567 /* Processing variable wa1 */
2568 wa1_Dims[0]=n;
2569 capi_wa1_intent |= F2PY_INTENT_IN;
2570 capi_wa1_tmp = array_from_pyobj(NPY_FLOAT,wa1_Dims,wa1_Rank,capi_wa1_intent,wa1_capi);
2571 if (capi_wa1_tmp == NULL) {
2572 PyObject *exc, *val, *tb;
2573 PyErr_Fetch(&exc, &val, &tb);
2574 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 9th argument `wa1' of full_profile_profile.lmpar to C/Fortran array" );
2575 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2576 } else {
2577 wa1 = (float *)(PyArray_DATA(capi_wa1_tmp));
2578
2579 /* Processing variable wa2 */
2580 wa2_Dims[0]=n;
2581 capi_wa2_intent |= F2PY_INTENT_IN;
2582 capi_wa2_tmp = array_from_pyobj(NPY_FLOAT,wa2_Dims,wa2_Rank,capi_wa2_intent,wa2_capi);
2583 if (capi_wa2_tmp == NULL) {
2584 PyObject *exc, *val, *tb;
2585 PyErr_Fetch(&exc, &val, &tb);
2586 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 10th argument `wa2' of full_profile_profile.lmpar to C/Fortran array" );
2587 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2588 } else {
2589 wa2 = (float *)(PyArray_DATA(capi_wa2_tmp));
2590
2591 /*end of frompyobj*/
2592 #ifdef F2PY_REPORT_ATEXIT
2593 f2py_start_call_clock();
2594 #endif
2595 /*callfortranroutine*/
2596 (*f2py_func)(&n,r,&ldr,ipvt,diag,qtb,&delta,&par,x,sdiag,wa1,wa2);
2597 if (PyErr_Occurred())
2598 f2py_success = 0;
2599 #ifdef F2PY_REPORT_ATEXIT
2600 f2py_stop_call_clock();
2601 #endif
2602 /*end of callfortranroutine*/
2603 if (f2py_success) {
2604 /*pyobjfrom*/
2605 /*end of pyobjfrom*/
2606 CFUNCSMESS("Building return value.\n");
2607 capi_buildvalue = Py_BuildValue("");
2608 /*closepyobjfrom*/
2609 /*end of closepyobjfrom*/
2610 } /*if (f2py_success) after callfortranroutine*/
2611 /*cleanupfrompyobj*/
2612 if((PyObject *)capi_wa2_tmp!=wa2_capi) {
2613 Py_XDECREF(capi_wa2_tmp); }
2614 } /*if (capi_wa2_tmp == NULL) ... else of wa2*/
2615 /* End of cleaning variable wa2 */
2616 if((PyObject *)capi_wa1_tmp!=wa1_capi) {
2617 Py_XDECREF(capi_wa1_tmp); }
2618 } /*if (capi_wa1_tmp == NULL) ... else of wa1*/
2619 /* End of cleaning variable wa1 */
2620 if((PyObject *)capi_sdiag_tmp!=sdiag_capi) {
2621 Py_XDECREF(capi_sdiag_tmp); }
2622 } /*if (capi_sdiag_tmp == NULL) ... else of sdiag*/
2623 /* End of cleaning variable sdiag */
2624 if((PyObject *)capi_x_tmp!=x_capi) {
2625 Py_XDECREF(capi_x_tmp); }
2626 } /*if (capi_x_tmp == NULL) ... else of x*/
2627 /* End of cleaning variable x */
2628 if((PyObject *)capi_qtb_tmp!=qtb_capi) {
2629 Py_XDECREF(capi_qtb_tmp); }
2630 } /*if (capi_qtb_tmp == NULL) ... else of qtb*/
2631 /* End of cleaning variable qtb */
2632 if((PyObject *)capi_diag_tmp!=diag_capi) {
2633 Py_XDECREF(capi_diag_tmp); }
2634 } /*if (capi_diag_tmp == NULL) ... else of diag*/
2635 /* End of cleaning variable diag */
2636 if((PyObject *)capi_ipvt_tmp!=ipvt_capi) {
2637 Py_XDECREF(capi_ipvt_tmp); }
2638 } /*if (capi_ipvt_tmp == NULL) ... else of ipvt*/
2639 /* End of cleaning variable ipvt */
2640 } /*CHECKSCALAR(shape(r,0)==ldr)*/
2641 } /*if (f2py_success) of ldr*/
2642 /* End of cleaning variable ldr */
2643 } /*CHECKSCALAR(shape(r,1)==n)*/
2644 } /*if (f2py_success) of n*/
2645 /* End of cleaning variable n */
2646 } /*if (f2py_success) of par*/
2647 /* End of cleaning variable par */
2648 } /*if (f2py_success) of delta*/
2649 /* End of cleaning variable delta */
2650 if((PyObject *)capi_r_tmp!=r_capi) {
2651 Py_XDECREF(capi_r_tmp); }
2652 } /*if (capi_r_tmp == NULL) ... else of r*/
2653 /* End of cleaning variable r */
2654 /*end of cleanupfrompyobj*/
2655 if (capi_buildvalue == NULL) {
2656 /*routdebugfailure*/
2657 } else {
2658 /*routdebugleave*/
2659 }
2660 CFUNCSMESS("Freeing memory.\n");
2661 /*freemem*/
2662 #ifdef F2PY_REPORT_ATEXIT
2663 f2py_stop_clock();
2664 #endif
2665 return capi_buildvalue;
2666 }
2667 /******************************** end of lmpar ********************************/
2668
2669 /*********************************** qrfac ***********************************/
2670 static char doc_f2py_rout_full_profile_profile_qrfac[] = "\
2671 qrfac(m,a,pivot,ipvt,rdiag,acnorm,wa,[n,lda,lipvt])\n\nWrapper for ``qrfac``.\
2672 \n\nParameters\n----------\n"
2673 "m : input int\n"
2674 "a : input rank-2 array('f') with bounds (lda,n)\n"
2675 "pivot : input int\n"
2676 "ipvt : input rank-1 array('i') with bounds (lipvt)\n"
2677 "rdiag : input rank-1 array('f') with bounds (n)\n"
2678 "acnorm : input rank-1 array('f') with bounds (n)\n"
2679 "wa : input rank-1 array('f') with bounds (n)\n"
2680 "\nOther Parameters\n----------------\n"
2681 "n : input int, optional\n Default: shape(a,1)\n"
2682 "lda : input int, optional\n Default: shape(a,0)\n"
2683 "lipvt : input int, optional\n Default: len(ipvt)";
2684 /* extern void F_FUNC(qrfac,QRFAC)(int*,int*,float*,int*,int*,int*,int*,float*,float*,float*); */
2685 static PyObject *f2py_rout_full_profile_profile_qrfac(const PyObject *capi_self,
2686 PyObject *capi_args,
2687 PyObject *capi_keywds,
2688 void (*f2py_func)(int*,int*,float*,int*,int*,int*,int*,float*,float*,float*)) {
2689 PyObject * volatile capi_buildvalue = NULL;
2690 volatile int f2py_success = 1;
2691 /*decl*/
2692
2693 int m = 0;
2694 PyObject *m_capi = Py_None;
2695 int n = 0;
2696 PyObject *n_capi = Py_None;
2697 float *a = NULL;
2698 npy_intp a_Dims[2] = {-1, -1};
2699 const int a_Rank = 2;
2700 PyArrayObject *capi_a_tmp = NULL;
2701 int capi_a_intent = 0;
2702 PyObject *a_capi = Py_None;
2703 int lda = 0;
2704 PyObject *lda_capi = Py_None;
2705 int pivot = 0;
2706 PyObject *pivot_capi = Py_None;
2707 int *ipvt = NULL;
2708 npy_intp ipvt_Dims[1] = {-1};
2709 const int ipvt_Rank = 1;
2710 PyArrayObject *capi_ipvt_tmp = NULL;
2711 int capi_ipvt_intent = 0;
2712 PyObject *ipvt_capi = Py_None;
2713 int lipvt = 0;
2714 PyObject *lipvt_capi = Py_None;
2715 float *rdiag = NULL;
2716 npy_intp rdiag_Dims[1] = {-1};
2717 const int rdiag_Rank = 1;
2718 PyArrayObject *capi_rdiag_tmp = NULL;
2719 int capi_rdiag_intent = 0;
2720 PyObject *rdiag_capi = Py_None;
2721 float *acnorm = NULL;
2722 npy_intp acnorm_Dims[1] = {-1};
2723 const int acnorm_Rank = 1;
2724 PyArrayObject *capi_acnorm_tmp = NULL;
2725 int capi_acnorm_intent = 0;
2726 PyObject *acnorm_capi = Py_None;
2727 float *wa = NULL;
2728 npy_intp wa_Dims[1] = {-1};
2729 const int wa_Rank = 1;
2730 PyArrayObject *capi_wa_tmp = NULL;
2731 int capi_wa_intent = 0;
2732 PyObject *wa_capi = Py_None;
2733 static char *capi_kwlist[] = {"m","a","pivot","ipvt","rdiag","acnorm","wa","n","lda","lipvt",NULL};
2734
2735 /*routdebugenter*/
2736 #ifdef F2PY_REPORT_ATEXIT
2737 f2py_start_clock();
2738 #endif
2739 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
2740 "OOOOOOO|OOO:full_profile_profile.qrfac",\
2741 capi_kwlist,&m_capi,&a_capi,&pivot_capi,&ipvt_capi,&rdiag_capi,&acnorm_capi,&wa_capi,&n_capi,&lda_capi,&lipvt_capi))
2742 return NULL;
2743 /*frompyobj*/
2744 /* Processing variable m */
2745 f2py_success = int_from_pyobj(&m,m_capi,"full_profile_profile.qrfac() 1st argument (m) can't be converted to int");
2746 if (f2py_success) {
2747 /* Processing variable a */
2748 ;
2749 capi_a_intent |= F2PY_INTENT_IN;
2750 capi_a_tmp = array_from_pyobj(NPY_FLOAT,a_Dims,a_Rank,capi_a_intent,a_capi);
2751 if (capi_a_tmp == NULL) {
2752 PyObject *exc, *val, *tb;
2753 PyErr_Fetch(&exc, &val, &tb);
2754 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `a' of full_profile_profile.qrfac to C/Fortran array" );
2755 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2756 } else {
2757 a = (float *)(PyArray_DATA(capi_a_tmp));
2758
2759 /* Processing variable pivot */
2760 pivot = (int)PyObject_IsTrue(pivot_capi);
2761 f2py_success = 1;
2762 if (f2py_success) {
2763 /* Processing variable ipvt */
2764 ;
2765 capi_ipvt_intent |= F2PY_INTENT_IN;
2766 capi_ipvt_tmp = array_from_pyobj(NPY_INT,ipvt_Dims,ipvt_Rank,capi_ipvt_intent,ipvt_capi);
2767 if (capi_ipvt_tmp == NULL) {
2768 PyObject *exc, *val, *tb;
2769 PyErr_Fetch(&exc, &val, &tb);
2770 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 4th argument `ipvt' of full_profile_profile.qrfac to C/Fortran array" );
2771 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2772 } else {
2773 ipvt = (int *)(PyArray_DATA(capi_ipvt_tmp));
2774
2775 /* Processing variable n */
2776 if (n_capi == Py_None) n = shape(a,1); else
2777 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.qrfac() 1st keyword (n) can't be converted to int");
2778 if (f2py_success) {
2779 CHECKSCALAR(shape(a,1)==n,"shape(a,1)==n","1st keyword n","qrfac:n=%d",n) {
2780 /* Processing variable lda */
2781 if (lda_capi == Py_None) lda = shape(a,0); else
2782 f2py_success = int_from_pyobj(&lda,lda_capi,"full_profile_profile.qrfac() 2nd keyword (lda) can't be converted to int");
2783 if (f2py_success) {
2784 CHECKSCALAR(shape(a,0)==lda,"shape(a,0)==lda","2nd keyword lda","qrfac:lda=%d",lda) {
2785 /* Processing variable lipvt */
2786 if (lipvt_capi == Py_None) lipvt = len(ipvt); else
2787 f2py_success = int_from_pyobj(&lipvt,lipvt_capi,"full_profile_profile.qrfac() 3rd keyword (lipvt) can't be converted to int");
2788 if (f2py_success) {
2789 CHECKSCALAR(len(ipvt)>=lipvt,"len(ipvt)>=lipvt","3rd keyword lipvt","qrfac:lipvt=%d",lipvt) {
2790 /* Processing variable rdiag */
2791 rdiag_Dims[0]=n;
2792 capi_rdiag_intent |= F2PY_INTENT_IN;
2793 capi_rdiag_tmp = array_from_pyobj(NPY_FLOAT,rdiag_Dims,rdiag_Rank,capi_rdiag_intent,rdiag_capi);
2794 if (capi_rdiag_tmp == NULL) {
2795 PyObject *exc, *val, *tb;
2796 PyErr_Fetch(&exc, &val, &tb);
2797 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 5th argument `rdiag' of full_profile_profile.qrfac to C/Fortran array" );
2798 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2799 } else {
2800 rdiag = (float *)(PyArray_DATA(capi_rdiag_tmp));
2801
2802 /* Processing variable acnorm */
2803 acnorm_Dims[0]=n;
2804 capi_acnorm_intent |= F2PY_INTENT_IN;
2805 capi_acnorm_tmp = array_from_pyobj(NPY_FLOAT,acnorm_Dims,acnorm_Rank,capi_acnorm_intent,acnorm_capi);
2806 if (capi_acnorm_tmp == NULL) {
2807 PyObject *exc, *val, *tb;
2808 PyErr_Fetch(&exc, &val, &tb);
2809 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 6th argument `acnorm' of full_profile_profile.qrfac to C/Fortran array" );
2810 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2811 } else {
2812 acnorm = (float *)(PyArray_DATA(capi_acnorm_tmp));
2813
2814 /* Processing variable wa */
2815 wa_Dims[0]=n;
2816 capi_wa_intent |= F2PY_INTENT_IN;
2817 capi_wa_tmp = array_from_pyobj(NPY_FLOAT,wa_Dims,wa_Rank,capi_wa_intent,wa_capi);
2818 if (capi_wa_tmp == NULL) {
2819 PyObject *exc, *val, *tb;
2820 PyErr_Fetch(&exc, &val, &tb);
2821 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 7th argument `wa' of full_profile_profile.qrfac to C/Fortran array" );
2822 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2823 } else {
2824 wa = (float *)(PyArray_DATA(capi_wa_tmp));
2825
2826 /*end of frompyobj*/
2827 #ifdef F2PY_REPORT_ATEXIT
2828 f2py_start_call_clock();
2829 #endif
2830 /*callfortranroutine*/
2831 (*f2py_func)(&m,&n,a,&lda,&pivot,ipvt,&lipvt,rdiag,acnorm,wa);
2832 if (PyErr_Occurred())
2833 f2py_success = 0;
2834 #ifdef F2PY_REPORT_ATEXIT
2835 f2py_stop_call_clock();
2836 #endif
2837 /*end of callfortranroutine*/
2838 if (f2py_success) {
2839 /*pyobjfrom*/
2840 /*end of pyobjfrom*/
2841 CFUNCSMESS("Building return value.\n");
2842 capi_buildvalue = Py_BuildValue("");
2843 /*closepyobjfrom*/
2844 /*end of closepyobjfrom*/
2845 } /*if (f2py_success) after callfortranroutine*/
2846 /*cleanupfrompyobj*/
2847 if((PyObject *)capi_wa_tmp!=wa_capi) {
2848 Py_XDECREF(capi_wa_tmp); }
2849 } /*if (capi_wa_tmp == NULL) ... else of wa*/
2850 /* End of cleaning variable wa */
2851 if((PyObject *)capi_acnorm_tmp!=acnorm_capi) {
2852 Py_XDECREF(capi_acnorm_tmp); }
2853 } /*if (capi_acnorm_tmp == NULL) ... else of acnorm*/
2854 /* End of cleaning variable acnorm */
2855 if((PyObject *)capi_rdiag_tmp!=rdiag_capi) {
2856 Py_XDECREF(capi_rdiag_tmp); }
2857 } /*if (capi_rdiag_tmp == NULL) ... else of rdiag*/
2858 /* End of cleaning variable rdiag */
2859 } /*CHECKSCALAR(len(ipvt)>=lipvt)*/
2860 } /*if (f2py_success) of lipvt*/
2861 /* End of cleaning variable lipvt */
2862 } /*CHECKSCALAR(shape(a,0)==lda)*/
2863 } /*if (f2py_success) of lda*/
2864 /* End of cleaning variable lda */
2865 } /*CHECKSCALAR(shape(a,1)==n)*/
2866 } /*if (f2py_success) of n*/
2867 /* End of cleaning variable n */
2868 if((PyObject *)capi_ipvt_tmp!=ipvt_capi) {
2869 Py_XDECREF(capi_ipvt_tmp); }
2870 } /*if (capi_ipvt_tmp == NULL) ... else of ipvt*/
2871 /* End of cleaning variable ipvt */
2872 } /*if (f2py_success) of pivot*/
2873 /* End of cleaning variable pivot */
2874 if((PyObject *)capi_a_tmp!=a_capi) {
2875 Py_XDECREF(capi_a_tmp); }
2876 } /*if (capi_a_tmp == NULL) ... else of a*/
2877 /* End of cleaning variable a */
2878 } /*if (f2py_success) of m*/
2879 /* End of cleaning variable m */
2880 /*end of cleanupfrompyobj*/
2881 if (capi_buildvalue == NULL) {
2882 /*routdebugfailure*/
2883 } else {
2884 /*routdebugleave*/
2885 }
2886 CFUNCSMESS("Freeing memory.\n");
2887 /*freemem*/
2888 #ifdef F2PY_REPORT_ATEXIT
2889 f2py_stop_clock();
2890 #endif
2891 return capi_buildvalue;
2892 }
2893 /******************************** end of qrfac ********************************/
2894
2895 /*********************************** qrsolv ***********************************/
2896 static char doc_f2py_rout_full_profile_profile_qrsolv[] = "\
2897 qrsolv(r,ipvt,diag,qtb,x,sdiag,wa,[n,ldr])\n\nWrapper for ``qrsolv``.\
2898 \n\nParameters\n----------\n"
2899 "r : input rank-2 array('f') with bounds (ldr,n)\n"
2900 "ipvt : input rank-1 array('i') with bounds (n)\n"
2901 "diag : input rank-1 array('f') with bounds (n)\n"
2902 "qtb : input rank-1 array('f') with bounds (n)\n"
2903 "x : input rank-1 array('f') with bounds (n)\n"
2904 "sdiag : input rank-1 array('f') with bounds (n)\n"
2905 "wa : input rank-1 array('f') with bounds (n)\n"
2906 "\nOther Parameters\n----------------\n"
2907 "n : input int, optional\n Default: shape(r,1)\n"
2908 "ldr : input int, optional\n Default: shape(r,0)";
2909 /* extern void F_FUNC(qrsolv,QRSOLV)(int*,float*,int*,int*,float*,float*,float*,float*,float*); */
2910 static PyObject *f2py_rout_full_profile_profile_qrsolv(const PyObject *capi_self,
2911 PyObject *capi_args,
2912 PyObject *capi_keywds,
2913 void (*f2py_func)(int*,float*,int*,int*,float*,float*,float*,float*,float*)) {
2914 PyObject * volatile capi_buildvalue = NULL;
2915 volatile int f2py_success = 1;
2916 /*decl*/
2917
2918 int n = 0;
2919 PyObject *n_capi = Py_None;
2920 float *r = NULL;
2921 npy_intp r_Dims[2] = {-1, -1};
2922 const int r_Rank = 2;
2923 PyArrayObject *capi_r_tmp = NULL;
2924 int capi_r_intent = 0;
2925 PyObject *r_capi = Py_None;
2926 int ldr = 0;
2927 PyObject *ldr_capi = Py_None;
2928 int *ipvt = NULL;
2929 npy_intp ipvt_Dims[1] = {-1};
2930 const int ipvt_Rank = 1;
2931 PyArrayObject *capi_ipvt_tmp = NULL;
2932 int capi_ipvt_intent = 0;
2933 PyObject *ipvt_capi = Py_None;
2934 float *diag = NULL;
2935 npy_intp diag_Dims[1] = {-1};
2936 const int diag_Rank = 1;
2937 PyArrayObject *capi_diag_tmp = NULL;
2938 int capi_diag_intent = 0;
2939 PyObject *diag_capi = Py_None;
2940 float *qtb = NULL;
2941 npy_intp qtb_Dims[1] = {-1};
2942 const int qtb_Rank = 1;
2943 PyArrayObject *capi_qtb_tmp = NULL;
2944 int capi_qtb_intent = 0;
2945 PyObject *qtb_capi = Py_None;
2946 float *x = NULL;
2947 npy_intp x_Dims[1] = {-1};
2948 const int x_Rank = 1;
2949 PyArrayObject *capi_x_tmp = NULL;
2950 int capi_x_intent = 0;
2951 PyObject *x_capi = Py_None;
2952 float *sdiag = NULL;
2953 npy_intp sdiag_Dims[1] = {-1};
2954 const int sdiag_Rank = 1;
2955 PyArrayObject *capi_sdiag_tmp = NULL;
2956 int capi_sdiag_intent = 0;
2957 PyObject *sdiag_capi = Py_None;
2958 float *wa = NULL;
2959 npy_intp wa_Dims[1] = {-1};
2960 const int wa_Rank = 1;
2961 PyArrayObject *capi_wa_tmp = NULL;
2962 int capi_wa_intent = 0;
2963 PyObject *wa_capi = Py_None;
2964 static char *capi_kwlist[] = {"r","ipvt","diag","qtb","x","sdiag","wa","n","ldr",NULL};
2965
2966 /*routdebugenter*/
2967 #ifdef F2PY_REPORT_ATEXIT
2968 f2py_start_clock();
2969 #endif
2970 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
2971 "OOOOOOO|OO:full_profile_profile.qrsolv",\
2972 capi_kwlist,&r_capi,&ipvt_capi,&diag_capi,&qtb_capi,&x_capi,&sdiag_capi,&wa_capi,&n_capi,&ldr_capi))
2973 return NULL;
2974 /*frompyobj*/
2975 /* Processing variable r */
2976 ;
2977 capi_r_intent |= F2PY_INTENT_IN;
2978 capi_r_tmp = array_from_pyobj(NPY_FLOAT,r_Dims,r_Rank,capi_r_intent,r_capi);
2979 if (capi_r_tmp == NULL) {
2980 PyObject *exc, *val, *tb;
2981 PyErr_Fetch(&exc, &val, &tb);
2982 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `r' of full_profile_profile.qrsolv to C/Fortran array" );
2983 npy_PyErr_ChainExceptionsCause(exc, val, tb);
2984 } else {
2985 r = (float *)(PyArray_DATA(capi_r_tmp));
2986
2987 /* Processing variable n */
2988 if (n_capi == Py_None) n = shape(r,1); else
2989 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.qrsolv() 1st keyword (n) can't be converted to int");
2990 if (f2py_success) {
2991 CHECKSCALAR(shape(r,1)==n,"shape(r,1)==n","1st keyword n","qrsolv:n=%d",n) {
2992 /* Processing variable ldr */
2993 if (ldr_capi == Py_None) ldr = shape(r,0); else
2994 f2py_success = int_from_pyobj(&ldr,ldr_capi,"full_profile_profile.qrsolv() 2nd keyword (ldr) can't be converted to int");
2995 if (f2py_success) {
2996 CHECKSCALAR(shape(r,0)==ldr,"shape(r,0)==ldr","2nd keyword ldr","qrsolv:ldr=%d",ldr) {
2997 /* Processing variable ipvt */
2998 ipvt_Dims[0]=n;
2999 capi_ipvt_intent |= F2PY_INTENT_IN;
3000 capi_ipvt_tmp = array_from_pyobj(NPY_INT,ipvt_Dims,ipvt_Rank,capi_ipvt_intent,ipvt_capi);
3001 if (capi_ipvt_tmp == NULL) {
3002 PyObject *exc, *val, *tb;
3003 PyErr_Fetch(&exc, &val, &tb);
3004 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `ipvt' of full_profile_profile.qrsolv to C/Fortran array" );
3005 npy_PyErr_ChainExceptionsCause(exc, val, tb);
3006 } else {
3007 ipvt = (int *)(PyArray_DATA(capi_ipvt_tmp));
3008
3009 /* Processing variable diag */
3010 diag_Dims[0]=n;
3011 capi_diag_intent |= F2PY_INTENT_IN;
3012 capi_diag_tmp = array_from_pyobj(NPY_FLOAT,diag_Dims,diag_Rank,capi_diag_intent,diag_capi);
3013 if (capi_diag_tmp == NULL) {
3014 PyObject *exc, *val, *tb;
3015 PyErr_Fetch(&exc, &val, &tb);
3016 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 3rd argument `diag' of full_profile_profile.qrsolv to C/Fortran array" );
3017 npy_PyErr_ChainExceptionsCause(exc, val, tb);
3018 } else {
3019 diag = (float *)(PyArray_DATA(capi_diag_tmp));
3020
3021 /* Processing variable qtb */
3022 qtb_Dims[0]=n;
3023 capi_qtb_intent |= F2PY_INTENT_IN;
3024 capi_qtb_tmp = array_from_pyobj(NPY_FLOAT,qtb_Dims,qtb_Rank,capi_qtb_intent,qtb_capi);
3025 if (capi_qtb_tmp == NULL) {
3026 PyObject *exc, *val, *tb;
3027 PyErr_Fetch(&exc, &val, &tb);
3028 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 4th argument `qtb' of full_profile_profile.qrsolv to C/Fortran array" );
3029 npy_PyErr_ChainExceptionsCause(exc, val, tb);
3030 } else {
3031 qtb = (float *)(PyArray_DATA(capi_qtb_tmp));
3032
3033 /* Processing variable x */
3034 x_Dims[0]=n;
3035 capi_x_intent |= F2PY_INTENT_IN;
3036 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
3037 if (capi_x_tmp == NULL) {
3038 PyObject *exc, *val, *tb;
3039 PyErr_Fetch(&exc, &val, &tb);
3040 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 5th argument `x' of full_profile_profile.qrsolv to C/Fortran array" );
3041 npy_PyErr_ChainExceptionsCause(exc, val, tb);
3042 } else {
3043 x = (float *)(PyArray_DATA(capi_x_tmp));
3044
3045 /* Processing variable sdiag */
3046 sdiag_Dims[0]=n;
3047 capi_sdiag_intent |= F2PY_INTENT_IN;
3048 capi_sdiag_tmp = array_from_pyobj(NPY_FLOAT,sdiag_Dims,sdiag_Rank,capi_sdiag_intent,sdiag_capi);
3049 if (capi_sdiag_tmp == NULL) {
3050 PyObject *exc, *val, *tb;
3051 PyErr_Fetch(&exc, &val, &tb);
3052 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 6th argument `sdiag' of full_profile_profile.qrsolv to C/Fortran array" );
3053 npy_PyErr_ChainExceptionsCause(exc, val, tb);
3054 } else {
3055 sdiag = (float *)(PyArray_DATA(capi_sdiag_tmp));
3056
3057 /* Processing variable wa */
3058 wa_Dims[0]=n;
3059 capi_wa_intent |= F2PY_INTENT_IN;
3060 capi_wa_tmp = array_from_pyobj(NPY_FLOAT,wa_Dims,wa_Rank,capi_wa_intent,wa_capi);
3061 if (capi_wa_tmp == NULL) {
3062 PyObject *exc, *val, *tb;
3063 PyErr_Fetch(&exc, &val, &tb);
3064 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 7th argument `wa' of full_profile_profile.qrsolv to C/Fortran array" );
3065 npy_PyErr_ChainExceptionsCause(exc, val, tb);
3066 } else {
3067 wa = (float *)(PyArray_DATA(capi_wa_tmp));
3068
3069 /*end of frompyobj*/
3070 #ifdef F2PY_REPORT_ATEXIT
3071 f2py_start_call_clock();
3072 #endif
3073 /*callfortranroutine*/
3074 (*f2py_func)(&n,r,&ldr,ipvt,diag,qtb,x,sdiag,wa);
3075 if (PyErr_Occurred())
3076 f2py_success = 0;
3077 #ifdef F2PY_REPORT_ATEXIT
3078 f2py_stop_call_clock();
3079 #endif
3080 /*end of callfortranroutine*/
3081 if (f2py_success) {
3082 /*pyobjfrom*/
3083 /*end of pyobjfrom*/
3084 CFUNCSMESS("Building return value.\n");
3085 capi_buildvalue = Py_BuildValue("");
3086 /*closepyobjfrom*/
3087 /*end of closepyobjfrom*/
3088 } /*if (f2py_success) after callfortranroutine*/
3089 /*cleanupfrompyobj*/
3090 if((PyObject *)capi_wa_tmp!=wa_capi) {
3091 Py_XDECREF(capi_wa_tmp); }
3092 } /*if (capi_wa_tmp == NULL) ... else of wa*/
3093 /* End of cleaning variable wa */
3094 if((PyObject *)capi_sdiag_tmp!=sdiag_capi) {
3095 Py_XDECREF(capi_sdiag_tmp); }
3096 } /*if (capi_sdiag_tmp == NULL) ... else of sdiag*/
3097 /* End of cleaning variable sdiag */
3098 if((PyObject *)capi_x_tmp!=x_capi) {
3099 Py_XDECREF(capi_x_tmp); }
3100 } /*if (capi_x_tmp == NULL) ... else of x*/
3101 /* End of cleaning variable x */
3102 if((PyObject *)capi_qtb_tmp!=qtb_capi) {
3103 Py_XDECREF(capi_qtb_tmp); }
3104 } /*if (capi_qtb_tmp == NULL) ... else of qtb*/
3105 /* End of cleaning variable qtb */
3106 if((PyObject *)capi_diag_tmp!=diag_capi) {
3107 Py_XDECREF(capi_diag_tmp); }
3108 } /*if (capi_diag_tmp == NULL) ... else of diag*/
3109 /* End of cleaning variable diag */
3110 if((PyObject *)capi_ipvt_tmp!=ipvt_capi) {
3111 Py_XDECREF(capi_ipvt_tmp); }
3112 } /*if (capi_ipvt_tmp == NULL) ... else of ipvt*/
3113 /* End of cleaning variable ipvt */
3114 } /*CHECKSCALAR(shape(r,0)==ldr)*/
3115 } /*if (f2py_success) of ldr*/
3116 /* End of cleaning variable ldr */
3117 } /*CHECKSCALAR(shape(r,1)==n)*/
3118 } /*if (f2py_success) of n*/
3119 /* End of cleaning variable n */
3120 if((PyObject *)capi_r_tmp!=r_capi) {
3121 Py_XDECREF(capi_r_tmp); }
3122 } /*if (capi_r_tmp == NULL) ... else of r*/
3123 /* End of cleaning variable r */
3124 /*end of cleanupfrompyobj*/
3125 if (capi_buildvalue == NULL) {
3126 /*routdebugfailure*/
3127 } else {
3128 /*routdebugleave*/
3129 }
3130 CFUNCSMESS("Freeing memory.\n");
3131 /*freemem*/
3132 #ifdef F2PY_REPORT_ATEXIT
3133 f2py_stop_clock();
3134 #endif
3135 return capi_buildvalue;
3136 }
3137 /******************************* end of qrsolv *******************************/
3138
3139 /*********************************** spmpar ***********************************/
3140 static char doc_f2py_rout_full_profile_profile_spmpar[] = "\
3141 spmpar = spmpar(i)\n\nWrapper for ``spmpar``.\
3142 \n\nParameters\n----------\n"
3143 "i : input int\n"
3144 "\nReturns\n-------\n"
3145 "spmpar : float";
3146 /* extern void F_WRAPPEDFUNC(spmpar,SPMPAR)(float*,int*); */
3147 static PyObject *f2py_rout_full_profile_profile_spmpar(const PyObject *capi_self,
3148 PyObject *capi_args,
3149 PyObject *capi_keywds,
3150 void (*f2py_func)(float*,int*)) {
3151 PyObject * volatile capi_buildvalue = NULL;
3152 volatile int f2py_success = 1;
3153 /*decl*/
3154
3155 float spmpar = 0;
3156 int i = 0;
3157 PyObject *i_capi = Py_None;
3158 static char *capi_kwlist[] = {"i",NULL};
3159
3160 /*routdebugenter*/
3161 #ifdef F2PY_REPORT_ATEXIT
3162 f2py_start_clock();
3163 #endif
3164 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3165 "O|:full_profile_profile.spmpar",\
3166 capi_kwlist,&i_capi))
3167 return NULL;
3168 /*frompyobj*/
3169 /* Processing variable i */
3170 f2py_success = int_from_pyobj(&i,i_capi,"full_profile_profile.spmpar() 1st argument (i) can't be converted to int");
3171 if (f2py_success) {
3172 /* Processing variable spmpar */
3173 /*end of frompyobj*/
3174 #ifdef F2PY_REPORT_ATEXIT
3175 f2py_start_call_clock();
3176 #endif
3177 /*callfortranroutine*/
3178 (*f2py_func)(&spmpar,&i);
3179 if (PyErr_Occurred())
3180 f2py_success = 0;
3181 #ifdef F2PY_REPORT_ATEXIT
3182 f2py_stop_call_clock();
3183 #endif
3184 /*end of callfortranroutine*/
3185 if (f2py_success) {
3186 /*pyobjfrom*/
3187 /*end of pyobjfrom*/
3188 CFUNCSMESS("Building return value.\n");
3189 capi_buildvalue = Py_BuildValue("f",spmpar);
3190 /*closepyobjfrom*/
3191 /*end of closepyobjfrom*/
3192 } /*if (f2py_success) after callfortranroutine*/
3193 /*cleanupfrompyobj*/
3194 /* End of cleaning variable spmpar */
3195 } /*if (f2py_success) of i*/
3196 /* End of cleaning variable i */
3197 /*end of cleanupfrompyobj*/
3198 if (capi_buildvalue == NULL) {
3199 /*routdebugfailure*/
3200 } else {
3201 /*routdebugleave*/
3202 }
3203 CFUNCSMESS("Freeing memory.\n");
3204 /*freemem*/
3205 #ifdef F2PY_REPORT_ATEXIT
3206 f2py_stop_clock();
3207 #endif
3208 return capi_buildvalue;
3209 }
3210 /******************************* end of spmpar *******************************/
3211
3212 /*********************************** cdtr1 ***********************************/
3213 static char doc_f2py_rout_full_profile_profile_cdtr1[] = "\
3214 cdtr1 = cdtr1(depth)\n\nWrapper for ``cdtr1``.\
3215 \n\nParameters\n----------\n"
3216 "depth : input float\n"
3217 "\nReturns\n-------\n"
3218 "cdtr1 : float";
3219 /* extern void F_WRAPPEDFUNC(cdtr1,CDTR1)(float*,float*); */
3220 static PyObject *f2py_rout_full_profile_profile_cdtr1(const PyObject *capi_self,
3221 PyObject *capi_args,
3222 PyObject *capi_keywds,
3223 void (*f2py_func)(float*,float*)) {
3224 PyObject * volatile capi_buildvalue = NULL;
3225 volatile int f2py_success = 1;
3226 /*decl*/
3227
3228 float cdtr1 = 0;
3229 float depth = 0;
3230 PyObject *depth_capi = Py_None;
3231 static char *capi_kwlist[] = {"depth",NULL};
3232
3233 /*routdebugenter*/
3234 #ifdef F2PY_REPORT_ATEXIT
3235 f2py_start_clock();
3236 #endif
3237 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3238 "O|:full_profile_profile.cdtr1",\
3239 capi_kwlist,&depth_capi))
3240 return NULL;
3241 /*frompyobj*/
3242 /* Processing variable depth */
3243 f2py_success = float_from_pyobj(&depth,depth_capi,"full_profile_profile.cdtr1() 1st argument (depth) can't be converted to float");
3244 if (f2py_success) {
3245 /* Processing variable cdtr1 */
3246 /*end of frompyobj*/
3247 #ifdef F2PY_REPORT_ATEXIT
3248 f2py_start_call_clock();
3249 #endif
3250 /*callfortranroutine*/
3251 (*f2py_func)(&cdtr1,&depth);
3252 if (PyErr_Occurred())
3253 f2py_success = 0;
3254 #ifdef F2PY_REPORT_ATEXIT
3255 f2py_stop_call_clock();
3256 #endif
3257 /*end of callfortranroutine*/
3258 if (f2py_success) {
3259 /*pyobjfrom*/
3260 /*end of pyobjfrom*/
3261 CFUNCSMESS("Building return value.\n");
3262 capi_buildvalue = Py_BuildValue("f",cdtr1);
3263 /*closepyobjfrom*/
3264 /*end of closepyobjfrom*/
3265 } /*if (f2py_success) after callfortranroutine*/
3266 /*cleanupfrompyobj*/
3267 /* End of cleaning variable cdtr1 */
3268 } /*if (f2py_success) of depth*/
3269 /* End of cleaning variable depth */
3270 /*end of cleanupfrompyobj*/
3271 if (capi_buildvalue == NULL) {
3272 /*routdebugfailure*/
3273 } else {
3274 /*routdebugleave*/
3275 }
3276 CFUNCSMESS("Freeing memory.\n");
3277 /*freemem*/
3278 #ifdef F2PY_REPORT_ATEXIT
3279 f2py_stop_clock();
3280 #endif
3281 return capi_buildvalue;
3282 }
3283 /******************************** end of cdtr1 ********************************/
3284
3285 /*********************************** czte1 ***********************************/
3286 static char doc_f2py_rout_full_profile_profile_czte1[] = "\
3287 czte1 = czte1(zlag,tr)\n\nWrapper for ``czte1``.\
3288 \n\nParameters\n----------\n"
3289 "zlag : input float\n"
3290 "tr : input float\n"
3291 "\nReturns\n-------\n"
3292 "czte1 : float";
3293 /* extern void F_WRAPPEDFUNC(czte1,CZTE1)(float*,float*,float*); */
3294 static PyObject *f2py_rout_full_profile_profile_czte1(const PyObject *capi_self,
3295 PyObject *capi_args,
3296 PyObject *capi_keywds,
3297 void (*f2py_func)(float*,float*,float*)) {
3298 PyObject * volatile capi_buildvalue = NULL;
3299 volatile int f2py_success = 1;
3300 /*decl*/
3301
3302 float czte1 = 0;
3303 float zlag = 0;
3304 PyObject *zlag_capi = Py_None;
3305 float tr = 0;
3306 PyObject *tr_capi = Py_None;
3307 static char *capi_kwlist[] = {"zlag","tr",NULL};
3308
3309 /*routdebugenter*/
3310 #ifdef F2PY_REPORT_ATEXIT
3311 f2py_start_clock();
3312 #endif
3313 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3314 "OO|:full_profile_profile.czte1",\
3315 capi_kwlist,&zlag_capi,&tr_capi))
3316 return NULL;
3317 /*frompyobj*/
3318 /* Processing variable zlag */
3319 f2py_success = float_from_pyobj(&zlag,zlag_capi,"full_profile_profile.czte1() 1st argument (zlag) can't be converted to float");
3320 if (f2py_success) {
3321 /* Processing variable tr */
3322 f2py_success = float_from_pyobj(&tr,tr_capi,"full_profile_profile.czte1() 2nd argument (tr) can't be converted to float");
3323 if (f2py_success) {
3324 /* Processing variable czte1 */
3325 /*end of frompyobj*/
3326 #ifdef F2PY_REPORT_ATEXIT
3327 f2py_start_call_clock();
3328 #endif
3329 /*callfortranroutine*/
3330 (*f2py_func)(&czte1,&zlag,&tr);
3331 if (PyErr_Occurred())
3332 f2py_success = 0;
3333 #ifdef F2PY_REPORT_ATEXIT
3334 f2py_stop_call_clock();
3335 #endif
3336 /*end of callfortranroutine*/
3337 if (f2py_success) {
3338 /*pyobjfrom*/
3339 /*end of pyobjfrom*/
3340 CFUNCSMESS("Building return value.\n");
3341 capi_buildvalue = Py_BuildValue("f",czte1);
3342 /*closepyobjfrom*/
3343 /*end of closepyobjfrom*/
3344 } /*if (f2py_success) after callfortranroutine*/
3345 /*cleanupfrompyobj*/
3346 /* End of cleaning variable czte1 */
3347 } /*if (f2py_success) of tr*/
3348 /* End of cleaning variable tr */
3349 } /*if (f2py_success) of zlag*/
3350 /* End of cleaning variable zlag */
3351 /*end of cleanupfrompyobj*/
3352 if (capi_buildvalue == NULL) {
3353 /*routdebugfailure*/
3354 } else {
3355 /*routdebugleave*/
3356 }
3357 CFUNCSMESS("Freeing memory.\n");
3358 /*freemem*/
3359 #ifdef F2PY_REPORT_ATEXIT
3360 f2py_stop_clock();
3361 #endif
3362 return capi_buildvalue;
3363 }
3364 /******************************** end of czte1 ********************************/
3365
3366 /************************************ fcn ************************************/
3367 static char doc_f2py_rout_full_profile_profile_fcn[] = "\
3368 fcn(x,fvec,iflag,[m,n])\n\nWrapper for ``fcn``.\
3369 \n\nParameters\n----------\n"
3370 "x : input rank-1 array('f') with bounds (n)\n"
3371 "fvec : input rank-1 array('f') with bounds (m)\n"
3372 "iflag : input int\n"
3373 "\nOther Parameters\n----------------\n"
3374 "m : input int, optional\n Default: len(fvec)\n"
3375 "n : input int, optional\n Default: len(x)";
3376 /* extern void F_FUNC(fcn,FCN)(int*,int*,float*,float*,int*); */
3377 static PyObject *f2py_rout_full_profile_profile_fcn(const PyObject *capi_self,
3378 PyObject *capi_args,
3379 PyObject *capi_keywds,
3380 void (*f2py_func)(int*,int*,float*,float*,int*)) {
3381 PyObject * volatile capi_buildvalue = NULL;
3382 volatile int f2py_success = 1;
3383 /*decl*/
3384
3385 int m = 0;
3386 PyObject *m_capi = Py_None;
3387 int n = 0;
3388 PyObject *n_capi = Py_None;
3389 float *x = NULL;
3390 npy_intp x_Dims[1] = {-1};
3391 const int x_Rank = 1;
3392 PyArrayObject *capi_x_tmp = NULL;
3393 int capi_x_intent = 0;
3394 PyObject *x_capi = Py_None;
3395 float *fvec = NULL;
3396 npy_intp fvec_Dims[1] = {-1};
3397 const int fvec_Rank = 1;
3398 PyArrayObject *capi_fvec_tmp = NULL;
3399 int capi_fvec_intent = 0;
3400 PyObject *fvec_capi = Py_None;
3401 int iflag = 0;
3402 PyObject *iflag_capi = Py_None;
3403 static char *capi_kwlist[] = {"x","fvec","iflag","m","n",NULL};
3404
3405 /*routdebugenter*/
3406 #ifdef F2PY_REPORT_ATEXIT
3407 f2py_start_clock();
3408 #endif
3409 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3410 "OOO|OO:full_profile_profile.fcn",\
3411 capi_kwlist,&x_capi,&fvec_capi,&iflag_capi,&m_capi,&n_capi))
3412 return NULL;
3413 /*frompyobj*/
3414 /* Processing variable x */
3415 ;
3416 capi_x_intent |= F2PY_INTENT_IN;
3417 capi_x_tmp = array_from_pyobj(NPY_FLOAT,x_Dims,x_Rank,capi_x_intent,x_capi);
3418 if (capi_x_tmp == NULL) {
3419 PyObject *exc, *val, *tb;
3420 PyErr_Fetch(&exc, &val, &tb);
3421 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `x' of full_profile_profile.fcn to C/Fortran array" );
3422 npy_PyErr_ChainExceptionsCause(exc, val, tb);
3423 } else {
3424 x = (float *)(PyArray_DATA(capi_x_tmp));
3425
3426 /* Processing variable fvec */
3427 ;
3428 capi_fvec_intent |= F2PY_INTENT_IN;
3429 capi_fvec_tmp = array_from_pyobj(NPY_FLOAT,fvec_Dims,fvec_Rank,capi_fvec_intent,fvec_capi);
3430 if (capi_fvec_tmp == NULL) {
3431 PyObject *exc, *val, *tb;
3432 PyErr_Fetch(&exc, &val, &tb);
3433 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `fvec' of full_profile_profile.fcn to C/Fortran array" );
3434 npy_PyErr_ChainExceptionsCause(exc, val, tb);
3435 } else {
3436 fvec = (float *)(PyArray_DATA(capi_fvec_tmp));
3437
3438 /* Processing variable iflag */
3439 f2py_success = int_from_pyobj(&iflag,iflag_capi,"full_profile_profile.fcn() 3rd argument (iflag) can't be converted to int");
3440 if (f2py_success) {
3441 /* Processing variable m */
3442 if (m_capi == Py_None) m = len(fvec); else
3443 f2py_success = int_from_pyobj(&m,m_capi,"full_profile_profile.fcn() 1st keyword (m) can't be converted to int");
3444 if (f2py_success) {
3445 CHECKSCALAR(len(fvec)>=m,"len(fvec)>=m","1st keyword m","fcn:m=%d",m) {
3446 /* Processing variable n */
3447 if (n_capi == Py_None) n = len(x); else
3448 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.fcn() 2nd keyword (n) can't be converted to int");
3449 if (f2py_success) {
3450 CHECKSCALAR(len(x)>=n,"len(x)>=n","2nd keyword n","fcn:n=%d",n) {
3451 /*end of frompyobj*/
3452 #ifdef F2PY_REPORT_ATEXIT
3453 f2py_start_call_clock();
3454 #endif
3455 /*callfortranroutine*/
3456 (*f2py_func)(&m,&n,x,fvec,&iflag);
3457 if (PyErr_Occurred())
3458 f2py_success = 0;
3459 #ifdef F2PY_REPORT_ATEXIT
3460 f2py_stop_call_clock();
3461 #endif
3462 /*end of callfortranroutine*/
3463 if (f2py_success) {
3464 /*pyobjfrom*/
3465 /*end of pyobjfrom*/
3466 CFUNCSMESS("Building return value.\n");
3467 capi_buildvalue = Py_BuildValue("");
3468 /*closepyobjfrom*/
3469 /*end of closepyobjfrom*/
3470 } /*if (f2py_success) after callfortranroutine*/
3471 /*cleanupfrompyobj*/
3472 } /*CHECKSCALAR(len(x)>=n)*/
3473 } /*if (f2py_success) of n*/
3474 /* End of cleaning variable n */
3475 } /*CHECKSCALAR(len(fvec)>=m)*/
3476 } /*if (f2py_success) of m*/
3477 /* End of cleaning variable m */
3478 } /*if (f2py_success) of iflag*/
3479 /* End of cleaning variable iflag */
3480 if((PyObject *)capi_fvec_tmp!=fvec_capi) {
3481 Py_XDECREF(capi_fvec_tmp); }
3482 } /*if (capi_fvec_tmp == NULL) ... else of fvec*/
3483 /* End of cleaning variable fvec */
3484 if((PyObject *)capi_x_tmp!=x_capi) {
3485 Py_XDECREF(capi_x_tmp); }
3486 } /*if (capi_x_tmp == NULL) ... else of x*/
3487 /* End of cleaning variable x */
3488 /*end of cleanupfrompyobj*/
3489 if (capi_buildvalue == NULL) {
3490 /*routdebugfailure*/
3491 } else {
3492 /*routdebugleave*/
3493 }
3494 CFUNCSMESS("Freeing memory.\n");
3495 /*freemem*/
3496 #ifdef F2PY_REPORT_ATEXIT
3497 f2py_stop_clock();
3498 #endif
3499 return capi_buildvalue;
3500 }
3501 /********************************* end of fcn *********************************/
3502
3503 /*********************************** cj_ion ***********************************/
3504 static char doc_f2py_rout_full_profile_profile_cj_ion[] = "\
3505 cj_ion = cj_ion(theta,psi)\n\nWrapper for ``cj_ion``.\
3506 \n\nParameters\n----------\n"
3507 "theta : input float\n"
3508 "psi : input float\n"
3509 "\nReturns\n-------\n"
3510 "cj_ion : complex";
3511 /* extern void F_WRAPPEDFUNC_US(cj_ion,CJ_ION)(complex_float*,float*,float*); */
3512 static PyObject *f2py_rout_full_profile_profile_cj_ion(const PyObject *capi_self,
3513 PyObject *capi_args,
3514 PyObject *capi_keywds,
3515 void (*f2py_func)(complex_float*,float*,float*)) {
3516 PyObject * volatile capi_buildvalue = NULL;
3517 volatile int f2py_success = 1;
3518 /*decl*/
3519
3520 complex_float cj_ion;
3521 PyObject *cj_ion_capi = Py_None;
3522 float theta = 0;
3523 PyObject *theta_capi = Py_None;
3524 float psi = 0;
3525 PyObject *psi_capi = Py_None;
3526 static char *capi_kwlist[] = {"theta","psi",NULL};
3527
3528 /*routdebugenter*/
3529 #ifdef F2PY_REPORT_ATEXIT
3530 f2py_start_clock();
3531 #endif
3532 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3533 "OO|:full_profile_profile.cj_ion",\
3534 capi_kwlist,&theta_capi,&psi_capi))
3535 return NULL;
3536 /*frompyobj*/
3537 /* Processing variable theta */
3538 f2py_success = float_from_pyobj(&theta,theta_capi,"full_profile_profile.cj_ion() 1st argument (theta) can't be converted to float");
3539 if (f2py_success) {
3540 /* Processing variable psi */
3541 f2py_success = float_from_pyobj(&psi,psi_capi,"full_profile_profile.cj_ion() 2nd argument (psi) can't be converted to float");
3542 if (f2py_success) {
3543 /* Processing variable cj_ion */
3544 /*end of frompyobj*/
3545 #ifdef F2PY_REPORT_ATEXIT
3546 f2py_start_call_clock();
3547 #endif
3548 /*callfortranroutine*/
3549 (*f2py_func)(&cj_ion,&theta,&psi);
3550 if (PyErr_Occurred())
3551 f2py_success = 0;
3552 #ifdef F2PY_REPORT_ATEXIT
3553 f2py_stop_call_clock();
3554 #endif
3555 /*end of callfortranroutine*/
3556 if (f2py_success) {
3557 /*pyobjfrom*/
3558 cj_ion_capi = pyobj_from_complex_float1(cj_ion);
3559 /*end of pyobjfrom*/
3560 CFUNCSMESS("Building return value.\n");
3561 capi_buildvalue = Py_BuildValue("N",cj_ion_capi);
3562 /*closepyobjfrom*/
3563 /*end of closepyobjfrom*/
3564 } /*if (f2py_success) after callfortranroutine*/
3565 /*cleanupfrompyobj*/
3566 /* End of cleaning variable cj_ion */
3567 } /*if (f2py_success) of psi*/
3568 /* End of cleaning variable psi */
3569 } /*if (f2py_success) of theta*/
3570 /* End of cleaning variable theta */
3571 /*end of cleanupfrompyobj*/
3572 if (capi_buildvalue == NULL) {
3573 /*routdebugfailure*/
3574 } else {
3575 /*routdebugleave*/
3576 }
3577 CFUNCSMESS("Freeing memory.\n");
3578 /*freemem*/
3579 #ifdef F2PY_REPORT_ATEXIT
3580 f2py_stop_clock();
3581 #endif
3582 return capi_buildvalue;
3583 }
3584 /******************************* end of cj_ion *******************************/
3585
3586 /******************************** cj_electron ********************************/
3587 static char doc_f2py_rout_full_profile_profile_cj_electron[] = "\
3588 cj_electron = cj_electron(theta,phi,psi,alpha)\n\nWrapper for ``cj_electron``.\
3589 \n\nParameters\n----------\n"
3590 "theta : input float\n"
3591 "phi : input float\n"
3592 "psi : input float\n"
3593 "alpha : input float\n"
3594 "\nReturns\n-------\n"
3595 "cj_electron : complex";
3596 /* extern void F_WRAPPEDFUNC_US(cj_electron,CJ_ELECTRON)(complex_float*,float*,float*,float*,float*); */
3597 static PyObject *f2py_rout_full_profile_profile_cj_electron(const PyObject *capi_self,
3598 PyObject *capi_args,
3599 PyObject *capi_keywds,
3600 void (*f2py_func)(complex_float*,float*,float*,float*,float*)) {
3601 PyObject * volatile capi_buildvalue = NULL;
3602 volatile int f2py_success = 1;
3603 /*decl*/
3604
3605 complex_float cj_electron;
3606 PyObject *cj_electron_capi = Py_None;
3607 float theta = 0;
3608 PyObject *theta_capi = Py_None;
3609 float phi = 0;
3610 PyObject *phi_capi = Py_None;
3611 float psi = 0;
3612 PyObject *psi_capi = Py_None;
3613 float alpha = 0;
3614 PyObject *alpha_capi = Py_None;
3615 static char *capi_kwlist[] = {"theta","phi","psi","alpha",NULL};
3616
3617 /*routdebugenter*/
3618 #ifdef F2PY_REPORT_ATEXIT
3619 f2py_start_clock();
3620 #endif
3621 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3622 "OOOO|:full_profile_profile.cj_electron",\
3623 capi_kwlist,&theta_capi,&phi_capi,&psi_capi,&alpha_capi))
3624 return NULL;
3625 /*frompyobj*/
3626 /* Processing variable theta */
3627 f2py_success = float_from_pyobj(&theta,theta_capi,"full_profile_profile.cj_electron() 1st argument (theta) can't be converted to float");
3628 if (f2py_success) {
3629 /* Processing variable phi */
3630 f2py_success = float_from_pyobj(&phi,phi_capi,"full_profile_profile.cj_electron() 2nd argument (phi) can't be converted to float");
3631 if (f2py_success) {
3632 /* Processing variable psi */
3633 f2py_success = float_from_pyobj(&psi,psi_capi,"full_profile_profile.cj_electron() 3rd argument (psi) can't be converted to float");
3634 if (f2py_success) {
3635 /* Processing variable alpha */
3636 f2py_success = float_from_pyobj(&alpha,alpha_capi,"full_profile_profile.cj_electron() 4th argument (alpha) can't be converted to float");
3637 if (f2py_success) {
3638 /* Processing variable cj_electron */
3639 /*end of frompyobj*/
3640 #ifdef F2PY_REPORT_ATEXIT
3641 f2py_start_call_clock();
3642 #endif
3643 /*callfortranroutine*/
3644 (*f2py_func)(&cj_electron,&theta,&phi,&psi,&alpha);
3645 if (PyErr_Occurred())
3646 f2py_success = 0;
3647 #ifdef F2PY_REPORT_ATEXIT
3648 f2py_stop_call_clock();
3649 #endif
3650 /*end of callfortranroutine*/
3651 if (f2py_success) {
3652 /*pyobjfrom*/
3653 cj_electron_capi = pyobj_from_complex_float1(cj_electron);
3654 /*end of pyobjfrom*/
3655 CFUNCSMESS("Building return value.\n");
3656 capi_buildvalue = Py_BuildValue("N",cj_electron_capi);
3657 /*closepyobjfrom*/
3658 /*end of closepyobjfrom*/
3659 } /*if (f2py_success) after callfortranroutine*/
3660 /*cleanupfrompyobj*/
3661 /* End of cleaning variable cj_electron */
3662 } /*if (f2py_success) of alpha*/
3663 /* End of cleaning variable alpha */
3664 } /*if (f2py_success) of psi*/
3665 /* End of cleaning variable psi */
3666 } /*if (f2py_success) of phi*/
3667 /* End of cleaning variable phi */
3668 } /*if (f2py_success) of theta*/
3669 /* End of cleaning variable theta */
3670 /*end of cleanupfrompyobj*/
3671 if (capi_buildvalue == NULL) {
3672 /*routdebugfailure*/
3673 } else {
3674 /*routdebugleave*/
3675 }
3676 CFUNCSMESS("Freeing memory.\n");
3677 /*freemem*/
3678 #ifdef F2PY_REPORT_ATEXIT
3679 f2py_stop_clock();
3680 #endif
3681 return capi_buildvalue;
3682 }
3683 /***************************** end of cj_electron *****************************/
3684
3685 /*********************************** y_ion ***********************************/
3686 static char doc_f2py_rout_full_profile_profile_y_ion[] = "\
3687 y_ion = y_ion(theta,psi)\n\nWrapper for ``y_ion``.\
3688 \n\nParameters\n----------\n"
3689 "theta : input float\n"
3690 "psi : input float\n"
3691 "\nReturns\n-------\n"
3692 "y_ion : complex";
3693 /* extern void F_WRAPPEDFUNC_US(y_ion,Y_ION)(complex_float*,float*,float*); */
3694 static PyObject *f2py_rout_full_profile_profile_y_ion(const PyObject *capi_self,
3695 PyObject *capi_args,
3696 PyObject *capi_keywds,
3697 void (*f2py_func)(complex_float*,float*,float*)) {
3698 PyObject * volatile capi_buildvalue = NULL;
3699 volatile int f2py_success = 1;
3700 /*decl*/
3701
3702 complex_float y_ion;
3703 PyObject *y_ion_capi = Py_None;
3704 float theta = 0;
3705 PyObject *theta_capi = Py_None;
3706 float psi = 0;
3707 PyObject *psi_capi = Py_None;
3708 static char *capi_kwlist[] = {"theta","psi",NULL};
3709
3710 /*routdebugenter*/
3711 #ifdef F2PY_REPORT_ATEXIT
3712 f2py_start_clock();
3713 #endif
3714 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3715 "OO|:full_profile_profile.y_ion",\
3716 capi_kwlist,&theta_capi,&psi_capi))
3717 return NULL;
3718 /*frompyobj*/
3719 /* Processing variable theta */
3720 f2py_success = float_from_pyobj(&theta,theta_capi,"full_profile_profile.y_ion() 1st argument (theta) can't be converted to float");
3721 if (f2py_success) {
3722 /* Processing variable psi */
3723 f2py_success = float_from_pyobj(&psi,psi_capi,"full_profile_profile.y_ion() 2nd argument (psi) can't be converted to float");
3724 if (f2py_success) {
3725 /* Processing variable y_ion */
3726 /*end of frompyobj*/
3727 #ifdef F2PY_REPORT_ATEXIT
3728 f2py_start_call_clock();
3729 #endif
3730 /*callfortranroutine*/
3731 (*f2py_func)(&y_ion,&theta,&psi);
3732 if (PyErr_Occurred())
3733 f2py_success = 0;
3734 #ifdef F2PY_REPORT_ATEXIT
3735 f2py_stop_call_clock();
3736 #endif
3737 /*end of callfortranroutine*/
3738 if (f2py_success) {
3739 /*pyobjfrom*/
3740 y_ion_capi = pyobj_from_complex_float1(y_ion);
3741 /*end of pyobjfrom*/
3742 CFUNCSMESS("Building return value.\n");
3743 capi_buildvalue = Py_BuildValue("N",y_ion_capi);
3744 /*closepyobjfrom*/
3745 /*end of closepyobjfrom*/
3746 } /*if (f2py_success) after callfortranroutine*/
3747 /*cleanupfrompyobj*/
3748 /* End of cleaning variable y_ion */
3749 } /*if (f2py_success) of psi*/
3750 /* End of cleaning variable psi */
3751 } /*if (f2py_success) of theta*/
3752 /* End of cleaning variable theta */
3753 /*end of cleanupfrompyobj*/
3754 if (capi_buildvalue == NULL) {
3755 /*routdebugfailure*/
3756 } else {
3757 /*routdebugleave*/
3758 }
3759 CFUNCSMESS("Freeing memory.\n");
3760 /*freemem*/
3761 #ifdef F2PY_REPORT_ATEXIT
3762 f2py_stop_clock();
3763 #endif
3764 return capi_buildvalue;
3765 }
3766 /******************************** end of y_ion ********************************/
3767
3768 /********************************* y_electron *********************************/
3769 static char doc_f2py_rout_full_profile_profile_y_electron[] = "\
3770 y_electron = y_electron(theta,phi,psi,alpha)\n\nWrapper for ``y_electron``.\
3771 \n\nParameters\n----------\n"
3772 "theta : input float\n"
3773 "phi : input float\n"
3774 "psi : input float\n"
3775 "alpha : input float\n"
3776 "\nReturns\n-------\n"
3777 "y_electron : complex";
3778 /* extern void F_WRAPPEDFUNC_US(y_electron,Y_ELECTRON)(complex_float*,float*,float*,float*,float*); */
3779 static PyObject *f2py_rout_full_profile_profile_y_electron(const PyObject *capi_self,
3780 PyObject *capi_args,
3781 PyObject *capi_keywds,
3782 void (*f2py_func)(complex_float*,float*,float*,float*,float*)) {
3783 PyObject * volatile capi_buildvalue = NULL;
3784 volatile int f2py_success = 1;
3785 /*decl*/
3786
3787 complex_float y_electron;
3788 PyObject *y_electron_capi = Py_None;
3789 float theta = 0;
3790 PyObject *theta_capi = Py_None;
3791 float phi = 0;
3792 PyObject *phi_capi = Py_None;
3793 float psi = 0;
3794 PyObject *psi_capi = Py_None;
3795 float alpha = 0;
3796 PyObject *alpha_capi = Py_None;
3797 static char *capi_kwlist[] = {"theta","phi","psi","alpha",NULL};
3798
3799 /*routdebugenter*/
3800 #ifdef F2PY_REPORT_ATEXIT
3801 f2py_start_clock();
3802 #endif
3803 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3804 "OOOO|:full_profile_profile.y_electron",\
3805 capi_kwlist,&theta_capi,&phi_capi,&psi_capi,&alpha_capi))
3806 return NULL;
3807 /*frompyobj*/
3808 /* Processing variable theta */
3809 f2py_success = float_from_pyobj(&theta,theta_capi,"full_profile_profile.y_electron() 1st argument (theta) can't be converted to float");
3810 if (f2py_success) {
3811 /* Processing variable phi */
3812 f2py_success = float_from_pyobj(&phi,phi_capi,"full_profile_profile.y_electron() 2nd argument (phi) can't be converted to float");
3813 if (f2py_success) {
3814 /* Processing variable psi */
3815 f2py_success = float_from_pyobj(&psi,psi_capi,"full_profile_profile.y_electron() 3rd argument (psi) can't be converted to float");
3816 if (f2py_success) {
3817 /* Processing variable alpha */
3818 f2py_success = float_from_pyobj(&alpha,alpha_capi,"full_profile_profile.y_electron() 4th argument (alpha) can't be converted to float");
3819 if (f2py_success) {
3820 /* Processing variable y_electron */
3821 /*end of frompyobj*/
3822 #ifdef F2PY_REPORT_ATEXIT
3823 f2py_start_call_clock();
3824 #endif
3825 /*callfortranroutine*/
3826 (*f2py_func)(&y_electron,&theta,&phi,&psi,&alpha);
3827 if (PyErr_Occurred())
3828 f2py_success = 0;
3829 #ifdef F2PY_REPORT_ATEXIT
3830 f2py_stop_call_clock();
3831 #endif
3832 /*end of callfortranroutine*/
3833 if (f2py_success) {
3834 /*pyobjfrom*/
3835 y_electron_capi = pyobj_from_complex_float1(y_electron);
3836 /*end of pyobjfrom*/
3837 CFUNCSMESS("Building return value.\n");
3838 capi_buildvalue = Py_BuildValue("N",y_electron_capi);
3839 /*closepyobjfrom*/
3840 /*end of closepyobjfrom*/
3841 } /*if (f2py_success) after callfortranroutine*/
3842 /*cleanupfrompyobj*/
3843 /* End of cleaning variable y_electron */
3844 } /*if (f2py_success) of alpha*/
3845 /* End of cleaning variable alpha */
3846 } /*if (f2py_success) of psi*/
3847 /* End of cleaning variable psi */
3848 } /*if (f2py_success) of phi*/
3849 /* End of cleaning variable phi */
3850 } /*if (f2py_success) of theta*/
3851 /* End of cleaning variable theta */
3852 /*end of cleanupfrompyobj*/
3853 if (capi_buildvalue == NULL) {
3854 /*routdebugfailure*/
3855 } else {
3856 /*routdebugleave*/
3857 }
3858 CFUNCSMESS("Freeing memory.\n");
3859 /*freemem*/
3860 #ifdef F2PY_REPORT_ATEXIT
3861 f2py_stop_clock();
3862 #endif
3863 return capi_buildvalue;
3864 }
3865 /***************************** end of y_electron *****************************/
3866
3867 /*********************************** spect1 ***********************************/
3868 static char doc_f2py_rout_full_profile_profile_spect1[] = "\
3869 spect1 = spect1(omega)\n\nWrapper for ``spect1``.\
3870 \n\nParameters\n----------\n"
3871 "omega : input float\n"
3872 "\nReturns\n-------\n"
3873 "spect1 : float";
3874 /* extern void F_WRAPPEDFUNC(spect1,SPECT1)(float*,float*); */
3875 static PyObject *f2py_rout_full_profile_profile_spect1(const PyObject *capi_self,
3876 PyObject *capi_args,
3877 PyObject *capi_keywds,
3878 void (*f2py_func)(float*,float*)) {
3879 PyObject * volatile capi_buildvalue = NULL;
3880 volatile int f2py_success = 1;
3881 /*decl*/
3882
3883 float spect1 = 0;
3884 float omega = 0;
3885 PyObject *omega_capi = Py_None;
3886 static char *capi_kwlist[] = {"omega",NULL};
3887
3888 /*routdebugenter*/
3889 #ifdef F2PY_REPORT_ATEXIT
3890 f2py_start_clock();
3891 #endif
3892 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
3893 "O|:full_profile_profile.spect1",\
3894 capi_kwlist,&omega_capi))
3895 return NULL;
3896 /*frompyobj*/
3897 /* Processing variable omega */
3898 f2py_success = float_from_pyobj(&omega,omega_capi,"full_profile_profile.spect1() 1st argument (omega) can't be converted to float");
3899 if (f2py_success) {
3900 /* Processing variable spect1 */
3901 /*end of frompyobj*/
3902 #ifdef F2PY_REPORT_ATEXIT
3903 f2py_start_call_clock();
3904 #endif
3905 /*callfortranroutine*/
3906 (*f2py_func)(&spect1,&omega);
3907 if (PyErr_Occurred())
3908 f2py_success = 0;
3909 #ifdef F2PY_REPORT_ATEXIT
3910 f2py_stop_call_clock();
3911 #endif
3912 /*end of callfortranroutine*/
3913 if (f2py_success) {
3914 /*pyobjfrom*/
3915 /*end of pyobjfrom*/
3916 CFUNCSMESS("Building return value.\n");
3917 capi_buildvalue = Py_BuildValue("f",spect1);
3918 /*closepyobjfrom*/
3919 /*end of closepyobjfrom*/
3920 } /*if (f2py_success) after callfortranroutine*/
3921 /*cleanupfrompyobj*/
3922 /* End of cleaning variable spect1 */
3923 } /*if (f2py_success) of omega*/
3924 /* End of cleaning variable omega */
3925 /*end of cleanupfrompyobj*/
3926 if (capi_buildvalue == NULL) {
3927 /*routdebugfailure*/
3928 } else {
3929 /*routdebugleave*/
3930 }
3931 CFUNCSMESS("Freeing memory.\n");
3932 /*freemem*/
3933 #ifdef F2PY_REPORT_ATEXIT
3934 f2py_stop_clock();
3935 #endif
3936 return capi_buildvalue;
3937 }
3938 /******************************* end of spect1 *******************************/
3939
3940 /************************************ acf2 ************************************/
3941 static char doc_f2py_rout_full_profile_profile_acf2[] = "\
3942 acf2(wl,tau,te1,ti1,fi1,ven1,vin1,wi1,alpha1,dens1,bfld1,acf,[nion1])\n\nWrapper for ``acf2``.\
3943 \n\nParameters\n----------\n"
3944 "wl : input float\n"
3945 "tau : input float\n"
3946 "te1 : input float\n"
3947 "ti1 : input rank-1 array('f') with bounds (nion1)\n"
3948 "fi1 : input rank-1 array('f') with bounds (nion1)\n"
3949 "ven1 : input float\n"
3950 "vin1 : input rank-1 array('f') with bounds (nion1)\n"
3951 "wi1 : input rank-1 array('i') with bounds (nion1)\n"
3952 "alpha1 : input float\n"
3953 "dens1 : input float\n"
3954 "bfld1 : input float\n"
3955 "acf : input float\n"
3956 "\nOther Parameters\n----------------\n"
3957 "nion1 : input int, optional\n Default: len(ti1)";
3958 /* extern void F_FUNC(acf2,ACF2)(float*,float*,float*,float*,float*,float*,float*,int*,int*,float*,float*,float*,float*); */
3959 static PyObject *f2py_rout_full_profile_profile_acf2(const PyObject *capi_self,
3960 PyObject *capi_args,
3961 PyObject *capi_keywds,
3962 void (*f2py_func)(float*,float*,float*,float*,float*,float*,float*,int*,int*,float*,float*,float*,float*)) {
3963 PyObject * volatile capi_buildvalue = NULL;
3964 volatile int f2py_success = 1;
3965 /*decl*/
3966
3967 float wl = 0;
3968 PyObject *wl_capi = Py_None;
3969 float tau = 0;
3970 PyObject *tau_capi = Py_None;
3971 float te1 = 0;
3972 PyObject *te1_capi = Py_None;
3973 float *ti1 = NULL;
3974 npy_intp ti1_Dims[1] = {-1};
3975 const int ti1_Rank = 1;
3976 PyArrayObject *capi_ti1_tmp = NULL;
3977 int capi_ti1_intent = 0;
3978 PyObject *ti1_capi = Py_None;
3979 float *fi1 = NULL;
3980 npy_intp fi1_Dims[1] = {-1};
3981 const int fi1_Rank = 1;
3982 PyArrayObject *capi_fi1_tmp = NULL;
3983 int capi_fi1_intent = 0;
3984 PyObject *fi1_capi = Py_None;
3985 float ven1 = 0;
3986 PyObject *ven1_capi = Py_None;
3987 float *vin1 = NULL;
3988 npy_intp vin1_Dims[1] = {-1};
3989 const int vin1_Rank = 1;
3990 PyArrayObject *capi_vin1_tmp = NULL;
3991 int capi_vin1_intent = 0;
3992 PyObject *vin1_capi = Py_None;
3993 int *wi1 = NULL;
3994 npy_intp wi1_Dims[1] = {-1};
3995 const int wi1_Rank = 1;
3996 PyArrayObject *capi_wi1_tmp = NULL;
3997 int capi_wi1_intent = 0;
3998 PyObject *wi1_capi = Py_None;
3999 int nion1 = 0;
4000 PyObject *nion1_capi = Py_None;
4001 float alpha1 = 0;
4002 PyObject *alpha1_capi = Py_None;
4003 float dens1 = 0;
4004 PyObject *dens1_capi = Py_None;
4005 float bfld1 = 0;
4006 PyObject *bfld1_capi = Py_None;
4007 float acf = 0;
4008 PyObject *acf_capi = Py_None;
4009 static char *capi_kwlist[] = {"wl","tau","te1","ti1","fi1","ven1","vin1","wi1","alpha1","dens1","bfld1","acf","nion1",NULL};
4010
4011 /*routdebugenter*/
4012 #ifdef F2PY_REPORT_ATEXIT
4013 f2py_start_clock();
4014 #endif
4015 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
4016 "OOOOOOOOOOOO|O:full_profile_profile.acf2",\
4017 capi_kwlist,&wl_capi,&tau_capi,&te1_capi,&ti1_capi,&fi1_capi,&ven1_capi,&vin1_capi,&wi1_capi,&alpha1_capi,&dens1_capi,&bfld1_capi,&acf_capi,&nion1_capi))
4018 return NULL;
4019 /*frompyobj*/
4020 /* Processing variable wl */
4021 f2py_success = float_from_pyobj(&wl,wl_capi,"full_profile_profile.acf2() 1st argument (wl) can't be converted to float");
4022 if (f2py_success) {
4023 /* Processing variable tau */
4024 f2py_success = float_from_pyobj(&tau,tau_capi,"full_profile_profile.acf2() 2nd argument (tau) can't be converted to float");
4025 if (f2py_success) {
4026 /* Processing variable te1 */
4027 f2py_success = float_from_pyobj(&te1,te1_capi,"full_profile_profile.acf2() 3rd argument (te1) can't be converted to float");
4028 if (f2py_success) {
4029 /* Processing variable ti1 */
4030 ;
4031 capi_ti1_intent |= F2PY_INTENT_IN;
4032 capi_ti1_tmp = array_from_pyobj(NPY_FLOAT,ti1_Dims,ti1_Rank,capi_ti1_intent,ti1_capi);
4033 if (capi_ti1_tmp == NULL) {
4034 PyObject *exc, *val, *tb;
4035 PyErr_Fetch(&exc, &val, &tb);
4036 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 4th argument `ti1' of full_profile_profile.acf2 to C/Fortran array" );
4037 npy_PyErr_ChainExceptionsCause(exc, val, tb);
4038 } else {
4039 ti1 = (float *)(PyArray_DATA(capi_ti1_tmp));
4040
4041 /* Processing variable ven1 */
4042 f2py_success = float_from_pyobj(&ven1,ven1_capi,"full_profile_profile.acf2() 6th argument (ven1) can't be converted to float");
4043 if (f2py_success) {
4044 /* Processing variable alpha1 */
4045 f2py_success = float_from_pyobj(&alpha1,alpha1_capi,"full_profile_profile.acf2() 9th argument (alpha1) can't be converted to float");
4046 if (f2py_success) {
4047 /* Processing variable dens1 */
4048 f2py_success = float_from_pyobj(&dens1,dens1_capi,"full_profile_profile.acf2() 10th argument (dens1) can't be converted to float");
4049 if (f2py_success) {
4050 /* Processing variable bfld1 */
4051 f2py_success = float_from_pyobj(&bfld1,bfld1_capi,"full_profile_profile.acf2() 11st argument (bfld1) can't be converted to float");
4052 if (f2py_success) {
4053 /* Processing variable acf */
4054 f2py_success = float_from_pyobj(&acf,acf_capi,"full_profile_profile.acf2() 12nd argument (acf) can't be converted to float");
4055 if (f2py_success) {
4056 /* Processing variable nion1 */
4057 if (nion1_capi == Py_None) nion1 = len(ti1); else
4058 f2py_success = int_from_pyobj(&nion1,nion1_capi,"full_profile_profile.acf2() 1st keyword (nion1) can't be converted to int");
4059 if (f2py_success) {
4060 CHECKSCALAR(len(ti1)>=nion1,"len(ti1)>=nion1","1st keyword nion1","acf2:nion1=%d",nion1) {
4061 /* Processing variable fi1 */
4062 fi1_Dims[0]=nion1;
4063 capi_fi1_intent |= F2PY_INTENT_IN;
4064 capi_fi1_tmp = array_from_pyobj(NPY_FLOAT,fi1_Dims,fi1_Rank,capi_fi1_intent,fi1_capi);
4065 if (capi_fi1_tmp == NULL) {
4066 PyObject *exc, *val, *tb;
4067 PyErr_Fetch(&exc, &val, &tb);
4068 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 5th argument `fi1' of full_profile_profile.acf2 to C/Fortran array" );
4069 npy_PyErr_ChainExceptionsCause(exc, val, tb);
4070 } else {
4071 fi1 = (float *)(PyArray_DATA(capi_fi1_tmp));
4072
4073 /* Processing variable vin1 */
4074 vin1_Dims[0]=nion1;
4075 capi_vin1_intent |= F2PY_INTENT_IN;
4076 capi_vin1_tmp = array_from_pyobj(NPY_FLOAT,vin1_Dims,vin1_Rank,capi_vin1_intent,vin1_capi);
4077 if (capi_vin1_tmp == NULL) {
4078 PyObject *exc, *val, *tb;
4079 PyErr_Fetch(&exc, &val, &tb);
4080 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 7th argument `vin1' of full_profile_profile.acf2 to C/Fortran array" );
4081 npy_PyErr_ChainExceptionsCause(exc, val, tb);
4082 } else {
4083 vin1 = (float *)(PyArray_DATA(capi_vin1_tmp));
4084
4085 /* Processing variable wi1 */
4086 wi1_Dims[0]=nion1;
4087 capi_wi1_intent |= F2PY_INTENT_IN;
4088 capi_wi1_tmp = array_from_pyobj(NPY_INT,wi1_Dims,wi1_Rank,capi_wi1_intent,wi1_capi);
4089 if (capi_wi1_tmp == NULL) {
4090 PyObject *exc, *val, *tb;
4091 PyErr_Fetch(&exc, &val, &tb);
4092 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 8th argument `wi1' of full_profile_profile.acf2 to C/Fortran array" );
4093 npy_PyErr_ChainExceptionsCause(exc, val, tb);
4094 } else {
4095 wi1 = (int *)(PyArray_DATA(capi_wi1_tmp));
4096
4097 /*end of frompyobj*/
4098 #ifdef F2PY_REPORT_ATEXIT
4099 f2py_start_call_clock();
4100 #endif
4101 /*callfortranroutine*/
4102 (*f2py_func)(&wl,&tau,&te1,ti1,fi1,&ven1,vin1,wi1,&nion1,&alpha1,&dens1,&bfld1,&acf);
4103 if (PyErr_Occurred())
4104 f2py_success = 0;
4105 #ifdef F2PY_REPORT_ATEXIT
4106 f2py_stop_call_clock();
4107 #endif
4108 /*end of callfortranroutine*/
4109 if (f2py_success) {
4110 /*pyobjfrom*/
4111 /*end of pyobjfrom*/
4112 CFUNCSMESS("Building return value.\n");
4113 capi_buildvalue = Py_BuildValue("");
4114 /*closepyobjfrom*/
4115 /*end of closepyobjfrom*/
4116 } /*if (f2py_success) after callfortranroutine*/
4117 /*cleanupfrompyobj*/
4118 if((PyObject *)capi_wi1_tmp!=wi1_capi) {
4119 Py_XDECREF(capi_wi1_tmp); }
4120 } /*if (capi_wi1_tmp == NULL) ... else of wi1*/
4121 /* End of cleaning variable wi1 */
4122 if((PyObject *)capi_vin1_tmp!=vin1_capi) {
4123 Py_XDECREF(capi_vin1_tmp); }
4124 } /*if (capi_vin1_tmp == NULL) ... else of vin1*/
4125 /* End of cleaning variable vin1 */
4126 if((PyObject *)capi_fi1_tmp!=fi1_capi) {
4127 Py_XDECREF(capi_fi1_tmp); }
4128 } /*if (capi_fi1_tmp == NULL) ... else of fi1*/
4129 /* End of cleaning variable fi1 */
4130 } /*CHECKSCALAR(len(ti1)>=nion1)*/
4131 } /*if (f2py_success) of nion1*/
4132 /* End of cleaning variable nion1 */
4133 } /*if (f2py_success) of acf*/
4134 /* End of cleaning variable acf */
4135 } /*if (f2py_success) of bfld1*/
4136 /* End of cleaning variable bfld1 */
4137 } /*if (f2py_success) of dens1*/
4138 /* End of cleaning variable dens1 */
4139 } /*if (f2py_success) of alpha1*/
4140 /* End of cleaning variable alpha1 */
4141 } /*if (f2py_success) of ven1*/
4142 /* End of cleaning variable ven1 */
4143 if((PyObject *)capi_ti1_tmp!=ti1_capi) {
4144 Py_XDECREF(capi_ti1_tmp); }
4145 } /*if (capi_ti1_tmp == NULL) ... else of ti1*/
4146 /* End of cleaning variable ti1 */
4147 } /*if (f2py_success) of te1*/
4148 /* End of cleaning variable te1 */
4149 } /*if (f2py_success) of tau*/
4150 /* End of cleaning variable tau */
4151 } /*if (f2py_success) of wl*/
4152 /* End of cleaning variable wl */
4153 /*end of cleanupfrompyobj*/
4154 if (capi_buildvalue == NULL) {
4155 /*routdebugfailure*/
4156 } else {
4157 /*routdebugleave*/
4158 }
4159 CFUNCSMESS("Freeing memory.\n");
4160 /*freemem*/
4161 #ifdef F2PY_REPORT_ATEXIT
4162 f2py_stop_clock();
4163 #endif
4164 return capi_buildvalue;
4165 }
4166 /******************************** end of acf2 ********************************/
4167
4168 /*********************************** gaussq ***********************************/
4169 static char doc_f2py_rout_full_profile_profile_gaussq[] = "\
4170 gaussq(tau,acf)\n\nWrapper for ``gaussq``.\
4171 \n\nParameters\n----------\n"
4172 "tau : input float\n"
4173 "acf : input float";
4174 /* extern void F_FUNC(gaussq,GAUSSQ)(float*,float*); */
4175 static PyObject *f2py_rout_full_profile_profile_gaussq(const PyObject *capi_self,
4176 PyObject *capi_args,
4177 PyObject *capi_keywds,
4178 void (*f2py_func)(float*,float*)) {
4179 PyObject * volatile capi_buildvalue = NULL;
4180 volatile int f2py_success = 1;
4181 /*decl*/
4182
4183 float tau = 0;
4184 PyObject *tau_capi = Py_None;
4185 float acf = 0;
4186 PyObject *acf_capi = Py_None;
4187 static char *capi_kwlist[] = {"tau","acf",NULL};
4188
4189 /*routdebugenter*/
4190 #ifdef F2PY_REPORT_ATEXIT
4191 f2py_start_clock();
4192 #endif
4193 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
4194 "OO|:full_profile_profile.gaussq",\
4195 capi_kwlist,&tau_capi,&acf_capi))
4196 return NULL;
4197 /*frompyobj*/
4198 /* Processing variable tau */
4199 f2py_success = float_from_pyobj(&tau,tau_capi,"full_profile_profile.gaussq() 1st argument (tau) can't be converted to float");
4200 if (f2py_success) {
4201 /* Processing variable acf */
4202 f2py_success = float_from_pyobj(&acf,acf_capi,"full_profile_profile.gaussq() 2nd argument (acf) can't be converted to float");
4203 if (f2py_success) {
4204 /*end of frompyobj*/
4205 #ifdef F2PY_REPORT_ATEXIT
4206 f2py_start_call_clock();
4207 #endif
4208 /*callfortranroutine*/
4209 (*f2py_func)(&tau,&acf);
4210 if (PyErr_Occurred())
4211 f2py_success = 0;
4212 #ifdef F2PY_REPORT_ATEXIT
4213 f2py_stop_call_clock();
4214 #endif
4215 /*end of callfortranroutine*/
4216 if (f2py_success) {
4217 /*pyobjfrom*/
4218 /*end of pyobjfrom*/
4219 CFUNCSMESS("Building return value.\n");
4220 capi_buildvalue = Py_BuildValue("");
4221 /*closepyobjfrom*/
4222 /*end of closepyobjfrom*/
4223 } /*if (f2py_success) after callfortranroutine*/
4224 /*cleanupfrompyobj*/
4225 } /*if (f2py_success) of acf*/
4226 /* End of cleaning variable acf */
4227 } /*if (f2py_success) of tau*/
4228 /* End of cleaning variable tau */
4229 /*end of cleanupfrompyobj*/
4230 if (capi_buildvalue == NULL) {
4231 /*routdebugfailure*/
4232 } else {
4233 /*routdebugleave*/
4234 }
4235 CFUNCSMESS("Freeing memory.\n");
4236 /*freemem*/
4237 #ifdef F2PY_REPORT_ATEXIT
4238 f2py_stop_clock();
4239 #endif
4240 return capi_buildvalue;
4241 }
4242 /******************************* end of gaussq *******************************/
4243
4244 /************************************ lagp ************************************/
4245 static char doc_f2py_rout_full_profile_profile_lagp[] = "\
4246 lagp(plag,wl,r0,dr,[nl,nrange])\n\nWrapper for ``lagp``.\
4247 \n\nParameters\n----------\n"
4248 "plag : input rank-2 array('f') with bounds (nl,nrange)\n"
4249 "wl : input float\n"
4250 "r0 : input float\n"
4251 "dr : input float\n"
4252 "\nOther Parameters\n----------------\n"
4253 "nl : input int, optional\n Default: shape(plag,0)\n"
4254 "nrange : input int, optional\n Default: shape(plag,1)";
4255 /* extern void F_FUNC(lagp,LAGP)(float*,float*,float*,float*,int*,int*); */
4256 static PyObject *f2py_rout_full_profile_profile_lagp(const PyObject *capi_self,
4257 PyObject *capi_args,
4258 PyObject *capi_keywds,
4259 void (*f2py_func)(float*,float*,float*,float*,int*,int*)) {
4260 PyObject * volatile capi_buildvalue = NULL;
4261 volatile int f2py_success = 1;
4262 /*decl*/
4263
4264 float *plag = NULL;
4265 npy_intp plag_Dims[2] = {-1, -1};
4266 const int plag_Rank = 2;
4267 PyArrayObject *capi_plag_tmp = NULL;
4268 int capi_plag_intent = 0;
4269 PyObject *plag_capi = Py_None;
4270 float wl = 0;
4271 PyObject *wl_capi = Py_None;
4272 float r0 = 0;
4273 PyObject *r0_capi = Py_None;
4274 float dr = 0;
4275 PyObject *dr_capi = Py_None;
4276 int nl = 0;
4277 PyObject *nl_capi = Py_None;
4278 int nrange = 0;
4279 PyObject *nrange_capi = Py_None;
4280 static char *capi_kwlist[] = {"plag","wl","r0","dr","nl","nrange",NULL};
4281
4282 /*routdebugenter*/
4283 #ifdef F2PY_REPORT_ATEXIT
4284 f2py_start_clock();
4285 #endif
4286 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
4287 "OOOO|OO:full_profile_profile.lagp",\
4288 capi_kwlist,&plag_capi,&wl_capi,&r0_capi,&dr_capi,&nl_capi,&nrange_capi))
4289 return NULL;
4290 /*frompyobj*/
4291 /* Processing variable plag */
4292 ;
4293 capi_plag_intent |= F2PY_INTENT_IN;
4294 capi_plag_tmp = array_from_pyobj(NPY_FLOAT,plag_Dims,plag_Rank,capi_plag_intent,plag_capi);
4295 if (capi_plag_tmp == NULL) {
4296 PyObject *exc, *val, *tb;
4297 PyErr_Fetch(&exc, &val, &tb);
4298 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `plag' of full_profile_profile.lagp to C/Fortran array" );
4299 npy_PyErr_ChainExceptionsCause(exc, val, tb);
4300 } else {
4301 plag = (float *)(PyArray_DATA(capi_plag_tmp));
4302
4303 /* Processing variable wl */
4304 f2py_success = float_from_pyobj(&wl,wl_capi,"full_profile_profile.lagp() 2nd argument (wl) can't be converted to float");
4305 if (f2py_success) {
4306 /* Processing variable r0 */
4307 f2py_success = float_from_pyobj(&r0,r0_capi,"full_profile_profile.lagp() 3rd argument (r0) can't be converted to float");
4308 if (f2py_success) {
4309 /* Processing variable dr */
4310 f2py_success = float_from_pyobj(&dr,dr_capi,"full_profile_profile.lagp() 4th argument (dr) can't be converted to float");
4311 if (f2py_success) {
4312 /* Processing variable nl */
4313 if (nl_capi == Py_None) nl = shape(plag,0); else
4314 f2py_success = int_from_pyobj(&nl,nl_capi,"full_profile_profile.lagp() 1st keyword (nl) can't be converted to int");
4315 if (f2py_success) {
4316 CHECKSCALAR(shape(plag,0)==nl,"shape(plag,0)==nl","1st keyword nl","lagp:nl=%d",nl) {
4317 /* Processing variable nrange */
4318 if (nrange_capi == Py_None) nrange = shape(plag,1); else
4319 f2py_success = int_from_pyobj(&nrange,nrange_capi,"full_profile_profile.lagp() 2nd keyword (nrange) can't be converted to int");
4320 if (f2py_success) {
4321 CHECKSCALAR(shape(plag,1)==nrange,"shape(plag,1)==nrange","2nd keyword nrange","lagp:nrange=%d",nrange) {
4322 /*end of frompyobj*/
4323 #ifdef F2PY_REPORT_ATEXIT
4324 f2py_start_call_clock();
4325 #endif
4326 /*callfortranroutine*/
4327 (*f2py_func)(plag,&wl,&r0,&dr,&nl,&nrange);
4328 if (PyErr_Occurred())
4329 f2py_success = 0;
4330 #ifdef F2PY_REPORT_ATEXIT
4331 f2py_stop_call_clock();
4332 #endif
4333 /*end of callfortranroutine*/
4334 if (f2py_success) {
4335 /*pyobjfrom*/
4336 /*end of pyobjfrom*/
4337 CFUNCSMESS("Building return value.\n");
4338 capi_buildvalue = Py_BuildValue("");
4339 /*closepyobjfrom*/
4340 /*end of closepyobjfrom*/
4341 } /*if (f2py_success) after callfortranroutine*/
4342 /*cleanupfrompyobj*/
4343 } /*CHECKSCALAR(shape(plag,1)==nrange)*/
4344 } /*if (f2py_success) of nrange*/
4345 /* End of cleaning variable nrange */
4346 } /*CHECKSCALAR(shape(plag,0)==nl)*/
4347 } /*if (f2py_success) of nl*/
4348 /* End of cleaning variable nl */
4349 } /*if (f2py_success) of dr*/
4350 /* End of cleaning variable dr */
4351 } /*if (f2py_success) of r0*/
4352 /* End of cleaning variable r0 */
4353 } /*if (f2py_success) of wl*/
4354 /* End of cleaning variable wl */
4355 if((PyObject *)capi_plag_tmp!=plag_capi) {
4356 Py_XDECREF(capi_plag_tmp); }
4357 } /*if (capi_plag_tmp == NULL) ... else of plag*/
4358 /* End of cleaning variable plag */
4359 /*end of cleanupfrompyobj*/
4360 if (capi_buildvalue == NULL) {
4361 /*routdebugfailure*/
4362 } else {
4363 /*routdebugleave*/
4364 }
4365 CFUNCSMESS("Freeing memory.\n");
4366 /*freemem*/
4367 #ifdef F2PY_REPORT_ATEXIT
4368 f2py_stop_clock();
4369 #endif
4370 return capi_buildvalue;
4371 }
4372 /******************************** end of lagp ********************************/
4373
4374 /*********************************** atanh ***********************************/
4375 static char doc_f2py_rout_full_profile_profile_atanh[] = "\
4376 atanh = atanh(x)\n\nWrapper for ``atanh``.\
4377 \n\nParameters\n----------\n"
4378 "x : input float\n"
4379 "\nReturns\n-------\n"
4380 "atanh : float";
4381 /* extern void F_WRAPPEDFUNC(atanh,ATANH)(float*,float*); */
4382 static PyObject *f2py_rout_full_profile_profile_atanh(const PyObject *capi_self,
4383 PyObject *capi_args,
4384 PyObject *capi_keywds,
4385 void (*f2py_func)(float*,float*)) {
4386 PyObject * volatile capi_buildvalue = NULL;
4387 volatile int f2py_success = 1;
4388 /*decl*/
4389
4390 float atanh = 0;
4391 float x = 0;
4392 PyObject *x_capi = Py_None;
4393 static char *capi_kwlist[] = {"x",NULL};
4394
4395 /*routdebugenter*/
4396 #ifdef F2PY_REPORT_ATEXIT
4397 f2py_start_clock();
4398 #endif
4399 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
4400 "O|:full_profile_profile.atanh",\
4401 capi_kwlist,&x_capi))
4402 return NULL;
4403 /*frompyobj*/
4404 /* Processing variable x */
4405 f2py_success = float_from_pyobj(&x,x_capi,"full_profile_profile.atanh() 1st argument (x) can't be converted to float");
4406 if (f2py_success) {
4407 /* Processing variable atanh */
4408 /*end of frompyobj*/
4409 #ifdef F2PY_REPORT_ATEXIT
4410 f2py_start_call_clock();
4411 #endif
4412 /*callfortranroutine*/
4413 (*f2py_func)(&atanh,&x);
4414 if (PyErr_Occurred())
4415 f2py_success = 0;
4416 #ifdef F2PY_REPORT_ATEXIT
4417 f2py_stop_call_clock();
4418 #endif
4419 /*end of callfortranroutine*/
4420 if (f2py_success) {
4421 /*pyobjfrom*/
4422 /*end of pyobjfrom*/
4423 CFUNCSMESS("Building return value.\n");
4424 capi_buildvalue = Py_BuildValue("f",atanh);
4425 /*closepyobjfrom*/
4426 /*end of closepyobjfrom*/
4427 } /*if (f2py_success) after callfortranroutine*/
4428 /*cleanupfrompyobj*/
4429 /* End of cleaning variable atanh */
4430 } /*if (f2py_success) of x*/
4431 /* End of cleaning variable x */
4432 /*end of cleanupfrompyobj*/
4433 if (capi_buildvalue == NULL) {
4434 /*routdebugfailure*/
4435 } else {
4436 /*routdebugleave*/
4437 }
4438 CFUNCSMESS("Freeing memory.\n");
4439 /*freemem*/
4440 #ifdef F2PY_REPORT_ATEXIT
4441 f2py_stop_clock();
4442 #endif
4443 return capi_buildvalue;
4444 }
4445 /******************************** end of atanh ********************************/
4446
4447 /********************************* get_spline *********************************/
4448 static char doc_f2py_rout_full_profile_profile_get_spline[] = "\
4449 get_spline(alt,dens,te,ti,hf,hef)\n\nWrapper for ``get_spline``.\
4450 \n\nParameters\n----------\n"
4451 "alt : input float\n"
4452 "dens : input float\n"
4453 "te : input float\n"
4454 "ti : input float\n"
4455 "hf : input float\n"
4456 "hef : input float";
4457 /* extern void F_FUNC_US(get_spline,GET_SPLINE)(float*,float*,float*,float*,float*,float*); */
4458 static PyObject *f2py_rout_full_profile_profile_get_spline(const PyObject *capi_self,
4459 PyObject *capi_args,
4460 PyObject *capi_keywds,
4461 void (*f2py_func)(float*,float*,float*,float*,float*,float*)) {
4462 PyObject * volatile capi_buildvalue = NULL;
4463 volatile int f2py_success = 1;
4464 /*decl*/
4465
4466 float alt = 0;
4467 PyObject *alt_capi = Py_None;
4468 float dens = 0;
4469 PyObject *dens_capi = Py_None;
4470 float te = 0;
4471 PyObject *te_capi = Py_None;
4472 float ti = 0;
4473 PyObject *ti_capi = Py_None;
4474 float hf = 0;
4475 PyObject *hf_capi = Py_None;
4476 float hef = 0;
4477 PyObject *hef_capi = Py_None;
4478 static char *capi_kwlist[] = {"alt","dens","te","ti","hf","hef",NULL};
4479
4480 /*routdebugenter*/
4481 #ifdef F2PY_REPORT_ATEXIT
4482 f2py_start_clock();
4483 #endif
4484 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
4485 "OOOOOO|:full_profile_profile.get_spline",\
4486 capi_kwlist,&alt_capi,&dens_capi,&te_capi,&ti_capi,&hf_capi,&hef_capi))
4487 return NULL;
4488 /*frompyobj*/
4489 /* Processing variable alt */
4490 f2py_success = float_from_pyobj(&alt,alt_capi,"full_profile_profile.get_spline() 1st argument (alt) can't be converted to float");
4491 if (f2py_success) {
4492 /* Processing variable dens */
4493 f2py_success = float_from_pyobj(&dens,dens_capi,"full_profile_profile.get_spline() 2nd argument (dens) can't be converted to float");
4494 if (f2py_success) {
4495 /* Processing variable te */
4496 f2py_success = float_from_pyobj(&te,te_capi,"full_profile_profile.get_spline() 3rd argument (te) can't be converted to float");
4497 if (f2py_success) {
4498 /* Processing variable ti */
4499 f2py_success = float_from_pyobj(&ti,ti_capi,"full_profile_profile.get_spline() 4th argument (ti) can't be converted to float");
4500 if (f2py_success) {
4501 /* Processing variable hf */
4502 f2py_success = float_from_pyobj(&hf,hf_capi,"full_profile_profile.get_spline() 5th argument (hf) can't be converted to float");
4503 if (f2py_success) {
4504 /* Processing variable hef */
4505 f2py_success = float_from_pyobj(&hef,hef_capi,"full_profile_profile.get_spline() 6th argument (hef) can't be converted to float");
4506 if (f2py_success) {
4507 /*end of frompyobj*/
4508 #ifdef F2PY_REPORT_ATEXIT
4509 f2py_start_call_clock();
4510 #endif
4511 /*callfortranroutine*/
4512 (*f2py_func)(&alt,&dens,&te,&ti,&hf,&hef);
4513 if (PyErr_Occurred())
4514 f2py_success = 0;
4515 #ifdef F2PY_REPORT_ATEXIT
4516 f2py_stop_call_clock();
4517 #endif
4518 /*end of callfortranroutine*/
4519 if (f2py_success) {
4520 /*pyobjfrom*/
4521 /*end of pyobjfrom*/
4522 CFUNCSMESS("Building return value.\n");
4523 capi_buildvalue = Py_BuildValue("");
4524 /*closepyobjfrom*/
4525 /*end of closepyobjfrom*/
4526 } /*if (f2py_success) after callfortranroutine*/
4527 /*cleanupfrompyobj*/
4528 } /*if (f2py_success) of hef*/
4529 /* End of cleaning variable hef */
4530 } /*if (f2py_success) of hf*/
4531 /* End of cleaning variable hf */
4532 } /*if (f2py_success) of ti*/
4533 /* End of cleaning variable ti */
4534 } /*if (f2py_success) of te*/
4535 /* End of cleaning variable te */
4536 } /*if (f2py_success) of dens*/
4537 /* End of cleaning variable dens */
4538 } /*if (f2py_success) of alt*/
4539 /* End of cleaning variable alt */
4540 /*end of cleanupfrompyobj*/
4541 if (capi_buildvalue == NULL) {
4542 /*routdebugfailure*/
4543 } else {
4544 /*routdebugleave*/
4545 }
4546 CFUNCSMESS("Freeing memory.\n");
4547 /*freemem*/
4548 #ifdef F2PY_REPORT_ATEXIT
4549 f2py_stop_clock();
4550 #endif
4551 return capi_buildvalue;
4552 }
4553 /***************************** end of get_spline *****************************/
4554
4555 /*********************************** bvalue ***********************************/
4556 static char doc_f2py_rout_full_profile_profile_bvalue[] = "\
4557 bvalue = bvalue(t,bcoef,k,x,jderiv,[n])\n\nWrapper for ``bvalue``.\
4558 \n\nParameters\n----------\n"
4559 "t : input rank-1 array('f') with bounds (n+k)\n"
4560 "bcoef : input rank-1 array('f') with bounds (n)\n"
4561 "k : input int\n"
4562 "x : input float\n"
4563 "jderiv : input int\n"
4564 "\nOther Parameters\n----------------\n"
4565 "n : input int, optional\n Default: len(bcoef)\n"
4566 "\nReturns\n-------\n"
4567 "bvalue : float";
4568 /* extern void F_WRAPPEDFUNC(bvalue,BVALUE)(float*,float*,float*,int*,int*,float*,int*); */
4569 static PyObject *f2py_rout_full_profile_profile_bvalue(const PyObject *capi_self,
4570 PyObject *capi_args,
4571 PyObject *capi_keywds,
4572 void (*f2py_func)(float*,float*,float*,int*,int*,float*,int*)) {
4573 PyObject * volatile capi_buildvalue = NULL;
4574 volatile int f2py_success = 1;
4575 /*decl*/
4576
4577 float bvalue = 0;
4578 float *t = NULL;
4579 npy_intp t_Dims[1] = {-1};
4580 const int t_Rank = 1;
4581 PyArrayObject *capi_t_tmp = NULL;
4582 int capi_t_intent = 0;
4583 PyObject *t_capi = Py_None;
4584 float *bcoef = NULL;
4585 npy_intp bcoef_Dims[1] = {-1};
4586 const int bcoef_Rank = 1;
4587 PyArrayObject *capi_bcoef_tmp = NULL;
4588 int capi_bcoef_intent = 0;
4589 PyObject *bcoef_capi = Py_None;
4590 int n = 0;
4591 PyObject *n_capi = Py_None;
4592 int k = 0;
4593 PyObject *k_capi = Py_None;
4594 float x = 0;
4595 PyObject *x_capi = Py_None;
4596 int jderiv = 0;
4597 PyObject *jderiv_capi = Py_None;
4598 static char *capi_kwlist[] = {"t","bcoef","k","x","jderiv","n",NULL};
4599
4600 /*routdebugenter*/
4601 #ifdef F2PY_REPORT_ATEXIT
4602 f2py_start_clock();
4603 #endif
4604 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
4605 "OOOOO|O:full_profile_profile.bvalue",\
4606 capi_kwlist,&t_capi,&bcoef_capi,&k_capi,&x_capi,&jderiv_capi,&n_capi))
4607 return NULL;
4608 /*frompyobj*/
4609 /* Processing variable bcoef */
4610 ;
4611 capi_bcoef_intent |= F2PY_INTENT_IN;
4612 capi_bcoef_tmp = array_from_pyobj(NPY_FLOAT,bcoef_Dims,bcoef_Rank,capi_bcoef_intent,bcoef_capi);
4613 if (capi_bcoef_tmp == NULL) {
4614 PyObject *exc, *val, *tb;
4615 PyErr_Fetch(&exc, &val, &tb);
4616 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 2nd argument `bcoef' of full_profile_profile.bvalue to C/Fortran array" );
4617 npy_PyErr_ChainExceptionsCause(exc, val, tb);
4618 } else {
4619 bcoef = (float *)(PyArray_DATA(capi_bcoef_tmp));
4620
4621 /* Processing variable k */
4622 f2py_success = int_from_pyobj(&k,k_capi,"full_profile_profile.bvalue() 3rd argument (k) can't be converted to int");
4623 if (f2py_success) {
4624 /* Processing variable x */
4625 f2py_success = float_from_pyobj(&x,x_capi,"full_profile_profile.bvalue() 4th argument (x) can't be converted to float");
4626 if (f2py_success) {
4627 /* Processing variable jderiv */
4628 f2py_success = int_from_pyobj(&jderiv,jderiv_capi,"full_profile_profile.bvalue() 5th argument (jderiv) can't be converted to int");
4629 if (f2py_success) {
4630 /* Processing variable bvalue */
4631 /* Processing variable n */
4632 if (n_capi == Py_None) n = len(bcoef); else
4633 f2py_success = int_from_pyobj(&n,n_capi,"full_profile_profile.bvalue() 1st keyword (n) can't be converted to int");
4634 if (f2py_success) {
4635 CHECKSCALAR(len(bcoef)>=n,"len(bcoef)>=n","1st keyword n","bvalue:n=%d",n) {
4636 /* Processing variable t */
4637 t_Dims[0]=n+k;
4638 capi_t_intent |= F2PY_INTENT_IN;
4639 capi_t_tmp = array_from_pyobj(NPY_FLOAT,t_Dims,t_Rank,capi_t_intent,t_capi);
4640 if (capi_t_tmp == NULL) {
4641 PyObject *exc, *val, *tb;
4642 PyErr_Fetch(&exc, &val, &tb);
4643 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `t' of full_profile_profile.bvalue to C/Fortran array" );
4644 npy_PyErr_ChainExceptionsCause(exc, val, tb);
4645 } else {
4646 t = (float *)(PyArray_DATA(capi_t_tmp));
4647
4648 /*end of frompyobj*/
4649 #ifdef F2PY_REPORT_ATEXIT
4650 f2py_start_call_clock();
4651 #endif
4652 /*callfortranroutine*/
4653 (*f2py_func)(&bvalue,t,bcoef,&n,&k,&x,&jderiv);
4654 if (PyErr_Occurred())
4655 f2py_success = 0;
4656 #ifdef F2PY_REPORT_ATEXIT
4657 f2py_stop_call_clock();
4658 #endif
4659 /*end of callfortranroutine*/
4660 if (f2py_success) {
4661 /*pyobjfrom*/
4662 /*end of pyobjfrom*/
4663 CFUNCSMESS("Building return value.\n");
4664 capi_buildvalue = Py_BuildValue("f",bvalue);
4665 /*closepyobjfrom*/
4666 /*end of closepyobjfrom*/
4667 } /*if (f2py_success) after callfortranroutine*/
4668 /*cleanupfrompyobj*/
4669 if((PyObject *)capi_t_tmp!=t_capi) {
4670 Py_XDECREF(capi_t_tmp); }
4671 } /*if (capi_t_tmp == NULL) ... else of t*/
4672 /* End of cleaning variable t */
4673 } /*CHECKSCALAR(len(bcoef)>=n)*/
4674 } /*if (f2py_success) of n*/
4675 /* End of cleaning variable n */
4676 /* End of cleaning variable bvalue */
4677 } /*if (f2py_success) of jderiv*/
4678 /* End of cleaning variable jderiv */
4679 } /*if (f2py_success) of x*/
4680 /* End of cleaning variable x */
4681 } /*if (f2py_success) of k*/
4682 /* End of cleaning variable k */
4683 if((PyObject *)capi_bcoef_tmp!=bcoef_capi) {
4684 Py_XDECREF(capi_bcoef_tmp); }
4685 } /*if (capi_bcoef_tmp == NULL) ... else of bcoef*/
4686 /* End of cleaning variable bcoef */
4687 /*end of cleanupfrompyobj*/
4688 if (capi_buildvalue == NULL) {
4689 /*routdebugfailure*/
4690 } else {
4691 /*routdebugleave*/
4692 }
4693 CFUNCSMESS("Freeing memory.\n");
4694 /*freemem*/
4695 #ifdef F2PY_REPORT_ATEXIT
4696 f2py_stop_clock();
4697 #endif
4698 return capi_buildvalue;
4699 }
4700 /******************************* end of bvalue *******************************/
4701
4702 /*********************************** interv ***********************************/
4703 static char doc_f2py_rout_full_profile_profile_interv[] = "\
4704 interv(xt,x,left,mflag,[lxt])\n\nWrapper for ``interv``.\
4705 \n\nParameters\n----------\n"
4706 "xt : input rank-1 array('f') with bounds (lxt)\n"
4707 "x : input float\n"
4708 "left : input int\n"
4709 "mflag : input int\n"
4710 "\nOther Parameters\n----------------\n"
4711 "lxt : input int, optional\n Default: len(xt)";
4712 /* extern void F_FUNC(interv,INTERV)(float*,int*,float*,int*,int*); */
4713 static PyObject *f2py_rout_full_profile_profile_interv(const PyObject *capi_self,
4714 PyObject *capi_args,
4715 PyObject *capi_keywds,
4716 void (*f2py_func)(float*,int*,float*,int*,int*)) {
4717 PyObject * volatile capi_buildvalue = NULL;
4718 volatile int f2py_success = 1;
4719 /*decl*/
4720
4721 float *xt = NULL;
4722 npy_intp xt_Dims[1] = {-1};
4723 const int xt_Rank = 1;
4724 PyArrayObject *capi_xt_tmp = NULL;
4725 int capi_xt_intent = 0;
4726 PyObject *xt_capi = Py_None;
4727 int lxt = 0;
4728 PyObject *lxt_capi = Py_None;
4729 float x = 0;
4730 PyObject *x_capi = Py_None;
4731 int left = 0;
4732 PyObject *left_capi = Py_None;
4733 int mflag = 0;
4734 PyObject *mflag_capi = Py_None;
4735 static char *capi_kwlist[] = {"xt","x","left","mflag","lxt",NULL};
4736
4737 /*routdebugenter*/
4738 #ifdef F2PY_REPORT_ATEXIT
4739 f2py_start_clock();
4740 #endif
4741 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
4742 "OOOO|O:full_profile_profile.interv",\
4743 capi_kwlist,&xt_capi,&x_capi,&left_capi,&mflag_capi,&lxt_capi))
4744 return NULL;
4745 /*frompyobj*/
4746 /* Processing variable xt */
4747 ;
4748 capi_xt_intent |= F2PY_INTENT_IN;
4749 capi_xt_tmp = array_from_pyobj(NPY_FLOAT,xt_Dims,xt_Rank,capi_xt_intent,xt_capi);
4750 if (capi_xt_tmp == NULL) {
4751 PyObject *exc, *val, *tb;
4752 PyErr_Fetch(&exc, &val, &tb);
4753 PyErr_SetString(exc ? exc : full_profile_profile_error,"failed in converting 1st argument `xt' of full_profile_profile.interv to C/Fortran array" );
4754 npy_PyErr_ChainExceptionsCause(exc, val, tb);
4755 } else {
4756 xt = (float *)(PyArray_DATA(capi_xt_tmp));
4757
4758 /* Processing variable x */
4759 f2py_success = float_from_pyobj(&x,x_capi,"full_profile_profile.interv() 2nd argument (x) can't be converted to float");
4760 if (f2py_success) {
4761 /* Processing variable left */
4762 f2py_success = int_from_pyobj(&left,left_capi,"full_profile_profile.interv() 3rd argument (left) can't be converted to int");
4763 if (f2py_success) {
4764 /* Processing variable mflag */
4765 f2py_success = int_from_pyobj(&mflag,mflag_capi,"full_profile_profile.interv() 4th argument (mflag) can't be converted to int");
4766 if (f2py_success) {
4767 /* Processing variable lxt */
4768 if (lxt_capi == Py_None) lxt = len(xt); else
4769 f2py_success = int_from_pyobj(&lxt,lxt_capi,"full_profile_profile.interv() 1st keyword (lxt) can't be converted to int");
4770 if (f2py_success) {
4771 CHECKSCALAR(len(xt)>=lxt,"len(xt)>=lxt","1st keyword lxt","interv:lxt=%d",lxt) {
4772 /*end of frompyobj*/
4773 #ifdef F2PY_REPORT_ATEXIT
4774 f2py_start_call_clock();
4775 #endif
4776 /*callfortranroutine*/
4777 (*f2py_func)(xt,&lxt,&x,&left,&mflag);
4778 if (PyErr_Occurred())
4779 f2py_success = 0;
4780 #ifdef F2PY_REPORT_ATEXIT
4781 f2py_stop_call_clock();
4782 #endif
4783 /*end of callfortranroutine*/
4784 if (f2py_success) {
4785 /*pyobjfrom*/
4786 /*end of pyobjfrom*/
4787 CFUNCSMESS("Building return value.\n");
4788 capi_buildvalue = Py_BuildValue("");
4789 /*closepyobjfrom*/
4790 /*end of closepyobjfrom*/
4791 } /*if (f2py_success) after callfortranroutine*/
4792 /*cleanupfrompyobj*/
4793 } /*CHECKSCALAR(len(xt)>=lxt)*/
4794 } /*if (f2py_success) of lxt*/
4795 /* End of cleaning variable lxt */
4796 } /*if (f2py_success) of mflag*/
4797 /* End of cleaning variable mflag */
4798 } /*if (f2py_success) of left*/
4799 /* End of cleaning variable left */
4800 } /*if (f2py_success) of x*/
4801 /* End of cleaning variable x */
4802 if((PyObject *)capi_xt_tmp!=xt_capi) {
4803 Py_XDECREF(capi_xt_tmp); }
4804 } /*if (capi_xt_tmp == NULL) ... else of xt*/
4805 /* End of cleaning variable xt */
4806 /*end of cleanupfrompyobj*/
4807 if (capi_buildvalue == NULL) {
4808 /*routdebugfailure*/
4809 } else {
4810 /*routdebugleave*/
4811 }
4812 CFUNCSMESS("Freeing memory.\n");
4813 /*freemem*/
4814 #ifdef F2PY_REPORT_ATEXIT
4815 f2py_stop_clock();
4816 #endif
4817 return capi_buildvalue;
4818 }
4819 /******************************* end of interv *******************************/
4820
4821 /*********************************** r1mach ***********************************/
4822 static char doc_f2py_rout_full_profile_profile_r1mach[] = "\
4823 r1mach = r1mach(i)\n\nWrapper for ``r1mach``.\
4824 \n\nParameters\n----------\n"
4825 "i : input int\n"
4826 "\nReturns\n-------\n"
4827 "r1mach : float";
4828 /* extern void F_WRAPPEDFUNC(r1mach,R1MACH)(float*,int*); */
4829 static PyObject *f2py_rout_full_profile_profile_r1mach(const PyObject *capi_self,
4830 PyObject *capi_args,
4831 PyObject *capi_keywds,
4832 void (*f2py_func)(float*,int*)) {
4833 PyObject * volatile capi_buildvalue = NULL;
4834 volatile int f2py_success = 1;
4835 /*decl*/
4836
4837 float r1mach = 0;
4838 int i = 0;
4839 PyObject *i_capi = Py_None;
4840 static char *capi_kwlist[] = {"i",NULL};
4841
4842 /*routdebugenter*/
4843 #ifdef F2PY_REPORT_ATEXIT
4844 f2py_start_clock();
4845 #endif
4846 if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
4847 "O|:full_profile_profile.r1mach",\
4848 capi_kwlist,&i_capi))
4849 return NULL;
4850 /*frompyobj*/
4851 /* Processing variable i */
4852 f2py_success = int_from_pyobj(&i,i_capi,"full_profile_profile.r1mach() 1st argument (i) can't be converted to int");
4853 if (f2py_success) {
4854 /* Processing variable r1mach */
4855 /*end of frompyobj*/
4856 #ifdef F2PY_REPORT_ATEXIT
4857 f2py_start_call_clock();
4858 #endif
4859 /*callfortranroutine*/
4860 (*f2py_func)(&r1mach,&i);
4861 if (PyErr_Occurred())
4862 f2py_success = 0;
4863 #ifdef F2PY_REPORT_ATEXIT
4864 f2py_stop_call_clock();
4865 #endif
4866 /*end of callfortranroutine*/
4867 if (f2py_success) {
4868 /*pyobjfrom*/
4869 /*end of pyobjfrom*/
4870 CFUNCSMESS("Building return value.\n");
4871 capi_buildvalue = Py_BuildValue("f",r1mach);
4872 /*closepyobjfrom*/
4873 /*end of closepyobjfrom*/
4874 } /*if (f2py_success) after callfortranroutine*/
4875 /*cleanupfrompyobj*/
4876 /* End of cleaning variable r1mach */
4877 } /*if (f2py_success) of i*/
4878 /* End of cleaning variable i */
4879 /*end of cleanupfrompyobj*/
4880 if (capi_buildvalue == NULL) {
4881 /*routdebugfailure*/
4882 } else {
4883 /*routdebugleave*/
4884 }
4885 CFUNCSMESS("Freeing memory.\n");
4886 /*freemem*/
4887 #ifdef F2PY_REPORT_ATEXIT
4888 f2py_stop_clock();
4889 #endif
4890 return capi_buildvalue;
4891 }
4892 /******************************* end of r1mach *******************************/
4893 /*eof body*/
4894
4895 /******************* See f2py2e/f90mod_rules.py: buildhooks *******************/
4896 /*need_f90modhooks*/
4897
4898 /************** See f2py2e/rules.py: module_rules['modulebody'] **************/
4899
4900 /******************* See f2py2e/common_rules.py: buildhooks *******************/
4901
4902 static FortranDataDef f2py_chisq_def[] = {
4903 {"chi2",0,{{-1}},NPY_FLOAT},
4904 {NULL}
4905 };
4906 static void f2py_setup_chisq(char *chi2) {
4907 int i_f2py=0;
4908 f2py_chisq_def[i_f2py++].data = chi2;
4909 }
4910 extern void F_FUNC(f2pyinitchisq,F2PYINITCHISQ)(void(*)(char*));
4911 static void f2py_init_chisq(void) {
4912 F_FUNC(f2pyinitchisq,F2PYINITCHISQ)(f2py_setup_chisq);
4913 }
4914
4915 static FortranDataDef f2py_fpa_def[] = {
4916 {"densp",1,{{91}},NPY_FLOAT},
4917 {"tep",1,{{91}},NPY_FLOAT},
4918 {"trp",1,{{91}},NPY_FLOAT},
4919 {"tip",1,{{91}},NPY_FLOAT},
4920 {"hfp",1,{{91}},NPY_FLOAT},
4921 {"hefp",1,{{91}},NPY_FLOAT},
4922 {"altp",1,{{91}},NPY_FLOAT},
4923 {"r0",0,{{-1}},NPY_FLOAT},
4924 {"dr",0,{{-1}},NPY_FLOAT},
4925 {"wl",0,{{-1}},NPY_FLOAT},
4926 {NULL}
4927 };
4928 static void f2py_setup_fpa(char *densp,char *tep,char *trp,char *tip,char *hfp,char *hefp,char *altp,char *r0,char *dr,char *wl) {
4929 int i_f2py=0;
4930 f2py_fpa_def[i_f2py++].data = densp;
4931 f2py_fpa_def[i_f2py++].data = tep;
4932 f2py_fpa_def[i_f2py++].data = trp;
4933 f2py_fpa_def[i_f2py++].data = tip;
4934 f2py_fpa_def[i_f2py++].data = hfp;
4935 f2py_fpa_def[i_f2py++].data = hefp;
4936 f2py_fpa_def[i_f2py++].data = altp;
4937 f2py_fpa_def[i_f2py++].data = r0;
4938 f2py_fpa_def[i_f2py++].data = dr;
4939 f2py_fpa_def[i_f2py++].data = wl;
4940 }
4941 extern void F_FUNC(f2pyinitfpa,F2PYINITFPA)(void(*)(char*,char*,char*,char*,char*,char*,char*,char*,char*,char*));
4942 static void f2py_init_fpa(void) {
4943 F_FUNC(f2pyinitfpa,F2PYINITFPA)(f2py_setup_fpa);
4944 }
4945
4946 static FortranDataDef f2py_data_def[] = {
4947 {"plag",2,{{16,91}},NPY_FLOAT},
4948 {"plag_errors",2,{{16,91}},NPY_FLOAT},
4949 {NULL}
4950 };
4951 static void f2py_setup_data(char *plag,char *plag_errors) {
4952 int i_f2py=0;
4953 f2py_data_def[i_f2py++].data = plag;
4954 f2py_data_def[i_f2py++].data = plag_errors;
4955 }
4956 extern void F_FUNC(f2pyinitdata,F2PYINITDATA)(void(*)(char*,char*));
4957 static void f2py_init_data(void) {
4958 F_FUNC(f2pyinitdata,F2PYINITDATA)(f2py_setup_data);
4959 }
4960
4961 static FortranDataDef f2py_sys_def[] = {
4962 {"sconst",0,{{-1}},NPY_FLOAT},
4963 {NULL}
4964 };
4965 static void f2py_setup_sys(char *sconst) {
4966 int i_f2py=0;
4967 f2py_sys_def[i_f2py++].data = sconst;
4968 }
4969 extern void F_FUNC(f2pyinitsys,F2PYINITSYS)(void(*)(char*));
4970 static void f2py_init_sys(void) {
4971 F_FUNC(f2pyinitsys,F2PYINITSYS)(f2py_setup_sys);
4972 }
4973
4974 static FortranDataDef f2py_errs_def[] = {
4975 {"edensp",1,{{91}},NPY_FLOAT},
4976 {"etep",1,{{91}},NPY_FLOAT},
4977 {"etip",1,{{91}},NPY_FLOAT},
4978 {"ehfp",1,{{91}},NPY_FLOAT},
4979 {"ehefp",1,{{91}},NPY_FLOAT},
4980 {NULL}
4981 };
4982 static void f2py_setup_errs(char *edensp,char *etep,char *etip,char *ehfp,char *ehefp) {
4983 int i_f2py=0;
4984 f2py_errs_def[i_f2py++].data = edensp;
4985 f2py_errs_def[i_f2py++].data = etep;
4986 f2py_errs_def[i_f2py++].data = etip;
4987 f2py_errs_def[i_f2py++].data = ehfp;
4988 f2py_errs_def[i_f2py++].data = ehefp;
4989 }
4990 extern void F_FUNC(f2pyiniterrs,F2PYINITERRS)(void(*)(char*,char*,char*,char*,char*));
4991 static void f2py_init_errs(void) {
4992 F_FUNC(f2pyiniterrs,F2PYINITERRS)(f2py_setup_errs);
4993 }
4994
4995 static FortranDataDef f2py_mag_def[] = {
4996 {"bfld_prof",1,{{85}},NPY_FLOAT},
4997 {"alpha_prof",1,{{85}},NPY_FLOAT},
4998 {NULL}
4999 };
5000 static void f2py_setup_mag(char *bfld_prof,char *alpha_prof) {
5001 int i_f2py=0;
5002 f2py_mag_def[i_f2py++].data = bfld_prof;
5003 f2py_mag_def[i_f2py++].data = alpha_prof;
5004 }
5005 extern void F_FUNC(f2pyinitmag,F2PYINITMAG)(void(*)(char*,char*));
5006 static void f2py_init_mag(void) {
5007 F_FUNC(f2pyinitmag,F2PYINITMAG)(f2py_setup_mag);
5008 }
5009
5010 static FortranDataDef f2py_mode_def[] = {
5011 {"imode",0,{{-1}},NPY_INT},
5012 {NULL}
5013 };
5014 static void f2py_setup_mode(char *imode) {
5015 int i_f2py=0;
5016 f2py_mode_def[i_f2py++].data = imode;
5017 }
5018 extern void F_FUNC(f2pyinitmode,F2PYINITMODE)(void(*)(char*));
5019 static void f2py_init_mode(void) {
5020 F_FUNC(f2pyinitmode,F2PYINITMODE)(f2py_setup_mode);
5021 }
5022
5023 static FortranDataDef f2py_utime_def[] = {
5024 {"uttime",0,{{-1}},NPY_FLOAT},
5025 {NULL}
5026 };
5027 static void f2py_setup_utime(char *uttime) {
5028 int i_f2py=0;
5029 f2py_utime_def[i_f2py++].data = uttime;
5030 }
5031 extern void F_FUNC(f2pyinitutime,F2PYINITUTIME)(void(*)(char*));
5032 static void f2py_init_utime(void) {
5033 F_FUNC(f2pyinitutime,F2PYINITUTIME)(f2py_setup_utime);
5034 }
5035
5036 static FortranDataDef f2py_spline_def[] = {
5037 {"ta",1,{{34}},NPY_FLOAT},
5038 {"bcoef",2,{{30,5}},NPY_FLOAT},
5039 {NULL}
5040 };
5041 static void f2py_setup_spline(char *ta,char *bcoef) {
5042 int i_f2py=0;
5043 f2py_spline_def[i_f2py++].data = ta;
5044 f2py_spline_def[i_f2py++].data = bcoef;
5045 }
5046 extern void F_FUNC(f2pyinitspline,F2PYINITSPLINE)(void(*)(char*,char*));
5047 static void f2py_init_spline(void) {
5048 F_FUNC(f2pyinitspline,F2PYINITSPLINE)(f2py_setup_spline);
5049 }
5050
5051 static FortranDataDef f2py_spec_def[] = {
5052 {"te",0,{{-1}},NPY_FLOAT},
5053 {"ti",1,{{10}},NPY_FLOAT},
5054 {"fi",1,{{10}},NPY_FLOAT},
5055 {"ven",0,{{-1}},NPY_FLOAT},
5056 {"vin",1,{{10}},NPY_FLOAT},
5057 {"alpha",0,{{-1}},NPY_FLOAT},
5058 {"dens",0,{{-1}},NPY_FLOAT},
5059 {"bfld",0,{{-1}},NPY_FLOAT},
5060 {"nion",0,{{-1}},NPY_INT},
5061 {"wi",1,{{10}},NPY_INT},
5062 {"ak",0,{{-1}},NPY_FLOAT},
5063 {NULL}
5064 };
5065 static void f2py_setup_spec(char *te,char *ti,char *fi,char *ven,char *vin,char *alpha,char *dens,char *bfld,char *nion,char *wi,char *ak) {
5066 int i_f2py=0;
5067 f2py_spec_def[i_f2py++].data = te;
5068 f2py_spec_def[i_f2py++].data = ti;
5069 f2py_spec_def[i_f2py++].data = fi;
5070 f2py_spec_def[i_f2py++].data = ven;
5071 f2py_spec_def[i_f2py++].data = vin;
5072 f2py_spec_def[i_f2py++].data = alpha;
5073 f2py_spec_def[i_f2py++].data = dens;
5074 f2py_spec_def[i_f2py++].data = bfld;
5075 f2py_spec_def[i_f2py++].data = nion;
5076 f2py_spec_def[i_f2py++].data = wi;
5077 f2py_spec_def[i_f2py++].data = ak;
5078 }
5079 extern void F_FUNC(f2pyinitspec,F2PYINITSPEC)(void(*)(char*,char*,char*,char*,char*,char*,char*,char*,char*,char*,char*));
5080 static void f2py_init_spec(void) {
5081 F_FUNC(f2pyinitspec,F2PYINITSPEC)(f2py_setup_spec);
5082 }
5083
5084 static FortranDataDef f2py_fitter_def[] = {
5085 {"tau",1,{{100}},NPY_FLOAT},
5086 {"rho",1,{{100}},NPY_FLOAT},
5087 {"sigma2",1,{{100}},NPY_FLOAT},
5088 {"params",1,{{10}},NPY_FLOAT},
5089 {"ifit",1,{{10}},NPY_INT},
5090 {NULL}
5091 };
5092 static void f2py_setup_fitter(char *tau,char *rho,char *sigma2,char *params,char *ifit) {
5093 int i_f2py=0;
5094 f2py_fitter_def[i_f2py++].data = tau;
5095 f2py_fitter_def[i_f2py++].data = rho;
5096 f2py_fitter_def[i_f2py++].data = sigma2;
5097 f2py_fitter_def[i_f2py++].data = params;
5098 f2py_fitter_def[i_f2py++].data = ifit;
5099 }
5100 extern void F_FUNC(f2pyinitfitter,F2PYINITFITTER)(void(*)(char*,char*,char*,char*,char*));
5101 static void f2py_init_fitter(void) {
5102 F_FUNC(f2pyinitfitter,F2PYINITFITTER)(f2py_setup_fitter);
5103 }
5104
5105 static FortranDataDef f2py_trans_def[] = {
5106 {"ev",1,{{10000}},NPY_FLOAT},
5107 {NULL}
5108 };
5109 static void f2py_setup_trans(char *ev) {
5110 int i_f2py=0;
5111 f2py_trans_def[i_f2py++].data = ev;
5112 }
5113 extern void F_FUNC(f2pyinittrans,F2PYINITTRANS)(void(*)(char*));
5114 static void f2py_init_trans(void) {
5115 F_FUNC(f2pyinittrans,F2PYINITTRANS)(f2py_setup_trans);
5116 }
5117
5118 static FortranDataDef f2py_d8mach_def[] = {
5119 {"cray1",0,{{-1}},NPY_INT},
5120 {NULL}
5121 };
5122 static void f2py_setup_d8mach(char *cray1) {
5123 int i_f2py=0;
5124 f2py_d8mach_def[i_f2py++].data = cray1;
5125 }
5126 extern void F_FUNC(f2pyinitd8mach,F2PYINITD8MACH)(void(*)(char*));
5127 static void f2py_init_d8mach(void) {
5128 F_FUNC(f2pyinitd8mach,F2PYINITD8MACH)(f2py_setup_d8mach);
5129 }
5130
5131 /*need_commonhooks*/
5132
5133 /**************************** See f2py2e/rules.py ****************************/
5134
5135 static FortranDataDef f2py_routine_defs[] = {
5136 {"profile",-1,{{-1}},0,(char *)F_FUNC(profile,PROFILE),(f2py_init_func)f2py_rout_full_profile_profile_profile,doc_f2py_rout_full_profile_profile_profile},
5137 {"grid",-1,{{-1}},0,(char *)F_FUNC(grid,GRID),(f2py_init_func)f2py_rout_full_profile_profile_grid,doc_f2py_rout_full_profile_profile_grid},
5138 {"propagate",-1,{{-1}},0,(char *)F_FUNC(propagate,PROPAGATE),(f2py_init_func)f2py_rout_full_profile_profile_propagate,doc_f2py_rout_full_profile_profile_propagate},
5139 {"fcn_lpreg",-1,{{-1}},0,(char *)F_FUNC_US(fcn_lpreg,FCN_LPREG),(f2py_init_func)f2py_rout_full_profile_profile_fcn_lpreg,doc_f2py_rout_full_profile_profile_fcn_lpreg},
5140 {"get_scale",-1,{{-1}},0,(char *)F_FUNC_US(get_scale,GET_SCALE),(f2py_init_func)f2py_rout_full_profile_profile_get_scale,doc_f2py_rout_full_profile_profile_get_scale},
5141 {"enorm",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(enorm,ENORM),(f2py_init_func)f2py_rout_full_profile_profile_enorm,doc_f2py_rout_full_profile_profile_enorm},
5142 {"fdjac2",-1,{{-1}},0,(char *)F_FUNC(fdjac2,FDJAC2),(f2py_init_func)f2py_rout_full_profile_profile_fdjac2,doc_f2py_rout_full_profile_profile_fdjac2},
5143 {"lmdif",-1,{{-1}},0,(char *)F_FUNC(lmdif,LMDIF),(f2py_init_func)f2py_rout_full_profile_profile_lmdif,doc_f2py_rout_full_profile_profile_lmdif},
5144 {"lmpar",-1,{{-1}},0,(char *)F_FUNC(lmpar,LMPAR),(f2py_init_func)f2py_rout_full_profile_profile_lmpar,doc_f2py_rout_full_profile_profile_lmpar},
5145 {"qrfac",-1,{{-1}},0,(char *)F_FUNC(qrfac,QRFAC),(f2py_init_func)f2py_rout_full_profile_profile_qrfac,doc_f2py_rout_full_profile_profile_qrfac},
5146 {"qrsolv",-1,{{-1}},0,(char *)F_FUNC(qrsolv,QRSOLV),(f2py_init_func)f2py_rout_full_profile_profile_qrsolv,doc_f2py_rout_full_profile_profile_qrsolv},
5147 {"spmpar",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(spmpar,SPMPAR),(f2py_init_func)f2py_rout_full_profile_profile_spmpar,doc_f2py_rout_full_profile_profile_spmpar},
5148 {"cdtr1",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(cdtr1,CDTR1),(f2py_init_func)f2py_rout_full_profile_profile_cdtr1,doc_f2py_rout_full_profile_profile_cdtr1},
5149 {"czte1",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(czte1,CZTE1),(f2py_init_func)f2py_rout_full_profile_profile_czte1,doc_f2py_rout_full_profile_profile_czte1},
5150 {"fcn",-1,{{-1}},0,(char *)F_FUNC(fcn,FCN),(f2py_init_func)f2py_rout_full_profile_profile_fcn,doc_f2py_rout_full_profile_profile_fcn},
5151 {"cj_ion",-1,{{-1}},0,(char *)F_WRAPPEDFUNC_US(cj_ion,CJ_ION),(f2py_init_func)f2py_rout_full_profile_profile_cj_ion,doc_f2py_rout_full_profile_profile_cj_ion},
5152 {"cj_electron",-1,{{-1}},0,(char *)F_WRAPPEDFUNC_US(cj_electron,CJ_ELECTRON),(f2py_init_func)f2py_rout_full_profile_profile_cj_electron,doc_f2py_rout_full_profile_profile_cj_electron},
5153 {"y_ion",-1,{{-1}},0,(char *)F_WRAPPEDFUNC_US(y_ion,Y_ION),(f2py_init_func)f2py_rout_full_profile_profile_y_ion,doc_f2py_rout_full_profile_profile_y_ion},
5154 {"y_electron",-1,{{-1}},0,(char *)F_WRAPPEDFUNC_US(y_electron,Y_ELECTRON),(f2py_init_func)f2py_rout_full_profile_profile_y_electron,doc_f2py_rout_full_profile_profile_y_electron},
5155 {"spect1",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(spect1,SPECT1),(f2py_init_func)f2py_rout_full_profile_profile_spect1,doc_f2py_rout_full_profile_profile_spect1},
5156 {"acf2",-1,{{-1}},0,(char *)F_FUNC(acf2,ACF2),(f2py_init_func)f2py_rout_full_profile_profile_acf2,doc_f2py_rout_full_profile_profile_acf2},
5157 {"gaussq",-1,{{-1}},0,(char *)F_FUNC(gaussq,GAUSSQ),(f2py_init_func)f2py_rout_full_profile_profile_gaussq,doc_f2py_rout_full_profile_profile_gaussq},
5158 {"lagp",-1,{{-1}},0,(char *)F_FUNC(lagp,LAGP),(f2py_init_func)f2py_rout_full_profile_profile_lagp,doc_f2py_rout_full_profile_profile_lagp},
5159 {"atanh",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(atanh,ATANH),(f2py_init_func)f2py_rout_full_profile_profile_atanh,doc_f2py_rout_full_profile_profile_atanh},
5160 {"get_spline",-1,{{-1}},0,(char *)F_FUNC_US(get_spline,GET_SPLINE),(f2py_init_func)f2py_rout_full_profile_profile_get_spline,doc_f2py_rout_full_profile_profile_get_spline},
5161 {"bvalue",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(bvalue,BVALUE),(f2py_init_func)f2py_rout_full_profile_profile_bvalue,doc_f2py_rout_full_profile_profile_bvalue},
5162 {"interv",-1,{{-1}},0,(char *)F_FUNC(interv,INTERV),(f2py_init_func)f2py_rout_full_profile_profile_interv,doc_f2py_rout_full_profile_profile_interv},
5163 {"r1mach",-1,{{-1}},0,(char *)F_WRAPPEDFUNC(r1mach,R1MACH),(f2py_init_func)f2py_rout_full_profile_profile_r1mach,doc_f2py_rout_full_profile_profile_r1mach},
5164
5165 /*eof routine_defs*/
5166 {NULL}
5167 };
5168
5169 static PyMethodDef f2py_module_methods[] = {
5170
5171 {NULL,NULL}
5172 };
5173
5174 static struct PyModuleDef moduledef = {
5175 PyModuleDef_HEAD_INIT,
5176 "full_profile_profile",
5177 NULL,
5178 -1,
5179 f2py_module_methods,
5180 NULL,
5181 NULL,
5182 NULL,
5183 NULL
5184 };
5185
5186 PyMODINIT_FUNC PyInit_full_profile_profile(void) {
5187 int i;
5188 PyObject *m,*d, *s, *tmp;
5189 m = full_profile_profile_module = PyModule_Create(&moduledef);
5190 Py_SET_TYPE(&PyFortran_Type, &PyType_Type);
5191 import_array();
5192 if (PyErr_Occurred())
5193 {PyErr_SetString(PyExc_ImportError, "can't initialize module full_profile_profile (failed to import numpy)"); return m;}
5194 d = PyModule_GetDict(m);
5195 s = PyString_FromString("$Revision: $");
5196 PyDict_SetItemString(d, "__version__", s);
5197 Py_DECREF(s);
5198 s = PyUnicode_FromString(
5199 "This module 'full_profile_profile' is auto-generated with f2py (version:2).\nFunctions:\n"
5200 " profile(acf_sum,acf_err,power,en,alag,thb2,bfm2,ote,ete,oti,eti,oph,eph,ophe,ephe,range2,ut,nacf,acf_avg_real,status,nhts=shape(acf_sum,1),ibits=shape(acf_sum,2))\n"
5201 " grid()\n"
5202 " propagate(xe)\n"
5203 " fcn_lpreg(x,fvec,iflag,m=len(fvec),n=len(x))\n"
5204 " get_scale(plag2)\n"
5205 " enorm = enorm(x,n=len(x))\n"
5206 " fdjac2(fcn,x,fvec,fjac,iflag,epsfcn,wa,m=len(fvec),n=len(x),ldfjac=shape(fjac,0),fcn_extra_args=())\n"
5207 " lmdif(fcn,x,fvec,ftol,xtol,gtol,maxfev,epsfcn,diag,mode,factor,nprint,info,nfev,fjac,ipvt,qtf,wa1,wa2,wa3,wa4,m=len(fvec),n=len(x),ldfjac=shape(fjac,0),fcn_extra_args=())\n"
5208 " lmpar(r,ipvt,diag,qtb,delta,par,x,sdiag,wa1,wa2,n=shape(r,1),ldr=shape(r,0))\n"
5209 " qrfac(m,a,pivot,ipvt,rdiag,acnorm,wa,n=shape(a,1),lda=shape(a,0),lipvt=len(ipvt))\n"
5210 " qrsolv(r,ipvt,diag,qtb,x,sdiag,wa,n=shape(r,1),ldr=shape(r,0))\n"
5211 " spmpar = spmpar(i)\n"
5212 " cdtr1 = cdtr1(depth)\n"
5213 " czte1 = czte1(zlag,tr)\n"
5214 " fcn(x,fvec,iflag,m=len(fvec),n=len(x))\n"
5215 " cj_ion = cj_ion(theta,psi)\n"
5216 " cj_electron = cj_electron(theta,phi,psi,alpha)\n"
5217 " y_ion = y_ion(theta,psi)\n"
5218 " y_electron = y_electron(theta,phi,psi,alpha)\n"
5219 " spect1 = spect1(omega)\n"
5220 " acf2(wl,tau,te1,ti1,fi1,ven1,vin1,wi1,alpha1,dens1,bfld1,acf,nion1=len(ti1))\n"
5221 " gaussq(tau,acf)\n"
5222 " lagp(plag,wl,r0,dr,nl=shape(plag,0),nrange=shape(plag,1))\n"
5223 " atanh = atanh(x)\n"
5224 " get_spline(alt,dens,te,ti,hf,hef)\n"
5225 " bvalue = bvalue(t,bcoef,k,x,jderiv,n=len(bcoef))\n"
5226 " interv(xt,x,left,mflag,lxt=len(xt))\n"
5227 " r1mach = r1mach(i)\n"
5228 "COMMON blocks:\n"" /chisq/ chi2\n"" /fpa/ densp(91),tep(91),trp(91),tip(91),hfp(91),hefp(91),altp(91),r0,dr,wl\n"" /data/ plag(16,91),plag_errors(16,91)\n"" /sys/ sconst\n"" /errs/ edensp(91),etep(91),etip(91),ehfp(91),ehefp(91)\n"" /mag/ bfld_prof(85),alpha_prof(85)\n"" /mode/ imode\n"" /utime/ uttime\n"" /spline/ ta(34),bcoef(30,5)\n"" /spec/ te,ti(10),fi(10),ven,vin(10),alpha,dens,bfld,nion,wi(10),ak\n"" /fitter/ tau(100),rho(100),sigma2(100),params(10),ifit(10)\n"" /trans/ ev(10000)\n"" /d8mach/ cray1\n"".");
5229 PyDict_SetItemString(d, "__doc__", s);
5230 Py_DECREF(s);
5231 full_profile_profile_error = PyErr_NewException ("full_profile_profile.error", NULL, NULL);
5232 /*
5233 * Store the error object inside the dict, so that it could get deallocated.
5234 * (in practice, this is a module, so it likely will not and cannot.)
5235 */
5236 PyDict_SetItemString(d, "_full_profile_profile_error", full_profile_profile_error);
5237 Py_DECREF(full_profile_profile_error);
5238 for(i=0;f2py_routine_defs[i].name!=NULL;i++) {
5239 tmp = PyFortranObject_NewAsAttr(&f2py_routine_defs[i]);
5240 PyDict_SetItemString(d, f2py_routine_defs[i].name, tmp);
5241 Py_DECREF(tmp);
5242 }
5243
5244
5245
5246
5247
5248
5249 {
5250 extern float F_FUNC(enorm,ENORM)(void);
5251 PyObject* o = PyDict_GetItemString(d,"enorm");
5252 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(enorm,ENORM),NULL);
5253 PyObject_SetAttrString(o,"_cpointer", tmp);
5254 Py_DECREF(tmp);
5255 s = PyUnicode_FromString("enorm");
5256 PyObject_SetAttrString(o,"__name__", s);
5257 Py_DECREF(s);
5258 }
5259
5260
5261
5262
5263
5264
5265
5266 {
5267 extern float F_FUNC(spmpar,SPMPAR)(void);
5268 PyObject* o = PyDict_GetItemString(d,"spmpar");
5269 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(spmpar,SPMPAR),NULL);
5270 PyObject_SetAttrString(o,"_cpointer", tmp);
5271 Py_DECREF(tmp);
5272 s = PyUnicode_FromString("spmpar");
5273 PyObject_SetAttrString(o,"__name__", s);
5274 Py_DECREF(s);
5275 }
5276
5277
5278 {
5279 extern float F_FUNC(cdtr1,CDTR1)(void);
5280 PyObject* o = PyDict_GetItemString(d,"cdtr1");
5281 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(cdtr1,CDTR1),NULL);
5282 PyObject_SetAttrString(o,"_cpointer", tmp);
5283 Py_DECREF(tmp);
5284 s = PyUnicode_FromString("cdtr1");
5285 PyObject_SetAttrString(o,"__name__", s);
5286 Py_DECREF(s);
5287 }
5288
5289
5290 {
5291 extern float F_FUNC(czte1,CZTE1)(void);
5292 PyObject* o = PyDict_GetItemString(d,"czte1");
5293 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(czte1,CZTE1),NULL);
5294 PyObject_SetAttrString(o,"_cpointer", tmp);
5295 Py_DECREF(tmp);
5296 s = PyUnicode_FromString("czte1");
5297 PyObject_SetAttrString(o,"__name__", s);
5298 Py_DECREF(s);
5299 }
5300
5301
5302
5303 {
5304 extern complex_float F_FUNC_US(cj_ion,CJ_ION)(void);
5305 PyObject* o = PyDict_GetItemString(d,"cj_ion");
5306 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC_US(cj_ion,CJ_ION),NULL);
5307 PyObject_SetAttrString(o,"_cpointer", tmp);
5308 Py_DECREF(tmp);
5309 s = PyUnicode_FromString("cj_ion");
5310 PyObject_SetAttrString(o,"__name__", s);
5311 Py_DECREF(s);
5312 }
5313
5314
5315 {
5316 extern complex_float F_FUNC_US(cj_electron,CJ_ELECTRON)(void);
5317 PyObject* o = PyDict_GetItemString(d,"cj_electron");
5318 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC_US(cj_electron,CJ_ELECTRON),NULL);
5319 PyObject_SetAttrString(o,"_cpointer", tmp);
5320 Py_DECREF(tmp);
5321 s = PyUnicode_FromString("cj_electron");
5322 PyObject_SetAttrString(o,"__name__", s);
5323 Py_DECREF(s);
5324 }
5325
5326
5327 {
5328 extern complex_float F_FUNC_US(y_ion,Y_ION)(void);
5329 PyObject* o = PyDict_GetItemString(d,"y_ion");
5330 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC_US(y_ion,Y_ION),NULL);
5331 PyObject_SetAttrString(o,"_cpointer", tmp);
5332 Py_DECREF(tmp);
5333 s = PyUnicode_FromString("y_ion");
5334 PyObject_SetAttrString(o,"__name__", s);
5335 Py_DECREF(s);
5336 }
5337
5338
5339 {
5340 extern complex_float F_FUNC_US(y_electron,Y_ELECTRON)(void);
5341 PyObject* o = PyDict_GetItemString(d,"y_electron");
5342 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC_US(y_electron,Y_ELECTRON),NULL);
5343 PyObject_SetAttrString(o,"_cpointer", tmp);
5344 Py_DECREF(tmp);
5345 s = PyUnicode_FromString("y_electron");
5346 PyObject_SetAttrString(o,"__name__", s);
5347 Py_DECREF(s);
5348 }
5349
5350
5351 {
5352 extern float F_FUNC(spect1,SPECT1)(void);
5353 PyObject* o = PyDict_GetItemString(d,"spect1");
5354 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(spect1,SPECT1),NULL);
5355 PyObject_SetAttrString(o,"_cpointer", tmp);
5356 Py_DECREF(tmp);
5357 s = PyUnicode_FromString("spect1");
5358 PyObject_SetAttrString(o,"__name__", s);
5359 Py_DECREF(s);
5360 }
5361
5362
5363
5364
5365
5366 {
5367 extern float F_FUNC(atanh,ATANH)(void);
5368 PyObject* o = PyDict_GetItemString(d,"atanh");
5369 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(atanh,ATANH),NULL);
5370 PyObject_SetAttrString(o,"_cpointer", tmp);
5371 Py_DECREF(tmp);
5372 s = PyUnicode_FromString("atanh");
5373 PyObject_SetAttrString(o,"__name__", s);
5374 Py_DECREF(s);
5375 }
5376
5377
5378
5379 {
5380 extern float F_FUNC(bvalue,BVALUE)(void);
5381 PyObject* o = PyDict_GetItemString(d,"bvalue");
5382 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(bvalue,BVALUE),NULL);
5383 PyObject_SetAttrString(o,"_cpointer", tmp);
5384 Py_DECREF(tmp);
5385 s = PyUnicode_FromString("bvalue");
5386 PyObject_SetAttrString(o,"__name__", s);
5387 Py_DECREF(s);
5388 }
5389
5390
5391
5392 {
5393 extern float F_FUNC(r1mach,R1MACH)(void);
5394 PyObject* o = PyDict_GetItemString(d,"r1mach");
5395 tmp = F2PyCapsule_FromVoidPtr((void*)F_FUNC(r1mach,R1MACH),NULL);
5396 PyObject_SetAttrString(o,"_cpointer", tmp);
5397 Py_DECREF(tmp);
5398 s = PyUnicode_FromString("r1mach");
5399 PyObject_SetAttrString(o,"__name__", s);
5400 Py_DECREF(s);
5401 }
5402
5403 /*eof initf2pywraphooks*/
5404 /*eof initf90modhooks*/
5405
5406 tmp = PyFortranObject_New(f2py_chisq_def,f2py_init_chisq);
5407 F2PyDict_SetItemString(d, "chisq", tmp);
5408 Py_DECREF(tmp);
5409 tmp = PyFortranObject_New(f2py_fpa_def,f2py_init_fpa);
5410 F2PyDict_SetItemString(d, "fpa", tmp);
5411 Py_DECREF(tmp);
5412 tmp = PyFortranObject_New(f2py_data_def,f2py_init_data);
5413 F2PyDict_SetItemString(d, "data", tmp);
5414 Py_DECREF(tmp);
5415 tmp = PyFortranObject_New(f2py_sys_def,f2py_init_sys);
5416 F2PyDict_SetItemString(d, "sys", tmp);
5417 Py_DECREF(tmp);
5418 tmp = PyFortranObject_New(f2py_errs_def,f2py_init_errs);
5419 F2PyDict_SetItemString(d, "errs", tmp);
5420 Py_DECREF(tmp);
5421 tmp = PyFortranObject_New(f2py_mag_def,f2py_init_mag);
5422 F2PyDict_SetItemString(d, "mag", tmp);
5423 Py_DECREF(tmp);
5424 tmp = PyFortranObject_New(f2py_mode_def,f2py_init_mode);
5425 F2PyDict_SetItemString(d, "mode", tmp);
5426 Py_DECREF(tmp);
5427 tmp = PyFortranObject_New(f2py_utime_def,f2py_init_utime);
5428 F2PyDict_SetItemString(d, "utime", tmp);
5429 Py_DECREF(tmp);
5430 tmp = PyFortranObject_New(f2py_spline_def,f2py_init_spline);
5431 F2PyDict_SetItemString(d, "spline", tmp);
5432 Py_DECREF(tmp);
5433 tmp = PyFortranObject_New(f2py_spec_def,f2py_init_spec);
5434 F2PyDict_SetItemString(d, "spec", tmp);
5435 Py_DECREF(tmp);
5436 tmp = PyFortranObject_New(f2py_fitter_def,f2py_init_fitter);
5437 F2PyDict_SetItemString(d, "fitter", tmp);
5438 Py_DECREF(tmp);
5439 tmp = PyFortranObject_New(f2py_trans_def,f2py_init_trans);
5440 F2PyDict_SetItemString(d, "trans", tmp);
5441 Py_DECREF(tmp);
5442 tmp = PyFortranObject_New(f2py_d8mach_def,f2py_init_d8mach);
5443 F2PyDict_SetItemString(d, "d8mach", tmp);
5444 Py_DECREF(tmp);
5445 /*eof initcommonhooks*/
5446
5447
5448 #ifdef F2PY_REPORT_ATEXIT
5449 if (! PyErr_Occurred())
5450 on_exit(f2py_report_on_exit,(void*)"full_profile_profile");
5451 #endif
5452 return m;
5453 }
5454 #ifdef __cplusplus
5455 }
5456 #endif
@@ -0,0 +1,17
1
2 subroutine get_path(fqual_temp)
3 c
4 c create table of magnetic field components
5 c
6 c character*47 L
7
8 character(1024) :: fqual_temp
9 character(512) :: ppath
10 character(512) :: cpath
11 ppath = "/home/cportilla/DIR_MADRIGAL/schain"
12 cpath = "/schainf/Ffiles/bfmodel/"
13 c write(*,*) "Len:", L
14 fqual_temp = TRIM(ppath)//TRIM(cpath)
15 c write(*,*) "Len:", fqual_temp
16 return
17 end
@@ -0,0 +1,36
1
2 subroutine get_len(the_len,fqual_temp)
3 c
4 c create table of magnetic field components
5 c
6 c character*47 L
7
8 character(1024) :: fqual_temp
9 character(512) :: ppath
10 character(512) :: cpath
11 integer the_len
12 ppath = "/home/cportilla/DIR_MADRIGAL/schain"
13 cpath = "/schainf/Ffiles/jlib26feb2001"
14 fqual_temp = TRIM(ppath)//TRIM(cpath)
15 the_len = LEN_TRIM(fqual_temp)
16
17 return
18 end
19
20 subroutine get_path_reader(fqual,the_len)
21 c
22 c create table of magnetic field components
23 c
24 c character*47 L
25
26 integer the_len
27 character(the_len) :: fqual
28 character(1024) :: fqual_temp
29
30 call get_len(the_len,fqual_temp)
31 fqual = TRIM(fqual_temp)
32 write(*,*) "Done"
33
34 return
35 end
36
@@ -0,0 +1,141
1 {"conditions": [
2
3 {"year": 2024, "doy": 47, "initial_time": [5,32], "final_time": [6,42], "aux_index": [ null, 11]},
4
5 {"year": 2024, "doy": 247, "initial_time": [2,0], "final_time": [5,0], "aux_index": [ null, 11]},
6 {"year": 2024, "doy": 247, "initial_time": [1,40], "final_time": [2,0], "aux_index": [ null, 26]},
7 {"year": 2024, "doy": 247, "initial_time": [0,45], "final_time": [0,45], "aux_index": [ null, 28]},
8 {"year": 2024, "doy": 246, "initial_time": [23,15], "final_time": [23,59], "aux_index": [ null, 21]},
9 {"year": 2024, "doy": 246, "initial_time": [13,55], "final_time": [23,59], "aux_index": [ null, 11]},
10 {"year": 2024, "doy": 247, "initial_time": [0,0], "final_time": [2,25], "aux_index": [ null, 22]},
11 {"year": 2024, "doy": 247, "initial_time": [3,0], "final_time": [3,0], "aux_index": [ 34, null]},
12
13 {"year": 2024, "doy": 247, "initial_time": [5,0], "final_time": [23,59], "aux_index": [ null, 11]},
14 {"year": 2024, "doy": 247, "initial_time": [5,0], "final_time": [11,25], "aux_index": [ 11, 13]},
15 {"year": 2024, "doy": 247, "initial_time": [5,30], "final_time": [9,50], "aux_index": [ 13, 13]},
16 {"year": 2024, "doy": 247, "initial_time": [23,15], "final_time": [23,59], "aux_index": [ null, 15]},
17 {"year": 2024, "doy": 248, "initial_time": [0,0], "final_time": [4,59], "aux_index": [ null, 13]},
18 {"year": 2024, "doy": 248, "initial_time": [0,0], "final_time": [1,50], "aux_index": [ null, 21]},
19 {"year": 2024, "doy": 248, "initial_time": [0,0], "final_time": [2,50], "aux_index": [ null, 17]},
20 {"year": 2024, "doy": 247, "initial_time": [8,5], "final_time": [8,10], "aux_index": [ null, null]},
21 {"year": 2024, "doy": 248, "initial_time": [2,50], "final_time": [2,50], "aux_index": [ 30, null]},
22 {"year": 2024, "doy": 248, "initial_time": [3,55], "final_time": [4,0], "aux_index": [ 26, null]},
23 {"year": 2024, "doy": 247, "initial_time": [5,0], "final_time": [5,0], "aux_index": [ 18, 24]},
24 {"year": 2024, "doy": 247, "initial_time": [5,5], "final_time": [5,5], "aux_index": [ 21, 26]},
25 {"year": 2024, "doy": 247, "initial_time": [5,15], "final_time": [5,15], "aux_index": [ 19, 21]},
26 {"year": 2024, "doy": 247, "initial_time": [5,20], "final_time": [5,20], "aux_index": [ 21, 23]},
27 {"year": 2024, "doy": 247, "initial_time": [5,25], "final_time": [5,25], "aux_index": [ 21, 26]},
28 {"year": 2024, "doy": 247, "initial_time": [5,30], "final_time": [5,30], "aux_index": [ 20, 27]},
29 {"year": 2024, "doy": 247, "initial_time": [5,35], "final_time": [5,35], "aux_index": [ 22, 27]},
30 {"year": 2024, "doy": 247, "initial_time": [8,5], "final_time": [8,10], "aux_index": [ null, null]},
31 {"year": 2024, "doy": 247, "initial_time": [15,30], "final_time": [15,30], "aux_index": [ null, null]},
32
33
34 {"year": 2024, "doy": 248, "initial_time": [5,20], "final_time": [5,35], "aux_index": [ 20, null]},
35 {"year": 2024, "doy": 248, "initial_time": [5,40], "final_time": [5,55], "aux_index": [ 23, null]},
36 {"year": 2024, "doy": 248, "initial_time": [5,0], "final_time": [23,59], "aux_index": [ null, 11]},
37 {"year": 2024, "doy": 249, "initial_time": [0,0], "final_time": [4,59], "aux_index": [ null, 12]},
38 {"year": 2024, "doy": 248, "initial_time": [5,0], "final_time": [9,0], "aux_index": [ null, 13]},
39 {"year": 2024, "doy": 249, "initial_time": [2,0], "final_time": [2,20], "aux_index": [ null, 17]},
40 {"year": 2024, "doy": 249, "initial_time": [2,55], "final_time": [2,55], "aux_index": [ 27, null]},
41 {"year": 2024, "doy": 249, "initial_time": [3,0], "final_time": [3,5], "aux_index": [ 25, null]},
42 {"year": 2024, "doy": 249, "initial_time": [4,5], "final_time": [4,5], "aux_index": [ 23, null]},
43 {"year": 2024, "doy": 249, "initial_time": [4,10], "final_time": [4,10], "aux_index": [ 26, null]},
44 {"year": 2024, "doy": 249, "initial_time": [4,15], "final_time": [4,15], "aux_index": [ 30, null]},
45 {"year": 2024, "doy": 249, "initial_time": [0,30], "final_time": [0,40], "aux_index": [ null, null]},
46
47 {"year": 2024, "doy": 249, "initial_time": [5,20], "final_time": [5,20], "aux_index": [ 22, null]},
48 {"year": 2024, "doy": 249, "initial_time": [5,25], "final_time": [5,25], "aux_index": [ 23, null]},
49 {"year": 2024, "doy": 249, "initial_time": [5,30], "final_time": [5,30], "aux_index": [ 18, 37]},
50 {"year": 2024, "doy": 249, "initial_time": [5,35], "final_time": [5,40], "aux_index": [ 18, 34]},
51 {"year": 2024, "doy": 249, "initial_time": [5,45], "final_time": [5,45], "aux_index": [ 20, 30]},
52 {"year": 2024, "doy": 249, "initial_time": [6,5], "final_time": [6,5], "aux_index": [ 24, null]},
53 {"year": 2024, "doy": 249, "initial_time": [10,5], "final_time": [10,5], "aux_index": [ null, null]},
54 {"year": 2024, "doy": 249, "initial_time": [6,10], "final_time": [6,10], "aux_index": [ 29, null]},
55 {"year": 2024, "doy": 249, "initial_time": [6,45], "final_time": [6,45], "aux_index": [ 21, null]},
56 {"year": 2024, "doy": 249, "initial_time": [5,0], "final_time": [20,0], "aux_index": [ null, 11]},
57 {"year": 2024, "doy": 249, "initial_time": [23,10], "final_time": [23,59], "aux_index": [ null, 11]},
58 {"year": 2024, "doy": 250, "initial_time": [0,0], "final_time": [4,59], "aux_index": [ null, 13]},
59 {"year": 2024, "doy": 249, "initial_time": [5,0], "final_time": [8,50], "aux_index": [ null, 12]},
60 {"year": 2024, "doy": 250, "initial_time": [0,0], "final_time": [3,35], "aux_index": [ null, 23]},
61 {"year": 2024, "doy": 250, "initial_time": [0,0], "final_time": [0,55], "aux_index": [ null, null]},
62 {"year": 2024, "doy": 249, "initial_time": [7,15], "final_time": [7,15], "aux_index": [ null, 14]},
63 {"year": 2024, "doy": 250, "initial_time": [3,15], "final_time": [3,35], "aux_index": [ 46, null]},
64 {"year": 2024, "doy": 250, "initial_time": [3,25], "final_time": [3,25], "aux_index": [ null, 30]},
65 {"year": 2024, "doy": 250, "initial_time": [3,30], "final_time": [3,30], "aux_index": [ null, 32]},
66 {"year": 2024, "doy": 250, "initial_time": [3,35], "final_time": [3,35], "aux_index": [ null, 34]},
67 {"year": 2024, "doy": 250, "initial_time": [3,40], "final_time": [3,40], "aux_index": [ 21, 38]},
68 {"year": 2024, "doy": 250, "initial_time": [3,45], "final_time": [3,45], "aux_index": [ 22, 37]},
69 {"year": 2024, "doy": 250, "initial_time": [1,35], "final_time": [1,35], "aux_index": [ 36, null]},
70 {"year": 2024, "doy": 250, "initial_time": [1,40], "final_time": [1,40], "aux_index": [ 32, null]},
71 {"year": 2024, "doy": 250, "initial_time": [1,45], "final_time": [1,45], "aux_index": [ 31, null]},
72 {"year": 2024, "doy": 250, "initial_time": [2,30], "final_time": [2,30], "aux_index": [ 30, null]},
73 {"year": 2024, "doy": 250, "initial_time": [2,35], "final_time": [2,35], "aux_index": [ 33, null]},
74 {"year": 2024, "doy": 250, "initial_time": [2,40], "final_time": [2,40], "aux_index": [ 27, null]},
75
76 {"year": 2024, "doy": 251, "initial_time": [3,0], "final_time": [3,45], "aux_index": [ null, null]},
77 {"year": 2024, "doy": 251, "initial_time": [0,30], "final_time": [0,45], "aux_index": [ null, null]},
78
79 {"year": 2024, "doy": 250, "initial_time": [5,0], "final_time": [5,0], "aux_index": [ 20, 41]},
80 {"year": 2024, "doy": 250, "initial_time": [5,5], "final_time": [5,10], "aux_index": [ 24, 37]},
81 {"year": 2024, "doy": 250, "initial_time": [5,20], "final_time": [5,25], "aux_index": [ 23, 39]},
82 {"year": 2024, "doy": 250, "initial_time": [5,30], "final_time": [5,30], "aux_index": [ 19, null]},
83 {"year": 2024, "doy": 250, "initial_time": [6,5], "final_time": [6,5], "aux_index": [ 24, null]},
84 {"year": 2024, "doy": 250, "initial_time": [6,10], "final_time": [6,10], "aux_index": [ 20, 41]},
85 {"year": 2024, "doy": 250, "initial_time": [6,15], "final_time": [6,15], "aux_index": [ 20, 39]},
86 {"year": 2024, "doy": 250, "initial_time": [6,20], "final_time": [6,20], "aux_index": [ 20, 37]},
87 {"year": 2024, "doy": 250, "initial_time": [6,25], "final_time": [6,25], "aux_index": [ 21, 29]},
88 {"year": 2024, "doy": 250, "initial_time": [6,30], "final_time": [6,30], "aux_index": [ 22, 29]},
89 {"year": 2024, "doy": 250, "initial_time": [6,45], "final_time": [6,45], "aux_index": [ 20, null]},
90 {"year": 2024, "doy": 250, "initial_time": [6,50], "final_time": [6,50], "aux_index": [ 19, 38]},
91 {"year": 2024, "doy": 250, "initial_time": [6,55], "final_time": [6,55], "aux_index": [ 23, 42]},
92 {"year": 2024, "doy": 250, "initial_time": [7,0], "final_time": [7,0], "aux_index": [ 20, null]},
93 {"year": 2024, "doy": 250, "initial_time": [7,5], "final_time": [7,5], "aux_index": [ 23, 40]},
94 {"year": 2024, "doy": 250, "initial_time": [7,10], "final_time": [7,10], "aux_index": [ 23, 42]},
95 {"year": 2024, "doy": 250, "initial_time": [7,15], "final_time": [7,15], "aux_index": [ 25, 37]},
96 {"year": 2024, "doy": 250, "initial_time": [7,30], "final_time": [7,30], "aux_index": [ 25, 40]},
97 {"year": 2024, "doy": 250, "initial_time": [7,35], "final_time": [7,35], "aux_index": [ 25, 39]},
98 {"year": 2024, "doy": 250, "initial_time": [7,40], "final_time": [7,40], "aux_index": [ 23, 41]},
99 {"year": 2024, "doy": 250, "initial_time": [7,45], "final_time": [7,45], "aux_index": [ 27, 38]},
100 {"year": 2024, "doy": 250, "initial_time": [23,10], "final_time": [23,59], "aux_index": [ null, 12]},
101 {"year": 2024, "doy": 251, "initial_time": [0,0], "final_time": [4,59], "aux_index": [ null, 13]},
102 {"year": 2024, "doy": 250, "initial_time": [5,0], "final_time": [8,10], "aux_index": [ null, 12]},
103 {"year": 2024, "doy": 250, "initial_time": [9,10], "final_time": [10,50], "aux_index": [ null, 12]},
104 {"year": 2024, "doy": 251, "initial_time": [0,0], "final_time": [3,30], "aux_index": [ null, 27]},
105 {"year": 2024, "doy": 250, "initial_time": [19,30], "final_time": [19,30], "aux_index": [ 19, 26]},
106 {"year": 2024, "doy": 250, "initial_time": [10,50], "final_time": [13,20], "aux_index": [ null, 12]},
107
108
109 {"year": 2024, "doy": 251, "initial_time": [5,0], "final_time": [5,0], "aux_index": [ 23, 40]},
110 {"year": 2024, "doy": 251, "initial_time": [5,5], "final_time": [5,10], "aux_index": [ 25, 40]},
111 {"year": 2024, "doy": 251, "initial_time": [17,30], "final_time": [20,30], "aux_index": [ 56, null]},
112 {"year": 2024, "doy": 251, "initial_time": [5,0], "final_time": [8,10], "aux_index": [ null, 12]},
113 {"year": 2024, "doy": 251, "initial_time": [5,0], "final_time": [20,0], "aux_index": [ null, 11]},
114 {"year": 2024, "doy": 251, "initial_time": [19,50], "final_time": [19,50], "aux_index": [ null, null]},
115 {"year": 2024, "doy": 252, "initial_time": [0,30], "final_time": [0,55], "aux_index": [ null, null]},
116 {"year": 2024, "doy": 252, "initial_time": [0,55], "final_time": [1,0], "aux_index": [ null, 40]},
117 {"year": 2024, "doy": 252, "initial_time": [1,0], "final_time": [1,15], "aux_index": [ null, 34]},
118 {"year": 2024, "doy": 252, "initial_time": [0,30], "final_time": [0,55], "aux_index": [ null, null]},
119 {"year": 2024, "doy": 252, "initial_time": [1,35], "final_time": [1,55], "aux_index": [ null, null]},
120 {"year": 2024, "doy": 251, "initial_time": [23,10], "final_time": [23,59], "aux_index": [ null, 20]},
121 {"year": 2024, "doy": 252, "initial_time": [0,0], "final_time": [5,0], "aux_index": [ null, 12]},
122 {"year": 2024, "doy": 252, "initial_time": [0,0], "final_time": [1,50], "aux_index": [ null, 31]},
123 {"year": 2024, "doy": 252, "initial_time": [3,20], "final_time": [3,25], "aux_index": [ 22, null]},
124 {"year": 2024, "doy": 252, "initial_time": [3,30], "final_time": [3,35], "aux_index": [ 23, null]},
125 {"year": 2024, "doy": 252, "initial_time": [3,50], "final_time": [3,50], "aux_index": [ 22, null]},
126 {"year": 2024, "doy": 252, "initial_time": [3,55], "final_time": [4,5], "aux_index": [ 21, null]},
127 {"year": 2024, "doy": 252, "initial_time": [4,10], "final_time": [4,10], "aux_index": [ 21, 36]},
128
129 {"year": 2024, "doy": 252, "initial_time": [5,0], "final_time": [20,0], "aux_index": [ null, 12]},
130 {"year": 2024, "doy": 252, "initial_time": [13,0], "final_time": [13,0], "aux_index": [ null, null]},
131 {"year": 2024, "doy": 252, "initial_time": [5,15], "final_time": [5,20], "aux_index": [ 23, null]},
132 {"year": 2024, "doy": 252, "initial_time": [5,25], "final_time": [5,25], "aux_index": [ 27, 36]},
133 {"year": 2024, "doy": 252, "initial_time": [5,30], "final_time": [5,30], "aux_index": [ 27, null]},
134 {"year": 2024, "doy": 252, "initial_time": [5,35], "final_time": [5,35], "aux_index": [ 31, null]},
135 {"year": 2024, "doy": 252, "initial_time": [5,20], "final_time": [5,40], "aux_index": [ 33, null]},
136 {"year": 2024, "doy": 252, "initial_time": [7,5], "final_time": [7,5], "aux_index": [ 21, null]},
137 {"year": 2024, "doy": 252, "initial_time": [7,10], "final_time": [7,10], "aux_index": [ 23, null]}
138
139
140 ]}
141
@@ -0,0 +1,447
1 {"conditions": [
2
3 {"year": 2022, "doy": 104,
4 "time": [[5,32]],
5 "cf": "dataOut.cflast[0]"},
6
7 {"year": 2022, "doy": 93,
8 "time": [ [0,12] ],
9 "cf": "dataOut.cflast[0]"},
10
11 {"year": 2022, "doy": 242,
12 "time": [[0,22],[0,54],[1,48]],
13 "cf": "dataOut.cflast[0]"},
14
15 {"year": 2022, "doy": 243,
16 "time": [[1,23],[1,44]],
17 "cf": "dataOut.cflast[0]"},
18
19 {"year": 2023, "doy": 28,
20 "time": [[7,18],[7,40],[7,50]],
21 "cf": 0.029844088},
22
23 {"year": 2023, "doy": 28,
24 "time": [[0,12],[0,22]],
25 "cf": "dataOut.cflast[0]"},
26
27 {"year": 2023, "doy": 29,
28 "time": [[7,8],[7,40],[7,50],[8,1],[9,48],[9,58]],
29 "cf": "dataOut.cflast[0]"},
30
31 {"year": 2023, "doy": 29,
32 "time": [[7,29]],
33 "cf": 0.025670702},
34
35 {"year": 2023, "doy": 29,
36 "time": [ [8,12] ],
37 "cf": 0.036969288},
38
39 {"year": 2023, "doy": 29,
40 "time": [ [8,22] ],
41 "cf": 0.0418645},
42
43 {"year": 2023, "doy": 30,
44 "time": [[5,10],[5,42],[0,22],[0,33]],
45 "cf": 0.0068},
46
47 {"year": 2023, "doy": 172,
48 "time": [ [5,10] ],
49 "cf": 0.0068},
50
51 {"year": 2023, "doy": 175,
52 "time": [[5,21],[8,44],[9,5],[8,54],[8,33],[8,22],[8,1],[7,50],[7,40],[7,8],[6,4],[5,53],[10,9],[6,36],[10,30],[9,26],[9,37],[9,48] ],
53 "cf": 0.0068},
54
55 {"year": 2023, "doy": 191,
56 "time": [[1,43],[1,48],[1,54]],
57 "cf": 0.0068},
58
59 {"year": 2023, "doy": 247,
60 "time": [ [23,50] ],
61 "cf": 0.0068},
62
63 {"year": 2023, "doy": 247,
64 "time": [[0,40]],
65 "cf": 0.00145},
66
67 {"year": 2023, "doy": 248,
68 "time": [ [23,50],[0,0],[7,30],[8,30],[8,40],[8,50],[9,10],[9,20],[9,50]],
69 "cf": 0.00145},
70
71 {"year": 2023, "doy": 250,
72 "time": [ [7,30],[8,20]],
73 "cf": 0.00145},
74
75 {"year": 2023, "doy": 269,
76 "time": [ [7,0],[7,20],[7,30],[8,30],[8,40],[8,50],[9,0],[9,10],[9,30],[10,0],[10,10]],
77 "cf": 0.00145},
78
79 {"year": 2023,"doy": 265,
80 "time": [[9, 40],[10, 30],[12, 10],[23, 40]],
81 "cf": 0.00145},
82
83 {"year": 2023,"doy": 266,
84 "time": [[6, 10],[6, 50],[7, 10],[8, 10],[9, 20],[9, 40],[11, 40],[23, 50],[2, 30]],
85 "cf": 0.00145},
86
87 {"year": 2023,"doy": 267,
88 "time": [[7, 10],[8, 20],[8, 40],[9, 0],[10, 0],[6, 0],[23, 0],[0, 10]],
89 "cf": 0.00145},
90
91 {"year": 2023,"doy": 268,
92 "time": [[7, 0],[8, 0],[9, 0],[10, 30],[23, 30],[23, 40],[0, 0]],
93 "cf": 0.00145},
94
95 {"year": 2023,"doy": 265,
96 "time": [[2, 50]],
97 "cf": 0.00145},
98
99 {"year": 2023,"doy": 269,
100 "time": [[10, 20],[10, 30],[10, 40]],
101 "cf": 0.0018814794},
102
103 {"year": 2023,"doy": 269,
104 "time": [[11, 0]],
105 "cf": 0.0016059145},
106
107 {"year": 2023,"doy": 249,
108 "time": [[3, 40]],
109 "cf": 0.0061},
110
111 {"year": 2023,"doy": 249,
112 "time": [[4, 10]],
113 "cf": 0.0065},
114
115 {"year": 2023, "doy": 191,
116 "time": [[1, 38],[23, 56],[0, 2],[0, 44]],
117 "cf": 0.00033544924},
118
119 {"year": 2023, "doy": 191,
120 "time": [[23, 56]],
121 "cf": 0.000311806775},
122
123 {"year": 2023, "doy": 191,
124 "time": [[0, 2]],
125 "cf": 0.0003127},
126
127 {"year": 2023, "doy": 191,
128 "time": [[0, 44]],
129 "cf": 0.000314039645},
130
131 {"year": 2023,"doy": 31,
132 "time": [ [0, 22],[0, 33]],
133 "cf": 0.008},
134
135 {"year": 2023,"doy": 32,
136 "time": [[7, 29]],
137 "cf": 0.0077},
138
139 {"year": 2023,"doy": 50,
140 "time": [[6, 0]],
141 "cf": 0.008},
142
143 {"year": 2023,"doy": 50,
144 "time": [ [7, 20] ],
145 "cf": 0.0077},
146
147 {"year": 2023,"doy": 50,
148 "time": [ [11, 10]],
149 "cf": 0.014},
150
151 {"year": 2023, "doy": 50,
152 "time": [[11, 20]],
153 "cf": 0.010},
154
155 {"year": 2023, "doy": 50,
156 "time": [[10, 30]],
157 "cf": 0.012},
158
159 {"year": 2023,"doy": 50,
160 "time": [[10, 40]],
161 "cf": 0.014},
162
163 {"year": 2023,"doy": 50,
164 "time": [[5, 10]],
165 "cf": 0.01},
166
167 {"year": 2024,"doy": 50,
168 "time": [ [7, 10],[8, 0],[8, 10],[8, 50],[9, 10],[9, 40],[10, 20] ],
169 "cf": "dataOut.cflast[0]"},
170
171 {"year": 2024,"doy": 46,
172 "time": [[3, 35]],
173 "cf": 0.007},
174
175 {"year": 2024,"doy": 46,
176 "time": [[4, 25],[3, 55]],
177 "cf": 0.0045},
178
179 {"year": 2024,"doy": 46,
180 "time": [[4, 45]],
181 "cf": 0.007},
182
183 {"year": 2024,"doy": 47,
184 "time": [[11, 10]],
185 "cf": 0.015},
186
187 {"year": 2024, "doy": 47,
188 "time": [[3, 50]],
189 "cf": 0.005},
190
191 {"year": 2024,"doy": 47,
192 "time": [[7, 20],[9, 10],[10, 10],[11, 0],[1, 10],[4, 0], [4, 20]],
193 "cf": "dataOut.cflast[0]"},
194
195 {"year": 2024,"doy": 49,
196 "time": [[5, 30]],
197 "cf": 0.004},
198
199 {"year": 2024,"doy": 49,
200 "time": [[7, 20]],
201 "cf": 0.006},
202
203 {"year": 2024,"doy": 49,
204 "time": [[7, 30]],
205 "cf": 0.009},
206
207 {"year": 2024,"doy": 49,
208 "time": [[7, 40]],
209 "cf": 0.010},
210
211 {"year": 2024,"doy": 49,
212 "time": [ [9, 10]],
213 "cf": 0.007},
214
215 {"year": 2024,"doy": 49,
216 "time": [ [9, 20]],
217 "cf": 0.009},
218
219 {"year": 2024,"doy": 49,
220 "time": [ [9, 40] ],
221 "cf": 0.012},
222
223 {"year": 2024, "doy": 49,
224 "time": [[3, 0], [3, 50]],
225 "cf": 0.0054},
226
227 {"year": 2024,"doy": 48,
228 "time": [ [6, 10]],
229 "cf": 0.007},
230
231 {"year": 2024,"doy": 48,
232 "time": [[6, 20]],
233 "cf": 0.009 },
234
235 {"year": 2024,"doy": 48,
236 "time": [[9, 40]],
237 "cf": 0.015},
238
239 {"year": 2024,"doy": 49,
240 "time": [[6, 0],[8, 50],[9, 0],[9, 30],[10, 0],[11, 0],[13, 50],[14, 0],[16, 0],[16, 20],[16, 50],
241 [17, 10],[17, 50],[19, 0],[19, 20]],
242 "cf": "dataOut.cflast[0]"},
243
244 {"year": 2024, "doy": 48,
245 "time": [[7, 50],[8, 10],[8, 20],[8, 50],[9, 30],[9, 50],[10, 0],[11, 0]],
246 "cf": "dataOut.cflast[0]"},
247
248 {"year": 2024,
249 "doy": 46,
250 "time": [[18, 15],[17, 55],[17, 35],[17, 25],[17, 5],[16, 25],[16, 45],[3, 5],[3, 25],[14, 15],[15, 45],[16, 25],
251 [18, 5]],
252 "cf": "dataOut.cflast[0]"},
253
254 {"year": 2024,"doy": 83,
255 "time": [[6, 20],[6, 30]],
256 "cf": 0.07},
257
258 {"year": 2024,"doy": 83,
259 "time": [ [5, 40]],
260 "cf": 0.05},
261
262 {"year": 2024,"doy": 83,
263 "time": [ [5, 10]],
264 "cf": 0.039},
265
266 {"year": 2024,"doy": 83,
267 "time": [[7, 40]],
268 "cf": 0.08},
269
270 {"year": 2024,"doy": 83,
271 "time": [[8, 10],[8, 20],[8, 50]],
272 "cf": 0.075},
273
274 {"year": 2024,"doy": 82,
275 "time": [[10, 50]],
276 "cf": 0.095},
277
278 {"year": 2024,"doy": 81,
279 "time": [ [11, 0]],
280 "cf": 0.10},
281
282 {"year": 2024,"doy": 81,
283 "time": [[9, 10]],
284 "cf": 0.08},
285
286 {"year": 2024,"doy": 82,
287 "time": [[10, 40],[11, 0]],
288 "cf": "dataOut.cflast[0]"},
289
290 {"year": 2024,"doy": 81,
291 "time": [[9, 0],[9, 20],[9, 30],[10, 50]],
292 "cf": "dataOut.cflast[0]"},
293
294 {"year": 2024,"doy": 80,
295 "time": [[3, 10]],
296 "cf": 0.09},
297
298 {"year": 2024,"doy": 80,
299 "time": [[10, 20],[10, 30],[10, 40]],
300 "cf": 0.09},
301
302 {"year": 2024,"doy": 80,
303 "time": [[9, 10]],
304 "cf": "dataOut.cflast[0]"},
305
306 {"year": 2024,"doy": 79,
307 "time": [[3, 10]],
308 "cf": 0.065},
309
310 {"year": 2024,"doy": 79,
311 "time": [[3, 20]],
312 "cf": 0.05},
313
314 {"year": 2024,"doy": 136,
315 "time": [[8, 40]],
316 "cf": 0.006},
317
318 {"year": 2024,"doy": 136,
319 "time": [[8, 45],[8, 50]],
320 "cf": 0.008},
321
322 {"year": 2024,"doy": 136,
323 "time": [[3, 20],[6, 0], [6, 35],[7, 0],[7, 15],[7, 25],[7, 35],[7, 40],[7, 45],[7, 55], [8, 0],[8, 5],[8, 15],
324 [8, 20],[8, 25],[10, 54], [10, 35],[10, 15],[9, 45],[9, 50],[9, 10],[9, 0],[8, 30],[8, 35],[8, 40]],
325 "cf": "dataOut.cflast[0]"},
326
327 {"year": 2024,"doy": 137,
328 "time": [[8, 20]],
329 "cf": 0.008},
330
331 {"year": 2024,"doy": 137,
332 "time": [[10, 55],[11, 0],[11, 5]],
333 "cf": 0.009},
334
335 {"year": 2024,"doy": 137,
336 "time": [[18, 0],[6, 30],[6, 45], [6, 50],[6, 55], [7, 0], [7, 5],[7, 25],[7, 30],[7, 35], [7, 40],[8, 30],[8, 35],[8, 40],[8, 45],[9, 0],[9, 5],[9, 20],[9, 25],[9, 40],[9, 45], [9, 55],[10, 15],[10, 20],[10, 35],[10, 40],[10, 45],[10, 50], [3, 5],[3, 35]],
337 "cf": "dataOut.cflast[0]"},
338
339 {"year": 2024,"doy": 138,
340 "time": [[6, 40],[7, 20],[7, 30],[7, 40],[8, 0],[8, 10],[8, 40],[8, 50],[9, 0],[10, 25],[9, 20]],
341 "cf": "dataOut.cflast[0]"},
342
343 {"year": 2024,"doy": 138,
344 "time": [[6, 40],[7, 20],[7, 30],[7, 40],[8, 0],[8, 10],[8, 40],[8, 50],[9, 0],[10, 25],[9, 20]],
345 "cf": "dataOut.cflast[0]"},
346
347 {"year": 2024,"doy": 247,
348 "time": [[3, 0]],
349 "cf": "dataOut.cflast[0]"},
350
351 {"year": 2024,"doy": 247,
352 "time": [[5, 0]],
353 "cf": 0.053966524},
354 {"year": 2024,"doy": 247,
355 "time": [[5,10]],
356 "cf": "dataOut.cflast[0]"},
357 {"year": 2024,"doy": 247,
358 "time": [[5, 15]],
359 "cf": 0.059666524},
360 {"year": 2024,"doy": 247,
361 "time": [[5,20],[5,30]],
362 "cf": 0.040966524},
363 {"year": 2024,"doy": 247,
364 "time": [[5, 25]],
365 "cf": 0.03596652528643608},
366 {"year": 2024,"doy": 248,
367 "time": [[2,50],[3,55],[4,0]],
368 "cf": "dataOut.cflast[0]"},
369
370
371
372 {"year": 2024,"doy": 248,
373 "time": [[5,20]],
374 "cf": 0.045663008},
375 {"year": 2024,"doy": 248,
376 "time": [[5,25],[5,30]],
377 "cf": "dataOut.cflast[0]"},
378 {"year": 2024,"doy": 248,
379 "time": [[7,20],[7,25],[7,30]],
380 "cf": "dataOut.cflast[0]"},
381 {"year": 2024,"doy": 249,
382 "time": [[2,50],[2,55],[3,0],[3,5]],
383 "cf": "dataOut.cflast[0]"},
384 {"year": 2024,"doy": 249,
385 "time": [[4,0]],
386 "cf": "dataOut.cflast[0]"},
387 {"year": 2024,"doy": 249,
388 "time": [[4,5],[4,10],[4,15]],
389 "cf": 0.065577441},
390
391 {"year": 2024,"doy": 249,
392 "time": [[6,5]],
393 "cf": 0.061539818},
394 {"year": 2024,"doy": 249,
395 "time": [[6,15],[6,10],[5,30],[5,35],[5,40]],
396 "cf": "dataOut.cflast[0]"},
397 {"year": 2024,"doy": 249,
398 "time": [[6,25],[6,35]],
399 "cf": 0.05969038},
400 {"year": 2024,"doy": 250,
401 "time": [[3,35],[3,40]],
402 "cf": 0.05990294},
403 {"year": 2024,"doy": 250,
404 "time": [[1,35]],
405 "cf": 0.114037849},
406 {"year": 2024,"doy": 250,
407 "time": [[1,40],[1,45],[3,5]],
408 "cf": "dataOut.cflast[0]"},
409 {"year": 2024,"doy": 250,
410 "time": [[2,25],[2,35],[2,40]],
411 "cf": 0.070415773},
412 {"year": 2024,"doy": 250,
413 "time": [[2,30]],
414 "cf": 0.075415773},
415 {"year": 2024,"doy": 250,
416 "time": [[3,10],[3,15],[3,20]],
417 "cf": 0.054},
418 {"year": 2024,"doy": 250,
419 "time": [[3,10],[3,15],[3,20]],
420 "cf": 0.051},
421
422 {"year": 2024,"doy": 250,
423 "time": [[8,55],[10,10]],
424 "cf": "dataOut.cflast[0]"},
425 {"year": 2024,"doy": 250,
426 "time": [[17,20]],
427 "cf": 0.06680701},
428 {"year": 2024,"doy": 250,
429 "time": [[19,45]],
430 "cf": 0.08189132},
431 {"year": 2024,"doy": 250,
432 "time": [[19,35]],
433 "cf": 0.07800701},
434 {"year": 2024,"doy": 250,
435 "time": [[19,40],[19,30]],
436 "cf": 0.078559131},
437
438 {"year": 2024,"doy": 252,
439 "time": [[3,15],[3,20],[3,25],[3,30],[3,35],[3,50],[3,55],[4,0],[4,5],[4,10],[4,15]],
440 "cf": "dataOut.cflast[0]"},
441
442 {"year": 2024,"doy": 252,
443 "time": [[7,5]],
444 "cf": "dataOut.cflast[0]"}
445
446
447 ]}
@@ -14,7 +14,7 from threading import Thread
14 14 from multiprocessing import Process, Queue
15 15 from schainpy.utils import log
16 16
17 QUEUE_SIZE = int(os.environ.get('QUEUE_MAX_SIZE', '10'))
17 QUEUE_SIZE = int(os.environ.get('QUEUE_MAX_SIZE', '100'))
18 18
19 19 class ProcessingUnit(object):
20 20 '''
@@ -1827,7 +1827,7 class Oblique_Gauss_Fit(Operation):
1827 1827 #print("After data_snr: ", dataOut.data_snr)
1828 1828 dataOut.mode = mode
1829 1829 dataOut.flagNoData = numpy.all(numpy.isnan(dataOut.Dop_EEJ_T1)) #Si todos los valores son NaN no se prosigue
1830 ###dataOut.flagNoData = False #Descomentar solo para ploteo sino mantener comentado (para guardado)
1830 dataOut.flagNoData = False #Descomentar solo para ploteo sino mantener comentado (para guardado)
1831 1831
1832 1832 return dataOut
1833 1833
@@ -7191,6 +7191,7 class IGRFModel(Operation):
7191 7191
7192 7192 #dataOut.TimeBlockSeconds_First_Time=time.mktime(time.strptime(dataOut.TimeBlockDate))
7193 7193 #### we do not use dataOut.datatime.ctime() because it's the time of the second (next) block
7194 dataOut.TimeBlockSeconds = 1727848800.0
7194 7195 dataOut.TimeBlockSeconds_First_Time=dataOut.TimeBlockSeconds
7195 7196 dataOut.bd_time=time.gmtime(dataOut.TimeBlockSeconds_First_Time)
7196 7197 dataOut.year=dataOut.bd_time.tm_year+(dataOut.bd_time.tm_yday-1)/364.0
@@ -7199,6 +7200,7 class IGRFModel(Operation):
7199 7200 self.aux=0
7200 7201 dh = dataOut.heightList[1]-dataOut.heightList[0]
7201 7202 #dataOut.h=numpy.arange(0.0,15.0*dataOut.MAXNRANGENDT,15.0,dtype='float32')
7203 dataOut.MAXNRANGENDT = dataOut.nHeights
7202 7204 dataOut.h=numpy.arange(0.0,dh*dataOut.MAXNRANGENDT,dh,dtype='float32')
7203 7205 dataOut.bfm=numpy.zeros(dataOut.MAXNRANGENDT,dtype='float32')
7204 7206 dataOut.bfm=numpy.array(dataOut.bfm,order='F')
@@ -7210,10 +7212,12 class IGRFModel(Operation):
7210 7212 #print("**** mkfact WRAPPER ***** ",mkfact_short_2020.mkfact.__doc__ )
7211 7213 #print("IDs: ", id(dataOut.bki))
7212 7214 #print("bki shape: ", numpy.shape(dataOut.bki),numpy.shape(dataOut.h),dataOut.year)
7213
7215 print(dataOut.year,dataOut.h,dataOut.bfm,dataOut.thb,dataOut.bki,dataOut.MAXNRANGENDT)
7214 7216 mkfact_short_2020_2.mkfact(dataOut.year,dataOut.h,dataOut.bfm,dataOut.thb,dataOut.bki,dataOut.MAXNRANGENDT)
7215 7217
7216 7218 #mkfact_short_2020.mkfact(dataOut.year,dataOut.h,dataOut.bfm,dataOut.thb,dataOut.bki,dataOut.MAXNRANGENDT)
7219
7220 print("bki: ", dataOut.bki)
7217 7221 #print("bki: ", dataOut.bki[:10])
7218 7222 #print("thb: ", dataOut.thb[:10])
7219 7223 #print("bfm: ", dataOut.bfm[:10])
This diff has been collapsed as it changes many lines, (1700 lines changed) Show them Hide them
@@ -12,6 +12,8 import time
12 12 import itertools
13 13
14 14 import numpy
15 import matplotlib.pyplot as plt
16 import datetime
15 17
16 18 from schainpy.model.proc.jroproc_base import ProcessingUnit, MPDecorator, Operation
17 19 from schainpy.model.data.jrodata import Spectra
@@ -22,7 +24,7 from schainpy.model.data import _HS_algorithm
22 24 from schainpy.model.proc.jroproc_voltage import CleanCohEchoes
23 25
24 26 from time import time, mktime, strptime, gmtime, ctime
25
27 from scipy.stats import norm
26 28
27 29 class SpectraLagProc(ProcessingUnit):
28 30 '''
@@ -34,15 +36,24 class SpectraLagProc(ProcessingUnit):
34 36
35 37 self.buffer = None
36 38 self.buffer_Lag = None
37 self.firstdatatime = None
38 self.profIndex = 0
39 self.firstdatatime = None # Tracks the time of the first data entry.
40 self.profIndex = 0 # Profile Index
39 41 self.dataOut = Spectra()
40 42 self.id_min = None
41 43 self.id_max = None
42 44 self.setupReq = False #Agregar a todas las unidades de proc
45 # DataIn: Voltage raw data
46 # DataOut: Spectra data
43 47
44 48 def __updateSpecFromVoltage(self):
45 49
50 '''
51 Assign all the metadata of dataIn (Voltage data) to dataOut (Spectra Data)
52
53 Metadata dataIn -> Metadata dataOut
54
55 '''
56
46 57 self.dataOut.timeZone = self.dataIn.timeZone
47 58 self.dataOut.dstFlag = self.dataIn.dstFlag
48 59 self.dataOut.errorCount = self.dataIn.errorCount
@@ -82,6 +93,9 class SpectraLagProc(ProcessingUnit):
82 93 """
83 94 Convierte valores de Voltaje a Spectra
84 95
96 Returns:
97 Self-spectra, Cross-spectra, DC
98
85 99 Affected:
86 100 self.dataOut.data_spc
87 101 self.dataOut.data_cspc
@@ -91,15 +105,14 class SpectraLagProc(ProcessingUnit):
91 105 self.buffer
92 106 self.dataOut.flagNoData
93 107 """
94 #print(self.buffer[1,:,0])
95 #exit(1)
96 #print("buffer shape",self.buffer.shape)
108
97 109 fft_volt = numpy.fft.fft(
98 110 self.buffer, n=self.dataOut.nFFTPoints, axis=1)
99 111 fft_volt = fft_volt.astype(numpy.dtype('complex'))
100 112 dc = fft_volt[:, 0, :]
101 113
102 # calculo de self-spectra
114 ### Calculate self-spectra
115 # Reorder the frequency distribution to set 0 at center
103 116 fft_volt = numpy.fft.fftshift(fft_volt, axes = (1,))
104 117 spc = fft_volt * numpy.conjugate(fft_volt)
105 118 spc = spc.real
@@ -111,11 +124,11 class SpectraLagProc(ProcessingUnit):
111 124 cspc = None
112 125 pairIndex = 0
113 126 if self.dataOut.pairsList != None:
114 # calculo de cross-spectra
115 #print("HERE")
127 # Calculate cross-spectra
116 128 cspc = numpy.zeros(
117 129 (self.dataOut.nPairs, self.dataOut.nFFTPoints, self.dataOut.nHeights), dtype='complex')
118 130 for pair in self.dataOut.pairsList:
131 # Check if channel of pairs are in the channellist
119 132 if pair[0] not in self.dataOut.channelList:
120 133 raise ValueError("Error getting CrossSpectra: pair 0 of %s is not in channelList = %s" % (
121 134 str(pair), str(self.dataOut.channelList)))
@@ -157,26 +170,30 class SpectraLagProc(ProcessingUnit):
157 170 self.dataIn.nHeights),
158 171 dtype='complex')
159 172
160 if self.dataIn.flagDataAsBlock:
161 nVoltProfiles = self.dataIn.data.shape[1]
173 # Usually FFTPoints should be equal to nProfiles N = L
174 # So, Buffer dimensions [channels (2), FFTPoints (24), Heights (99)]
175
176 ### Sets the .buffer and .profIndex
177 if self.dataIn.flagDataAsBlock: # Data was readed as block of [channel, profile, height]
178 nVoltProfiles = self.dataIn.data.shape[1] # number of profiles
162 179
163 if nVoltProfiles == nProfiles:
180 #Comparison of FFT points (nProfiles) with sample points (vVoltProfiles)
181 if nVoltProfiles == nProfiles: #even-DFT case
164 182 self.buffer = self.dataIn.data.copy()
165 183 self.profIndex = nVoltProfiles
166 184
167 elif nVoltProfiles < nProfiles:
168
185 elif nVoltProfiles < nProfiles: # Frequency Interpolation case (most common)
169 186 if self.profIndex == 0:
170 187 self.id_min = 0
171 188 self.id_max = nVoltProfiles
172 189
173 190 self.buffer[:, self.id_min:self.id_max,
174 :] = self.dataIn.data
175
191 :] = self.dataIn.data # Coppy only the profiles of voltage, VoltProfiles = FFT Point
176 192 self.profIndex += nVoltProfiles
177 193 self.id_min += nVoltProfiles
178 194 self.id_max += nVoltProfiles
179 195 else:
196
180 197 raise ValueError("The type object %s has %d profiles, it should just has %d profiles" % (
181 198 self.dataIn.type, self.dataIn.data.shape[1], nProfiles))
182 199 self.dataOut.flagNoData = True
@@ -187,19 +204,19 class SpectraLagProc(ProcessingUnit):
187 204 if self.firstdatatime == None:
188 205 self.firstdatatime = self.dataIn.utctime
189 206
190 if self.profIndex == nProfiles:
191 self.__updateSpecFromVoltage()
207 if self.profIndex == nProfiles: # Num of profiles considered are correct
208 self.__updateSpecFromVoltage() # Assign all the metadata of dataIn (Voltage data) to dataOut (Spectra Data)
209 # Create List of pairs between channels: e.g. (0,1) (1,0)
192 210 if pairsList == None:
193 211 self.dataOut.pairsList = [pair for pair in itertools.combinations(self.dataOut.channelList, 2)]
194 212 else:
195 213 self.dataOut.pairsList = pairsList
196 #print(self.dataOut.pairsList)
197 self.__getFft()
214
215 self.__getFft() # Calculate FFT
216
198 217 self.dataOut.flagNoData = False
199 218 self.firstdatatime = None
200 #print(self.profIndex)
201 219 self.profIndex = 0
202 #input()
203 220
204 221 '''
205 222 if not self.dataOut.ByLags:
@@ -268,20 +285,19 class SpectraLagProc(ProcessingUnit):
268 285
269 286
270 287 if i>0 and self.id_min is not None:
271
288 # Reboot the Indexs
272 289 self.profIndex -= self.dataIn.data.shape[1]
273 290 self.id_min -= self.dataIn.data.shape[1]
274 291 self.id_max -= self.dataIn.data.shape[1]
275 292
276 293 if self.profIndex>0 and self.id_min is not None:
277
294 # buffer <- bufferlag with lag i
278 295 self.buffer[:,:self.id_max-self.dataIn.data.shape[1],:]=self.buffer_Lag[:,:self.id_max-self.dataIn.data.shape[1],:,i]
279 296
297 # Voltage to Spectra
280 298 self.VoltageType(nFFTPoints,nProfiles,ippFactor,pairsList)
281 299
282
283 if self.id_min is not None:
284
300 if self.id_min is not None: # Could be eliminated?
285 301 self.buffer_Lag[:,self.id_min-self.dataIn.data.shape[1]:self.id_max-self.dataIn.data.shape[1],:,i]=self.buffer[:,self.id_min-self.dataIn.data.shape[1]:self.id_max-self.dataIn.data.shape[1],:]
286 302
287 303 if not self.dataOut.flagNoData:
@@ -290,23 +306,29 class SpectraLagProc(ProcessingUnit):
290 306 if i==self.dataOut.nLags-1:
291 307 self.profIndex=0
292 308 self.firstdatatime = None
309 # Add data for each lag to dataLag
293 310 self.dataOut.dataLag_spc.append(self.dataOut.data_spc)
294 311 self.dataOut.dataLag_cspc.append(self.dataOut.data_cspc)
295 312 self.dataOut.dataLag_dc.append(self.dataOut.data_dc)
296 313
297 314
298 315 if not self.dataOut.flagNoData:
316 #Convert Data to array
299 317 self.dataOut.dataLag_spc=numpy.array(self.dataOut.dataLag_spc)
300 318 self.dataOut.dataLag_cspc=numpy.array(self.dataOut.dataLag_cspc)
301 319 self.dataOut.dataLag_dc = numpy.array(self.dataOut.dataLag_dc)
320
321 # Return the shape of the data to[channel, profile, heigh, lag]
302 322 self.dataOut.dataLag_spc = self.dataOut.dataLag_spc.transpose(1, 2, 3, 0)
303 323 self.dataOut.dataLag_cspc=self.dataOut.dataLag_cspc.transpose(1,2,3,0)
304 324 self.dataOut.dataLag_dc = self.dataOut.dataLag_dc.transpose(1, 2, 0)
305 325
326 # Save the Lagdata into a copy with the channel select to be plotted
306 327 self.dataOut.data_spc=self.dataOut.dataLag_spc[:,:,:,self.dataOut.LagPlot]
307 328 self.dataOut.data_cspc=self.dataOut.dataLag_cspc[:,:,:,self.dataOut.LagPlot]
308 329 self.dataOut.data_dc=self.dataOut.dataLag_dc[:,:,self.dataOut.LagPlot]
309 330
331 # Copy metadata
310 332 self.dataOut.TimeBlockSeconds=self.dataIn.TimeBlockSeconds
311 333 self.dataOut.flagDataAsBlock=self.dataIn.flagDataAsBlock
312 334 try:
@@ -453,6 +475,7 class removeDCLagFlip(Operation):
453 475 ind_vel[list(range(0, 1))] = ind_vel[list(range(0, 1))] + self.num_prof
454 476
455 477 if mode == 1:
478 ''' DC correction is taked as an average of the first neighboords at w=0'''
456 479 jspectra[:, freq_dc, :] = (
457 480 jspectra[:, ind_vel[1], :] + jspectra[:, ind_vel[2], :]) / 2 # CORRECCION
458 481
@@ -462,6 +485,8 class removeDCLagFlip(Operation):
462 485
463 486 if mode == 2:
464 487
488 ''' '''
489
465 490 vel = numpy.array([-2, -1, 1, 2])
466 491 xx = numpy.zeros([4, 4])
467 492
@@ -472,8 +497,9 class removeDCLagFlip(Operation):
472 497 xx_aux = xx_inv[0, :]
473 498
474 499 for ich in range(num_chan):
500 ''' Flipped signal -> DC at most negative value '''
475 501 if ich in self.dataOut.FlipChannels:
476
502 ''' Flipped case.- DC at 0 index '''
477 503
478 504 ind_freq_flip=[-1, -2, 1, 2]
479 505
@@ -490,6 +516,7 class removeDCLagFlip(Operation):
490 516
491 517
492 518 else:
519 ''' Unflipped case.- DC at freq_dc (center) index '''
493 520 yy = jspectra[ich, ind_vel, :]
494 521 jspectra[ich, freq_dc, :] = numpy.dot(xx_aux, yy)
495 522
@@ -1111,6 +1138,10 class removeInterference(Operation):
1111 1138 class IntegrationFaradaySpectra(Operation):
1112 1139 '''
1113 1140 Written by R. Flores
1141
1142 spc: Spectra
1143 cspc: Cross Spectra
1144 dc: Direct Current
1114 1145 '''
1115 1146 __profIndex = 0
1116 1147 __withOverapping = False
@@ -1171,11 +1202,11 class IntegrationFaradaySpectra(Operation):
1171 1202 def putData(self, data_spc, data_cspc, data_dc):
1172 1203 """
1173 1204 Add a profile to the __buffer_spc and increase in one the __profileIndex
1174
1175 1205 """
1176 1206
1177 1207 self.__buffer_spc.append(data_spc)
1178 1208
1209
1179 1210 if data_cspc is None:
1180 1211 self.__buffer_cspc = None
1181 1212 else:
@@ -1190,8 +1221,7 class IntegrationFaradaySpectra(Operation):
1190 1221
1191 1222 return
1192 1223
1193 def hildebrand_sekhon_Integration(self,data,navg):
1194
1224 def hildebrand_sekhon_Integration_V2(self,data,navg):
1195 1225 sortdata = numpy.sort(data, axis=None)
1196 1226 sortID=data.argsort()
1197 1227 lenOfData = len(sortdata)
@@ -1206,1188 +1236,46 class IntegrationFaradaySpectra(Operation):
1206 1236 sump += sortdata[j]
1207 1237 sumq += sortdata[j]**2
1208 1238 if j > nums_min:
1209 rtest = float(j)/(j-1) + 1.0/navg
1210 if ((sumq*j) > (rtest*sump**2)):
1239 P = sump / j
1240 Q = sumq/j - P **2
1241 R2 = P**2/(Q*navg)
1242 if R2 < 1:
1211 1243 j = j - 1
1212 1244 sump = sump - sortdata[j]
1213 1245 sumq = sumq - sortdata[j]**2
1214 cont = 0
1215 j += 1
1216 #lnoise = sump / j
1217
1218 return j,sortID
1219
1220 def pushData(self):
1221 """
1222 Return the sum of the last profiles and the profiles used in the sum.
1223
1224 Affected:
1225
1226 self.__profileIndex
1227
1228 """
1229 bufferH=None
1230 buffer=None
1231 buffer1=None
1232 buffer_cspc=None
1233 self.__buffer_spc=numpy.array(self.__buffer_spc)
1234 self.__buffer_cspc=numpy.array(self.__buffer_cspc)
1235 freq_dc = int(self.__buffer_spc.shape[2] / 2)
1236 #print("FREQ_DC",freq_dc)
1237 #print(self.__buffer_spc[:,1,5,37,0])
1238 #lag_array=[0,2,4,6,8,10,12,14,16,18,20]
1239 for l in range(self.DPL):#dataOut.DPL):
1240 #breakFlag=False
1241 for k in range(7,self.nHeights):
1242 buffer_cspc=numpy.copy(self.__buffer_cspc[:,0,:,k,l])
1243 outliers_IDs_cspc=[]
1244 cspc_outliers_exist=False
1245 #indexmin_cspc=0
1246 for i in range(self.nChannels):#dataOut.nChannels):
1247 if i==1 and k >= self.nHeights-2*l:
1248 #breakFlag=True
1249 continue
1250 #pass
1251 else:
1252 buffer1=numpy.copy(self.__buffer_spc[:,i,:,k,l])
1253 indexes=[]
1254 #sortIDs=[]
1255 outliers_IDs=[]
1256 for j in range(self.nProfiles):
1257 if i==0 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 0
1258 continue
1259 if i==1 and j==0: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
1260 continue
1261 buffer=buffer1[:,j]
1262 #index,sortID=self.hildebrand_sekhon_Integration(buffer,1)
1263 index=int(_HS_algorithm.HS_algorithm(numpy.sort(buffer, axis=None),1))
1264 sortID = buffer.argsort()
1265 '''
1266 if i==1 and l==0 and k==37:
1267 print("j",j)
1268 print("INDEX",index)
1269 print(sortID[index:])
1270 if j==5:
1271 aa=numpy.mean(buffer,axis=0)
1272 bb=numpy.sort(buffer)
1273 print(buffer)
1274 print(aa)
1275 print(bb[-1])
1276 '''
1277 indexes.append(index)
1278 #sortIDs.append(sortID)
1279 outliers_IDs=numpy.append(outliers_IDs,sortID[index:])
1280
1281 outliers_IDs=numpy.array(outliers_IDs)
1282 outliers_IDs=outliers_IDs.ravel()
1283 outliers_IDs=numpy.unique(outliers_IDs)
1284 outliers_IDs=outliers_IDs.astype(numpy.dtype('int64'))
1285 indexes=numpy.array(indexes)
1286 indexmin=numpy.min(indexes)
1287
1288 if indexmin != buffer1.shape[0]:
1289 cspc_outliers_exist=True
1290 ###sortdata=numpy.sort(buffer1,axis=0)
1291 ###avg2=numpy.mean(sortdata[:indexmin,:],axis=0)
1292 lt=outliers_IDs
1293 avg=numpy.mean(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:],axis=0)
1294 '''
1295 if k==37 and i==1 and l==0:
1296 #cc=
1297 print("index_min",indexmin)
1298 print("outliers_ID",lt)
1299 print("AVG",avg[5])
1300 print("AVG_2",avg2[5])
1301 '''
1302
1303 for p in list(outliers_IDs):
1304 buffer1[p,:]=avg
1305
1306 self.__buffer_spc[:,i,:,k,l]=numpy.copy(buffer1)
1307 ###cspc IDs
1308 #indexmin_cspc+=indexmin_cspc
1309 outliers_IDs_cspc=numpy.append(outliers_IDs_cspc,outliers_IDs)
1310
1311 #if not breakFlag:
1312 outliers_IDs_cspc=outliers_IDs_cspc.astype(numpy.dtype('int64'))
1313 if cspc_outliers_exist:
1314 #sortdata=numpy.sort(buffer_cspc,axis=0)
1315 #avg=numpy.mean(sortdata[:indexmin_cpsc,:],axis=0)
1316 lt=outliers_IDs_cspc
1317
1318 avg=numpy.mean(buffer_cspc[[t for t in range(buffer_cspc.shape[0]) if t not in lt],:],axis=0)
1319 for p in list(outliers_IDs_cspc):
1320 buffer_cspc[p,:]=avg
1321
1322 self.__buffer_cspc[:,0,:,k,l]=numpy.copy(buffer_cspc)
1323 #else:
1324 #break
1325
1326
1327
1328
1329 buffer=None
1330 bufferH=None
1331 buffer1=None
1332 buffer_cspc=None
1333
1334 #print("cpsc",self.__buffer_cspc[:,0,0,0,0])
1335 #print(self.__profIndex)
1336 #exit()
1337
1338 buffer=None
1339 #print(self.__buffer_spc[:,1,3,20,0])
1340 #print(self.__buffer_spc[:,1,5,37,0])
1341 data_spc = numpy.sum(self.__buffer_spc,axis=0)
1342 data_cspc = numpy.sum(self.__buffer_cspc,axis=0)
1343
1344 #print(numpy.shape(data_spc))
1345 #data_spc[1,4,20,0]=numpy.nan
1346
1347 #data_cspc = self.__buffer_cspc
1348 data_dc = self.__buffer_dc
1349 n = self.__profIndex
1350
1351 self.__buffer_spc = []
1352 self.__buffer_cspc = []
1353 self.__buffer_dc = 0
1354 self.__profIndex = 0
1355
1356 return data_spc, data_cspc, data_dc, n
1357
1358 def byProfiles(self, *args):
1359
1360 self.__dataReady = False
1361 avgdata_spc = None
1362 avgdata_cspc = None
1363 avgdata_dc = None
1364
1365 self.putData(*args)
1366
1367 if self.__profIndex == self.n:
1368
1369 avgdata_spc, avgdata_cspc, avgdata_dc, n = self.pushData()
1370 self.n = n
1371 self.__dataReady = True
1372
1373 return avgdata_spc, avgdata_cspc, avgdata_dc
1374
1375 def byTime(self, datatime, *args):
1376
1377 self.__dataReady = False
1378 avgdata_spc = None
1379 avgdata_cspc = None
1380 avgdata_dc = None
1381
1382 self.putData(*args)
1383
1384 if (datatime - self.__initime) >= self.__integrationtime:
1385 avgdata_spc, avgdata_cspc, avgdata_dc, n = self.pushData()
1386 self.n = n
1387 self.__dataReady = True
1388
1389 return avgdata_spc, avgdata_cspc, avgdata_dc
1390
1391 def integrate(self, datatime, *args):
1392
1393 if self.__profIndex == 0:
1394 self.__initime = datatime
1395
1396 if self.__byTime:
1397 avgdata_spc, avgdata_cspc, avgdata_dc = self.byTime(
1398 datatime, *args)
1399 else:
1400 avgdata_spc, avgdata_cspc, avgdata_dc = self.byProfiles(*args)
1401
1402 if not self.__dataReady:
1403 return None, None, None, None
1404
1405 return self.__initime, avgdata_spc, avgdata_cspc, avgdata_dc
1406
1407 def run(self, dataOut, n=None, timeInterval=None, overlapping=False):
1408 if n == 1:
1409 dataOut.VelRange = dataOut.getVelRange(0)
1410 return dataOut
1411 #print("holo")
1412 dataOut.flagNoData = True
1413
1414 if not self.isConfig:
1415 self.setup(n, timeInterval, overlapping)
1416 self.isConfig = True
1417
1418 if not dataOut.ByLags:
1419 avgdatatime, avgdata_spc, avgdata_cspc, avgdata_dc = self.integrate(dataOut.utctime,
1420 dataOut.data_spc,
1421 dataOut.data_cspc,
1422 dataOut.data_dc)
1423 else:
1424 self.nProfiles=dataOut.nProfiles
1425 self.nChannels=dataOut.nChannels
1426 self.nHeights=dataOut.nHeights
1427 self.DPL=dataOut.DPL
1428 avgdatatime, avgdata_spc, avgdata_cspc, avgdata_dc = self.integrate(dataOut.utctime,
1429 dataOut.dataLag_spc,
1430 dataOut.dataLag_cspc,
1431 dataOut.dataLag_dc)
1432
1433 if self.__dataReady:
1434
1435 if not dataOut.ByLags:
1436 dataOut.data_spc = avgdata_spc
1437 dataOut.data_cspc = avgdata_cspc
1438 dataOut.data_dc = avgdata_dc
1439 else:
1440 dataOut.dataLag_spc = avgdata_spc
1441 dataOut.dataLag_cspc = avgdata_cspc
1442 dataOut.dataLag_dc = avgdata_dc
1443
1444 dataOut.data_spc=dataOut.dataLag_spc[:,:,:,dataOut.LagPlot]
1445 dataOut.data_cspc=dataOut.dataLag_cspc[:,:,:,dataOut.LagPlot]
1446 dataOut.data_dc=dataOut.dataLag_dc[:,:,dataOut.LagPlot]
1447
1448 dataOut.VelRange = dataOut.getVelRange(0)
1449 dataOut.nIncohInt *= self.n
1450 dataOut.utctime = avgdatatime
1451 dataOut.flagNoData = False
1452
1453 return dataOut
1454
1455
1456
1457 class IntegrationFaradaySpectra2(Operation):
1458 '''
1459 Written by R. Flores
1460 '''
1461 __profIndex = 0
1462 __withOverapping = False
1463
1464 __byTime = False
1465 __initime = None
1466 __lastdatatime = None
1467 __integrationtime = None
1468
1469 __buffer_spc = None
1470 __buffer_cspc = None
1471 __buffer_dc = None
1472
1473 __dataReady = False
1474
1475 __timeInterval = None
1476
1477 n = None
1478
1479 def __init__(self):
1480
1481 Operation.__init__(self)
1482
1483 def setup(self, n=None, timeInterval=None, overlapping=False):
1484 """
1485 Set the parameters of the integration class.
1486
1487 Inputs:
1488
1489 n : Number of coherent integrations
1490 timeInterval : Time of integration. If the parameter "n" is selected this one does not work
1491 overlapping :
1492
1493 """
1494
1495 self.__initime = None
1496 self.__lastdatatime = 0
1497
1498 self.__buffer_spc = None
1499 self.__buffer_cspc = None
1500 self.__buffer_dc = 0
1501
1502 self.__profIndex = 0
1503 self.__dataReady = False
1504 self.__byTime = False
1505
1506 if n is None and timeInterval is None:
1507 raise ValueError("n or timeInterval should be specified ...")
1508
1509 if n is not None:
1510 self.n = int(n)
1511 else:
1512
1513 self.__integrationtime = int(timeInterval)
1514 self.n = None
1515 self.__byTime = True
1516
1517 def putData(self, data_spc, data_cspc, data_dc):
1518 """
1519 Add a profile to the __buffer_spc and increase in one the __profileIndex
1520
1521 """
1522
1523 #print(numpy.shape(self.__buffer_spc))
1524 ##print(numpy.shape(data_spc))
1525
1526 #self.__buffer_spc = numpy.insert(self.__buffer_spc,[],data_spc,axis=0)
1527 self.__buffer_spc[self.__profIndex,:]=data_spc[:]
1528 ##self.__buffer_spc.append(data_spc)
1529 #self.__buffer_spc = numpy.array(self.__buffer_spc)
1530 #print(numpy.shape(self.__buffer_spc))
1531 #print("bytes",sys.getsizeof(self.__buffer_spc))
1532 #print("bytes",asizeof(self.__buffer_spc))
1533 if data_cspc is None:
1534 self.__buffer_cspc = None
1535
1536 else:
1537 self.__buffer_cspc[self.__profIndex,:]=data_cspc[:]
1538
1539 if data_dc is None:
1540 self.__buffer_dc = None
1541 else:
1542 self.__buffer_dc += data_dc
1543
1544 self.__profIndex += 1
1545
1546 return
1547
1548 def hildebrand_sekhon_Integration(self,data,navg):
1549
1550 sortdata = numpy.sort(data, axis=None)
1551 sortID=data.argsort()
1552 lenOfData = len(sortdata)
1553 nums_min = lenOfData*0.75
1554 if nums_min <= 5:
1555 nums_min = 5
1556 sump = 0.
1557 sumq = 0.
1558 j = 0
1559 cont = 1
1560 while((cont == 1)and(j < lenOfData)):
1561 sump += sortdata[j]
1562 sumq += sortdata[j]**2
1563 if j > nums_min:
1564 rtest = float(j)/(j-1) + 1.0/navg
1565 if ((sumq*j) > (rtest*sump**2)):
1566 j = j - 1
1567 sump = sump - sortdata[j]
1568 sumq = sumq - sortdata[j]**2
1569 cont = 0
1570 j += 1
1571 #lnoise = sump / j
1572
1573 return j,sortID
1574
1575 def pushData_V0(self):
1576 """
1577 Return the sum of the last profiles and the profiles used in the sum.
1578
1579 Affected:
1580
1581 self.__profileIndex
1582
1583 """
1584 bufferH=None
1585 buffer=None
1586 buffer1=None
1587 buffer_cspc=None
1588 self.__buffer_spc=numpy.array(self.__buffer_spc)
1589 if self.__buffer_cspc is not None:
1590 self.__buffer_cspc=numpy.array(self.__buffer_cspc)
1591 freq_dc = int(self.__buffer_spc.shape[2] / 2)
1592 #print("FREQ_DC",freq_dc)
1593 #print(self.__buffer_spc[:,1,5,37,0])
1594 #lag_array=[0,2,4,6,8,10,12,14,16,18,20]
1595
1596 if self.nLags == 11:
1597 h0 = 7
1598 elif self.nLags == 16:
1599 h0 = 180
1600
1601
1602 '''
1603 import matplotlib.pyplot as plt
1604 plt.plot(self.__buffer_spc[:,0,freq_dc,33,0],marker='*')
1605 plt.ylim((0,700000))
1606 plt.show()
1607 import time
1608 time.sleep(60)
1609 exit(1)
1610 '''
1611 #'''
1612 import matplotlib.pyplot as plt
1613 #plt.plot(self.__buffer_spc[:,0,freq_dc-2,33,1],marker='*')
1614 plt.plot(sorted(self.__buffer_spc[:,0,freq_dc-2,33,1]),marker='*')
1615 plt.ylim((0,1.1*1.e6))
1616 plt.show()
1617 import time
1618 time.sleep(60)
1619 exit(1)
1620 #'''
1621
1622 print(self.nLags)
1623 '''
1624 if self.nLags == 16:
1625 self.nLags = 0
1626 #exit(1)
1627 '''
1628
1629 for l in range(self.nLags):#dataOut.DPL):
1630 #breakFlag=False
1631 for k in range(7,self.nHeights):
1632 if self.__buffer_cspc is not None:
1633 buffer_cspc=numpy.copy(self.__buffer_cspc[:,0,:,k,l])
1634 outliers_IDs_cspc=[]
1635 cspc_outliers_exist=False
1636 #indexmin_cspc=0
1637 for i in range(2):
1638 #for i in range(self.nChannels):#dataOut.nChannels):
1639 #if self.TrueLags:
1640 #print("HERE")
1641 if i==1 and k >= self.nHeights-2*l and self.TrueLags:
1642 #breakFlag=True
1643 continue
1644
1645 #pass
1646 else:
1647 buffer1=numpy.copy(self.__buffer_spc[:,i,:,k,l])
1648 indexes=[]
1649 #sortIDs=[]
1650 outliers_IDs=[]
1651 for j in range(self.nProfiles):
1652 if i==0 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 0
1653 continue
1654 if self.FlipChannelsExist:
1655 if i==1 and j==0: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
1656 continue
1657 else:
1658 if i==1 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
1659 continue
1660 #buffer=buffer1[:,j]
1661 buffer=(buffer1[:,j]).real
1662 '''
1663 if self.nLags ==16 and l!=0:
1664 print(buffer)
1665 exit(1)
1666 '''
1667 #index,sortID=self.hildebrand_sekhon_Integration(buffer,1)
1668 index=int(_HS_algorithm.HS_algorithm(numpy.sort(buffer, axis=None),1))
1669 sortID = buffer.argsort()
1670
1671 indexes.append(index)
1672 #sortIDs.append(sortID)
1673 outliers_IDs=numpy.append(outliers_IDs,sortID[index:])
1674
1675 outliers_IDs=numpy.array(outliers_IDs)
1676 outliers_IDs=outliers_IDs.ravel()
1677 outliers_IDs=numpy.unique(outliers_IDs)
1678 outliers_IDs=outliers_IDs.astype(numpy.dtype('int64'))
1679 indexes=numpy.array(indexes)
1680 indexmin=numpy.min(indexes)
1681
1682 if indexmin != buffer1.shape[0]:
1683 cspc_outliers_exist=True
1684 ###sortdata=numpy.sort(buffer1,axis=0)
1685 ###avg2=numpy.mean(sortdata[:indexmin,:],axis=0)
1686 lt=outliers_IDs
1687 avg=numpy.mean(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:],axis=0)
1688
1689
1690 for p in list(outliers_IDs):
1691 buffer1[p,:]=avg
1692
1693 self.__buffer_spc[:,i,:,k,l]=numpy.copy(buffer1)
1694 ###cspc IDs
1695 #indexmin_cspc+=indexmin_cspc
1696 if self.__buffer_cspc is not None:
1697 outliers_IDs_cspc=numpy.append(outliers_IDs_cspc,outliers_IDs)
1698
1699 #if not breakFlag:
1700 #print(outliers_IDs_cspc)
1701 if self.__buffer_cspc is not None:
1702 outliers_IDs_cspc=outliers_IDs_cspc.astype(numpy.dtype('int64'))
1703 if cspc_outliers_exist:
1704 #sortdata=numpy.sort(buffer_cspc,axis=0)
1705 #avg=numpy.mean(sortdata[:indexmin_cpsc,:],axis=0)
1706 lt=outliers_IDs_cspc
1707
1708 avg=numpy.mean(buffer_cspc[[t for t in range(buffer_cspc.shape[0]) if t not in lt],:],axis=0)
1709 for p in list(outliers_IDs_cspc):
1710 buffer_cspc[p,:]=avg
1711
1712 self.__buffer_cspc[:,0,:,k,l]=numpy.copy(buffer_cspc)
1713
1714 #else:
1715 #break
1716 #'''
1717 import matplotlib.pyplot as plt
1718 plt.plot(self.__buffer_spc[:,0,freq_dc-2,33,1],marker='*')
1719 plt.ylim((0,1.1*1.e6))
1720 plt.show()
1721 import time
1722 time.sleep(60)
1723 exit(1)
1724 #'''
1725
1726 buffer=None
1727 bufferH=None
1728 buffer1=None
1729 buffer_cspc=None
1730
1731 #print("cpsc",self.__buffer_cspc[:,0,0,0,0])
1732 #print(self.__profIndex)
1733 #exit()
1734 '''
1735 if self.nLags == 16:
1736 print(self.__buffer_spc[:,0,0,0,2])
1737 exit(1)
1738 '''
1739
1740 buffer=None
1741 #print(self.__buffer_spc[:,1,3,20,0])
1742 #print(self.__buffer_spc[:,1,5,37,0])
1743 data_spc = numpy.sum(self.__buffer_spc,axis=0)
1744
1745 if self.__buffer_cspc is not None:
1746 data_cspc = numpy.sum(self.__buffer_cspc,axis=0)
1747 else:
1748 data_cspc = None
1749
1750 #print(numpy.shape(data_spc))
1751 #data_spc[1,4,20,0]=numpy.nan
1752
1753
1754 data_dc = self.__buffer_dc
1755
1756 n = self.__profIndex
1757
1758 self.__buffer_spc = None
1759 self.__buffer_cspc = None
1760 self.__buffer_dc = 0
1761 self.__profIndex = 0
1762
1763 return data_spc, data_cspc, data_dc, n
1764
1765 def pushData(self):
1766 """
1767 Return the sum of the last profiles and the profiles used in the sum.
1768
1769 Affected:
1770
1771 self.__profileIndex
1772
1773 """
1774 bufferH=None
1775 buffer=None
1776 buffer1=None
1777 buffer_cspc=None
1778 self.__buffer_spc=numpy.array(self.__buffer_spc)
1779 if self.__buffer_cspc is not None:
1780 self.__buffer_cspc=numpy.array(self.__buffer_cspc)
1781 freq_dc = int(self.__buffer_spc.shape[2] / 2)
1782 #print("FREQ_DC",freq_dc)
1783 #print(self.__buffer_spc[:,1,5,37,0])
1784 #lag_array=[0,2,4,6,8,10,12,14,16,18,20]
1785
1786 if self.nLags == 11:
1787 h0 = 7
1788 elif self.nLags == 16:
1789 h0 = 180
1790
1791
1792
1793 '''
1794 import matplotlib.pyplot as plt
1795 #plt.plot(self.__buffer_spc[:,0,freq_dc-2,33,1],marker='*')
1796 aux = self.__buffer_spc[:,0,freq_dc-2,66,1]
1797 a,b=self.hildebrand_sekhon_Integration(numpy.abs(aux),1)
1798 print(a)
1799 plt.plot(sorted(aux),marker='*')
1800 plt.vlines(x=a,ymin=min(aux),ymax=max(aux))
1801 #plt.ylim((-35000,65000))
1802 plt.show()
1803 import time
1804 time.sleep(60)
1805 exit(1)
1806 '''
1807
1808 #print(self.nLags)
1809 '''
1810 if self.nLags == 16:
1811 self.nLags = 3
1812 #exit(1)
1813 '''
1814 #print(self.nHeights)
1815 #exit(1)
1816 for l in range(self.nLags):#dataOut.DPL): #if DP --> nLags=11, elif HP --> nLags=16
1817 #breakFlag=False
1818 for k in range(7,self.nHeights):
1819 if self.__buffer_cspc is not None:
1820 buffer_cspc=numpy.copy(self.__buffer_cspc[:,0,:,k,l])
1821 outliers_IDs_cspc=[]
1822 cspc_outliers_exist=False
1823 #indexmin_cspc=0
1824 for i in range(2): #Solo nos interesa los 2 primeros canales que son los canales con señal
1825 #for i in range(self.nChannels):#dataOut.nChannels):
1826 #if self.TrueLags:
1827 #print("HERE")
1828 '''
1829 if i==1 and k >= self.nHeights-2*l and self.TrueLags:
1830 #breakFlag=True
1831 print("here")
1832 exit(1)
1833 continue
1834 '''
1835
1836 #pass
1837 #else:
1838 buffer1=numpy.copy(self.__buffer_spc[:,i,:,k,l])
1839 indexes=[]
1840 #sortIDs=[]
1841 outliers_IDs=[]
1842 for j in range(self.nProfiles):
1843 if i==0 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 0
1844 continue
1845 if self.FlipChannelsExist:
1846 if i==1 and j==0: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
1847 continue
1848 else:
1849 if i==1 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
1850 continue
1851 #buffer=buffer1[:,j]
1852 buffer=(buffer1[:,j])
1853 '''
1854 if self.nLags ==16 and l!=0:
1855 print(buffer)
1856 exit(1)
1857 '''
1858 #index,sortID=self.hildebrand_sekhon_Integration(numpy.abs(buffer),1)
1859 index=int(_HS_algorithm.HS_algorithm(numpy.sort(buffer, axis=None),1))
1860 sortID = buffer.argsort()
1861
1862 indexes.append(index)
1863 #sortIDs.append(sortID)
1864 outliers_IDs=numpy.append(outliers_IDs,sortID[index:])
1865
1866 sortdata=numpy.sort(buffer,axis=0)
1867 avg=numpy.mean(sortdata[:index],axis=0)
1868 #lt=outliers_IDs
1869 #avg=numpy.mean(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:],axis=0)
1870
1871 if index != buffer.shape[0]:
1872 for p in list(sortID[index:]):
1873 buffer1[p,j]=avg
1874
1875
1876 self.__buffer_spc[:,i,j,k,l]=numpy.copy(buffer1[:,j])
1877 ###cspc IDs
1878 #indexmin_cspc+=indexmin_cspc
1879 if self.__buffer_cspc is not None:
1880 outliers_IDs_cspc=numpy.append(outliers_IDs_cspc,outliers_IDs)
1881
1882 #if not breakFlag:
1883 #print(outliers_IDs_cspc)
1884 if self.__buffer_cspc is not None:
1885 outliers_IDs_cspc=outliers_IDs_cspc.astype(numpy.dtype('int64'))
1886 if cspc_outliers_exist:
1887 #sortdata=numpy.sort(buffer_cspc,axis=0)
1888 #avg=numpy.mean(sortdata[:indexmin_cpsc,:],axis=0)
1889 lt=outliers_IDs_cspc
1890
1891 avg=numpy.mean(buffer_cspc[[t for t in range(buffer_cspc.shape[0]) if t not in lt],:],axis=0)
1892 for p in list(outliers_IDs_cspc):
1893 buffer_cspc[p,:]=avg
1894
1895 self.__buffer_cspc[:,0,:,k,l]=numpy.copy(buffer_cspc)
1896
1897 #else:
1898 #break
1899 '''
1900 import matplotlib.pyplot as plt
1901 plt.plot(sorted(self.__buffer_spc[:,0,freq_dc-2,66,1]),marker='*')
1902 #plt.ylim((0,1.1*1.e6))
1903 plt.ylim((-30000,65000))
1904 plt.show()
1905 import time
1906 time.sleep(60)
1907 exit(1)
1908 '''
1909
1910 buffer=None
1911 bufferH=None
1912 buffer1=None
1913 buffer_cspc=None
1914
1915 #print("cpsc",self.__buffer_cspc[:,0,0,0,0])
1916 #print(self.__profIndex)
1917 #exit()
1918 '''
1919 if self.nLags == 16:
1920 print(self.__buffer_spc[:,0,0,0,2])
1921 exit(1)
1922 '''
1923
1924 buffer=None
1925 #print(self.__buffer_spc[:,1,3,20,0])
1926 #print(self.__buffer_spc[:,1,5,37,0])
1927 data_spc = numpy.sum(self.__buffer_spc,axis=0)
1928
1929 if self.__buffer_cspc is not None:
1930 data_cspc = numpy.sum(self.__buffer_cspc,axis=0)
1931 else:
1932 data_cspc = None
1933
1934 #print(numpy.shape(data_spc))
1935 #data_spc[1,4,20,0]=numpy.nan
1936
1937
1938 data_dc = self.__buffer_dc
1939
1940 n = self.__profIndex
1941
1942 self.__buffer_spc = None
1943 self.__buffer_cspc = None
1944 self.__buffer_dc = 0
1945 self.__profIndex = 0
1946
1947 return data_spc, data_cspc, data_dc, n
1948
1949 def byProfiles(self, data_spc, data_cspc, *args):
1950
1951 self.__dataReady = False
1952 avgdata_spc = None
1953 avgdata_cspc = None
1954 avgdata_dc = None
1955
1956 self.putData(data_spc, data_cspc, *args)
1957
1958 if self.__profIndex == self.n:
1959
1960 avgdata_spc, avgdata_cspc, avgdata_dc, n = self.pushData()
1961 self.n = n
1962 self.__dataReady = True
1963
1964 return avgdata_spc, avgdata_cspc, avgdata_dc
1965
1966 def byTime(self, datatime, *args):
1967
1968 self.__dataReady = False
1969 avgdata_spc = None
1970 avgdata_cspc = None
1971 avgdata_dc = None
1972
1973 self.putData(*args)
1974
1975 if (datatime - self.__initime) >= self.__integrationtime:
1976 avgdata_spc, avgdata_cspc, avgdata_dc, n = self.pushData()
1977 self.n = n
1978 self.__dataReady = True
1979
1980 return avgdata_spc, avgdata_cspc, avgdata_dc
1981
1982 def integrate(self, datatime, data_spc, data_cspc, *args):
1983
1984 if self.__profIndex == 0:
1985 self.__initime = datatime
1986 #print(data_cspc.shape)
1987
1988 #self.__buffer_spc = numpy.empty_like(data_spc,shape=(self.n,self.nChannels,self.nProfiles,self.nHeights,self.nLags))
1989 self.__buffer_spc = numpy.ones_like(data_spc,shape=(self.n,self.nChannels,self.nProfiles,self.nHeights,self.nLags))*numpy.NAN
1990
1991 #print(self.__buffer_spc[0])
1992 #print(self.__buffer_spc.dtype)
1993 #print(data_spc.dtype)
1994
1995 if data_cspc is not None:
1996 nLags = numpy.shape(data_cspc)[-1]
1997 nCrossChannels = numpy.shape(data_cspc)[0]
1998
1999 #self.__buffer_cspc = numpy.empty_like(data_cspc,shape=(self.n,crossChannels,self.nProfiles,self.nHeights,self.nLags))
2000 self.__buffer_cspc = numpy.ones_like(data_cspc,shape=(self.n,nCrossChannels,self.nProfiles,self.nHeights,nLags))*numpy.NAN
2001 else:
2002 self.__buffer_cspc = None
2003 #print("HEREEEE")
2004 #print(self.__buffer_cspc.dtype)
2005 #print(data_cspc.dtype)
2006 #exit(1)
2007 if self.__byTime:
2008 avgdata_spc, avgdata_cspc, avgdata_dc = self.byTime(
2009 datatime, *args)
2010 else:
2011 avgdata_spc, avgdata_cspc, avgdata_dc = self.byProfiles(data_spc, data_cspc, *args)
2012
2013 if not self.__dataReady:
2014 return None, None, None, None
2015
2016 return self.__initime, avgdata_spc, avgdata_cspc, avgdata_dc
2017
2018 def run(self, dataOut, n=None, timeInterval=None, overlapping=False,TrueLags=True):
2019 if n == 1:
2020 return dataOut
2021
2022 dataOut.flagNoData = True
2023
2024 if not self.isConfig:
2025 self.setup(n, timeInterval, overlapping)
2026 try:
2027 dataOut.FlipChannels
2028 self.FlipChannelsExist=1
2029 except:
2030 self.FlipChannelsExist=0
2031 self.isConfig = True
2032
2033 self.nProfiles=dataOut.nProfiles
2034 self.nChannels=dataOut.nChannels
2035 self.nHeights=dataOut.nHeights
2036 if not dataOut.ByLags:
2037 avgdatatime, avgdata_spc, avgdata_cspc, avgdata_dc = self.integrate(dataOut.utctime,
2038 dataOut.data_spc,
2039 dataOut.data_cspc,
2040 dataOut.data_dc)
2041 else:
2042 #self.nProfiles=dataOut.nProfiles
2043 #self.nChannels=dataOut.nChannels
2044 #self.nHeights=dataOut.nHeights
2045 self.nLags=dataOut.nLags
2046 self.TrueLags=TrueLags
2047
2048
2049
2050 avgdatatime, avgdata_spc, avgdata_cspc, avgdata_dc = self.integrate(dataOut.utctime,
2051 dataOut.dataLag_spc,
2052 dataOut.dataLag_cspc,
2053 dataOut.dataLag_dc)
2054
2055 if self.__dataReady:
2056
2057 if not dataOut.ByLags:
2058 dataOut.data_spc = avgdata_spc
2059 dataOut.data_cspc = avgdata_cspc
2060 dataOut.data_dc = avgdata_dc
2061 else:
2062 dataOut.dataLag_spc = avgdata_spc
2063 dataOut.dataLag_cspc = avgdata_cspc
2064 dataOut.dataLag_dc = avgdata_dc
2065
2066 dataOut.data_spc=dataOut.dataLag_spc[:,:,:,dataOut.LagPlot].real
2067
2068 if self.__buffer_cspc is not None:
2069 dataOut.data_cspc=dataOut.dataLag_cspc[:,:,:,dataOut.LagPlot]
2070 dataOut.data_dc=dataOut.dataLag_dc[:,:,dataOut.LagPlot]
2071
2072
2073 dataOut.nIncohInt *= self.n
2074 dataOut.utctime = avgdatatime
2075 dataOut.flagNoData = False
2076
2077 return dataOut
2078
2079 class IntegrationFaradaySpectra3(Operation): #This class should manage data with no lags as well
2080 '''
2081 Written by R. Flores
2082 '''
2083 __profIndex = 0
2084 __withOverapping = False
2085
2086 __byTime = False
2087 __initime = None
2088 __lastdatatime = None
2089 __integrationtime = None
2090
2091 __buffer_spc = None
2092 __buffer_cspc = None
2093 __buffer_dc = None
2094
2095 __dataReady = False
2096
2097 __timeInterval = None
2098
2099 n = None
2100
2101 def __init__(self):
2102
2103 Operation.__init__(self)
2104
2105 def setup(self, n=None, timeInterval=None, overlapping=False):
2106 """
2107 Set the parameters of the integration class.
2108
2109 Inputs:
2110
2111 n : Number of coherent integrations
2112 timeInterval : Time of integration. If the parameter "n" is selected this one does not work
2113 overlapping :
2114
2115 """
2116
2117 self.__initime = None
2118 self.__lastdatatime = 0
2119
2120 self.__buffer_spc = None
2121 self.__buffer_cspc = None
2122 self.__buffer_dc = 0
2123
2124 self.__profIndex = 0
2125 self.__dataReady = False
2126 self.__byTime = False
2127
2128 if n is None and timeInterval is None:
2129 raise ValueError("n or timeInterval should be specified ...")
2130
2131 if n is not None:
2132 self.n = int(n)
2133 else:
2134
2135 self.__integrationtime = int(timeInterval)
2136 self.n = None
2137 self.__byTime = True
2138
2139 def putData(self, data_spc, data_cspc, data_dc):
2140 """
2141 Add a profile to the __buffer_spc and increase in one the __profileIndex
2142
2143 """
2144
2145 #print(numpy.shape(self.__buffer_spc))
2146 ##print(numpy.shape(data_spc))
2147
2148 #self.__buffer_spc = numpy.insert(self.__buffer_spc,[],data_spc,axis=0)
2149 self.__buffer_spc[self.__profIndex,:]=data_spc[:]
2150 ##self.__buffer_spc.append(data_spc)
2151 #self.__buffer_spc = numpy.array(self.__buffer_spc)
2152 #print(numpy.shape(self.__buffer_spc))
2153 #print("bytes",sys.getsizeof(self.__buffer_spc))
2154 #print("bytes",asizeof(self.__buffer_spc))
2155 if self.clean_cspc:
2156 if data_cspc is None:
2157 self.__buffer_cspc = None
2158
2159 else:
2160 self.__buffer_cspc[self.__profIndex,:]=data_cspc[:]
2161 else:
2162 self.__buffer_cspc += data_cspc
2163
2164 if data_dc is None:
2165 self.__buffer_dc = None
2166 else:
2167 self.__buffer_dc += data_dc
2168
2169 self.__profIndex += 1
2170
2171 return
2172
2173 def hildebrand_sekhon_Integration(self,data,navg):
2174
2175 sortdata = numpy.sort(data, axis=None)
2176 sortID=data.argsort()
2177 lenOfData = len(sortdata)
2178 nums_min = lenOfData*0.75
2179 if nums_min <= 5:
2180 nums_min = 5
2181 sump = 0.
2182 sumq = 0.
2183 j = 0
2184 cont = 1
2185 while((cont == 1)and(j < lenOfData)):
2186 sump += sortdata[j]
2187 sumq += sortdata[j]**2
2188 if j > nums_min:
2189 rtest = float(j)/(j-1) + 1.0/navg
2190 if ((sumq*j) > (rtest*sump**2)):
2191 j = j - 1
2192 sump = sump - sortdata[j]
2193 sumq = sumq - sortdata[j]**2
2194 cont = 0
2195 j += 1
2196 #lnoise = sump / j
2197
2198 return j,sortID
2199
2200 def pushData_V0(self):
2201 """
2202 Return the sum of the last profiles and the profiles used in the sum.
2203
2204 Affected:
2205
2206 self.__profileIndex
2207
2208 """
2209 bufferH=None
2210 buffer=None
2211 buffer1=None
2212 buffer_cspc=None
2213 self.__buffer_spc=numpy.array(self.__buffer_spc)
2214 if self.__buffer_cspc is not None:
2215 self.__buffer_cspc=numpy.array(self.__buffer_cspc)
2216 freq_dc = int(self.__buffer_spc.shape[2] / 2)
2217 #print("FREQ_DC",freq_dc)
2218 #print(self.__buffer_spc[:,1,5,37,0])
2219 #lag_array=[0,2,4,6,8,10,12,14,16,18,20]
2220
2221 if self.nLags == 11:
2222 h0 = 7
2223 elif self.nLags == 16:
2224 h0 = 180
2225
2226
2227 '''
2228 import matplotlib.pyplot as plt
2229 plt.plot(self.__buffer_spc[:,0,freq_dc,33,0],marker='*')
2230 plt.ylim((0,700000))
2231 plt.show()
2232 import time
2233 time.sleep(60)
2234 exit(1)
2235 '''
2236 #'''
2237 import matplotlib.pyplot as plt
2238 #plt.plot(self.__buffer_spc[:,0,freq_dc-2,33,1],marker='*')
2239 plt.plot(sorted(self.__buffer_spc[:,0,freq_dc-2,33,1]),marker='*')
2240 plt.ylim((0,1.1*1.e6))
2241 plt.show()
2242 import time
2243 time.sleep(60)
2244 exit(1)
2245 #'''
2246
2247 print(self.nLags)
2248 '''
2249 if self.nLags == 16:
2250 self.nLags = 0
2251 #exit(1)
2252 '''
2253
2254 for l in range(self.nLags):#dataOut.DPL):
2255 #breakFlag=False
2256 for k in range(7,self.nHeights):
2257 if self.__buffer_cspc is not None:
2258 buffer_cspc=numpy.copy(self.__buffer_cspc[:,0,:,k,l])
2259 outliers_IDs_cspc=[]
2260 cspc_outliers_exist=False
2261 #indexmin_cspc=0
2262 for i in range(2):
2263 #for i in range(self.nChannels):#dataOut.nChannels):
2264 #if self.TrueLags:
2265 #print("HERE")
2266 if i==1 and k >= self.nHeights-2*l and self.TrueLags:
2267 #breakFlag=True
2268 continue
2269
2270 #pass
2271 else:
2272 buffer1=numpy.copy(self.__buffer_spc[:,i,:,k,l])
2273 indexes=[]
2274 #sortIDs=[]
2275 outliers_IDs=[]
2276 for j in range(self.nProfiles):
2277 if i==0 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 0
2278 continue
2279 if self.FlipChannelsExist:
2280 if i==1 and j==0: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
2281 continue
2282 else:
2283 if i==1 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
2284 continue
2285 #buffer=buffer1[:,j]
2286 buffer=(buffer1[:,j]).real
2287 '''
2288 if self.nLags ==16 and l!=0:
2289 print(buffer)
2290 exit(1)
2291 '''
2292 #index,sortID=self.hildebrand_sekhon_Integration(buffer,1)
2293 index=int(_HS_algorithm.HS_algorithm(numpy.sort(buffer, axis=None),1))
2294 sortID = buffer.argsort()
2295
2296 indexes.append(index)
2297 #sortIDs.append(sortID)
2298 outliers_IDs=numpy.append(outliers_IDs,sortID[index:])
2299
2300 outliers_IDs=numpy.array(outliers_IDs)
2301 outliers_IDs=outliers_IDs.ravel()
2302 outliers_IDs=numpy.unique(outliers_IDs)
2303 outliers_IDs=outliers_IDs.astype(numpy.dtype('int64'))
2304 indexes=numpy.array(indexes)
2305 indexmin=numpy.min(indexes)
2306
2307 if indexmin != buffer1.shape[0]:
2308 cspc_outliers_exist=True
2309 ###sortdata=numpy.sort(buffer1,axis=0)
2310 ###avg2=numpy.mean(sortdata[:indexmin,:],axis=0)
2311 lt=outliers_IDs
2312 avg=numpy.mean(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:],axis=0)
2313
2314
2315 for p in list(outliers_IDs):
2316 buffer1[p,:]=avg
2317
2318 self.__buffer_spc[:,i,:,k,l]=numpy.copy(buffer1)
2319 ###cspc IDs
2320 #indexmin_cspc+=indexmin_cspc
2321 if self.__buffer_cspc is not None:
2322 outliers_IDs_cspc=numpy.append(outliers_IDs_cspc,outliers_IDs)
2323
2324 #if not breakFlag:
2325 #print(outliers_IDs_cspc)
2326 if self.__buffer_cspc is not None:
2327 outliers_IDs_cspc=outliers_IDs_cspc.astype(numpy.dtype('int64'))
2328 if cspc_outliers_exist:
2329 #sortdata=numpy.sort(buffer_cspc,axis=0)
2330 #avg=numpy.mean(sortdata[:indexmin_cpsc,:],axis=0)
2331 lt=outliers_IDs_cspc
2332
2333 avg=numpy.mean(buffer_cspc[[t for t in range(buffer_cspc.shape[0]) if t not in lt],:],axis=0)
2334 for p in list(outliers_IDs_cspc):
2335 buffer_cspc[p,:]=avg
2336
2337 self.__buffer_cspc[:,0,:,k,l]=numpy.copy(buffer_cspc)
2338
2339 #else:
2340 #break
2341 #'''
2342 import matplotlib.pyplot as plt
2343 plt.plot(self.__buffer_spc[:,0,freq_dc-2,33,1],marker='*')
2344 plt.ylim((0,1.1*1.e6))
2345 plt.show()
2346 import time
2347 time.sleep(60)
2348 exit(1)
2349 #'''
2350
2351 buffer=None
2352 bufferH=None
2353 buffer1=None
2354 buffer_cspc=None
2355
2356 #print("cpsc",self.__buffer_cspc[:,0,0,0,0])
2357 #print(self.__profIndex)
2358 #exit()
2359 '''
2360 if self.nLags == 16:
2361 print(self.__buffer_spc[:,0,0,0,2])
2362 exit(1)
2363 '''
2364
2365 buffer=None
2366 #print(self.__buffer_spc[:,1,3,20,0])
2367 #print(self.__buffer_spc[:,1,5,37,0])
2368 data_spc = numpy.sum(self.__buffer_spc,axis=0)
2369
2370 if self.__buffer_cspc is not None:
2371 data_cspc = numpy.sum(self.__buffer_cspc,axis=0)
2372 else:
2373 data_cspc = None
2374
2375 #print(numpy.shape(data_spc))
2376 #data_spc[1,4,20,0]=numpy.nan
2377
2378
2379 data_dc = self.__buffer_dc
1246 cont = 0
1247 j += 1
1248 #lnoise = sump / j
2380 1249
2381 n = self.__profIndex
1250 return j,sortID
2382 1251
2383 self.__buffer_spc = None
2384 self.__buffer_cspc = None
2385 self.__buffer_dc = 0
2386 self.__profIndex = 0
1252 def hildebrand_sekhon_Integration(self,data,navg):
1253 sortdata = numpy.sort(data, axis=None)
1254 sortID=data.argsort()
1255 lenOfData = len(sortdata)
1256 nums_min = lenOfData*0.75 #*0.87
1257 if nums_min <= 5:
1258 nums_min = 5
1259 sump = 0.
1260 sumq = 0.
1261 j = 0
1262 cont = 1
1263 while((cont == 1)and(j < lenOfData)):
1264 sump += sortdata[j]
1265 sumq += sortdata[j]**2
1266 if j > nums_min:
1267 rtest = float(j)/(j-1) + 1.0/navg
1268 if ((sumq*j) > (rtest*sump**2)):
1269 j = j - 1
1270 sump = sump - sortdata[j]
1271 sumq = sumq - sortdata[j]**2
1272 cont = 0
1273 j += 1
1274 #lnoise = sump / j
2387 1275
2388 return data_spc, data_cspc, data_dc, n
1276 return j,sortID
2389 1277
2390 def pushData_ByLags(self):
1278 def pushData(self):
2391 1279 """
2392 1280 Return the sum of the last profiles and the profiles used in the sum.
2393 1281
@@ -2400,309 +1288,199 class IntegrationFaradaySpectra3(Operation): #This class should manage data with
2400 1288 buffer=None
2401 1289 buffer1=None
2402 1290 buffer_cspc=None
1291
2403 1292 self.__buffer_spc=numpy.array(self.__buffer_spc)
2404 if self.__buffer_cspc is not None:
2405 1293 self.__buffer_cspc = numpy.array(self.__buffer_cspc)
1294
2406 1295 freq_dc = int(self.__buffer_spc.shape[2] / 2)
2407 1296 #print("FREQ_DC",freq_dc)
2408 1297 #print(self.__buffer_spc[:,1,5,37,0])
2409 1298 #lag_array=[0,2,4,6,8,10,12,14,16,18,20]
2410 1299
2411 if self.nLags == 11:
2412 h0 = 7
2413 elif self.nLags == 16:
2414 h0 = 180
2415
2416
2417
2418 '''
2419 import matplotlib.pyplot as plt
2420 #plt.plot(self.__buffer_spc[:,0,freq_dc-2,33,1],marker='*')
2421 aux = self.__buffer_spc[:,0,freq_dc-2,66,1]
2422 a,b=self.hildebrand_sekhon_Integration(numpy.abs(aux),1)
2423 print(a)
2424 plt.plot(sorted(aux),marker='*')
2425 plt.vlines(x=a,ymin=min(aux),ymax=max(aux))
2426 #plt.ylim((-35000,65000))
2427 plt.show()
2428 import time
2429 time.sleep(60)
2430 exit(1)
2431 1300 '''
1301 l lags
1302 k heights
1303 i channel
1304 j profiles
2432 1305
2433 print(self.nLags)
1306 Buffer_cspc and spc with dimensions
1307 [integration number(n), channel, profile, height, lag]
2434 1308 '''
2435 if self.nLags == 16:
2436 self.nLags = 3
2437 #exit(1)
2438 '''
2439 #print(self.nHeights)
2440 #exit(1)
2441 for l in range(self.nLags):#dataOut.DPL):
1309
1310 for l in range(self.DPL):#dataOut.DPL):
2442 1311 #breakFlag=False
2443 1312 for k in range(7,self.nHeights):
2444 if self.__buffer_cspc is not None:
2445 1313 buffer_cspc=numpy.copy(self.__buffer_cspc[:,0,:,k,l])
2446 1314 outliers_IDs_cspc=[]
2447 1315 cspc_outliers_exist=False
2448 1316 #indexmin_cspc=0
2449 for i in range(2):
2450 #for i in range(self.nChannels):#dataOut.nChannels):
2451 #if self.TrueLags:
2452 #print("HERE")
2453 '''
2454 if i==1 and k >= self.nHeights-2*l and self.TrueLags:
1317 for i in range(self.nChannels): #dataOut.nChannels):
1318 ''' Recognition of index with outliers'''
1319 if i==1 and k >= self.nHeights-2*l:
2455 1320 #breakFlag=True
2456 print("here")
2457 exit(1)
2458 1321 continue
2459 '''
2460
2461 1322 #pass
2462 #else:
2463 buffer1=numpy.copy(self.__buffer_spc[:,i,:,k,l])
1323 else:
1324 buffer1=numpy.copy(self.__buffer_spc[:,i,:,k,l]) # [int, profile]
2464 1325 indexes=[]
2465 1326 #sortIDs=[]
2466 1327 outliers_IDs=[]
2467 1328 for j in range(self.nProfiles):
2468 1329 if i==0 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 0
2469 1330 continue
2470 if self.FlipChannelsExist:
2471 1331 if i==1 and j==0: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
2472 1332 continue
2473 else:
2474 if i==1 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
2475 continue
2476 #buffer=buffer1[:,j]
2477 buffer=(buffer1[:,j])
2478 '''
2479 if self.nLags ==16 and l!=0:
2480 print(buffer)
2481 exit(1)
2482 '''
2483 #index,sortID=self.hildebrand_sekhon_Integration(numpy.abs(buffer),1)
1333 buffer=buffer1[:,j] # [int]
1334
1335 '''Finding the outlier index with Hildebrand Sekhon algorithm'''
2484 1336 index=int(_HS_algorithm.HS_algorithm(numpy.sort(buffer, axis=None),1))
2485 1337 sortID = buffer.argsort()
2486
1338 #index,sortID=self.hildebrand_sekhon_Integration(buffer,1)
2487 1339 indexes.append(index)
1340
2488 1341 #sortIDs.append(sortID)
2489 1342 outliers_IDs = numpy.append(outliers_IDs, sortID[index:])
2490 1343
2491 sortdata=numpy.sort(buffer,axis=0)
2492 avg=numpy.mean(sortdata[:index],axis=0)
2493 #lt=outliers_IDs
2494 #avg=numpy.mean(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:],axis=0)
2495
2496 if index != buffer.shape[0]:
2497 for p in list(sortID[index:]):
2498 buffer1[p,j]=avg
2499
2500
2501 self.__buffer_spc[:,i,j,k,l]=numpy.copy(buffer1[:,j])
2502 ###cspc IDs
2503 #indexmin_cspc+=indexmin_cspc
2504 if self.__buffer_cspc is not None:
2505 outliers_IDs_cspc=numpy.append(outliers_IDs_cspc,outliers_IDs)
2506
2507 #if not breakFlag:
2508 #print(outliers_IDs_cspc)
2509 if self.__buffer_cspc is not None:
2510 outliers_IDs_cspc=outliers_IDs_cspc.astype(numpy.dtype('int64'))
2511 if cspc_outliers_exist:
2512 #sortdata=numpy.sort(buffer_cspc,axis=0)
2513 #avg=numpy.mean(sortdata[:indexmin_cpsc,:],axis=0)
2514 lt=outliers_IDs_cspc
2515
2516 avg=numpy.mean(buffer_cspc[[t for t in range(buffer_cspc.shape[0]) if t not in lt],:],axis=0)
2517 for p in list(outliers_IDs_cspc):
2518 buffer_cspc[p,:]=avg
2519
2520 self.__buffer_cspc[:,0,:,k,l]=numpy.copy(buffer_cspc)
2521
2522 #else:
2523 #break
2524 1344 '''
2525 import matplotlib.pyplot as plt
2526 plt.plot(sorted(self.__buffer_spc[:,0,freq_dc-2,66,1]),marker='*')
2527 #plt.ylim((0,1.1*1.e6))
2528 plt.ylim((-30000,65000))
2529 plt.show()
2530 import time
2531 time.sleep(60)
2532 exit(1)
1345 #if k == 39 or k == 38:
1346 m = 2.
1347 d = numpy.abs(buffer - numpy.median(buffer))
1348 mdev = numpy.median(d)
1349 s=d / mdev if mdev else numpy.zeros(len(d))
1350 outliers_IDs2 = numpy.where(s >= m)[0]
1351 outliers_IDs2 = numpy.sort(numpy.concatenate((sortID[index:], outliers_IDs2)))
1352 #print(sortID[index:], outliers_IDs2)
1353 outliers_IDs = numpy.append(outliers_IDs, outliers_IDs2)
2533 1354 '''
2534 1355
2535 buffer=None
2536 bufferH=None
2537 buffer1=None
2538 buffer_cspc=None
2539
2540 #print("cpsc",self.__buffer_cspc[:,0,0,0,0])
2541 #print(self.__profIndex)
2542 #exit()
2543 '''
2544 if self.nLags == 16:
2545 print(self.__buffer_spc[:,0,0,0,2])
2546 exit(1)
2547 1356 '''
1357 #
1358 if k == 39:
1359 print("channel", i, " Profile", j, " Buffer:", buffer)
2548 1360
2549 buffer=None
2550 #print(self.__buffer_spc[:,1,3,20,0])
2551 #print(self.__buffer_spc[:,1,5,37,0])
2552 data_spc = numpy.sum(self.__buffer_spc,axis=0)
2553
2554 if self.__buffer_cspc is not None:
2555 data_cspc = numpy.sum(self.__buffer_cspc,axis=0)
2556 else:
2557 data_cspc = None
2558
2559 #print(numpy.shape(data_spc))
2560 #data_spc[1,4,20,0]=numpy.nan
2561
2562
2563 data_dc = self.__buffer_dc
2564
2565 n = self.__profIndex
2566
2567 self.__buffer_spc = None
2568 self.__buffer_cspc = None
2569 self.__buffer_dc = 0
2570 self.__profIndex = 0
2571
2572 return data_spc, data_cspc, data_dc, n
2573
2574 def pushData(self):
2575 """
2576 Return the sum of the last profiles and the profiles used in the sum.
1361 print("outliers_IDs ", sortID[index:])
1362 outliers_IDs_buffer = numpy.array(sortID[index:],dtype = int)
1363 NUM=numpy.size(buffer)
1364 plt.plot(range(NUM), buffer, 'b')
1365 plt.plot(outliers_IDs_buffer, buffer[numpy.array(outliers_IDs_buffer,dtype = int)], 'r.', label='Outliers')
1366 text_time = datetime.datetime.utcfromtimestamp(self.__initime)
1367 title = '{}Height{}km_Ch{}_Lag{}_Profile{}.png'.format(text_time,k*15,i,l,j)
1368 plt.title(title)
1369 plt.savefig('{}.png'.format(title),dpi = 50)
1370 plt.clf()
1371 '''
2577 1372
2578 Affected:
2579 1373
2580 self.__profileIndex
2581 1374
2582 """
2583 bufferH=None
2584 buffer=None
2585 buffer1=None
2586 buffer_cspc=None
2587 self.__buffer_spc=numpy.array(self.__buffer_spc)
2588 if self.__buffer_cspc is not None and self.clean_cspc:
2589 self.__buffer_cspc=numpy.array(self.__buffer_cspc)
2590 freq_dc = int(self.__buffer_spc.shape[2] / 2)
2591 1375
2592 for k in range(7,self.nHeights):
2593 if self.__buffer_cspc is not None and self.clean_cspc:
2594 buffer_cspc=numpy.copy(self.__buffer_cspc[:,0,:,k])
2595 outliers_IDs_cspc=[]
2596 cspc_outliers_exist=False
2597 1376
2598 for i in range(2):
1377 outliers_IDs=numpy.array(outliers_IDs)
1378 outliers_IDs=outliers_IDs.ravel()
1379 outliers_IDs=numpy.unique(outliers_IDs)
1380 outliers_IDs=outliers_IDs.astype(numpy.dtype('int64'))
1381 indexes=numpy.array(indexes)
1382 indexmin=numpy.min(indexes)
2599 1383
2600 #else:
2601 buffer1=numpy.copy(self.__buffer_spc[:,i,:,k])
2602 indexes=[]
2603 #sortIDs=[]
2604 outliers_IDs=[]
2605 for j in range(self.nProfiles):
2606 if i==0 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 0
2607 continue
2608 if self.FlipChannelsExist:
2609 if i==1 and j==0: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
2610 continue
1384 #if indexmin != buffer1.shape[0]:
1385 if (indexmin != buffer1.shape[0]):
1386 cspc_outliers_exist=True
1387 ###sortdata=numpy.sort(buffer1,axis=0)
1388 ###avg2=numpy.mean(sortdata[:indexmin,:],axis=0)
1389 lt = outliers_IDs
1390 time_text = datetime.datetime.utcfromtimestamp(self.__initime)
1391 '''Average profile signal value without taking account outleirs '''
1392 #if time_text.hour >= 11 or time_text.hour <= 19:
1393 if True:
1394 data_buffer1 = buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:]
1395 (mu, sigma) = numpy.apply_along_axis(lambda x: norm.fit(x), 0, data_buffer1)
1396 filtered_data = data_buffer1[(data_buffer1 >= 0) & (data_buffer1 <= 2 * mu[numpy.newaxis, :])]
1397 avg = numpy.median(filtered_data, axis=0)
1398 #avg=numpy.median(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:],axis=0)
2611 1399 else:
2612 if i==1 and j==freq_dc: #NOT CONSIDERING DC PROFILE AT CHANNEL 1
2613 continue
2614 #buffer=buffer1[:,j]
2615 buffer=(buffer1[:,j])
2616
2617 #index,sortID=self.hildebrand_sekhon_Integration(numpy.abs(buffer),1)
2618 index=int(_HS_algorithm.HS_algorithm(numpy.sort(buffer, axis=None),1))
2619 sortID = buffer.argsort()
2620
2621 indexes.append(index)
2622 #sortIDs.append(sortID)
2623 outliers_IDs=numpy.append(outliers_IDs,sortID[index:])
2624
2625 sortdata=numpy.sort(buffer,axis=0)
2626 avg=numpy.mean(sortdata[:index],axis=0)
2627 #lt=outliers_IDs
2628 #avg=numpy.mean(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:],axis=0)
2629
2630 if index != buffer.shape[0]:
2631 for p in list(sortID[index:]):
2632 buffer1[p,j]=avg
1400 avg=numpy.mean(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:],axis=0)
2633 1401
1402 ''' New outlier value take the average'''
1403 for p in list(outliers_IDs):
1404 buffer1[p,:] = avg
2634 1405
2635 self.__buffer_spc[:,i,j,k]=numpy.copy(buffer1[:,j])
1406 else:
1407 print("No average!!")
1408 '''Reasignate the buffer 1 edition to the original buffer'''
1409 self.__buffer_spc[:,i,:,k,l]=numpy.copy(buffer1)
2636 1410 ###cspc IDs
2637 1411 #indexmin_cspc+=indexmin_cspc
2638 if self.__buffer_cspc is not None and self.clean_cspc:
2639 1412 outliers_IDs_cspc=numpy.append(outliers_IDs_cspc,outliers_IDs)
2640 1413
1414 ''' Same process for cross-spectra'''
2641 1415 #if not breakFlag:
2642 #print(outliers_IDs_cspc)
2643 if self.__buffer_cspc is not None and self.clean_cspc:
2644 1416 outliers_IDs_cspc=outliers_IDs_cspc.astype(numpy.dtype('int64'))
2645 1417 if cspc_outliers_exist:
2646 1418 #sortdata=numpy.sort(buffer_cspc,axis=0)
2647 1419 #avg=numpy.mean(sortdata[:indexmin_cpsc,:],axis=0)
2648 1420 lt = outliers_IDs_cspc
1421 #if time_text.hour >= 11 or time_text.hour <= 19:
1422 if True:
1423 data_buffer_cspc = buffer_cspc[[t for t in range(buffer_cspc.shape[0]) if t not in lt],:]
1424 (mu, sigma) = numpy.apply_along_axis(lambda x: norm.fit(numpy.abs(x)), 0, data_buffer_cspc)
1425 mu = mu[numpy.newaxis, :]
1426 mask = (numpy.abs(data_buffer_cspc ) >= 0) & (numpy.abs(data_buffer_cspc ) <= 2 * mu)
1427 filtered_data = numpy.where(mask, data_buffer_cspc, numpy.nan)
1428 avg = numpy.nanmean(filtered_data, axis=0)
2649 1429
2650 avg=numpy.mean(buffer_cspc[[t for t in range(buffer_cspc.shape[0]) if t not in lt],:],axis=0)
1430 #avg=numpy.median(buffer_cspc[[t for t in range(buffer_cspc.shape[0]) if t not in lt],:],axis=0)
1431 else:
1432 avg = numpy.mean(buffer1[[t for t in range(buffer1.shape[0]) if t not in lt],:], axis=0)
1433
1434 #print("avg2",avg)
2651 1435 for p in list(outliers_IDs_cspc):
2652 1436 buffer_cspc[p,:]= avg
2653 1437
2654 self.__buffer_cspc[:,0,:,k]=numpy.copy(buffer_cspc)
2655
1438 self.__buffer_cspc[:,0,:,k,l]=numpy.copy(buffer_cspc)
1439 #else:
1440 #break
2656 1441
2657 1442 buffer=None
2658 1443 bufferH=None
2659 1444 buffer1=None
2660 1445 buffer_cspc=None
2661 1446
1447 #print("cpsc",self.__buffer_cspc[:,0,0,0,0])
1448 #print(self.__profIndex)
1449 #exit()
1450
2662 1451 buffer=None
2663 1452 #print(self.__buffer_spc[:,1,3,20,0])
2664 1453 #print(self.__buffer_spc[:,1,5,37,0])
1454 '''Integration of the improved spectra and cross-spectra'''
2665 1455 data_spc = numpy.sum(self.__buffer_spc,axis=0)
2666
2667 if self.clean_cspc:
2668 if self.__buffer_cspc is not None:
2669 1456 data_cspc = numpy.sum(self.__buffer_cspc,axis=0)
2670 else:
2671 data_cspc = None
2672 else:
2673 data_cspc = self.__buffer_cspc
2674 1457
2675 1458 #print(numpy.shape(data_spc))
2676 1459 #data_spc[1,4,20,0]=numpy.nan
2677 1460
2678
1461 #data_cspc = self.__buffer_cspc
2679 1462 data_dc = self.__buffer_dc
2680
2681 1463 n = self.__profIndex
2682 1464
2683 self.__buffer_spc = None
2684 if self.clean_cspc:
2685 self.__buffer_cspc = None
2686 else:
2687 self.__buffer_cspc = 0
1465 self.__buffer_spc = []
1466 self.__buffer_cspc = []
2688 1467 self.__buffer_dc = 0
2689 1468 self.__profIndex = 0
2690 1469
2691 1470 return data_spc, data_cspc, data_dc, n
2692 1471
2693 def byProfiles(self, data_spc, data_cspc, *args):
1472 def byProfiles(self, *args):
2694 1473
1474 """Call variables and push data"""
2695 1475 self.__dataReady = False
2696 1476 avgdata_spc = None
2697 1477 avgdata_cspc = None
2698 1478 avgdata_dc = None
2699 1479
2700 self.putData(data_spc, data_cspc, *args)
1480 self.putData(*args)
2701 1481
2702 1482 if self.__profIndex == self.n:
2703 if self.ByLags:
2704 avgdata_spc, avgdata_cspc, avgdata_dc, n = self.pushData_ByLags()
2705 else:
1483
2706 1484 avgdata_spc, avgdata_cspc, avgdata_dc, n = self.pushData()
2707 1485 self.n = n
2708 1486 self.__dataReady = True
@@ -2725,89 +1503,53 class IntegrationFaradaySpectra3(Operation): #This class should manage data with
2725 1503
2726 1504 return avgdata_spc, avgdata_cspc, avgdata_dc
2727 1505
2728 def integrate(self, datatime, data_spc, data_cspc, *args):
1506 def integrate(self, datatime, *args):
1507
1508 """Integration if the signal by n datablocks"""
2729 1509
2730 1510 if self.__profIndex == 0:
2731 1511 self.__initime = datatime
2732 #print(data_cspc.shape)
2733 1512
2734 #self.__buffer_spc = numpy.empty_like(data_spc,shape=(self.n,self.nChannels,self.nProfiles,self.nHeights,self.nLags))
2735 if self.ByLags:
2736 self.__buffer_spc = numpy.ones_like(data_spc,shape=(self.n,self.nChannels,self.nProfiles,self.nHeights,self.nLags))*numpy.NAN
2737 else:
2738 self.__buffer_spc = numpy.ones_like(data_spc,shape=(self.n,self.nChannels,self.nProfiles,self.nHeights))*numpy.NAN
2739
2740 #print(self.__buffer_spc[0])
2741 #print(self.__buffer_spc.dtype)
2742 #print(data_spc.dtype)
2743
2744 if data_cspc is not None:
2745 nCrossChannels = numpy.shape(data_cspc)[0]
2746 if self.ByLags:
2747 nLags = numpy.shape(data_cspc)[-1]
2748
2749 self.__buffer_cspc = numpy.ones_like(data_cspc,shape=(self.n,nCrossChannels,self.nProfiles,self.nHeights,nLags))*numpy.NAN
2750 else:
2751 if self.clean_cspc:
2752 self.__buffer_cspc = numpy.ones_like(data_cspc,shape=(self.n,nCrossChannels,self.nProfiles,self.nHeights))*numpy.NAN
2753 else:
2754 self.__buffer_cspc = 0
2755 else:
2756 self.__buffer_cspc = None
2757 #print("HEREEEE")
2758 #print(self.__buffer_cspc.dtype)
2759 #print(data_cspc.dtype)
2760 #exit(1)
2761 1513 if self.__byTime:
2762 1514 avgdata_spc, avgdata_cspc, avgdata_dc = self.byTime(
2763 1515 datatime, *args)
2764 1516 else:
2765 avgdata_spc, avgdata_cspc, avgdata_dc = self.byProfiles(data_spc, data_cspc, *args)
1517 avgdata_spc, avgdata_cspc, avgdata_dc = self.byProfiles(*args)
2766 1518
2767 1519 if not self.__dataReady:
2768 1520 return None, None, None, None
2769 1521
2770 1522 return self.__initime, avgdata_spc, avgdata_cspc, avgdata_dc
2771 1523
2772 def run(self, dataOut, n=None, timeInterval=None, overlapping=False,TrueLags=True,clean_cspc=True):
1524 def run(self, dataOut, n=None, timeInterval=None, overlapping=False):
1525 '''If no integration then exit'''
2773 1526 if n == 1:
1527 dataOut.VelRange = dataOut.getVelRange(0)
2774 1528 return dataOut
2775 1529
2776 1530 dataOut.flagNoData = True
2777 self.clean_cspc = clean_cspc
2778
2779 if not self.isConfig:
1531 ''' Assignation setup of integration time or number of integrations '''
1532 if not self.isConfig: #assignation setup of integration time or number of integrations
2780 1533 self.setup(n, timeInterval, overlapping)
2781 try:
2782 dataOut.FlipChannels
2783 self.FlipChannelsExist=1
2784 except:
2785 self.FlipChannelsExist=0
2786 1534 self.isConfig = True
2787 1535
2788 self.nProfiles=dataOut.nProfiles
2789 self.nChannels=dataOut.nChannels
2790 self.nHeights=dataOut.nHeights
2791 self.ByLags = dataOut.ByLags
1536 '''Integration call'''
2792 1537 if not dataOut.ByLags:
2793 1538 avgdatatime, avgdata_spc, avgdata_cspc, avgdata_dc = self.integrate(dataOut.utctime,
2794 1539 dataOut.data_spc,
2795 1540 dataOut.data_cspc,
2796 1541 dataOut.data_dc)
2797 1542 else:
2798 #self.nProfiles=dataOut.nProfiles
2799 #self.nChannels=dataOut.nChannels
2800 #self.nHeights=dataOut.nHeights
2801 self.nLags=dataOut.nLags
2802 self.TrueLags=TrueLags
2803
2804
2805
1543 self.nProfiles=dataOut.nProfiles
1544 self.nChannels=dataOut.nChannels
1545 self.nHeights=dataOut.nHeights
1546 self.DPL=dataOut.DPL
2806 1547 avgdatatime, avgdata_spc, avgdata_cspc, avgdata_dc = self.integrate(dataOut.utctime,
2807 1548 dataOut.dataLag_spc,
2808 1549 dataOut.dataLag_cspc,
2809 1550 dataOut.dataLag_dc)
2810 1551
1552 '''Asignate integrated data to output'''
2811 1553 if self.__dataReady:
2812 1554
2813 1555 if not dataOut.ByLags:
@@ -2819,19 +1561,19 class IntegrationFaradaySpectra3(Operation): #This class should manage data with
2819 1561 dataOut.dataLag_cspc = avgdata_cspc
2820 1562 dataOut.dataLag_dc = avgdata_dc
2821 1563
2822 dataOut.data_spc=dataOut.dataLag_spc[:,:,:,dataOut.LagPlot].real
2823
2824 if self.__buffer_cspc is not None:
1564 dataOut.data_spc=dataOut.dataLag_spc[:,:,:,dataOut.LagPlot]
2825 1565 dataOut.data_cspc=dataOut.dataLag_cspc[:,:,:,dataOut.LagPlot]
2826 1566 dataOut.data_dc=dataOut.dataLag_dc[:,:,dataOut.LagPlot]
2827 1567
2828
1568 dataOut.VelRange = dataOut.getVelRange(0)
2829 1569 dataOut.nIncohInt *= self.n
2830 1570 dataOut.utctime = avgdatatime
2831 1571 dataOut.flagNoData = False
2832 1572
2833 1573 return dataOut
2834 1574
1575
1576
2835 1577 class IntegrationFaradaySpectraNoLags(Operation):
2836 1578 '''
2837 1579 Written by R. Flores
@@ -4021,6 +2763,7 class SpectraDataToFaraday(Operation): #ISR MODE
4021 2763 input()
4022 2764 '''
4023 2765
2766 # Normalization Factor that take account the Number of integrations and profiles
4024 2767 def normFactor(self,dataOut):
4025 2768 dataOut.rnint2=numpy.zeros(dataOut.DPL,'float32')
4026 2769 for l in range(dataOut.DPL):
@@ -4176,16 +2919,16 class SpectraDataToFaraday(Operation): #ISR MODE
4176 2919
4177 2920 self.normFactor(dataOut)
4178 2921 #print(dataOut.NDP)
4179 dataOut.NDP=dataOut.nHeights
4180 dataOut.NR=len(dataOut.channelList)
4181 dataOut.DH=dataOut.heightList[1]-dataOut.heightList[0]
4182 dataOut.H0=int(dataOut.heightList[0])
2922 dataOut.NDP=dataOut.nHeights # Number of heights for Double Pulse.*
2923 dataOut.NR=len(dataOut.channelList) # num receptores (channels)
2924 dataOut.DH=dataOut.heightList[1]-dataOut.heightList[0] # delta H
2925 dataOut.H0=int(dataOut.heightList[0]) # H(0)
4183 2926
4184 2927 self.ConvertData(dataOut)
4185 2928 #print(dataOut.NDP)
4186 2929 #exit(1)
4187 2930 dataOut.NAVG=16#dataOut.rnint2[0] #CHECK THIS!
4188 if hasattr(dataOut, 'NRANGE'):
2931 if hasattr(dataOut, 'NRANGE'): # NRANGE.- Number of samples for Long Pulse.
4189 2932 dataOut.MAXNRANGENDT = max(dataOut.NRANGE,dataOut.NDT)
4190 2933 else:
4191 2934 dataOut.MAXNRANGENDT = dataOut.NDP
@@ -4381,7 +3124,8 class SpectraDataToFaraday_MST(Operation): #MST MODE
4381 3124 #dataOut.kabxys_integrated[5][:,:,0]+=self.dataLag_spc[0,:,:].imag
4382 3125 dataOut.kabxys_integrated[6][:,:,0]=self.dataLag_spc[1,:,:].real
4383 3126 #dataOut.kabxys_integrated[7][:,:,0]+=self.dataLag_spc[1,:,:].imag
4384
3127 print("self.dataLag_cspc shape:", self.dataLag_cspc.shape)
3128 print("dataOut.kabxys_integrated[8][:,:,0]", dataOut.kabxys_integrated[8][:,:,0])
4385 3129 dataOut.kabxys_integrated[8][:,:,0]=self.dataLag_cspc[0,:,:].real
4386 3130 dataOut.kabxys_integrated[10][:,:,0]=self.dataLag_cspc[0,:,:].imag
4387 3131
This diff has been collapsed as it changes many lines, (8790 lines changed) Show them Hide them
@@ -1,7 +1,8
1 1
2 import os
2 import os, json
3 3 import sys
4 4 import numpy, math
5
5 6 from scipy import interpolate
6 7 from scipy.optimize import nnls
7 8 from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation, MPDecorator
@@ -12,6 +13,7 from scipy.optimize import least_squares
12 13 import datetime
13 14 import collections.abc
14 15 import csv
16 import ast #new added
15 17
16 18 try:
17 19 from schainpy.model.proc import fitacf_guess
@@ -72,9 +74,6 class selectChannels(Operation):
72 74
73 75 def run(self, dataOut, channelList):
74 76
75
76
77
78 77 channelIndexList = []
79 78 self.dataOut = dataOut
80 79 for channel in channelList:
@@ -164,6 +163,41 class selectChannels(Operation):
164 163
165 164 return
166 165
166 class CombineChannels(Operation):
167 '''Digital hybrid implementation'''
168
169 def run(self, dataout, sum_list=[], sub_list=[]):
170 '''
171 Input:
172 sum_list : list of pairs [[0,2],[1,3]]
173 sub_list : list of pairs [[2,4],[6,8]]
174 '''
175 #print(dataout.data[0, :, :])
176 tmp = []
177
178 if sub_list:
179 for i, j in sub_list:
180 if dataout.flagDataAsBlock:
181 tmp.append( dataout.data[i, :, :] - dataout.data[j, :, :])
182 else:
183 tmp.append(dataout.data[i,:] - dataout.data[j,:,:])
184
185 if sum_list:
186 for i, j in sum_list:
187 if dataout.flagDataAsBlock:
188 tmp.append(dataout.data[i, :, :] + dataout.data[j, :, :])
189 #tmp.append(numpy.sum(dataout.data[i, :, :],dataout.data[j, :, :]))
190 else:
191 tmp.append(dataout.data[i,:] + dataout.data[j,:,:])
192
193
194
195
196 dataout.data = numpy.array(tmp)
197 dataout.channelList = range(len(tmp))
198
199 return dataout
200
167 201 class selectHeights(Operation):
168 202
169 203 def run(self, dataOut, minHei=None, maxHei=None, minIndex=None, maxIndex=None):
@@ -301,9 +335,11 class selectHeights(Operation):
301 335 class filterByHeights(Operation):
302 336
303 337 def run(self, dataOut, window):
304 #print(dataOut.nHeights)
338 #print("nHeights \n", dataOut.nHeights)
339 #print("heighList \n", dataOut.heightList)
305 340 deltaHeight = dataOut.heightList[1] - dataOut.heightList[0]
306
341 #print("dataOut \n", dataOut, dataOut.len)
342 #print("dataOut.data \n", dataOut.data)
307 343 if window == None:
308 344 window = (dataOut.radarControllerHeaderObj.txA/dataOut.radarControllerHeaderObj.nBaud) / deltaHeight
309 345
@@ -643,366 +679,510 class LagsReshape(Operation):
643 679
644 680 return dataOut
645 681
646 class LagsReshape150(Operation):
682
683 class CrossProdDP(Operation):
647 684 '''
648 685 Written by R. Flores
649 686 '''
650 """Operation to reshape input data into (Channels,Profiles(with same lag),Heights,Lags) and heights reconstruction.
687 """Operation to calculate cross products of the Double Pulse Experiment.
651 688
652 689 Parameters:
653 690 -----------
654
691 NLAG : int
692 Number of lags Long Pulse.
693 NRANGE : int
694 Number of samples for Long Pulse.
695 NCAL : int
696 .*
697 DPL : int
698 Number of lags Double Pulse.
699 NDN : int
700 .*
701 NDT : int
702 Number of heights for Double Pulse.*
703 NDP : int
704 Number of heights for Double Pulse.*
705 NSCAN : int
706 Number of profiles when the transmitter is on.
707 flags_array : intlist
708 .*
709 NAVG : int
710 Number of blocks to be "averaged".
711 nkill : int
712 Number of blocks not to be considered when averaging.
655 713
656 714 Example
657 715 --------
658 716
659 op = proc_unit.addOperation(name='LagsReshape')
660
717 op = proc_unit.addOperation(name='CrossProdDP', optype='other')
718 op.addParameter(name='NLAG', value='16', format='int')
719 op.addParameter(name='NRANGE', value='0', format='int')
720 op.addParameter(name='NCAL', value='0', format='int')
721 op.addParameter(name='DPL', value='11', format='int')
722 op.addParameter(name='NDN', value='0', format='int')
723 op.addParameter(name='NDT', value='66', format='int')
724 op.addParameter(name='NDP', value='66', format='int')
725 op.addParameter(name='NSCAN', value='132', format='int')
726 op.addParameter(name='flags_array', value='(0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300)', format='intlist')
727 op.addParameter(name='NAVG', value='16', format='int')
728 op.addParameter(name='nkill', value='6', format='int')
661 729
662 730 """
663 731
664 732 def __init__(self, **kwargs):
665 733
666 734 Operation.__init__(self, **kwargs)
735 self.bcounter=0
736 self.aux=1
737 self.lag_products_LP_median_estimates_aux=0
667 738
668 self.buffer=None
669 self.buffer_HR=None
670 self.buffer_HRonelag=None
739 def set_header_output(self,dataOut):
671 740
672 def LagDistribution(self,dataOut):
741 dataOut.read_samples=len(dataOut.heightList)#int(dataOut.systemHeaderObj.nSamples/dataOut.windowOfFilter)
742 padding=numpy.zeros(1,'int32')
743 hsize=numpy.zeros(1,'int32')
744 bufsize=numpy.zeros(1,'int32')
745 nr=numpy.zeros(1,'int32')
746 ngates=numpy.zeros(1,'int32') ### ### ### 2
747 time1=numpy.zeros(1,'uint64') # pos 3
748 time2=numpy.zeros(1,'uint64') # pos 4
749 lcounter=numpy.zeros(1,'int32')
750 groups=numpy.zeros(1,'int32')
751 system=numpy.zeros(4,'int8') # pos 7
752 h0=numpy.zeros(1,'float32')
753 dh=numpy.zeros(1,'float32')
754 ipp=numpy.zeros(1,'float32')
755 process=numpy.zeros(1,'int32')
756 tx=numpy.zeros(1,'int32')
757 ngates1=numpy.zeros(1,'int32') ### ### ### 13
758 time0=numpy.zeros(1,'uint64') # pos 14
759 nlags=numpy.zeros(1,'int32')
760 nlags1=numpy.zeros(1,'int32')
761 txb=numpy.zeros(1,'float32') ### ### ### 17
762 time3=numpy.zeros(1,'uint64') # pos 18
763 time4=numpy.zeros(1,'uint64') # pos 19
764 h0_=numpy.zeros(1,'float32')
765 dh_=numpy.zeros(1,'float32')
766 ipp_=numpy.zeros(1,'float32')
767 txa_=numpy.zeros(1,'float32')
768 pad=numpy.zeros(100,'int32')
769 nbytes=numpy.zeros(1,'int32')
770 limits=numpy.zeros(1,'int32')
771 ngroups=numpy.zeros(1,'int32') ### ### ### 27
673 772
674 dataOut.datapure=numpy.copy(dataOut.data[:,0:dataOut.NSCAN,:])
675 self.buffer = numpy.zeros((dataOut.nChannels,
676 int(dataOut.NSCAN/dataOut.DPL),
677 dataOut.nHeights,dataOut.DPL),
678 dtype='complex')
773 dataOut.header=[hsize,bufsize,nr,ngates,time1,time2,
774 lcounter,groups,system,h0,dh,ipp,
775 process,tx,ngates1,padding,time0,nlags,
776 nlags1,padding,txb,time3,time4,h0_,dh_,
777 ipp_,txa_,pad,nbytes,limits,padding,ngroups]
679 778
680 for j in range(int(self.buffer.shape[1]/2)):
681 for i in range(dataOut.DPL):
682 if j+1==int(self.buffer.shape[1]/2) and i+1==dataOut.DPL:
683 self.buffer[:,2*j:,:,i]=dataOut.datapure[:,2*i+int(2*j*dataOut.DPL):,:]
684 else:
685 self.buffer[:,2*j:2*(j+1),:,i]=dataOut.datapure[:,2*i+int(2*j*dataOut.DPL):2*(i+1)+int(2*j*dataOut.DPL),:]
686 779
687 return self.buffer
780 #dataOut.header[1][0]=81864
781 dataOut.FirstHeight=int(dataOut.heightList[0])
782 dataOut.MAXNRANGENDT=max(dataOut.NRANGE,dataOut.NDT)
783 dataOut.header[3][0]=max(dataOut.NRANGE,dataOut.NDT)
784 dataOut.header[7][0]=dataOut.NAVG
785 dataOut.header[9][0]=int(dataOut.heightList[0])
786 dataOut.header[10][0]=dataOut.DH
787 dataOut.header[17][0]=dataOut.DPL
788 dataOut.header[18][0]=dataOut.NLAG
789 #self.header[5][0]=0
790 dataOut.header[15][0]=dataOut.NDP
791 dataOut.header[2][0]=dataOut.NR
688 792
689 def HeightReconstruction(self,dataOut):
690 793
691 self.buffer_HR = numpy.zeros((int(dataOut.NSCAN/dataOut.DPL),
692 dataOut.nHeights,dataOut.DPL),
693 dtype='complex')
794 def get_products_cabxys(self,dataOut):
694 795
695 for i in range(int(dataOut.DPL)): #Only channel B
696 if i==0:
697 self.buffer_HR[:,:,i]=dataOut.datalags[1,:,:,i]
698 else:
699 self.buffer_HR[:,:,i]=self.HRonelag(dataOut,i)
796 if self.aux==1:
797 self.set_header_output(dataOut)
798 self.aux=0
700 799
701 return self.buffer_HR
800 dataOut.lags_array=[x / dataOut.DH for x in dataOut.flags_array]
801 self.cax=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
802 self.cay=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
803 self.cbx=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
804 self.cby=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
805 self.cax2=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
806 self.cay2=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
807 self.cbx2=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
808 self.cby2=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
809 self.caxbx=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
810 self.caxby=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
811 self.caybx=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
812 self.cayby=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
813 self.caxay=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
814 self.cbxby=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
702 815
816 for i in range(2):
817 for j in range(dataOut.NDP):
818 for k in range(int(dataOut.NSCAN/2)):
819 n=k%dataOut.DPL
820 ax=dataOut.data[0,2*k+i,j].real
821 ay=dataOut.data[0,2*k+i,j].imag
822 if j+dataOut.lags_array[n]<dataOut.NDP:
823 bx=dataOut.data[1,2*k+i,j+int(dataOut.lags_array[n])].real
824 by=dataOut.data[1,2*k+i,j+int(dataOut.lags_array[n])].imag
825 else:
826 if k+1<int(dataOut.NSCAN/2):
827 bx=dataOut.data[1,2*(k+1)+i,(dataOut.NRANGE+dataOut.NCAL+j+int(dataOut.lags_array[n]))%dataOut.NDP].real
828 by=dataOut.data[1,2*(k+1)+i,(dataOut.NRANGE+dataOut.NCAL+j+int(dataOut.lags_array[n]))%dataOut.NDP].imag
703 829
704 def HRonelag(self,dataOut,whichlag):
705 self.buffer_HRonelag = numpy.zeros((int(dataOut.NSCAN/dataOut.DPL),
706 dataOut.nHeights),
707 dtype='complex')
830 if k+1==int(dataOut.NSCAN/2):
831 bx=dataOut.data[1,2*k+i,(dataOut.NRANGE+dataOut.NCAL+j+int(dataOut.lags_array[n]))%dataOut.NDP].real
832 by=dataOut.data[1,2*k+i,(dataOut.NRANGE+dataOut.NCAL+j+int(dataOut.lags_array[n]))%dataOut.NDP].imag
708 833
709 for i in range(self.buffer_HRonelag.shape[0]):
710 for j in range(dataOut.nHeights):
711 if j+int(2*whichlag)<dataOut.nHeights:
712 self.buffer_HRonelag[i,j]=dataOut.datalags[1,i,j+2*whichlag,whichlag]
713 else:
714 if whichlag!=10:
715 self.buffer_HRonelag[i,j]=dataOut.datalags[1,i,(j+2*whichlag)%dataOut.nHeights,whichlag+1]
834 if(k<dataOut.DPL):
835 self.cax[j][n][i]=ax
836 self.cay[j][n][i]=ay
837 self.cbx[j][n][i]=bx
838 self.cby[j][n][i]=by
839 self.cax2[j][n][i]=ax*ax
840 self.cay2[j][n][i]=ay*ay
841 self.cbx2[j][n][i]=bx*bx
842 self.cby2[j][n][i]=by*by
843 self.caxbx[j][n][i]=ax*bx
844 self.caxby[j][n][i]=ax*by
845 self.caybx[j][n][i]=ay*bx
846 self.cayby[j][n][i]=ay*by
847 self.caxay[j][n][i]=ax*ay
848 self.cbxby[j][n][i]=bx*by
716 849 else:
717 if i+2<self.buffer_HRonelag.shape[0]:
718 self.buffer_HRonelag[i,j]=dataOut.datalags[1,i+2,(j+2*whichlag)%dataOut.nHeights,0]
719 else: #i+1==self.buffer_HRonelag.shape[0]:
720 self.buffer_HRonelag[i,j]=dataOut.datalags[1,i,(j+2*whichlag)%dataOut.nHeights,whichlag]
721
722 return self.buffer_HRonelag
850 self.cax[j][n][i]+=ax
851 self.cay[j][n][i]+=ay
852 self.cbx[j][n][i]+=bx
853 self.cby[j][n][i]+=by
854 self.cax2[j][n][i]+=ax*ax
855 self.cay2[j][n][i]+=ay*ay
856 self.cbx2[j][n][i]+=bx*bx
857 self.cby2[j][n][i]+=by*by
858 self.caxbx[j][n][i]+=ax*bx
859 self.caxby[j][n][i]+=ax*by
860 self.caybx[j][n][i]+=ay*bx
861 self.cayby[j][n][i]+=ay*by
862 self.caxay[j][n][i]+=ax*ay
863 self.cbxby[j][n][i]+=bx*by
723 864
724 865
866 def medi(self,data_navg,NAVG,nkill):
867 sorts=sorted(data_navg)
868 rsorts=numpy.arange(NAVG)
869 result=0.0
870 for k in range(NAVG):
871 if k>=nkill/2 and k<NAVG-nkill/2:
872 result+=sorts[k]*float(NAVG)/(float(NAVG-nkill))
873 return result
725 874
726 def run(self,dataOut,DPL=11,NSCAN=132):
727 875
728 dataOut.DPL=DPL
729 dataOut.NSCAN=NSCAN
730 dataOut.paramInterval=0#int(dataOut.nint*dataOut.header[7][0]*2 )
731 dataOut.lat=-11.95
732 dataOut.lon=-76.87
733 dataOut.datalags=None
876 def get_dc(self,dataOut):
877 if self.bcounter==0:
878 dataOut.dc=numpy.zeros(dataOut.NR,dtype='complex64')
879 def cabxys_navg(self,dataOut):
734 880
735 dataOut.datalags=numpy.copy(self.LagDistribution(dataOut))
736 dataOut.datalags[1,:,:,:]=self.HeightReconstruction(dataOut)
737 #print(dataOut.datalags[0,:,])
738 dataOut.data = numpy.reshape(dataOut.datalags,(2,132,dataOut.nHeights))
739 881
740 return dataOut
882 dataOut.header[5][0]=dataOut.TimeBlockSeconds
741 883
742 class LagsReshapeHP(Operation):
743 '''
744 Written by R. Flores
745 '''
746 """Operation to reshape input data into (Channels,Profiles(with same lag),Heights,Lags) and heights reconstruction.
884 dataOut.LastAVGDate=dataOut.TimeBlockSeconds
747 885
748 Parameters:
749 -----------
886 if self.bcounter==0:
887 dataOut.FirstAVGDate=dataOut.TimeBlockSeconds
888 dataOut.header[4][0]=dataOut.header[5][0]#firsttimeofNAVG
889 if dataOut.CurrentBlock==1:
890 dataOut.FirstBlockDate=dataOut.TimeBlockSeconds
891 dataOut.header[16][0]=dataOut.header[5][0]#FirsTimeOfTotalBlocks
750 892
893 self.cax_navg=[]
894 self.cay_navg=[]
895 self.cbx_navg=[]
896 self.cby_navg=[]
897 self.cax2_navg=[]
898 self.cay2_navg=[]
899 self.cbx2_navg=[]
900 self.cby2_navg=[]
901 self.caxbx_navg=[]
902 self.caxby_navg=[]
903 self.caybx_navg=[]
904 self.cayby_navg=[]
905 self.caxay_navg=[]
906 self.cbxby_navg=[]
751 907
752 Example
753 --------
908 dataOut.noisevector=numpy.zeros((dataOut.MAXNRANGENDT,dataOut.NR,dataOut.NAVG),'float32')
754 909
755 op = proc_unit.addOperation(name='LagsReshape')
910 dataOut.noisevector_=numpy.zeros((dataOut.read_samples,dataOut.NR,dataOut.NAVG),'float32')
756 911
912 self.noisevectorizer(dataOut.NSCAN,dataOut.nProfiles,dataOut.NR,dataOut.MAXNRANGENDT,dataOut.noisevector,dataOut.data,dataOut.dc) #30/03/2020
757 913
758 """
914 self.cax_navg.append(self.cax)
915 self.cay_navg.append(self.cay)
916 self.cbx_navg.append(self.cbx)
917 self.cby_navg.append(self.cby)
918 self.cax2_navg.append(self.cax2)
919 self.cay2_navg.append(self.cay2)
920 self.cbx2_navg.append(self.cbx2)
921 self.cby2_navg.append(self.cby2)
922 self.caxbx_navg.append(self.caxbx)
923 self.caxby_navg.append(self.caxby)
924 self.caybx_navg.append(self.caybx)
925 self.cayby_navg.append(self.cayby)
926 self.caxay_navg.append(self.caxay)
927 self.cbxby_navg.append(self.cbxby)
928 self.bcounter+=1
759 929
760 def __init__(self, **kwargs):
930 def noise_estimation4x_DP(self,dataOut):
931 if self.bcounter==dataOut.NAVG:
932 dataOut.noise_final=numpy.zeros(dataOut.NR,'float32')
933 snoise=numpy.zeros((dataOut.NR,dataOut.NAVG),'float32')
934 nvector1=numpy.zeros((dataOut.NR,dataOut.NAVG,dataOut.MAXNRANGENDT),'float32')
935 for i in range(dataOut.NR):
936 dataOut.noise_final[i]=0.0
937 for k in range(dataOut.NAVG):
938 snoise[i][k]=0.0
939 for j in range(dataOut.MAXNRANGENDT):
940 nvector1[i][k][j]= dataOut.noisevector[j][i][k];
941 snoise[i][k]=self.noise_hs4x(dataOut.MAXNRANGENDT, nvector1[i][k])
942 dataOut.noise_final[i]=self.noise_hs4x(dataOut.NAVG, snoise[i])
761 943
762 Operation.__init__(self, **kwargs)
944 def kabxys(self,dataOut):
763 945
764 self.buffer=None
765 self.buffer_HR=None
766 self.buffer_HRonelag=None
946 if self.bcounter==dataOut.NAVG:
767 947
768 def LagDistribution(self,dataOut):
948 dataOut.flagNoData = False
769 949
770 dataOut.datapure=numpy.copy(dataOut.data[:,0:dataOut.NSCAN,:])
771 self.buffer = numpy.zeros((dataOut.nChannels,
772 int(dataOut.NSCAN/dataOut.DPL),
773 dataOut.nHeights,dataOut.DPL),
774 dtype='complex')
950 self.kax=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
951 self.kay=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
952 self.kbx=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
953 self.kby=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
954 self.kax2=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
955 self.kay2=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
956 self.kbx2=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
957 self.kby2=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
958 self.kaxbx=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
959 self.kaxby=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
960 self.kaybx=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
961 self.kayby=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
962 self.kaxay=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
963 self.kbxby=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
964 auxx = numpy.array(self.cax2_navg)
965 auxx2 = numpy.array(self.cay2_navg)
966 auxx3 = numpy.array(self.cbx2_navg)
967 auxx4 = numpy.array(self.cby2_navg)
775 968
776 for j in range(int(self.buffer.shape[1]/2)):
777 for i in range(dataOut.DPL):
778 if j+1==int(self.buffer.shape[1]/2) and i+1==dataOut.DPL:
779 self.buffer[:,2*j:,:,i]=dataOut.datapure[:,2*i+int(2*j*dataOut.DPL):,:]
780 else:
781 self.buffer[:,2*j:2*(j+1),:,i]=dataOut.datapure[:,2*i+int(2*j*dataOut.DPL):2*(i+1)+int(2*j*dataOut.DPL),:]
969 pa1 = 20
970 pa2 = 10
971 #aux1 = dataOut.kax2[pa1,pa2,0]+dataOut.kax2[pa1,pa2,1]+dataOut.kay2[pa1,pa2,0]+dataOut.kay2[pa1,pa2,1]
972 #aux2 = dataOut.kbx2[pa1,pa2,0]+dataOut.kbx2[pa1,pa2,1]+dataOut.kby2[pa1,pa2,0]+dataOut.kby2[pa1,pa2,1]
782 973
783 return self.buffer
974 #print(aux1)#*numpy.conjugate(aux1))
975 #print(aux2)#*numpy.conjugate(aux2))
976 #print(auxx.shape)
977 '''
978 print(numpy.sum(auxx2[:,pa1,pa2,0]+auxx2[:,pa1,pa2,1]))#auxx[:,pa1,pa2,0]+auxx[:,pa1,pa2,1]))#+auxx2[:,pa1,pa2,0]+auxx2[:,pa1,pa2,1]))
979 print(numpy.sum(auxx3[:,pa1,pa2,0]+auxx3[:,pa1,pa2,1]+auxx4[:,pa1,pa2,0]+auxx4[:,pa1,pa2,1]))
980 #print(self.cax_navg[:,53,0,1])
981 #exit(1)
982 '''
784 983
785 def HeightReconstruction(self,dataOut):
984 for i in range(self.cax_navg[0].shape[0]):
985 for j in range(self.cax_navg[0].shape[1]):
986 for k in range(self.cax_navg[0].shape[2]):
987 data_navg=[item[i,j,k] for item in self.cax_navg]
988 self.kax[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
989 data_navg=[item[i,j,k] for item in self.cay_navg]
990 self.kay[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
991 data_navg=[item[i,j,k] for item in self.cbx_navg]
992 self.kbx[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
993 data_navg=[item[i,j,k] for item in self.cby_navg]
994 self.kby[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
995 data_navg=[item[i,j,k] for item in self.cax2_navg]
996 self.kax2[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
997 data_navg=[item[i,j,k] for item in self.cay2_navg]
998 self.kay2[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
999 data_navg=[item[i,j,k] for item in self.cbx2_navg]
1000 self.kbx2[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1001 data_navg=[item[i,j,k] for item in self.cby2_navg]
1002 self.kby2[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1003 data_navg=[item[i,j,k] for item in self.caxbx_navg]
1004 self.kaxbx[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1005 data_navg=[item[i,j,k] for item in self.caxby_navg]
1006 self.kaxby[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1007 data_navg=[item[i,j,k] for item in self.caybx_navg]
1008 self.kaybx[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1009 data_navg=[item[i,j,k] for item in self.cayby_navg]
1010 self.kayby[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1011 data_navg=[item[i,j,k] for item in self.caxay_navg]
1012 self.kaxay[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1013 data_navg=[item[i,j,k] for item in self.cbxby_navg]
1014 self.kbxby[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
786 1015
787 self.buffer_HR = numpy.zeros((int(dataOut.NSCAN/dataOut.DPL),
788 dataOut.nHeights,dataOut.DPL),
789 dtype='complex')
790 1016
791 for i in range(int(dataOut.DPL)): #Only channel B
792 if i==0:
793 self.buffer_HR[:,:,i]=dataOut.datalags[1,:,:,i]
794 else:
795 self.buffer_HR[:,:,i]=self.HRonelag(dataOut,i)
1017 dataOut.kax=self.kax
1018 dataOut.kay=self.kay
1019 dataOut.kbx=self.kbx
1020 dataOut.kby=self.kby
1021 dataOut.kax2=self.kax2
1022 dataOut.kay2=self.kay2
1023 dataOut.kbx2=self.kbx2
1024 dataOut.kby2=self.kby2
1025 dataOut.kaxbx=self.kaxbx
1026 dataOut.kaxby=self.kaxby
1027 dataOut.kaybx=self.kaybx
1028 dataOut.kayby=self.kayby
1029 dataOut.kaxay=self.kaxay
1030 dataOut.kbxby=self.kbxby
796 1031
797 return self.buffer_HR
1032 #FindMe
1033 pa1 = 20
1034 pa2 = 0
1035 '''
1036 aux1 = dataOut.kax2[pa1,pa2,0]+dataOut.kax2[pa1,pa2,1]#+dataOut.kay2[pa1,pa2,0]+dataOut.kay2[pa1,pa2,1]
1037 aux2 = dataOut.kbx2[pa1,pa2,0]+dataOut.kbx2[pa1,pa2,1]+dataOut.kby2[pa1,pa2,0]+dataOut.kby2[pa1,pa2,1]
1038 aux3 = dataOut.kay2[pa1,pa2,0]+dataOut.kay2[pa1,pa2,1]
1039 aux4 = dataOut.kax2[pa1,pa2,0]+dataOut.kax2[pa1,pa2,1]+dataOut.kay2[pa1,pa2,0]+dataOut.kay2[pa1,pa2,1]
798 1040
1041 print(aux1)#*numpy.conjugate(aux1))
1042 print(aux3)
1043 print("sum",aux4)
1044 print(aux2)#*numpy.conjugate(aux2))
1045 '''
1046 '''
1047 aux1 = dataOut.kaxbx[pa1,pa2,0]+dataOut.kaxbx[pa1,pa2,1]+dataOut.kayby[pa1,pa2,0]+dataOut.kayby[pa1,pa2,1]
1048 aux2 = dataOut.kaybx[pa1,pa2,0]+dataOut.kaybx[pa1,pa2,1]-dataOut.kaxby[pa1,pa2,0]-dataOut.kaxby[pa1,pa2,1]
1049 print(aux1)
1050 print(aux2)
1051 exit(1)
1052 '''
799 1053
800 def HRonelag(self,dataOut,whichlag):
801 self.buffer_HRonelag = numpy.zeros((int(dataOut.NSCAN/dataOut.DPL),
802 dataOut.nHeights),
803 dtype='complex')
1054 #print(dataOut.kax[53,0,0])
1055 #exit(1)
804 1056
805 for i in range(self.buffer_HRonelag.shape[0]):
806 for j in range(dataOut.nHeights):
807 if j+int(2*whichlag)<dataOut.nHeights:
808 self.buffer_HRonelag[i,j]=dataOut.datalags[1,i,j+2*whichlag,whichlag]
809 else:
810 if whichlag!=10:
811 self.buffer_HRonelag[i,j]=dataOut.datalags[1,i,(j+2*whichlag)%dataOut.nHeights,whichlag+1]
812 else:
813 if i+2<self.buffer_HRonelag.shape[0]:
814 self.buffer_HRonelag[i,j]=dataOut.datalags[1,i+2,(j+2*whichlag)%dataOut.nHeights,0]
815 else: #i+1==self.buffer_HRonelag.shape[0]:
816 self.buffer_HRonelag[i,j]=dataOut.datalags[1,i,(j+2*whichlag)%dataOut.nHeights,whichlag]
1057 self.bcounter=0
817 1058
818 return self.buffer_HRonelag
1059 dataOut.crossprods=numpy.zeros((3,4,numpy.shape(dataOut.kax)[0],numpy.shape(dataOut.kax)[1],numpy.shape(dataOut.kax)[2]))
819 1060
1061 dataOut.crossprods[0]=[dataOut.kax,dataOut.kay,dataOut.kbx,dataOut.kby]
1062 dataOut.crossprods[1]=[dataOut.kax2,dataOut.kay2,dataOut.kbx2,dataOut.kby2]
1063 dataOut.crossprods[2]=[dataOut.kaxay,dataOut.kbxby,dataOut.kaxbx,dataOut.kaxby]
1064 dataOut.data_for_RTI_DP=numpy.zeros((3,dataOut.NDP))
1065 dataOut.data_for_RTI_DP[0],dataOut.data_for_RTI_DP[1],dataOut.data_for_RTI_DP[2]=self.RTI_COLUMN(dataOut.kax2,dataOut.kay2,dataOut.kbx2,dataOut.kby2,dataOut.kaxbx,dataOut.kayby,dataOut.kaybx,dataOut.kaxby, dataOut.NDP)
820 1066
821 1067
822 def run(self,dataOut,DPL=11,NSCAN=132):
823 1068
824 dataOut.DPL=DPL
825 dataOut.NSCAN=NSCAN
826 dataOut.paramInterval=0#int(dataOut.nint*dataOut.header[7][0]*2 )
827 dataOut.lat=-11.95
828 dataOut.lon=-76.87
829 dataOut.datalags=None
1069 def RTI_COLUMN(self,kax2,kay2,kbx2,kby2,kaxbx,kayby,kaybx,kaxby, NDP):
1070 x00=numpy.zeros(NDP,dtype='float32')
1071 x01=numpy.zeros(NDP,dtype='float32')
1072 x02=numpy.zeros(NDP,dtype='float32')
1073 for j in range(2):# first couple lags
1074 for k in range(2): #flip
1075 for i in range(NDP): #
1076 fx=numpy.sqrt((kaxbx[i,j,k]+kayby[i,j,k])**2+(kaybx[i,j,k]-kaxby[i,j,k])**2)
1077 x00[i]=x00[i]+(kax2[i,j,k]+kay2[i,j,k])
1078 x01[i]=x01[i]+(kbx2[i,j,k]+kby2[i,j,k])
1079 x02[i]=x02[i]+fx
830 1080
831 dataOut.datalags=numpy.copy(self.LagDistribution(dataOut))
832 dataOut.datalags[1,:,:,:]=self.HeightReconstruction(dataOut)
1081 x00[i]=10.0*numpy.log10(x00[i]/512.)
1082 x01[i]=10.0*numpy.log10(x01[i]/512.)
1083 x02[i]=10.0*numpy.log10(x02[i])
1084 return x02,x00,x01
833 1085
834 return dataOut
835 1086
836 class LagsReshapeDP(Operation):
837 '''
838 Written by R. Flores
839 '''
840 """Operation to reshape input data into (Channels,Profiles(with same lag),Heights,Lags) and heights reconstruction.
1087 def noisevectorizer(self,NSCAN,nProfiles,NR,MAXNRANGENDT,noisevector,data,dc):
841 1088
842 Parameters:
843 -----------
1089 rnormalizer= 1./(float(nProfiles - NSCAN))
1090 #rnormalizer= float(NSCAN)/((float(nProfiles - NSCAN))*float(MAXNRANGENDT))
1091 for i in range(NR):
1092 for j in range(MAXNRANGENDT):
1093 for k in range(NSCAN,nProfiles):
1094 #TODO:integrate just 2nd quartile gates
1095 if k==NSCAN:
1096 noisevector[j][i][self.bcounter]=(abs(data[i][k][j]-dc[i])**2)*rnormalizer
1097 else:
1098 noisevector[j][i][self.bcounter]+=(abs(data[i][k][j]-dc[i])**2)*rnormalizer
844 1099
845 1100
846 Example
847 --------
848 1101
849 op = proc_unit.addOperation(name='LagsReshape')
850 1102
1103 def noise_hs4x(self, ndatax, datax):
1104 divider=10#divider was originally 10
1105 noise=0.0
1106 data=numpy.zeros(ndatax,'float32')
1107 ndata1=int(ndatax/4)
1108 ndata2=int(2.5*(ndatax/4.))
1109 ndata=int(ndata2-ndata1)
1110 sorts=sorted(datax)
851 1111
852 """
853
854 def __init__(self, **kwargs):
855
856 Operation.__init__(self, **kwargs)
857
858 self.buffer=None
859
860 def LagDistribution(self,dataOut):
861
862 self.buffer = numpy.zeros((dataOut.nChannels,
863 int(2*2*dataOut.NSCAN/dataOut.NLAG),
864 dataOut.NDP,dataOut.DPL),
865 dtype='complex')
866
867 indProfile = numpy.arange(0,dataOut.NSCAN,1)//8
868
869 #dataOut.nNoiseProfiles = dataOut.nProfiles-dataOut.NSCAN
870
871 for i in range(2):
872 if i==0:
873 aux = 0
874 else:
875 aux =16
876 for j in range(dataOut.NDP):
877 for k in range(int(dataOut.NSCAN)):
878
879 n=dataOut.lagind[k%dataOut.NLAG]
880
881 data_ChA=dataOut.data[0,k,dataOut.NRANGE+j+i*dataOut.NDT]#-dataOut.dc[0]
882
883 if dataOut.NRANGE+j+i*dataOut.NDT+2*n<dataOut.read_samples:
884
885 data_ChB=dataOut.data[1,k,dataOut.NRANGE+j+i*dataOut.NDT+2*n]#-dataOut.dc[1]
886 #print(data_ChB)
887 #exit(1)
888 #print("*1*")
889
890 else:
891 #print(i,j,n)
892 #exit(1)
893
894 if k+1<int(dataOut.NSCAN):
895 data_ChB=dataOut.data[1,k+1,(dataOut.NRANGE+j+i*dataOut.NDT+2*n)%dataOut.NDP]
896 #print(data_ChB)
897 #print("*2*")
898 #exit(1)
899 if k+1==int(dataOut.NSCAN):
900 data_ChB=dataOut.data[1,k,(dataOut.NRANGE+j+i*dataOut.NDT+2*n)%dataOut.NDP]
901 #print("*3*")
902 #if n == 7 and j == 65:
903 #print(k)
904 #print(data_ChB)
905 #exit(1)
906 if n == 8 or n == 9 or n == 10:
907 self.buffer[0,int((aux+indProfile[k]-1)/2),j,n] = data_ChA
908 self.buffer[1,int((aux+indProfile[k]-1)/2),j,n] = data_ChB
909 elif n == 1 or n == 2 or n == 7:
910 self.buffer[0,int((aux+indProfile[k])/2),j,n] = data_ChA
911 self.buffer[1,int((aux+indProfile[k])/2),j,n] = data_ChB
1112 for k in range(ndata2): # select just second quartile
1113 data[k]=sorts[k+ndata1]
1114 nums_min= int(ndata/divider)
1115 if(int(ndata/divider)> 2):
1116 nums_min= int(ndata/divider)
912 1117 else:
913 self.buffer[0,aux+indProfile[k],j,n] = data_ChA
914 self.buffer[1,aux+indProfile[k],j,n] = data_ChB
915
916 #FindMe
917 pa1 = 20
918 pa2 = 10
919
920 #print(self.buffer[0,:,pa1,pa2])
921 #print(self.buffer[1,:,pa1,pa2])
922 '''
923 print(sum(self.buffer[0,:,pa1,pa2]))
924 print(sum(self.buffer[1,:,pa1,pa2]))
925 #exit(1)
926 '''
927
928 '''
929 for pa1 in range(67):
930 print(sum(self.buffer[0,:,pa1,pa2]))
931 print(sum(self.buffer[1,:,pa1,pa2]))
932 '''
1118 nums_min=2
1119 sump=0.0
1120 sumq=0.0
1121 j=0
1122 cont=1
1123 while ( (cont==1) and (j<ndata)):
1124 sump+=data[j]
1125 sumq+= data[j]*data[j]
1126 j=j+1
1127 if (j> nums_min):
1128 rtest= float(j/(j-1)) +1.0/ndata
1129 if( (sumq*j) > (rtest*sump*sump ) ):
1130 j=j-1
1131 sump-= data[j]
1132 sumq-=data[j]*data[j]
1133 cont= 0
1134 noise= (sump/j)
933 1135
934 '''
935 import matplotlib.pyplot as plt
936 fft = numpy.fft.fft(self.buffer[0,:,pa1,pa2])
937 fft2 = fft*numpy.conjugate(fft)
938 fft2 = fft2.real
939 fft2 = numpy.fft.fftshift(fft2)
940 '''
941 #print("before",fft2)
942 #plt.plot(fft2)
943 #plt.show()
944 #import time
945 #time.sleep(5)
946 #plt.close('all')
947 #exit(1)
948 return self.buffer
1136 return noise
949 1137
950 1138
951 1139
952 def run(self,dataOut,DPL=11,NSCAN=128,lagind=(0,1,2,3,4,5,6,7,0,3,4,5,6,8,9,10),lagfirst=(1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1), NLAG = 16, NRANGE = 200):
1140 def run(self, dataOut, NLAG=16, NRANGE=0, NCAL=0, DPL=11,
1141 NDN=0, NDT=66, NDP=66, NSCAN=132,
1142 flags_array=(0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300), NAVG=16, nkill=6, **kwargs):
953 1143
954 dataOut.DPL=DPL
955 dataOut.NSCAN=NSCAN
956 1144 dataOut.NLAG=NLAG
957 deltaHeight = dataOut.heightList[1] - dataOut.heightList[0]
1145 dataOut.NR=len(dataOut.channelList)
958 1146 dataOut.NRANGE=NRANGE
959 dataOut.read_samples=int(dataOut.nHeights)
960 #print(dataOut.read_samples)
961 #print(dataOut.nHeights)
962 #exit(1)
963 dataOut.NDP = dataOut.NDT = int((dataOut.nHeights-dataOut.NRANGE)/2)
964 dataOut.heightList = numpy.arange(dataOut.NDP) *deltaHeight# + dataOut.heightList[0]
965 #dataOut.NDP = dataOut.NDT = int(dataOut.nHeights/2)#int((dataOut.nHeights-dataOut.NRANGE)/2)
966 #print(dataOut.NDP)
967 #print(dataOut.heightList)
968 dataOut.paramInterval=0#int(dataOut.nint*dataOut.header[7][0]*2 )
969 dataOut.lat=-11.95
970 dataOut.lon=-76.87
971 dataOut.datalags=None
972 dataOut.lagind=lagind
973 dataOut.lagfirst=lagfirst
974
1147 dataOut.NCAL=NCAL
1148 dataOut.DPL=DPL
1149 dataOut.NDN=NDN
1150 dataOut.NDT=NDT
1151 dataOut.NDP=NDP
1152 dataOut.NSCAN=NSCAN
1153 dataOut.DH=dataOut.heightList[1]-dataOut.heightList[0]
1154 dataOut.H0=int(dataOut.heightList[0])
1155 dataOut.flags_array=flags_array
1156 dataOut.NAVG=NAVG
1157 dataOut.nkill=nkill
1158 dataOut.flagNoData = True
975 1159
976 #print(dataOut.data[1,:12,:15])
977 #exit(1)
978 #print(numpy.shape(dataOut.data))
979 dataOut.datalags = numpy.copy(self.LagDistribution(dataOut))
980 #print(numpy.shape(dataOut.datalags))
981 #exit(1)
982 #print("AFTER RESHAPE DP")
1160 self.get_dc(dataOut)
1161 self.get_products_cabxys(dataOut)
1162 self.cabxys_navg(dataOut)
1163 self.noise_estimation4x_DP(dataOut)
1164 self.kabxys(dataOut)
983 1165
984 dataOut.data = dataOut.data[:,:,200:]
985 #print(numpy.shape(dataOut.data))
986 #exit(1)
1166 return dataOut
987 1167
988 1168
989 return dataOut
990 1169
991 class LagsReshapeDP_V2(Operation):
1170 class IntegrationDP(Operation):
992 1171 '''
993 1172 Written by R. Flores
994 1173 '''
995 """Operation to reshape input data into (Channels,Profiles(with same lag),Heights,Lags) and heights reconstruction.
1174 """Operation to integrate the Double Pulse data.
996 1175
997 1176 Parameters:
998 1177 -----------
999
1178 nint : int
1179 Number of integrations.
1000 1180
1001 1181 Example
1002 1182 --------
1003 1183
1004 op = proc_unit.addOperation(name='LagsReshape')
1005
1184 op = proc_unit.addOperation(name='IntegrationDP', optype='other')
1185 op.addParameter(name='nint', value='30', format='int')
1006 1186
1007 1187 """
1008 1188
@@ -1010,201 +1190,85 class LagsReshapeDP_V2(Operation):
1010 1190
1011 1191 Operation.__init__(self, **kwargs)
1012 1192
1013 self.buffer=None
1014 self.data_buffer = []
1015
1016 def setup(self,dataOut,DPL,NSCAN,NLAG,NRANGE,lagind,lagfirst):
1017 dataOut.DPL=DPL
1018 dataOut.NSCAN=NSCAN
1019 dataOut.NLAG = NLAG
1020 deltaHeight = dataOut.heightList[1] - dataOut.heightList[0]
1021 dataOut.NRANGE = NRANGE
1022 dataOut.read_samples=int(dataOut.nHeights)
1023 #print(dataOut.read_samples)
1024 #print(dataOut.nHeights)
1025 #exit(1)
1026 dataOut.NDP = dataOut.NDT = int((dataOut.nHeights-dataOut.NRANGE)/2)
1027 dataOut.heightList = numpy.arange(dataOut.NDP) *deltaHeight# + dataOut.heightList[0]
1028 #dataOut.NDP = dataOut.NDT = int(dataOut.nHeights/2)#int((dataOut.nHeights-dataOut.NRANGE)/2)
1029 #print(dataOut.NDP)
1030 #print(dataOut.heightList)
1031 dataOut.paramInterval=0#int(dataOut.nint*dataOut.header[7][0]*2 )
1032 dataOut.lat=-11.95
1033 dataOut.lon=-76.87
1034 dataOut.datalags=None
1035 dataOut.lagind=lagind
1036 dataOut.lagfirst=lagfirst
1037
1038
1039 def LagDistribution(self,dataOut):
1193 self.counter=0
1194 self.aux=0
1195 self.init_time=None
1040 1196
1041 self.buffer = numpy.zeros((dataOut.nChannels,
1042 int(2*2*dataOut.NSCAN/dataOut.NLAG),
1043 dataOut.NDP,dataOut.DPL),
1044 dtype='complex')
1197 def integration_for_double_pulse(self,dataOut):
1045 1198
1046 indProfile = numpy.arange(0,dataOut.NSCAN,1)//8
1199 if self.aux==1:
1047 1200
1048 #dataOut.nNoiseProfiles = dataOut.nProfiles-dataOut.NSCAN
1201 dataOut.TimeBlockSeconds_for_dp_power=dataOut.utctime
1202 dataOut.bd_time=gmtime(dataOut.TimeBlockSeconds_for_dp_power)
1203 dataOut.year=dataOut.bd_time.tm_year+(dataOut.bd_time.tm_yday-1)/364.0
1204 dataOut.ut_Faraday=dataOut.bd_time.tm_hour+dataOut.bd_time.tm_min/60.0+dataOut.bd_time.tm_sec/3600.0
1205 self.aux=0
1049 1206
1050 for i in range(2):
1051 if i==0:
1052 aux = 0
1053 else:
1054 aux =16
1055 for j in range(dataOut.NDP):
1056 for k in range(int(dataOut.NSCAN)):
1207 if self.counter==0:
1057 1208
1058 n=dataOut.lagind[k%dataOut.NLAG]
1209 tmpx=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1210 dataOut.kabxys_integrated=[tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx]
1211 self.init_time=dataOut.utctime
1059 1212
1060 data_ChA=dataOut.data[0,k,dataOut.NRANGE+j+i*dataOut.NDT]#-dataOut.dc[0]
1213 if self.counter < dataOut.nint:
1061 1214
1062 if dataOut.NRANGE+j+i*dataOut.NDT+2*n<dataOut.read_samples:
1215 dataOut.final_cross_products=[dataOut.kax,dataOut.kay,dataOut.kbx,dataOut.kby,dataOut.kax2,dataOut.kay2,dataOut.kbx2,dataOut.kby2,dataOut.kaxbx,dataOut.kaxby,dataOut.kaybx,dataOut.kayby,dataOut.kaxay,dataOut.kbxby]
1063 1216
1064 data_ChB=dataOut.data[1,k,dataOut.NRANGE+j+i*dataOut.NDT+2*n]#-dataOut.dc[1]
1065 #print(data_ChB)
1066 #exit(1)
1067 #print("*1*")
1217 for ind in range(len(dataOut.kabxys_integrated)): #final cross products
1218 dataOut.kabxys_integrated[ind]=dataOut.kabxys_integrated[ind]+dataOut.final_cross_products[ind]
1068 1219
1069 else:
1070 #print(i,j,n)
1071 #exit(1)
1220 self.counter+=1
1072 1221
1073 if k+1<int(dataOut.NSCAN):
1074 data_ChB=dataOut.data[1,k+1,(dataOut.NRANGE+j+i*dataOut.NDT+2*n)%dataOut.NDP]
1075 #print(data_ChB)
1076 #print("*2*")
1077 #exit(1)
1078 if k+1==int(dataOut.NSCAN):
1079 data_ChB=dataOut.data[1,k,(dataOut.NRANGE+j+i*dataOut.NDT+2*n)%dataOut.NDP]
1080 #print("*3*")
1081 #if n == 7 and j == 65:
1082 #print(k)
1083 #print(data_ChB)
1084 #exit(1)
1085 if n == 8 or n == 9 or n == 10:
1086 self.buffer[0,int((aux+indProfile[k]-1)/2),j,n] = data_ChA
1087 self.buffer[1,int((aux+indProfile[k]-1)/2),j,n] = data_ChB
1088 elif n == 1 or n == 2 or n == 7:
1089 self.buffer[0,int((aux+indProfile[k])/2),j,n] = data_ChA
1090 self.buffer[1,int((aux+indProfile[k])/2),j,n] = data_ChB
1091 else:
1092 self.buffer[0,aux+indProfile[k],j,n] = data_ChA
1093 self.buffer[1,aux+indProfile[k],j,n] = data_ChB
1222 if self.counter==dataOut.nint-1:
1223 self.aux=1
1094 1224
1095 #FindMe
1225 if self.counter==dataOut.nint:
1226 dataOut.flagNoData=False
1096 1227 pa1 = 20
1097 1228 pa2 = 10
1098
1099 #print(self.buffer[0,:,pa1,pa2])
1100 #print(self.buffer[1,:,pa1,pa2])
1101 '''
1102 print(sum(self.buffer[0,:,pa1,pa2]))
1103 print(sum(self.buffer[1,:,pa1,pa2]))
1104 #exit(1)
1105 1229 '''
1230 print(32*(dataOut.kabxys_integrated[4][pa1,pa2,0]+dataOut.kabxys_integrated[5][pa1,pa2,0]+dataOut.kabxys_integrated[4][pa1,pa2,1]+dataOut.kabxys_integrated[5][pa1,pa2,1]))
1231 print(32*(dataOut.kabxys_integrated[6][pa1,pa2,0]+dataOut.kabxys_integrated[7][pa1,pa2,0]+dataOut.kabxys_integrated[6][pa1,pa2,1]+dataOut.kabxys_integrated[7][pa1,pa2,1]))
1106 1232
1233 exit(1)
1107 1234 '''
1108 for pa1 in range(67):
1109 print(sum(self.buffer[0,:,pa1,pa2]))
1110 print(sum(self.buffer[1,:,pa1,pa2]))
1235 dataOut.utctime=self.init_time
1236 self.counter=0
1111 1237 '''
1112
1238 print(dataOut.kabxys_integrated[8][53,6,0]+dataOut.kabxys_integrated[11][53,6,0])
1239 print(dataOut.kabxys_integrated[8][53,9,0]+dataOut.kabxys_integrated[11][53,9,0])
1240 exit(1)
1113 1241 '''
1114 import matplotlib.pyplot as plt
1115 fft = numpy.fft.fft(self.buffer[0,:,pa1,pa2])
1116 fft2 = fft*numpy.conjugate(fft)
1117 fft2 = fft2.real
1118 fft2 = numpy.fft.fftshift(fft2)
1119 '''
1120 #print("before",fft2)
1121 #plt.plot(fft2)
1122 #plt.show()
1123 #import time
1124 #time.sleep(5)
1125 #plt.close('all')
1126 #exit(1)
1127 return self.buffer
1128
1129 1242
1130 1243
1131 def run(self,dataOut,DPL=11,NSCAN=128,lagind=(0,1,2,3,4,5,6,7,0,3,4,5,6,8,9,10),lagfirst=(1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1), NLAG = 16, NRANGE = 200):
1132
1133 if not self.isConfig:
1134 self.setup(dataOut,DPL,NSCAN,NLAG,NRANGE,lagind,lagfirst)
1135 self.isConfig = True
1136
1137 #print(dataOut.data[1,:12,:15])
1138 #exit(1)
1139 #print(numpy.shape(dataOut.data))
1140 #print(dataOut.profileIndex)
1141
1142 if not dataOut.flagDataAsBlock:
1244 def run(self,dataOut,nint=20):
1143 1245
1144 1246 dataOut.flagNoData=True
1145 #print("nProfiles: ",dataOut.nProfiles)
1146 #if dataOut.profileIndex == 140:
1147 #print("id: ",dataOut.profileIndex)
1148 if dataOut.profileIndex == dataOut.nProfiles-1:
1149 #print("here")
1150 #print(dataOut.data.shape)
1151 self.data_buffer.append(dataOut.data)
1152 dataOut.data = numpy.transpose(numpy.array(self.data_buffer),(1,0,2))
1153 #print(dataOut.data.shape)
1154 #print(numpy.sum(dataOut.data))
1155 #print(dataOut.data[1,100,:])
1156 #exit(1)
1157 dataOut.datalags = numpy.copy(self.LagDistribution(dataOut))
1158 #print(numpy.shape(dataOut.datalags))
1159 #exit(1)
1160 #print("AFTER RESHAPE DP")
1161
1162 dataOut.data = dataOut.data[:,:,200:]
1163 self.data_buffer = []
1164 dataOut.flagDataAsBlock = True
1165 dataOut.flagNoData = False
1247 dataOut.nint=nint
1248 dataOut.paramInterval=0#int(dataOut.nint*dataOut.header[7][0]*2 )
1249 dataOut.lat=-11.95
1250 dataOut.lon=-76.87
1166 1251
1167 deltaHeight = dataOut.heightList[1] - dataOut.heightList[0]
1168 dataOut.heightList = numpy.arange(dataOut.NDP) *deltaHeight# + dataOut.heightList[0]
1169 #exit(1)
1170 #print(numpy.sum(dataOut.datalags))
1171 #exit(1)
1252 self.integration_for_double_pulse(dataOut)
1172 1253
1173 else:
1174 self.data_buffer.append(dataOut.data)
1175 #print(numpy.shape(dataOut.data))
1176 #exit(1)
1177 else:
1178 #print(dataOut.data.shape)
1179 #print(numpy.sum(dataOut.data))
1180 #print(dataOut.data[1,100,:])
1181 #exit(1)
1182 dataOut.datalags = numpy.copy(self.LagDistribution(dataOut))
1183 #print(dataOut.datalags.shape)
1184 dataOut.data = dataOut.data[:,:,200:]
1185 deltaHeight = dataOut.heightList[1] - dataOut.heightList[0]
1186 dataOut.heightList = numpy.arange(dataOut.NDP) * deltaHeight# + dataOut.heightList[0]
1187 #print(dataOut.nHeights)
1188 #print(numpy.sum(dataOut.datalags))
1189 #exit(1)
1190 1254
1191 1255 return dataOut
1192 1256
1193 class LagsReshapeLP(Operation):
1257
1258 class SumFlips(Operation):
1194 1259 '''
1195 1260 Written by R. Flores
1196 1261 '''
1197 """Operation to reshape input data into (Channels,Profiles(with same lag),Heights,Lags) and heights reconstruction.
1262 """Operation to sum the flip and unflip part of certain cross products of the Double Pulse.
1198 1263
1199 1264 Parameters:
1200 1265 -----------
1201
1266 None
1202 1267
1203 1268 Example
1204 1269 --------
1205 1270
1206 op = proc_unit.addOperation(name='LagsReshape')
1207
1271 op = proc_unit.addOperation(name='SumFlips', optype='other')
1208 1272
1209 1273 """
1210 1274
@@ -1212,168 +1276,62 class LagsReshapeLP(Operation):
1212 1276
1213 1277 Operation.__init__(self, **kwargs)
1214 1278
1215 self.buffer=None
1216
1217 1279
1218 def LagDistributionLP(self,dataOut):
1280 def rint2DP(self,dataOut):
1219 1281
1220 buffer=dataOut.data
1221 self.buffer = numpy.zeros((dataOut.nChannels,
1222 dataOut.NSCAN,
1223 dataOut.NRANGE,dataOut.NLAG),
1224 dtype='complex64')
1282 dataOut.rnint2=numpy.zeros(dataOut.DPL,'float32')
1225 1283
1284 for l in range(dataOut.DPL):
1226 1285
1227 #self.dataOut.nptsfft2=150
1228 self.cnorm=float((dataOut.nProfiles-dataOut.NSCAN)/dataOut.NSCAN)
1229 self.lagp0=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex64')
1230 self.lagp1=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex64')
1231 self.lagp2=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex64')
1232 #self.lagp3=numpy.zeros((dataOut.NLAG,dataOut.nProfiles-dataOut.NSCAN,dataOut.NRANGE),'complex64')
1233 self.lagp3=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex64')
1234 #self.lagp4=numpy.zeros((dataOut.NLAG,dataOut.NRANGE,dataOut.NAVG),'complex64')
1286 dataOut.rnint2[l]=1.0/(dataOut.nint*dataOut.NAVG*12.0)
1235 1287
1236 for i in range(dataOut.nChannels):
1237 #buffer_dc=dataOut.dc[i]
1238 for j in range(dataOut.NRANGE):
1239 1288
1240 range_for_n=numpy.min((dataOut.NRANGE-j,dataOut.NLAG))
1241
1242 buffer_aux=numpy.conj(buffer[i,:dataOut.nProfiles,j])#-buffer_dc)
1243 for n in range(range_for_n):
1244
1245 c=(buffer_aux)*(buffer[i,:dataOut.nProfiles,j+n])#-buffer_dc)
1246
1247 if i==0:
1248 self.lagp0[n,:,j]=c[:dataOut.NSCAN]
1249 self.lagp3[n,:dataOut.nProfiles-dataOut.NSCAN,j]=c[dataOut.NSCAN:]/self.cnorm
1250 elif i==1:
1251 self.lagp1[n,:,j]=c[:dataOut.NSCAN]
1252 elif i==2:
1253 self.lagp2[n,:,j]=c[:dataOut.NSCAN]
1289 def SumLags(self,dataOut):
1254 1290
1291 for l in range(dataOut.DPL):
1255 1292 '''
1256 self.lagp0=numpy.conj(self.lagp0)
1257 self.lagp1=numpy.conj(self.lagp1)
1258 self.lagp2=numpy.conj(self.lagp2)
1259 self.lagp3=numpy.conj(self.lagp3)
1293 if l == 10:
1294 print(32*(dataOut.kabxys_integrated[4][20,10,0]+dataOut.kabxys_integrated[5][20,10,0]+dataOut.kabxys_integrated[4][20,10,1]+dataOut.kabxys_integrated[5][20,10,1]))
1295 print(32*(dataOut.kabxys_integrated[6][20,10,0]+dataOut.kabxys_integrated[7][20,10,0]+dataOut.kabxys_integrated[6][20,10,1]+dataOut.kabxys_integrated[7][20,10,1]))
1260 1296 '''
1261 self.buffer[0,:,:,:] = numpy.transpose(numpy.conj(self.lagp0),(1,2,0))
1262 self.buffer[1,:,:,:] = numpy.transpose(numpy.conj(self.lagp1),(1,2,0))
1263 self.buffer[2,:,:,:] = numpy.transpose(numpy.conj(self.lagp2),(1,2,0))
1264 self.buffer[3,:,:,:] = numpy.transpose(numpy.conj(self.lagp3),(1,2,0))
1265
1266 #print(self.buffer[3,:,100,15])
1267 print("Sum: ", sum(self.buffer[3,:,199,2]))
1268 #print(self.cnorm)
1269 exit(1)
1270
1271
1272 return self.buffer
1273
1274 def LagDistributionLP_V2(self,dataOut):
1275
1276 buffer=dataOut.data
1277 self.buffer = numpy.zeros((dataOut.NLAG,
1278 dataOut.NSCAN,
1279 dataOut.NRANGE,dataOut.nChannels),
1280 dtype='complex128')
1281
1282
1283 #self.dataOut.nptsfft2=150
1284 self.cnorm=float((dataOut.nProfiles-dataOut.NSCAN)/dataOut.NSCAN)
1285 #dataOut.nNoiseProfiles = dataOut.nProfiles-dataOut.NSCAN
1286 self.lagp0=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex128')
1287 self.lagp1=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex128')
1288 self.lagp2=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex128')
1289 #self.lagp3=numpy.zeros((dataOut.NLAG,dataOut.nProfiles-dataOut.NSCAN,dataOut.NRANGE),'complex64')
1290 self.lagp3=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex128')
1291 #self.lagp4=numpy.zeros((dataOut.NLAG,dataOut.NRANGE,dataOut.NAVG),'complex64')
1292
1293 for i in range(dataOut.nChannels):
1294 #buffer_dc=dataOut.dc[i]
1295 for j in range(dataOut.NRANGE):
1296
1297 range_for_n=numpy.min((dataOut.NRANGE-j,dataOut.NLAG))
1298
1299 #buffer_aux=buffer[i,:dataOut.nProfiles,j]#-buffer_dc)
1300 for n in range(range_for_n):
1301
1302 c=buffer[i,:dataOut.nProfiles,j+n]#-buffer_dc)
1303
1304 if i==0:
1305 self.lagp0[n,:,j]=c[:dataOut.NSCAN]
1306 self.lagp3[n,:dataOut.nProfiles-dataOut.NSCAN,j]=c[dataOut.NSCAN:]#/self.cnorm
1307 elif i==1:
1308 self.lagp1[n,:,j]=c[:dataOut.NSCAN]
1309 elif i==2:
1310 self.lagp2[n,:,j]=c[:dataOut.NSCAN]
1297 dataOut.kabxys_integrated[4][:,l,0]=(dataOut.kabxys_integrated[4][:,l,0]+dataOut.kabxys_integrated[4][:,l,1])*dataOut.rnint2[l]
1298 dataOut.kabxys_integrated[5][:,l,0]=(dataOut.kabxys_integrated[5][:,l,0]+dataOut.kabxys_integrated[5][:,l,1])*dataOut.rnint2[l]
1299 dataOut.kabxys_integrated[6][:,l,0]=(dataOut.kabxys_integrated[6][:,l,0]+dataOut.kabxys_integrated[6][:,l,1])*dataOut.rnint2[l]
1300 dataOut.kabxys_integrated[7][:,l,0]=(dataOut.kabxys_integrated[7][:,l,0]+dataOut.kabxys_integrated[7][:,l,1])*dataOut.rnint2[l]
1311 1301
1302 dataOut.kabxys_integrated[8][:,l,0]=(dataOut.kabxys_integrated[8][:,l,0]-dataOut.kabxys_integrated[8][:,l,1])*dataOut.rnint2[l]
1303 dataOut.kabxys_integrated[9][:,l,0]=(dataOut.kabxys_integrated[9][:,l,0]-dataOut.kabxys_integrated[9][:,l,1])*dataOut.rnint2[l]
1304 dataOut.kabxys_integrated[10][:,l,0]=(dataOut.kabxys_integrated[10][:,l,0]-dataOut.kabxys_integrated[10][:,l,1])*dataOut.rnint2[l]
1305 dataOut.kabxys_integrated[11][:,l,0]=(dataOut.kabxys_integrated[11][:,l,0]-dataOut.kabxys_integrated[11][:,l,1])*dataOut.rnint2[l]
1312 1306 '''
1313 self.lagp0=numpy.conj(self.lagp0)
1314 self.lagp1=numpy.conj(self.lagp1)
1315 self.lagp2=numpy.conj(self.lagp2)
1316 self.lagp3=numpy.conj(self.lagp3)
1307 if l == 10:
1308 print(32*(dataOut.kabxys_integrated[4][20,10,0]+dataOut.kabxys_integrated[5][20,10,0]))
1309 print(32*(dataOut.kabxys_integrated[6][20,10,0]+dataOut.kabxys_integrated[7][20,10,0]))
1310 exit(1)
1317 1311 '''
1318 self.buffer[:,:,:,0] = self.lagp0
1319 self.buffer[:,:,:,1] = self.lagp1
1320 self.buffer[:,:,:,2] = self.lagp2
1321 self.buffer[:,:,:,3] = self.lagp3
1322
1323 #print(self.buffer[3,:,100,15])
1324 #print(sum(self.buffer[3,:,199,2]))
1325 #print(self.cnorm)
1326 #exit(1)
1327
1328
1329 return self.buffer
1330
1331
1332 def run(self,dataOut,DPL=11,NSCAN=128,lagind=(0,1,2,3,4,5,6,7,0,3,4,5,6,8,9,10),lagfirst=(1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1),NLAG=16,NRANGE=200):
1333
1334 dataOut.DPL=DPL
1335 dataOut.NSCAN=NSCAN
1336 dataOut.NLAG = NLAG
1337 dataOut.NRANGE = dataOut.nHeights
1338 #print(dataOut.NRANGE)
1339 #exit(1)
1340 dataOut.paramInterval=0#int(dataOut.nint*dataOut.header[7][0]*2 )
1341 dataOut.lat=-11.95
1342 dataOut.lon=-76.87
1343 dataOut.datalags=None
1344 dataOut.lagind=lagind
1345 dataOut.lagfirst=lagfirst
1346
1347 #self.LagDistributionHP(dataOut)
1348 dataOut.datalags = numpy.copy(self.LagDistributionLP_V2(dataOut))
1349
1312 def run(self,dataOut):
1350 1313
1351 #dataOut.final_noise = dataOut.getNoise(Profmin_index=128, Profmax_index=150)[:2]
1352 #print(dataOut.final_noise.shape)
1314 self.rint2DP(dataOut)
1315 self.SumLags(dataOut)
1353 1316
1354 dataOut.channelList = range(16)
1355 #print("AFTER RESHAPE LP")
1356 #print(dataOut.datalags[15])
1357 #print("DONE")
1358 #exit(1)
1359 1317
1360 1318 return dataOut
1361 1319
1362 class LagsReshapeHP2(Operation):
1320
1321 class FlagBadHeights(Operation):
1363 1322 '''
1364 1323 Written by R. Flores
1365 1324 '''
1366 """Operation to reshape input data into (Channels,Profiles(with same lag),Heights,Lags) and heights reconstruction.
1325 """Operation to flag bad heights (bad data) of the Double Pulse.
1367 1326
1368 1327 Parameters:
1369 1328 -----------
1370
1329 None
1371 1330
1372 1331 Example
1373 1332 --------
1374 1333
1375 op = proc_unit.addOperation(name='LagsReshape')
1376
1334 op = proc_unit.addOperation(name='FlagBadHeights', optype='other')
1377 1335
1378 1336 """
1379 1337
@@ -1381,1254 +1339,58 class LagsReshapeHP2(Operation):
1381 1339
1382 1340 Operation.__init__(self, **kwargs)
1383 1341
1384 self.buffer=None
1385
1386 def LagDistribution(self,dataOut):
1387
1388 nChannelsDP = 2
1389
1390 self.buffer = numpy.zeros((nChannelsDP,
1391 int(2*2*dataOut.NSCAN/dataOut.NLAG),
1392 dataOut.NDP,dataOut.DPL),
1393 dtype='complex')
1342 def run(self,dataOut):
1394 1343
1395 indProfile = numpy.arange(0,dataOut.NSCAN,1)//8
1344 dataOut.ibad=numpy.zeros((dataOut.NDP,dataOut.DPL),'int32')
1396 1345
1397 for i in range(2):
1398 if i==0:
1399 aux = 0
1400 else:
1401 aux =16
1402 1346 for j in range(dataOut.NDP):
1403 for k in range(int(dataOut.NSCAN)):
1404
1405 n=dataOut.lagind[k%dataOut.NLAG]
1406
1407 data_ChA=dataOut.data[0,k,dataOut.NRANGE+j+i*dataOut.NDT]#-dataOut.dc[0]
1408
1409 if dataOut.NRANGE+j+i*dataOut.NDT+2*n<dataOut.read_samples:
1410
1411 data_ChB=dataOut.data[1,k,dataOut.NRANGE+j+i*dataOut.NDT+2*n]#-dataOut.dc[1]
1412
1413 else:
1347 for l in range(dataOut.DPL):
1348 ip1=j+dataOut.NDP*(0+2*l)
1414 1349
1415 if k+1<int(dataOut.NSCAN):
1416 data_ChB=dataOut.data[1,k+1,(dataOut.NRANGE+j+i*dataOut.NDT+2*n)%dataOut.NDP]
1417 #print(data_ChB)
1418 #exit(1)
1419 if k+1==int(dataOut.NSCAN):
1420 data_ChB=dataOut.data[1,k,(dataOut.NRANGE+j+i*dataOut.NDT+2*n)%dataOut.NDP]
1421
1422 if n == 8 or n == 9 or n == 10:
1423 self.buffer[0,int((aux+indProfile[k]-1)/2),j,n] = data_ChA
1424 self.buffer[1,int((aux+indProfile[k]-1)/2),j,n] = data_ChB
1425 elif n == 1 or n == 2 or n == 7:
1426 self.buffer[0,int((aux+indProfile[k])/2),j,n] = data_ChA
1427 self.buffer[1,int((aux+indProfile[k])/2),j,n] = data_ChB
1350 if( (dataOut.kabxys_integrated[5][j,l,0] <= 0.) or (dataOut.kabxys_integrated[4][j,l,0] <= 0.) or (dataOut.kabxys_integrated[7][j,l,0] <= 0.) or (dataOut.kabxys_integrated[6][j,l,0] <= 0.)):
1351 dataOut.ibad[j][l]=1
1428 1352 else:
1429 self.buffer[0,aux+indProfile[k],j,n] = data_ChA
1430 self.buffer[1,aux+indProfile[k],j,n] = data_ChB
1431
1432 #print(self.buffer[0,:,65,8])
1433 #print(sum(self.buffer[0,:,65,8]))
1434 #print(sum(self.buffer[1,:,65,8]))
1435 #exit(1)
1436 print(sum(self.buffer[0,:,65,7]))
1437 print(sum(self.buffer[1,:,65,7]))
1438
1439 exit(1)
1440 return self.buffer
1441
1442 def LagDistributionHP(self,dataOut):
1443
1444 buffer=dataOut.data
1445 self.buffer = numpy.zeros((dataOut.nChannels,
1446 dataOut.NSCAN,
1447 dataOut.NRANGE,dataOut.NLAG),
1448 dtype='complex64')
1449
1450
1451 #self.dataOut.nptsfft2=150
1452 self.cnorm=float((dataOut.nProfiles-dataOut.NSCAN)/dataOut.NSCAN)
1453 self.lagp0=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex64')
1454 self.lagp1=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex64')
1455 self.lagp2=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex64')
1456 #self.lagp3=numpy.zeros((dataOut.NLAG,dataOut.nProfiles-dataOut.NSCAN,dataOut.NRANGE),'complex64')
1457 self.lagp3=numpy.zeros((dataOut.NLAG,dataOut.NSCAN,dataOut.NRANGE),'complex64')
1458 #self.lagp4=numpy.zeros((dataOut.NLAG,dataOut.NRANGE,dataOut.NAVG),'complex64')
1459
1460 for i in range(dataOut.nChannels):
1461 #buffer_dc=dataOut.dc[i]
1462 for j in range(dataOut.NRANGE):
1463
1464 range_for_n=numpy.min((dataOut.NRANGE-j,dataOut.NLAG))
1465
1466 buffer_aux=numpy.conj(buffer[i,:dataOut.nProfiles,j])#-buffer_dc)
1467 for n in range(range_for_n):
1468
1469 c=(buffer_aux)*(buffer[i,:dataOut.nProfiles,j+n])#-buffer_dc)
1470
1471 if i==0:
1472 self.lagp0[n,:,j]=c[:dataOut.NSCAN]
1473 self.lagp3[n,:dataOut.nProfiles-dataOut.NSCAN,j]=c[dataOut.NSCAN:]#/self.cnorm
1474 elif i==1:
1475 self.lagp1[n,:,j]=c[:dataOut.NSCAN]
1476 elif i==2:
1477 self.lagp2[n,:,j]=c[:dataOut.NSCAN]
1478
1479 '''
1480 self.lagp0=numpy.conj(self.lagp0)
1481 self.lagp1=numpy.conj(self.lagp1)
1482 self.lagp2=numpy.conj(self.lagp2)
1483 self.lagp3=numpy.conj(self.lagp3)
1484 '''
1485 self.buffer[0,:,:,:] = numpy.transpose(numpy.conj(self.lagp0),(1,2,0))
1486 self.buffer[1,:,:,:] = numpy.transpose(numpy.conj(self.lagp1),(1,2,0))
1487 self.buffer[2,:,:,:] = numpy.transpose(numpy.conj(self.lagp2),(1,2,0))
1488 self.buffer[3,:,:,:] = numpy.transpose(numpy.conj(self.lagp3),(1,2,0))
1489 '''
1490 print(self.buffer[3,:,100,15])
1491 print(sum(self.buffer[3,:,100,15]))
1492 print(self.cnorm)
1493 exit(1)
1494 '''
1495
1496 return self.buffer
1497
1498
1499 def run(self,dataOut,DPL=11,NSCAN=128,lagind=(0,1,2,3,4,5,6,7,0,3,4,5,6,8,9,10),lagfirst=(1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1),NLAG=16,NRANGE=200):
1500
1501 dataOut.DPL=DPL
1502 dataOut.NSCAN=NSCAN
1503 dataOut.NLAG = NLAG
1504 dataOut.NRANGE = NRANGE
1505 dataOut.NDP = dataOut.NDT = int((dataOut.nHeights-dataOut.NRANGE)/2)
1506 dataOut.paramInterval=0#int(dataOut.nint*dataOut.header[7][0]*2 )
1507 dataOut.lat=-11.95
1508 dataOut.lon=-76.87
1509 dataOut.datalags=None
1510 dataOut.lagind=lagind
1511 dataOut.lagfirst=lagfirst
1512 dataOut.read_samples=len(dataOut.heightList)
1513
1514 dataOut.datalagsDP=numpy.copy(self.LagDistribution(dataOut))
1515 #self.LagDistributionHP(dataOut)
1516 dataOut.datalagsLP = numpy.copy(self.LagDistributionHP(dataOut))
1517
1518 B = numpy.zeros((2,96,67,11),dtype='complex')
1519 #C = numpy.zeros((2,128,133,11),dtype='complex')
1520 D = numpy.zeros((2,128,67,5),dtype='complex')
1521
1522 dataOut.datalagsDP = numpy.append(dataOut.datalagsDP,B,axis=1)
1523 #dataOut.datalagsDP = numpy.append(dataOut.datalagsDP,C,axis=2)
1524 dataOut.datalagsDP = numpy.append(dataOut.datalagsDP,D,axis=3)
1525
1526 ##First 2 "channels" DP, 4 other "channels" LP
1527 #dataOut.datalags = numpy.append(dataOut.datalagsDP,dataOut.datalagsLP,axis=0)
1528 dataOut.datalags = numpy.append(dataOut.datalagsDP,dataOut.datalagsLP[:2,:],axis=2)
1529 dataOut.datalags = numpy.append(dataOut.datalags,dataOut.datalagsLP[2:4,:],axis=2)
1530 #print(dataOut.datalags.shape)
1531 #exit(1)
1532 '''
1533 print(dataOut.datalags.shape)
1534 print(dataOut.datalags[0,:,65,7])
1535 print(sum(dataOut.datalags[0,:,65,7]))
1536 print(sum(dataOut.datalags[1,:,65,7]))
1537 exit(1)
1538 '''
1353 dataOut.ibad[j][l]=0
1539 1354
1540 1355 return dataOut
1541 1356
1542 class CrossProdDP(Operation):
1357 class FlagBadHeightsSpectra(Operation):
1543 1358 '''
1544 1359 Written by R. Flores
1545 1360 '''
1546 """Operation to calculate cross products of the Double Pulse Experiment.
1361 """Operation to flag bad heights (bad data) of the Double Pulse.
1547 1362
1548 1363 Parameters:
1549 1364 -----------
1550 NLAG : int
1551 Number of lags Long Pulse.
1552 NRANGE : int
1553 Number of samples for Long Pulse.
1554 NCAL : int
1555 .*
1556 DPL : int
1557 Number of lags Double Pulse.
1558 NDN : int
1559 .*
1560 NDT : int
1561 Number of heights for Double Pulse.*
1562 NDP : int
1563 Number of heights for Double Pulse.*
1564 NSCAN : int
1565 Number of profiles when the transmitter is on.
1566 flags_array : intlist
1567 .*
1568 NAVG : int
1569 Number of blocks to be "averaged".
1570 nkill : int
1571 Number of blocks not to be considered when averaging.
1365 None
1572 1366
1573 1367 Example
1574 1368 --------
1575 1369
1576 op = proc_unit.addOperation(name='CrossProdDP', optype='other')
1577 op.addParameter(name='NLAG', value='16', format='int')
1578 op.addParameter(name='NRANGE', value='0', format='int')
1579 op.addParameter(name='NCAL', value='0', format='int')
1580 op.addParameter(name='DPL', value='11', format='int')
1581 op.addParameter(name='NDN', value='0', format='int')
1582 op.addParameter(name='NDT', value='66', format='int')
1583 op.addParameter(name='NDP', value='66', format='int')
1584 op.addParameter(name='NSCAN', value='132', format='int')
1585 op.addParameter(name='flags_array', value='(0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300)', format='intlist')
1586 op.addParameter(name='NAVG', value='16', format='int')
1587 op.addParameter(name='nkill', value='6', format='int')
1370 op = proc_unit.addOperation(name='FlagBadHeightsSpectra', optype='other')
1588 1371
1589 1372 """
1590 1373
1591 1374 def __init__(self, **kwargs):
1592 1375
1593 1376 Operation.__init__(self, **kwargs)
1594 self.bcounter=0
1595 self.aux=1
1596 self.lag_products_LP_median_estimates_aux=0
1597
1598 def set_header_output(self,dataOut):
1599 1377
1600 dataOut.read_samples=len(dataOut.heightList)#int(dataOut.systemHeaderObj.nSamples/dataOut.windowOfFilter)
1601 padding=numpy.zeros(1,'int32')
1602 hsize=numpy.zeros(1,'int32')
1603 bufsize=numpy.zeros(1,'int32')
1604 nr=numpy.zeros(1,'int32')
1605 ngates=numpy.zeros(1,'int32') ### ### ### 2
1606 time1=numpy.zeros(1,'uint64') # pos 3
1607 time2=numpy.zeros(1,'uint64') # pos 4
1608 lcounter=numpy.zeros(1,'int32')
1609 groups=numpy.zeros(1,'int32')
1610 system=numpy.zeros(4,'int8') # pos 7
1611 h0=numpy.zeros(1,'float32')
1612 dh=numpy.zeros(1,'float32')
1613 ipp=numpy.zeros(1,'float32')
1614 process=numpy.zeros(1,'int32')
1615 tx=numpy.zeros(1,'int32')
1616 ngates1=numpy.zeros(1,'int32') ### ### ### 13
1617 time0=numpy.zeros(1,'uint64') # pos 14
1618 nlags=numpy.zeros(1,'int32')
1619 nlags1=numpy.zeros(1,'int32')
1620 txb=numpy.zeros(1,'float32') ### ### ### 17
1621 time3=numpy.zeros(1,'uint64') # pos 18
1622 time4=numpy.zeros(1,'uint64') # pos 19
1623 h0_=numpy.zeros(1,'float32')
1624 dh_=numpy.zeros(1,'float32')
1625 ipp_=numpy.zeros(1,'float32')
1626 txa_=numpy.zeros(1,'float32')
1627 pad=numpy.zeros(100,'int32')
1628 nbytes=numpy.zeros(1,'int32')
1629 limits=numpy.zeros(1,'int32')
1630 ngroups=numpy.zeros(1,'int32') ### ### ### 27
1378 def run(self,dataOut):
1631 1379
1632 dataOut.header=[hsize,bufsize,nr,ngates,time1,time2,
1633 lcounter,groups,system,h0,dh,ipp,
1634 process,tx,ngates1,padding,time0,nlags,
1635 nlags1,padding,txb,time3,time4,h0_,dh_,
1636 ipp_,txa_,pad,nbytes,limits,padding,ngroups]
1380 dataOut.ibad=numpy.zeros((dataOut.NDP,dataOut.DPL),'int32')
1637 1381
1382 for j in range(dataOut.NDP):
1383 for l in range(dataOut.DPL):
1384 ip1=j+dataOut.NDP*(0+2*l)
1638 1385
1639 #dataOut.header[1][0]=81864
1640 dataOut.FirstHeight=int(dataOut.heightList[0])
1641 dataOut.MAXNRANGENDT=max(dataOut.NRANGE,dataOut.NDT)
1642 dataOut.header[3][0]=max(dataOut.NRANGE,dataOut.NDT)
1643 dataOut.header[7][0]=dataOut.NAVG
1644 dataOut.header[9][0]=int(dataOut.heightList[0])
1645 dataOut.header[10][0]=dataOut.DH
1646 dataOut.header[17][0]=dataOut.DPL
1647 dataOut.header[18][0]=dataOut.NLAG
1648 #self.header[5][0]=0
1649 dataOut.header[15][0]=dataOut.NDP
1650 dataOut.header[2][0]=dataOut.NR
1651
1652
1653 def get_products_cabxys(self,dataOut):
1654
1655 if self.aux==1:
1656 self.set_header_output(dataOut)
1657 self.aux=0
1658
1659 dataOut.lags_array=[x / dataOut.DH for x in dataOut.flags_array]
1660 self.cax=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1661 self.cay=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1662 self.cbx=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1663 self.cby=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1664 self.cax2=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1665 self.cay2=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1666 self.cbx2=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1667 self.cby2=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1668 self.caxbx=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1669 self.caxby=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1670 self.caybx=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1671 self.cayby=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1672 self.caxay=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1673 self.cbxby=numpy.zeros((dataOut.NDP,dataOut.DPL,2))
1674
1675 for i in range(2):
1676 for j in range(dataOut.NDP):
1677 for k in range(int(dataOut.NSCAN/2)):
1678 n=k%dataOut.DPL
1679 ax=dataOut.data[0,2*k+i,j].real
1680 ay=dataOut.data[0,2*k+i,j].imag
1681 if j+dataOut.lags_array[n]<dataOut.NDP:
1682 bx=dataOut.data[1,2*k+i,j+int(dataOut.lags_array[n])].real
1683 by=dataOut.data[1,2*k+i,j+int(dataOut.lags_array[n])].imag
1684 else:
1685 if k+1<int(dataOut.NSCAN/2):
1686 bx=dataOut.data[1,2*(k+1)+i,(dataOut.NRANGE+dataOut.NCAL+j+int(dataOut.lags_array[n]))%dataOut.NDP].real
1687 by=dataOut.data[1,2*(k+1)+i,(dataOut.NRANGE+dataOut.NCAL+j+int(dataOut.lags_array[n]))%dataOut.NDP].imag
1688
1689 if k+1==int(dataOut.NSCAN/2):
1690 bx=dataOut.data[1,2*k+i,(dataOut.NRANGE+dataOut.NCAL+j+int(dataOut.lags_array[n]))%dataOut.NDP].real
1691 by=dataOut.data[1,2*k+i,(dataOut.NRANGE+dataOut.NCAL+j+int(dataOut.lags_array[n]))%dataOut.NDP].imag
1692
1693 if(k<dataOut.DPL):
1694 self.cax[j][n][i]=ax
1695 self.cay[j][n][i]=ay
1696 self.cbx[j][n][i]=bx
1697 self.cby[j][n][i]=by
1698 self.cax2[j][n][i]=ax*ax
1699 self.cay2[j][n][i]=ay*ay
1700 self.cbx2[j][n][i]=bx*bx
1701 self.cby2[j][n][i]=by*by
1702 self.caxbx[j][n][i]=ax*bx
1703 self.caxby[j][n][i]=ax*by
1704 self.caybx[j][n][i]=ay*bx
1705 self.cayby[j][n][i]=ay*by
1706 self.caxay[j][n][i]=ax*ay
1707 self.cbxby[j][n][i]=bx*by
1708 else:
1709 self.cax[j][n][i]+=ax
1710 self.cay[j][n][i]+=ay
1711 self.cbx[j][n][i]+=bx
1712 self.cby[j][n][i]+=by
1713 self.cax2[j][n][i]+=ax*ax
1714 self.cay2[j][n][i]+=ay*ay
1715 self.cbx2[j][n][i]+=bx*bx
1716 self.cby2[j][n][i]+=by*by
1717 self.caxbx[j][n][i]+=ax*bx
1718 self.caxby[j][n][i]+=ax*by
1719 self.caybx[j][n][i]+=ay*bx
1720 self.cayby[j][n][i]+=ay*by
1721 self.caxay[j][n][i]+=ax*ay
1722 self.cbxby[j][n][i]+=bx*by
1723
1724
1725 def medi(self,data_navg,NAVG,nkill):
1726 sorts=sorted(data_navg)
1727 rsorts=numpy.arange(NAVG)
1728 result=0.0
1729 for k in range(NAVG):
1730 if k>=nkill/2 and k<NAVG-nkill/2:
1731 result+=sorts[k]*float(NAVG)/(float(NAVG-nkill))
1732 return result
1733
1734
1735 def get_dc(self,dataOut):
1736 if self.bcounter==0:
1737 dataOut.dc=numpy.zeros(dataOut.NR,dtype='complex64')
1738 def cabxys_navg(self,dataOut):
1739
1740
1741 dataOut.header[5][0]=dataOut.TimeBlockSeconds
1742
1743 dataOut.LastAVGDate=dataOut.TimeBlockSeconds
1744
1745 if self.bcounter==0:
1746 dataOut.FirstAVGDate=dataOut.TimeBlockSeconds
1747 dataOut.header[4][0]=dataOut.header[5][0]#firsttimeofNAVG
1748 if dataOut.CurrentBlock==1:
1749 dataOut.FirstBlockDate=dataOut.TimeBlockSeconds
1750 dataOut.header[16][0]=dataOut.header[5][0]#FirsTimeOfTotalBlocks
1751
1752 self.cax_navg=[]
1753 self.cay_navg=[]
1754 self.cbx_navg=[]
1755 self.cby_navg=[]
1756 self.cax2_navg=[]
1757 self.cay2_navg=[]
1758 self.cbx2_navg=[]
1759 self.cby2_navg=[]
1760 self.caxbx_navg=[]
1761 self.caxby_navg=[]
1762 self.caybx_navg=[]
1763 self.cayby_navg=[]
1764 self.caxay_navg=[]
1765 self.cbxby_navg=[]
1766
1767 dataOut.noisevector=numpy.zeros((dataOut.MAXNRANGENDT,dataOut.NR,dataOut.NAVG),'float32')
1768
1769 dataOut.noisevector_=numpy.zeros((dataOut.read_samples,dataOut.NR,dataOut.NAVG),'float32')
1770
1771 self.noisevectorizer(dataOut.NSCAN,dataOut.nProfiles,dataOut.NR,dataOut.MAXNRANGENDT,dataOut.noisevector,dataOut.data,dataOut.dc) #30/03/2020
1772
1773 self.cax_navg.append(self.cax)
1774 self.cay_navg.append(self.cay)
1775 self.cbx_navg.append(self.cbx)
1776 self.cby_navg.append(self.cby)
1777 self.cax2_navg.append(self.cax2)
1778 self.cay2_navg.append(self.cay2)
1779 self.cbx2_navg.append(self.cbx2)
1780 self.cby2_navg.append(self.cby2)
1781 self.caxbx_navg.append(self.caxbx)
1782 self.caxby_navg.append(self.caxby)
1783 self.caybx_navg.append(self.caybx)
1784 self.cayby_navg.append(self.cayby)
1785 self.caxay_navg.append(self.caxay)
1786 self.cbxby_navg.append(self.cbxby)
1787 self.bcounter+=1
1788
1789 def noise_estimation4x_DP(self,dataOut):
1790 if self.bcounter==dataOut.NAVG:
1791 dataOut.noise_final=numpy.zeros(dataOut.NR,'float32')
1792 snoise=numpy.zeros((dataOut.NR,dataOut.NAVG),'float32')
1793 nvector1=numpy.zeros((dataOut.NR,dataOut.NAVG,dataOut.MAXNRANGENDT),'float32')
1794 for i in range(dataOut.NR):
1795 dataOut.noise_final[i]=0.0
1796 for k in range(dataOut.NAVG):
1797 snoise[i][k]=0.0
1798 for j in range(dataOut.MAXNRANGENDT):
1799 nvector1[i][k][j]= dataOut.noisevector[j][i][k];
1800 snoise[i][k]=self.noise_hs4x(dataOut.MAXNRANGENDT, nvector1[i][k])
1801 dataOut.noise_final[i]=self.noise_hs4x(dataOut.NAVG, snoise[i])
1802
1803 def kabxys(self,dataOut):
1804
1805 if self.bcounter==dataOut.NAVG:
1806
1807 dataOut.flagNoData = False
1808
1809 self.kax=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1810 self.kay=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1811 self.kbx=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1812 self.kby=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1813 self.kax2=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1814 self.kay2=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1815 self.kbx2=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1816 self.kby2=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1817 self.kaxbx=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1818 self.kaxby=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1819 self.kaybx=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1820 self.kayby=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1821 self.kaxay=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1822 self.kbxby=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
1823 auxx = numpy.array(self.cax2_navg)
1824 auxx2 = numpy.array(self.cay2_navg)
1825 auxx3 = numpy.array(self.cbx2_navg)
1826 auxx4 = numpy.array(self.cby2_navg)
1827
1828 pa1 = 20
1829 pa2 = 10
1830 #aux1 = dataOut.kax2[pa1,pa2,0]+dataOut.kax2[pa1,pa2,1]+dataOut.kay2[pa1,pa2,0]+dataOut.kay2[pa1,pa2,1]
1831 #aux2 = dataOut.kbx2[pa1,pa2,0]+dataOut.kbx2[pa1,pa2,1]+dataOut.kby2[pa1,pa2,0]+dataOut.kby2[pa1,pa2,1]
1832
1833 #print(aux1)#*numpy.conjugate(aux1))
1834 #print(aux2)#*numpy.conjugate(aux2))
1835 #print(auxx.shape)
1836 '''
1837 print(numpy.sum(auxx2[:,pa1,pa2,0]+auxx2[:,pa1,pa2,1]))#auxx[:,pa1,pa2,0]+auxx[:,pa1,pa2,1]))#+auxx2[:,pa1,pa2,0]+auxx2[:,pa1,pa2,1]))
1838 print(numpy.sum(auxx3[:,pa1,pa2,0]+auxx3[:,pa1,pa2,1]+auxx4[:,pa1,pa2,0]+auxx4[:,pa1,pa2,1]))
1839 #print(self.cax_navg[:,53,0,1])
1840 #exit(1)
1841 '''
1842
1843 for i in range(self.cax_navg[0].shape[0]):
1844 for j in range(self.cax_navg[0].shape[1]):
1845 for k in range(self.cax_navg[0].shape[2]):
1846 data_navg=[item[i,j,k] for item in self.cax_navg]
1847 self.kax[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1848 data_navg=[item[i,j,k] for item in self.cay_navg]
1849 self.kay[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1850 data_navg=[item[i,j,k] for item in self.cbx_navg]
1851 self.kbx[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1852 data_navg=[item[i,j,k] for item in self.cby_navg]
1853 self.kby[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1854 data_navg=[item[i,j,k] for item in self.cax2_navg]
1855 self.kax2[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1856 data_navg=[item[i,j,k] for item in self.cay2_navg]
1857 self.kay2[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1858 data_navg=[item[i,j,k] for item in self.cbx2_navg]
1859 self.kbx2[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1860 data_navg=[item[i,j,k] for item in self.cby2_navg]
1861 self.kby2[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1862 data_navg=[item[i,j,k] for item in self.caxbx_navg]
1863 self.kaxbx[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1864 data_navg=[item[i,j,k] for item in self.caxby_navg]
1865 self.kaxby[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1866 data_navg=[item[i,j,k] for item in self.caybx_navg]
1867 self.kaybx[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1868 data_navg=[item[i,j,k] for item in self.cayby_navg]
1869 self.kayby[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1870 data_navg=[item[i,j,k] for item in self.caxay_navg]
1871 self.kaxay[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1872 data_navg=[item[i,j,k] for item in self.cbxby_navg]
1873 self.kbxby[i,j,k]=self.medi(data_navg,dataOut.NAVG,dataOut.nkill)
1874
1875
1876 dataOut.kax=self.kax
1877 dataOut.kay=self.kay
1878 dataOut.kbx=self.kbx
1879 dataOut.kby=self.kby
1880 dataOut.kax2=self.kax2
1881 dataOut.kay2=self.kay2
1882 dataOut.kbx2=self.kbx2
1883 dataOut.kby2=self.kby2
1884 dataOut.kaxbx=self.kaxbx
1885 dataOut.kaxby=self.kaxby
1886 dataOut.kaybx=self.kaybx
1887 dataOut.kayby=self.kayby
1888 dataOut.kaxay=self.kaxay
1889 dataOut.kbxby=self.kbxby
1890
1891 #FindMe
1892 pa1 = 20
1893 pa2 = 0
1894 '''
1895 aux1 = dataOut.kax2[pa1,pa2,0]+dataOut.kax2[pa1,pa2,1]#+dataOut.kay2[pa1,pa2,0]+dataOut.kay2[pa1,pa2,1]
1896 aux2 = dataOut.kbx2[pa1,pa2,0]+dataOut.kbx2[pa1,pa2,1]+dataOut.kby2[pa1,pa2,0]+dataOut.kby2[pa1,pa2,1]
1897 aux3 = dataOut.kay2[pa1,pa2,0]+dataOut.kay2[pa1,pa2,1]
1898 aux4 = dataOut.kax2[pa1,pa2,0]+dataOut.kax2[pa1,pa2,1]+dataOut.kay2[pa1,pa2,0]+dataOut.kay2[pa1,pa2,1]
1899
1900 print(aux1)#*numpy.conjugate(aux1))
1901 print(aux3)
1902 print("sum",aux4)
1903 print(aux2)#*numpy.conjugate(aux2))
1904 '''
1905 '''
1906 aux1 = dataOut.kaxbx[pa1,pa2,0]+dataOut.kaxbx[pa1,pa2,1]+dataOut.kayby[pa1,pa2,0]+dataOut.kayby[pa1,pa2,1]
1907 aux2 = dataOut.kaybx[pa1,pa2,0]+dataOut.kaybx[pa1,pa2,1]-dataOut.kaxby[pa1,pa2,0]-dataOut.kaxby[pa1,pa2,1]
1908 print(aux1)
1909 print(aux2)
1910 exit(1)
1911 '''
1912
1913 #print(dataOut.kax[53,0,0])
1914 #exit(1)
1915
1916 self.bcounter=0
1917
1918 dataOut.crossprods=numpy.zeros((3,4,numpy.shape(dataOut.kax)[0],numpy.shape(dataOut.kax)[1],numpy.shape(dataOut.kax)[2]))
1919
1920 dataOut.crossprods[0]=[dataOut.kax,dataOut.kay,dataOut.kbx,dataOut.kby]
1921 dataOut.crossprods[1]=[dataOut.kax2,dataOut.kay2,dataOut.kbx2,dataOut.kby2]
1922 dataOut.crossprods[2]=[dataOut.kaxay,dataOut.kbxby,dataOut.kaxbx,dataOut.kaxby]
1923 dataOut.data_for_RTI_DP=numpy.zeros((3,dataOut.NDP))
1924 dataOut.data_for_RTI_DP[0],dataOut.data_for_RTI_DP[1],dataOut.data_for_RTI_DP[2]=self.RTI_COLUMN(dataOut.kax2,dataOut.kay2,dataOut.kbx2,dataOut.kby2,dataOut.kaxbx,dataOut.kayby,dataOut.kaybx,dataOut.kaxby, dataOut.NDP)
1925
1926
1927
1928 def RTI_COLUMN(self,kax2,kay2,kbx2,kby2,kaxbx,kayby,kaybx,kaxby, NDP):
1929 x00=numpy.zeros(NDP,dtype='float32')
1930 x01=numpy.zeros(NDP,dtype='float32')
1931 x02=numpy.zeros(NDP,dtype='float32')
1932 for j in range(2):# first couple lags
1933 for k in range(2): #flip
1934 for i in range(NDP): #
1935 fx=numpy.sqrt((kaxbx[i,j,k]+kayby[i,j,k])**2+(kaybx[i,j,k]-kaxby[i,j,k])**2)
1936 x00[i]=x00[i]+(kax2[i,j,k]+kay2[i,j,k])
1937 x01[i]=x01[i]+(kbx2[i,j,k]+kby2[i,j,k])
1938 x02[i]=x02[i]+fx
1939
1940 x00[i]=10.0*numpy.log10(x00[i]/512.)
1941 x01[i]=10.0*numpy.log10(x01[i]/512.)
1942 x02[i]=10.0*numpy.log10(x02[i])
1943 return x02,x00,x01
1944
1945
1946 def noisevectorizer(self,NSCAN,nProfiles,NR,MAXNRANGENDT,noisevector,data,dc):
1947
1948 rnormalizer= 1./(float(nProfiles - NSCAN))
1949 #rnormalizer= float(NSCAN)/((float(nProfiles - NSCAN))*float(MAXNRANGENDT))
1950 for i in range(NR):
1951 for j in range(MAXNRANGENDT):
1952 for k in range(NSCAN,nProfiles):
1953 #TODO:integrate just 2nd quartile gates
1954 if k==NSCAN:
1955 noisevector[j][i][self.bcounter]=(abs(data[i][k][j]-dc[i])**2)*rnormalizer
1956 else:
1957 noisevector[j][i][self.bcounter]+=(abs(data[i][k][j]-dc[i])**2)*rnormalizer
1958
1959
1960
1961
1962 def noise_hs4x(self, ndatax, datax):
1963 divider=10#divider was originally 10
1964 noise=0.0
1965 data=numpy.zeros(ndatax,'float32')
1966 ndata1=int(ndatax/4)
1967 ndata2=int(2.5*(ndatax/4.))
1968 ndata=int(ndata2-ndata1)
1969 sorts=sorted(datax)
1970
1971 for k in range(ndata2): # select just second quartile
1972 data[k]=sorts[k+ndata1]
1973 nums_min= int(ndata/divider)
1974 if(int(ndata/divider)> 2):
1975 nums_min= int(ndata/divider)
1976 else:
1977 nums_min=2
1978 sump=0.0
1979 sumq=0.0
1980 j=0
1981 cont=1
1982 while ( (cont==1) and (j<ndata)):
1983 sump+=data[j]
1984 sumq+= data[j]*data[j]
1985 j=j+1
1986 if (j> nums_min):
1987 rtest= float(j/(j-1)) +1.0/ndata
1988 if( (sumq*j) > (rtest*sump*sump ) ):
1989 j=j-1
1990 sump-= data[j]
1991 sumq-=data[j]*data[j]
1992 cont= 0
1993 noise= (sump/j)
1994
1995 return noise
1996
1997
1998
1999 def run(self, dataOut, NLAG=16, NRANGE=0, NCAL=0, DPL=11,
2000 NDN=0, NDT=66, NDP=66, NSCAN=132,
2001 flags_array=(0, 30, 60, 90, 120, 150, 180, 210, 240, 270, 300), NAVG=16, nkill=6, **kwargs):
2002
2003 dataOut.NLAG=NLAG
2004 dataOut.NR=len(dataOut.channelList)
2005 dataOut.NRANGE=NRANGE
2006 dataOut.NCAL=NCAL
2007 dataOut.DPL=DPL
2008 dataOut.NDN=NDN
2009 dataOut.NDT=NDT
2010 dataOut.NDP=NDP
2011 dataOut.NSCAN=NSCAN
2012 dataOut.DH=dataOut.heightList[1]-dataOut.heightList[0]
2013 dataOut.H0=int(dataOut.heightList[0])
2014 dataOut.flags_array=flags_array
2015 dataOut.NAVG=NAVG
2016 dataOut.nkill=nkill
2017 dataOut.flagNoData = True
2018
2019 self.get_dc(dataOut)
2020 self.get_products_cabxys(dataOut)
2021 self.cabxys_navg(dataOut)
2022 self.noise_estimation4x_DP(dataOut)
2023 self.kabxys(dataOut)
2024
2025 return dataOut
2026
2027
2028
2029 class IntegrationDP(Operation):
2030 '''
2031 Written by R. Flores
2032 '''
2033 """Operation to integrate the Double Pulse data.
2034
2035 Parameters:
2036 -----------
2037 nint : int
2038 Number of integrations.
2039
2040 Example
2041 --------
2042
2043 op = proc_unit.addOperation(name='IntegrationDP', optype='other')
2044 op.addParameter(name='nint', value='30', format='int')
2045
2046 """
2047
2048 def __init__(self, **kwargs):
2049
2050 Operation.__init__(self, **kwargs)
2051
2052 self.counter=0
2053 self.aux=0
2054 self.init_time=None
2055
2056 def integration_for_double_pulse(self,dataOut):
2057
2058 if self.aux==1:
2059
2060 dataOut.TimeBlockSeconds_for_dp_power=dataOut.utctime
2061 dataOut.bd_time=gmtime(dataOut.TimeBlockSeconds_for_dp_power)
2062 dataOut.year=dataOut.bd_time.tm_year+(dataOut.bd_time.tm_yday-1)/364.0
2063 dataOut.ut_Faraday=dataOut.bd_time.tm_hour+dataOut.bd_time.tm_min/60.0+dataOut.bd_time.tm_sec/3600.0
2064 self.aux=0
2065
2066 if self.counter==0:
2067
2068 tmpx=numpy.zeros((dataOut.NDP,dataOut.DPL,2),'float32')
2069 dataOut.kabxys_integrated=[tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx,tmpx]
2070 self.init_time=dataOut.utctime
2071
2072 if self.counter < dataOut.nint:
2073
2074 dataOut.final_cross_products=[dataOut.kax,dataOut.kay,dataOut.kbx,dataOut.kby,dataOut.kax2,dataOut.kay2,dataOut.kbx2,dataOut.kby2,dataOut.kaxbx,dataOut.kaxby,dataOut.kaybx,dataOut.kayby,dataOut.kaxay,dataOut.kbxby]
2075
2076 for ind in range(len(dataOut.kabxys_integrated)): #final cross products
2077 dataOut.kabxys_integrated[ind]=dataOut.kabxys_integrated[ind]+dataOut.final_cross_products[ind]
2078
2079 self.counter+=1
2080
2081 if self.counter==dataOut.nint-1:
2082 self.aux=1
2083
2084 if self.counter==dataOut.nint:
2085 dataOut.flagNoData=False
2086 pa1 = 20
2087 pa2 = 10
2088 '''
2089 print(32*(dataOut.kabxys_integrated[4][pa1,pa2,0]+dataOut.kabxys_integrated[5][pa1,pa2,0]+dataOut.kabxys_integrated[4][pa1,pa2,1]+dataOut.kabxys_integrated[5][pa1,pa2,1]))
2090 print(32*(dataOut.kabxys_integrated[6][pa1,pa2,0]+dataOut.kabxys_integrated[7][pa1,pa2,0]+dataOut.kabxys_integrated[6][pa1,pa2,1]+dataOut.kabxys_integrated[7][pa1,pa2,1]))
2091
2092 exit(1)
2093 '''
2094 dataOut.utctime=self.init_time
2095 self.counter=0
2096 '''
2097 print(dataOut.kabxys_integrated[8][53,6,0]+dataOut.kabxys_integrated[11][53,6,0])
2098 print(dataOut.kabxys_integrated[8][53,9,0]+dataOut.kabxys_integrated[11][53,9,0])
2099 exit(1)
2100 '''
2101
2102
2103 def run(self,dataOut,nint=20):
2104
2105 dataOut.flagNoData=True
2106 dataOut.nint=nint
2107 dataOut.paramInterval=0#int(dataOut.nint*dataOut.header[7][0]*2 )
2108 dataOut.lat=-11.95
2109 dataOut.lon=-76.87
2110
2111 self.integration_for_double_pulse(dataOut)
2112
2113
2114 return dataOut
2115
2116
2117 class SumFlips(Operation):
2118 '''
2119 Written by R. Flores
2120 '''
2121 """Operation to sum the flip and unflip part of certain cross products of the Double Pulse.
2122
2123 Parameters:
2124 -----------
2125 None
2126
2127 Example
2128 --------
2129
2130 op = proc_unit.addOperation(name='SumFlips', optype='other')
2131
2132 """
2133
2134 def __init__(self, **kwargs):
2135
2136 Operation.__init__(self, **kwargs)
2137
2138
2139 def rint2DP(self,dataOut):
2140
2141 dataOut.rnint2=numpy.zeros(dataOut.DPL,'float32')
2142
2143 for l in range(dataOut.DPL):
2144
2145 dataOut.rnint2[l]=1.0/(dataOut.nint*dataOut.NAVG*12.0)
2146
2147
2148 def SumLags(self,dataOut):
2149
2150 for l in range(dataOut.DPL):
2151 '''
2152 if l == 10:
2153 print(32*(dataOut.kabxys_integrated[4][20,10,0]+dataOut.kabxys_integrated[5][20,10,0]+dataOut.kabxys_integrated[4][20,10,1]+dataOut.kabxys_integrated[5][20,10,1]))
2154 print(32*(dataOut.kabxys_integrated[6][20,10,0]+dataOut.kabxys_integrated[7][20,10,0]+dataOut.kabxys_integrated[6][20,10,1]+dataOut.kabxys_integrated[7][20,10,1]))
2155 '''
2156 dataOut.kabxys_integrated[4][:,l,0]=(dataOut.kabxys_integrated[4][:,l,0]+dataOut.kabxys_integrated[4][:,l,1])*dataOut.rnint2[l]
2157 dataOut.kabxys_integrated[5][:,l,0]=(dataOut.kabxys_integrated[5][:,l,0]+dataOut.kabxys_integrated[5][:,l,1])*dataOut.rnint2[l]
2158 dataOut.kabxys_integrated[6][:,l,0]=(dataOut.kabxys_integrated[6][:,l,0]+dataOut.kabxys_integrated[6][:,l,1])*dataOut.rnint2[l]
2159 dataOut.kabxys_integrated[7][:,l,0]=(dataOut.kabxys_integrated[7][:,l,0]+dataOut.kabxys_integrated[7][:,l,1])*dataOut.rnint2[l]
2160
2161 dataOut.kabxys_integrated[8][:,l,0]=(dataOut.kabxys_integrated[8][:,l,0]-dataOut.kabxys_integrated[8][:,l,1])*dataOut.rnint2[l]
2162 dataOut.kabxys_integrated[9][:,l,0]=(dataOut.kabxys_integrated[9][:,l,0]-dataOut.kabxys_integrated[9][:,l,1])*dataOut.rnint2[l]
2163 dataOut.kabxys_integrated[10][:,l,0]=(dataOut.kabxys_integrated[10][:,l,0]-dataOut.kabxys_integrated[10][:,l,1])*dataOut.rnint2[l]
2164 dataOut.kabxys_integrated[11][:,l,0]=(dataOut.kabxys_integrated[11][:,l,0]-dataOut.kabxys_integrated[11][:,l,1])*dataOut.rnint2[l]
2165 '''
2166 if l == 10:
2167 print(32*(dataOut.kabxys_integrated[4][20,10,0]+dataOut.kabxys_integrated[5][20,10,0]))
2168 print(32*(dataOut.kabxys_integrated[6][20,10,0]+dataOut.kabxys_integrated[7][20,10,0]))
2169 exit(1)
2170 '''
2171 def run(self,dataOut):
2172
2173 self.rint2DP(dataOut)
2174 self.SumLags(dataOut)
2175
2176
2177 return dataOut
2178
2179
2180 class FlagBadHeights(Operation):
2181 '''
2182 Written by R. Flores
2183 '''
2184 """Operation to flag bad heights (bad data) of the Double Pulse.
2185
2186 Parameters:
2187 -----------
2188 None
2189
2190 Example
2191 --------
2192
2193 op = proc_unit.addOperation(name='FlagBadHeights', optype='other')
2194
2195 """
2196
2197 def __init__(self, **kwargs):
2198
2199 Operation.__init__(self, **kwargs)
2200
2201 def run(self,dataOut):
2202
2203 dataOut.ibad=numpy.zeros((dataOut.NDP,dataOut.DPL),'int32')
2204
2205 for j in range(dataOut.NDP):
2206 for l in range(dataOut.DPL):
2207 ip1=j+dataOut.NDP*(0+2*l)
2208
2209 if( (dataOut.kabxys_integrated[5][j,l,0] <= 0.) or (dataOut.kabxys_integrated[4][j,l,0] <= 0.) or (dataOut.kabxys_integrated[7][j,l,0] <= 0.) or (dataOut.kabxys_integrated[6][j,l,0] <= 0.)):
2210 dataOut.ibad[j][l]=1
2211 else:
2212 dataOut.ibad[j][l]=0
2213
2214 return dataOut
2215
2216 class FlagBadHeightsSpectra(Operation):
2217 '''
2218 Written by R. Flores
2219 '''
2220 """Operation to flag bad heights (bad data) of the Double Pulse.
2221
2222 Parameters:
2223 -----------
2224 None
2225
2226 Example
2227 --------
2228
2229 op = proc_unit.addOperation(name='FlagBadHeightsSpectra', optype='other')
2230
2231 """
2232
2233 def __init__(self, **kwargs):
2234
2235 Operation.__init__(self, **kwargs)
2236
2237 def run(self,dataOut):
2238
2239 dataOut.ibad=numpy.zeros((dataOut.NDP,dataOut.DPL),'int32')
2240
2241 for j in range(dataOut.NDP):
2242 for l in range(dataOut.DPL):
2243 ip1=j+dataOut.NDP*(0+2*l)
2244
2245 if( (dataOut.kabxys_integrated[4][j,l,0] <= 0.) or (dataOut.kabxys_integrated[6][j,l,0] <= 0.)):
2246 dataOut.ibad[j][l]=1
2247 else:
2248 dataOut.ibad[j][l]=0
2249
2250 return dataOut
2251
2252 class CleanCohEchoes(Operation):
2253 '''
2254 Written by R. Flores
2255 '''
2256 """Operation to clean coherent echoes.
2257
2258 Parameters:
2259 -----------
2260 None
2261
2262 Example
2263 --------
2264
2265 op = proc_unit.addOperation(name='CleanCohEchoes')
2266
2267 """
2268
2269 def __init__(self, **kwargs):
2270
2271 Operation.__init__(self, **kwargs)
2272
2273 def remove_coh(self,pow):
2274 #print("pow inside: ",pow)
2275 #print(pow.shape)
2276 q75,q25 = numpy.percentile(pow,[75,25],axis=0)
2277 #print(q75,q25)
2278 intr_qr = q75-q25
2279
2280 max = q75+(1.5*intr_qr)
2281 min = q25-(1.5*intr_qr)
2282
2283 pow[pow > max] = numpy.nan
2284
2285 #print("Max: ",max)
2286 #print("Min: ",min)
2287
2288 return pow
2289
2290 def mad_based_outlier_V0(self, points, thresh=3.5):
2291 #print("points: ",points)
2292 if len(points.shape) == 1:
2293 points = points[:,None]
2294 median = numpy.nanmedian(points, axis=0)
2295 diff = numpy.nansum((points - median)**2, axis=-1)
2296 diff = numpy.sqrt(diff)
2297 med_abs_deviation = numpy.nanmedian(diff)
2298
2299 modified_z_score = 0.6745 * diff / med_abs_deviation
2300 #print(modified_z_score)
2301 return modified_z_score > thresh
2302
2303 def mad_based_outlier(self, points, thresh=3.5):
2304
2305 median = numpy.nanmedian(points)
2306 diff = (points - median)**2
2307 diff = numpy.sqrt(diff)
2308 med_abs_deviation = numpy.nanmedian(diff)
2309
2310 modified_z_score = 0.6745 * diff / med_abs_deviation
2311
2312 return modified_z_score > thresh
2313
2314 def removeSpreadF_V0(self,dataOut):
2315 for i in range(11):
2316 print("BEFORE Chb: ",i,dataOut.kabxys_integrated[6][:,i,0])
2317 #exit(1)
2318
2319 #Removing echoes greater than 35 dB
2320 maxdB = 35 #DEBERÍA SER NOISE+ALGO!!!!!!!!!!!!!!!!!!!!!!
2321 #print(dataOut.kabxys_integrated[6][:,0,0])
2322 data = numpy.copy(10*numpy.log10(dataOut.kabxys_integrated[6][:,0,0])) #Lag0 ChB
2323 #print(data)
2324 for i in range(12,data.shape[0]):
2325 #for j in range(data.shape[1]):
2326 if data[i]>maxdB:
2327 dataOut.kabxys_integrated[4][i-2:i+3,:,0] = numpy.nan #Debido a que estos ecos son intensos, se
2328 dataOut.kabxys_integrated[6][i-2:i+3,:,0] = numpy.nan #remueve además dos muestras antes y después
2329 #dataOut.kabxys_integrated[4][i-1,:,0] = numpy.nan
2330 #dataOut.kabxys_integrated[6][i-1,:,0] = numpy.nan
2331 #dataOut.kabxys_integrated[4][i+1,:,0] = numpy.nan
2332 #dataOut.kabxys_integrated[6][i+1,:,0] = numpy.nan
2333 dataOut.flagSpreadF = True
2334 print("Removing Threshold",i)
2335 #print("i: ",i)
2336
2337 #print("BEFORE Chb: ",dataOut.kabxys_integrated[6][:,0,0])
2338 #exit(1)
2339
2340 #Removing outliers from the profile
2341 nlag = 9
2342 minHei = 180
2343 #maxHei = 600
2344 maxHei = 525
2345 inda = numpy.where(dataOut.heightList >= minHei)
2346 indb = numpy.where(dataOut.heightList <= maxHei)
2347 minIndex = inda[0][0]
2348 maxIndex = indb[0][-1]
2349 #l0 = 0
2350 #print("BEFORE Cha: ",dataOut.kabxys_integrated[4][:,l0,0])
2351 #print("BEFORE Chb: ",dataOut.kabxys_integrated[6][:,l0,0])
2352 #exit(1)
2353 #'''
2354 l0 = 0
2355 #print("BEFORE Cha: ",dataOut.kabxys_integrated[4][:,l0,0])
2356 #print("BEFORE Chb: ",dataOut.kabxys_integrated[6][:,l0,0])
2357
2358 import matplotlib.pyplot as plt
2359 for i in range(l0,l0+11):
2360 plt.plot(dataOut.kabxys_integrated[6][:,i,0],dataOut.heightList,label='{}'.format(i))
2361 #plt.xlim(1.e5,1.e8)
2362 plt.legend()
2363 plt.xlim(0,2000)
2364 plt.show()
2365 #'''
2366 #dataOut.kabxys_integrated[4][minIndex:,:,0] = self.remove_coh(dataOut.kabxys_integrated[4][minIndex:,:,0
2367 outliers_IDs = []
2368 '''
2369 for lag in range(11):
2370 outliers = self.mad_based_outlier(dataOut.kabxys_integrated[4][minIndex:,lag,0], thresh=3.)
2371 #print("Outliers: ",outliers)
2372 #indexes.append(outliers.nonzero())
2373 #numpy.concatenate((outliers))
2374 #dataOut.kabxys_integrated[4][minIndex:,lag,0][outliers == True] = numpy.nan
2375 outliers_IDs=numpy.append(outliers_IDs,outliers.nonzero())
2376 '''
2377 for lag in range(11):
2378 #outliers = self.mad_based_outlier(dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0], thresh=2.)
2379 outliers = self.mad_based_outlier(dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0])
2380 outliers_IDs=numpy.append(outliers_IDs,outliers.nonzero())
2381 #print(outliers_IDs)
2382 #exit(1)
2383 if outliers_IDs != []:
2384 outliers_IDs=numpy.array(outliers_IDs)
2385 outliers_IDs=outliers_IDs.ravel()
2386 outliers_IDs=outliers_IDs.astype(numpy.dtype('int64'))
2387
2388 (uniq, freq) = (numpy.unique(outliers_IDs, return_counts=True))
2389 aux_arr = numpy.column_stack((uniq,freq))
2390 #print("repetitions: ",aux_arr)
2391
2392 #if aux_arr != []:
2393 final_index = []
2394 for i in range(aux_arr.shape[0]):
2395 if aux_arr[i,1] >= 10:
2396 final_index.append(aux_arr[i,0])
2397
2398 if final_index != [] and len(final_index) > 1:
2399 final_index += minIndex
2400 #print("final_index: ",final_index)
2401 following_index = final_index[-1]+1 #Remove following index to ensure we remove remaining SpreadF
2402 previous_index = final_index[0]-1 #Remove previous index to ensure we remove remaning SpreadF
2403 final_index = numpy.concatenate(([previous_index],final_index,[following_index]))
2404 final_index = numpy.unique(final_index) #If there was only one outlier
2405 #print("final_index: ",final_index)
2406 #exit(1)
2407 dataOut.kabxys_integrated[4][final_index,:,0] = numpy.nan
2408 dataOut.kabxys_integrated[6][final_index,:,0] = numpy.nan
2409
2410 dataOut.flagSpreadF = True
2411
2412 #print(final_index+minIndex)
2413 #print(outliers_IDs)
2414 #exit(1)
2415 #print("flagSpreadF",dataOut.flagSpreadF)
2416
2417 '''
2418 for lag in range(11):
2419 #print("Lag: ",lag)
2420 outliers = self.mad_based_outlier(dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0], thresh=2.)
2421 dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0][outliers == True] = numpy.nan
2422 '''
2423 #dataOut.kabxys_integrated[4][minIndex:,:,0] = self.remove_coh(dataOut.kabxys_integrated[4][minIndex:,:,0])
2424 '''
2425 import matplotlib.pyplot as plt
2426 for i in range(11):
2427 plt.plot(dataOut.kabxys_integrated[6][:,i,0],dataOut.heightList,label='{}'.format(i))
2428 plt.xlim(0,2000)
2429 plt.legend()
2430 plt.grid()
2431 plt.show()
2432 '''
2433 '''
2434 for nlag in range(11):
2435 print("BEFORE",dataOut.kabxys_integrated[6][:,nlag,0])
2436 #exit(1)
2437 '''
2438 #dataOut.kabxys_integrated[6][minIndex:,:,0] = self.remove_coh(dataOut.kabxys_integrated[6][minIndex:,:,0])
2439
2440
2441 '''
2442 for nlag in range(11):
2443 print("AFTER",dataOut.kabxys_integrated[6][:,nlag,0])
2444 exit(1)
2445 '''
2446 #print("AFTER",dataOut.kabxys_integrated[4][33,:,0])
2447 #print("AFTER",dataOut.kabxys_integrated[6][33,:,0])
2448 #exit(1)
2449
2450 def removeSpreadF(self,dataOut):
2451 #for i in range(11):
2452 #print("BEFORE Chb: ",i,dataOut.kabxys_integrated[6][:,i,0])
2453 #exit(1)
2454
2455 #for i in range(12,data.shape[0]):
2456 #for j in range(data.shape[1]):
2457 #if data[i]>maxdB:
2458 #dataOut.kabxys_integrated[4][i-2:i+3,:,0] = numpy.nan #Debido a que estos ecos son intensos, se
2459 #dataOut.kabxys_integrated[6][i-2:i+3,:,0] = numpy.nan #remueven además dos muestras antes y después
2460 #dataOut.flagSpreadF = True
2461 #print("Removing Threshold",i)
2462 #print("i: ",i)
2463
2464 #print("BEFORE Chb: ",dataOut.kabxys_integrated[6][:,0,0])
2465 #exit(1)
2466
2467 #Removing outliers from the profile
2468 nlag = 9
2469 minHei = 180
2470 #maxHei = 600
2471 maxHei = 525
2472 inda = numpy.where(dataOut.heightList >= minHei)
2473 indb = numpy.where(dataOut.heightList <= maxHei)
2474 minIndex = inda[0][0]
2475 maxIndex = indb[0][-1]
2476 #l0 = 0
2477 #print("BEFORE Cha: ",dataOut.kabxys_integrated[4][:,l0,0])
2478 #print("BEFORE Chb: ",dataOut.kabxys_integrated[6][:,l0,0])
2479 #exit(1)
2480 '''
2481 l0 = 0
2482 #print("BEFORE Cha: ",dataOut.kabxys_integrated[4][:,l0,0])
2483 #print("BEFORE Chb: ",dataOut.kabxys_integrated[6][:,l0,0])
2484
2485 import matplotlib.pyplot as plt
2486 for i in range(l0,l0+11):
2487 plt.plot(dataOut.kabxys_integrated[6][:,i,0],dataOut.heightList,label='{}'.format(i))
2488 #plt.xlim(1.e5,1.e8)
2489 plt.legend()
2490 plt.xlim(0,2000)
2491 plt.show()
2492 '''
2493 #dataOut.kabxys_integrated[4][minIndex:,:,0] = self.remove_coh(dataOut.kabxys_integrated[4][minIndex:,:,0
2494 outliers_IDs = []
2495 '''
2496 for lag in range(11):
2497 outliers = self.mad_based_outlier(dataOut.kabxys_integrated[4][minIndex:,lag,0], thresh=3.)
2498 #print("Outliers: ",outliers)
2499 #indexes.append(outliers.nonzero())
2500 #numpy.concatenate((outliers))
2501 #dataOut.kabxys_integrated[4][minIndex:,lag,0][outliers == True] = numpy.nan
2502 outliers_IDs=numpy.append(outliers_IDs,outliers.nonzero())
2503 '''
2504 '''
2505 for lag in range(11):
2506 #outliers = self.mad_based_outlier(dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0], thresh=2.)
2507 outliers = self.mad_based_outlier(dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0])
2508 outliers_IDs=numpy.append(outliers_IDs,outliers.nonzero())
2509 '''
2510
2511 for i in range(15):
2512 minIndex = 12+i#12
2513 #maxIndex = 22+i#35
2514 if gmtime(dataOut.utctime).tm_hour >= 23. or gmtime(dataOut.utctime).tm_hour < 3.:
2515 maxIndex = 31+i#35
2516 else:
2517 maxIndex = 22+i#35
2518 for lag in range(11):
2519 #outliers = mad_based_outlier(pow_clean3[12:27], thresh=2.)
2520 #print("Cuts: ",first_cut*15, last_cut*15)
2521 outliers = self.mad_based_outlier(dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0])
2522 aux = minIndex+numpy.array(outliers.nonzero()).ravel()
2523 outliers_IDs=numpy.append(outliers_IDs,aux)
2524 #print(minIndex+numpy.array(outliers.nonzero()).ravel())
2525 #print(outliers_IDs)
2526 #exit(1)
2527 if outliers_IDs != []:
2528 outliers_IDs=numpy.array(outliers_IDs)
2529 #outliers_IDs=outliers_IDs.ravel()
2530 outliers_IDs=outliers_IDs.astype(numpy.dtype('int64'))
2531 #print(outliers_IDs)
2532 #exit(1)
2533
2534 (uniq, freq) = (numpy.unique(outliers_IDs, return_counts=True))
2535 aux_arr = numpy.column_stack((uniq,freq))
2536 #print("repetitions: ",aux_arr)
2537 #exit(1)
2538
2539 #if aux_arr != []:
2540 final_index = []
2541 for i in range(aux_arr.shape[0]):
2542 if aux_arr[i,1] >= 3*11:
2543 final_index.append(aux_arr[i,0])
2544
2545 if final_index != []:# and len(final_index) > 1:
2546 #final_index += minIndex
2547 #print("final_index: ",final_index)
2548 following_index = final_index[-1]+1 #Remove following index to ensure we remove remaining SpreadF
2549 previous_index = final_index[0]-1 #Remove previous index to ensure we remove remaning SpreadF
2550 final_index = numpy.concatenate(([previous_index],final_index,[following_index]))
2551 final_index = numpy.unique(final_index) #If there was only one outlier
2552 #print("final_index: ",final_index)
2553 #exit(1)
2554 dataOut.kabxys_integrated[4][final_index,:,0] = numpy.nan
2555 dataOut.kabxys_integrated[6][final_index,:,0] = numpy.nan
2556
2557 dataOut.flagSpreadF = True
2558
2559 #Removing echoes greater than 35 dB
2560 if hasattr(dataOut.pbn, "__len__"):
2561 maxdB = 10*numpy.log10(dataOut.pbn[0]) + 10 #Lag 0 Noise
1386 if( (dataOut.kabxys_integrated[4][j,l,0] <= 0.) or (dataOut.kabxys_integrated[6][j,l,0] <= 0.)):
1387 dataOut.ibad[j][l]=1
2562 1388 else:
2563 maxdB = 10*numpy.log10(dataOut.pbn) + 10
2564
2565 #print(dataOut.kabxys_integrated[6][:,0,0])
2566 data = numpy.copy(10*numpy.log10(dataOut.kabxys_integrated[6][:,0,0])) #Lag0 ChB
2567 #print("data: ",data)
2568
2569 for i in range(12,data.shape[0]):
2570 #for j in range(data.shape[1]):
2571 if data[i]>maxdB:
2572 dataOut.kabxys_integrated[4][i-2:i+3,:,0] = numpy.nan #Debido a que estos ecos son intensos, se
2573 dataOut.kabxys_integrated[6][i-2:i+3,:,0] = numpy.nan #remueven además dos muestras antes y después
2574 dataOut.flagSpreadF = True
2575 #print("Removing Threshold",i)
2576
2577 #print(final_index+minIndex)
2578 #print(outliers_IDs)
2579 #exit(1)
2580 #print("flagSpreadF",dataOut.flagSpreadF)
2581
2582 '''
2583 for lag in range(11):
2584 #print("Lag: ",lag)
2585 outliers = self.mad_based_outlier(dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0], thresh=2.)
2586 dataOut.kabxys_integrated[6][minIndex:maxIndex,lag,0][outliers == True] = numpy.nan
2587 '''
2588 #dataOut.kabxys_integrated[4][minIndex:,:,0] = self.remove_coh(dataOut.kabxys_integrated[4][minIndex:,:,0])
2589 '''
2590 import matplotlib.pyplot as plt
2591 for i in range(11):
2592 plt.plot(dataOut.kabxys_integrated[6][:,i,0],dataOut.heightList,label='{}'.format(i))
2593 plt.xlim(0,2000)
2594 plt.legend()
2595 plt.grid()
2596 plt.show()
2597 '''
2598 '''
2599 for nlag in range(11):
2600 print("BEFORE",dataOut.kabxys_integrated[6][:,nlag,0])
2601 #exit(1)
2602 '''
2603 #dataOut.kabxys_integrated[6][minIndex:,:,0] = self.remove_coh(dataOut.kabxys_integrated[6][minIndex:,:,0])
2604
2605
2606 '''
2607 for nlag in range(11):
2608 print("AFTER",dataOut.kabxys_integrated[6][:,nlag,0])
2609 exit(1)
2610 '''
2611
2612 def run(self,dataOut):
2613 dataOut.flagSpreadF = False
2614 #print(gmtime(dataOut.utctime).tm_hour)
2615 #print(dataOut.ut_Faraday)
2616 #exit(1)
2617 if gmtime(dataOut.utctime).tm_hour >= 23. or gmtime(dataOut.utctime).tm_hour < 11.: #18-06 LT
2618 #print("Inside if we are in SpreadF Time: ",gmtime(dataOut.utctime).tm_hour)
2619 #if gmtime(dataOut.utctime).tm_hour == 2 and gmtime(dataOut.utctime).tm_min == 10: #Year: 2023, DOY:310
2620 #if gmtime(dataOut.utctime).tm_hour == 3 and gmtime(dataOut.utctime).tm_min == 10: #Year: 2023, DOY:312
2621 #if gmtime(dataOut.utctime).tm_hour == 0 and gmtime(dataOut.utctime).tm_min == 0: #Year: 2024, DOY:082
2622 #if 1: #Year: 2024, DOY:081
2623 #if gmtime(dataOut.utctime).tm_hour == 0: #Year: 2024, DOY:080
2624 #pass
2625 #else:
2626 self.removeSpreadF(dataOut)
2627 #exit(1)
1389 dataOut.ibad[j][l]=0
2628 1390
2629 1391 return dataOut
2630 1392
2631 class CleanCohEchoesHP(Operation):
1393 class CleanCohEchoes(Operation):
2632 1394 '''
2633 1395 Written by R. Flores
2634 1396 '''
@@ -2936,9 +1698,11 class CleanCohEchoesHP(Operation):
2936 1698 dataOut.flagSpreadF = True
2937 1699
2938 1700 #Removing echoes greater than 35 dB
2939 maxdB = 10*numpy.log10(dataOut.pbn[0]) + 10 #Lag 0 NOise
2940 #maxdB = 35 #DEBERÍA SER NOISE+ALGO!!!!!!!!!!!!!!!!!!!!!!
2941 #print("noise: ",maxdB - 10)
1701 if hasattr(dataOut.pbn, "__len__"):
1702 maxdB = 10*numpy.log10(dataOut.pbn[0]) + 10 #Lag 0 Noise
1703 else:
1704 maxdB = 10*numpy.log10(dataOut.pbn) + 10
1705
2942 1706 #print(dataOut.kabxys_integrated[6][:,0,0])
2943 1707 data = numpy.copy(10*numpy.log10(dataOut.kabxys_integrated[6][:,0,0])) #Lag0 ChB
2944 1708 #print("data: ",data)
@@ -2993,11 +1757,19 class CleanCohEchoesHP(Operation):
2993 1757 #exit(1)
2994 1758 if gmtime(dataOut.utctime).tm_hour >= 23. or gmtime(dataOut.utctime).tm_hour < 11.: #18-06 LT
2995 1759 #print("Inside if we are in SpreadF Time: ",gmtime(dataOut.utctime).tm_hour)
1760 #if gmtime(dataOut.utctime).tm_hour == 2 and gmtime(dataOut.utctime).tm_min == 10: #Year: 2023, DOY:310
1761 #if gmtime(dataOut.utctime).tm_hour == 3 and gmtime(dataOut.utctime).tm_min == 10: #Year: 2023, DOY:312
1762 #if gmtime(dataOut.utctime).tm_hour == 0 and gmtime(dataOut.utctime).tm_min == 0: #Year: 2024, DOY:082
1763 #if 1: #Year: 2024, DOY:081
1764 #if gmtime(dataOut.utctime).tm_hour == 0: #Year: 2024, DOY:080
1765 #pass
1766 #else:
2996 1767 self.removeSpreadF(dataOut)
2997 1768 #exit(1)
2998 1769
2999 1770 return dataOut
3000 1771
1772
3001 1773 class NoisePower(Operation):
3002 1774 '''
3003 1775 Written by R. Flores
@@ -3285,18 +2057,27 class DoublePulseACFs_PerLag(Operation):
3285 2057
3286 2058 def run(self,dataOut):
3287 2059
2060 # flag bad data points
3288 2061 dataOut.igcej=numpy.zeros((dataOut.NDP,dataOut.DPL),'int32')
3289 2062
3290 2063 if self.aux==1:
2064 # Real part of ACF
3291 2065 dataOut.rhor = numpy.zeros((dataOut.NDP, dataOut.DPL), dtype=float)
2066 # Imaginary part of ACF
3292 2067 dataOut.rhoi = numpy.zeros((dataOut.NDP, dataOut.DPL), dtype=float)
2068 # Standard deviation of power
3293 2069 dataOut.sdp = numpy.zeros((dataOut.NDP, dataOut.DPL), dtype=float)
2070 # Standard deviation of ACF
3294 2071 dataOut.sd = numpy.zeros((dataOut.NDP, dataOut.DPL), dtype=float)
2072 # Stores the power with noise level removed
3295 2073 dataOut.p=numpy.zeros((dataOut.NDP,dataOut.DPL), dtype=float)
2074 # Stores lags for which ACFs are calculated
3296 2075 dataOut.alag=numpy.zeros(dataOut.NDP,'float32')
3297 2076 for l in range(dataOut.DPL):
3298 2077 dataOut.alag[l]=l*dataOut.DH*2.0/150.0
3299 2078 self.aux=0
2079 # dataOut.pan.- Power noise level of channel A - definned in SpectraDataToFaraday
2080 # Signal noise
3300 2081 sn4=dataOut.pan*dataOut.pbn
3301 2082 rhorn=0
3302 2083 rhoin=0
@@ -3304,10 +2085,12 class DoublePulseACFs_PerLag(Operation):
3304 2085
3305 2086 id = numpy.where(dataOut.heightList>700)[0]
3306 2087
3307 for i in range(dataOut.NDP):
3308 for j in range(dataOut.DPL):
2088 for i in range(dataOut.NDP): #Heights
2089 for j in range(dataOut.DPL): # Lags
3309 2090 ################# Total power
2091 # Power channel A
3310 2092 pa=numpy.abs(dataOut.kabxys_integrated[4][i,j,0]+dataOut.kabxys_integrated[5][i,j,0])
2093 # Power channel B
3311 2094 pb=numpy.abs(dataOut.kabxys_integrated[6][i,j,0]+dataOut.kabxys_integrated[7][i,j,0])
3312 2095 st4=pa*pb
3313 2096 '''
@@ -3323,7 +2106,7 class DoublePulseACFs_PerLag(Operation):
3323 2106 rhoip=dataOut.kabxys_integrated[10][i,j,0]-dataOut.kabxys_integrated[9][i,j,0]
3324 2107
3325 2108 if ((pa>dataOut.pan[j])&(pb>dataOut.pbn[j])):
3326
2109 # panrm is RMS of power, used to normalize ACFs
3327 2110 ss4=numpy.abs((pa-dataOut.pan[j])*(pb-dataOut.pbn[j]))
3328 2111 panrm[i,j]=math.sqrt(ss4)
3329 2112 rnorm=1/panrm[i,j]
@@ -3381,6 +2164,9 class DoublePulseACFs_PerLag(Operation):
3381 2164 if i == 4:
3382 2165 exit(1)
3383 2166 '''
2167
2168 #print("dataOut.p",datetime.datetime.utcfromtimestamp(dataOut.utctime), dataOut.p)
2169
3384 2170 #print(numpy.sum(dataOut.kabxys_integrated[8][:,:,0]+dataOut.kabxys_integrated[11][:,:,0]))
3385 2171 #print(numpy.sum(dataOut.kabxys_integrated[10][:,:,0]-dataOut.kabxys_integrated[9][:,:,0]))
3386 2172 #print(numpy.sum(dataOut.rhor))
@@ -3530,374 +2316,103 class ElectronDensityFaraday(Operation):
3530 2316 Example
3531 2317 --------
3532 2318
3533 op = proc_unit.addOperation(name='ElectronDensityFaraday', optype='other')
3534 op.addParameter(name='NSHTS', value='50', format='int')
3535 op.addParameter(name='RATE', value='1.8978873e-6', format='float')
3536
3537 """
3538
3539 def __init__(self, **kwargs):
3540
3541 Operation.__init__(self, **kwargs)
3542 self.aux=1
3543
3544 def run(self,dataOut,NSHTS=50,RATE=1.8978873e-6):
3545
3546 dataOut.NSHTS=NSHTS
3547 dataOut.RATE=RATE
3548
3549 if self.aux==1:
3550 dataOut.dphi=numpy.zeros(dataOut.NDP,'float32')
3551 #dataOut.dphi_uc=numpy.zeros(dataOut.NDP,'float32')
3552 dataOut.sdn1=numpy.zeros(dataOut.NDP,'float32')
3553 self.aux=0
3554 theta=numpy.zeros(dataOut.NDP,dtype=numpy.complex_)
3555 thetai=numpy.zeros(dataOut.NDP,dtype=numpy.complex_)
3556 # use complex numbers for phase
3557 '''
3558 for i in range(dataOut.NSHTS):
3559 theta[i]=math.cos(dataOut.phi[i])+math.sin(dataOut.phi[i])*1j
3560 thetai[i]=-math.sin(dataOut.phi[i])+math.cos(dataOut.phi[i])*1j
3561 ''' #Old Method
3562
3563 # differentiate and convert to number density
3564 ndphi=dataOut.NSHTS-4
3565 #print(dataOut.phi)
3566 #exit(1)
3567 #'''
3568 if hasattr(dataOut, 'flagSpreadF') and dataOut.flagSpreadF:
3569 #if dataOut.flagSpreadF:
3570 nanindex = numpy.argwhere(numpy.isnan(dataOut.phi))
3571 i1 = nanindex[-1][0]
3572 #Analizar cuando SpreadF es Pluma
3573
3574 #print(i1)
3575 dataOut.phi[i1+1:]=numpy.unwrap(dataOut.phi[i1+1:]) #Better results
3576 else:
3577 #dataOut.phi_uwrp = dataOut.phi.copy()
3578 dataOut.phi[:]=numpy.unwrap(dataOut.phi[:]) #Better results
3579 #'''
3580 #print(dataOut.phi)
3581 #print(dataOut.ph2)
3582 #exit(1)
3583 '''
3584 #if dataOut.flagDecodeData:
3585 if 1:
3586 import matplotlib.pyplot as plt
3587 plt.plot(dataOut.phi,dataOut.heightList,'*-')
3588 #plt.ylim(60,95)
3589 plt.grid()
3590 plt.show()
3591 '''
3592 #print(dataOut.bki)
3593 #print(dataOut.NDP,dataOut.NSHTS)
3594 #print("phi: ", dataOut.phi)
3595 for i in range(2,dataOut.NSHTS-2):
3596 fact=(-0.5/(dataOut.RATE*dataOut.DH))*dataOut.bki[i]
3597 #print("fact: ", fact,dataOut.RATE,dataOut.DH,dataOut.bki[i])
3598 #four-point derivative, no phase unwrapping necessary
3599 #####dataOut.dphi[i]=((((theta[i+1]-theta[i-1])+(2.0*(theta[i+2]-theta[i-2])))/thetai[i])).real/10.0 #Original from C program
3600
3601 ##dataOut.dphi[i]=((((theta[i-2]-theta[i+2])+(8.0*(theta[i+1]-theta[i-1])))/thetai[i])).real/12.0
3602 dataOut.dphi[i]=((dataOut.phi[i+1]-dataOut.phi[i-1])+(2.0*(dataOut.phi[i+2]-dataOut.phi[i-2])))/10.0 #Better results
3603
3604 #dataOut.dphi_uc[i] = abs(dataOut.phi[i]*dataOut.bki[i]*(-0.5)/dataOut.DH)
3605 #dataOut.dphi[i]=abs(dataOut.dphi[i]*fact)
3606 dataOut.dphi[i]=dataOut.dphi[i]*abs(fact)
3607 dataOut.sdn1[i]=(4.*(dataOut.sdn2[i-2]+dataOut.sdn2[i+2])+dataOut.sdn2[i-1]+dataOut.sdn2[i+1])
3608 dataOut.sdn1[i]=numpy.sqrt(dataOut.sdn1[i])*fact
3609
3610 #print("dphi: ", dataOut.dphi)
3611 '''
3612 if dataOut.flagDecodeData:
3613 #exit(1)
3614 import matplotlib.pyplot as plt
3615 plt.plot(abs(dataOut.dphi),dataOut.heightList)
3616 plt.grid()
3617 #plt.xlim(0,1e7)
3618 plt.show()
3619
3620 '''
3621 #print("dH: ", dataOut.heightList[1]-dataOut.heightList[0])
3622 return dataOut
3623
3624
3625 class NormalizeDPPower(Operation):
3626 '''
3627 Written by R. Flores
3628 '''
3629 """Operation to normalize relative electron density from power with total electron density from Faraday angle.
3630
3631 Parameters:
3632 -----------
3633 None
3634
3635 Example
3636 --------
3637
3638 op = proc_unit.addOperation(name='NormalizeDPPower', optype='other')
3639
3640 """
3641
3642 def __init__(self, **kwargs):
3643
3644 Operation.__init__(self, **kwargs)
3645 self.aux=1
3646
3647 def normal(self,a,b,n,m):
3648 chmin=1.0e30
3649 chisq=numpy.zeros(150,'float32')
3650 temp=numpy.zeros(150,'float32')
3651
3652 for i in range(2*m-1):
3653 an=al=be=chisq[i]=0.0
3654 for j in range(int(n/m)):
3655 k=int(j+i*n/(2*m))
3656 if(a[k]>0.0 and b[k]>0.0):
3657 al+=a[k]*b[k]
3658 be+=b[k]*b[k]
3659
3660 if(be>0.0):
3661 temp[i]=al/be
3662 else:
3663 temp[i]=1.0
3664
3665 for j in range(int(n/m)):
3666 k=int(j+i*n/(2*m))
3667 if(a[k]>0.0 and b[k]>0.0):
3668 chisq[i]+=(numpy.log10(b[k]*temp[i]/a[k]))**2
3669 an=an+1
3670
3671 if(chisq[i]>0.0):
3672 chisq[i]/=an
3673
3674 for i in range(int(2*m-1)):
3675 if(chisq[i]<chmin and chisq[i]>1.0e-6):
3676 chmin=chisq[i]
3677 cf=temp[i]
3678 return cf
3679
3680 def normalize(self,dataOut):
3681
3682 if self.aux==1:
3683 dataOut.cf=numpy.zeros(1,'float32')
3684 dataOut.cflast=numpy.zeros(1,'float32')
3685 self.aux=0
3686
3687 night_first=300.0
3688 night_first1= 310.0
3689 night_end= 450.0
3690 day_first=250.0
3691 day_end=400.0
3692 day_first_sunrise=190.0
3693 day_end_sunrise=280.0
3694
3695 #print(dataOut.ut_Faraday)
3696 if(dataOut.ut_Faraday>4.0 and dataOut.ut_Faraday<11.0): #early
3697 #print("EARLY")
3698 i2=(night_end-dataOut.range1[0])/dataOut.DH
3699 i1=(night_first -dataOut.range1[0])/dataOut.DH
3700 elif (dataOut.ut_Faraday>0.0 and dataOut.ut_Faraday<4.0): #night
3701 #print("NIGHT")
3702 i2=(night_end-dataOut.range1[0])/dataOut.DH
3703 i1=(night_first1 -dataOut.range1[0])/dataOut.DH
3704 elif (dataOut.ut_Faraday>=11.0 and dataOut.ut_Faraday<13.5): #sunrise
3705 #print("SUNRISE")
3706 i2=( day_end_sunrise-dataOut.range1[0])/dataOut.DH
3707 i1=(day_first_sunrise - dataOut.range1[0])/dataOut.DH
3708 else:
3709 #print("ELSE")
3710 i2=(day_end-dataOut.range1[0])/dataOut.DH
3711 i1=(day_first -dataOut.range1[0])/dataOut.DH
3712 #print(i1*dataOut.DH)
3713 #print(i2*dataOut.DH)
3714
3715 i1=int(i1)
3716 i2=int(i2)
3717
3718 try:
3719 dataOut.cf=self.normal(dataOut.dphi[i1::], dataOut.ph2[i1::], i2-i1, 1)
3720 except:
3721 pass
3722
3723 #print(dataOut.ph2)
3724 #input()
3725 # in case of spread F, normalize much higher
3726 if(dataOut.cf<dataOut.cflast[0]/10.0):
3727 i1=(night_first1+100.-dataOut.range1[0])/dataOut.DH
3728 i2=(night_end+100.0-dataOut.range1[0])/dataOut.DH
3729 i1=int(i1)
3730 i2=int(i2)
3731 try:
3732 dataOut.cf=self.normal(dataOut.dphi[int(i1)::], dataOut.ph2[int(i1)::], int(i2-i1), 1)
3733 except:
3734 pass
3735
3736 dataOut.cflast[0]=dataOut.cf
3737 print("cf",dataOut.cf)
3738 exit(1)
3739 ## normalize double pulse power and error bars to Faraday
3740 for i in range(dataOut.NSHTS):
3741 dataOut.ph2[i]*=dataOut.cf
3742 dataOut.sdp2[i]*=dataOut.cf
3743 print(dataOut.ph2)
3744 print(dataOut.sdp2)
3745 exit(1)
3746
3747 for i in range(dataOut.NSHTS):
3748 dataOut.ph2[i]=(max(1.0, dataOut.ph2[i]))
3749 dataOut.dphi[i]=(max(1.0, dataOut.dphi[i]))
3750
3751
3752 def run(self,dataOut):
3753
3754 self.normalize(dataOut)
3755 #print(dataOut.ph2)
3756 #print(dataOut.sdp2)
3757 #input()
3758
3759
3760 return dataOut
3761
3762 class NormalizeDPPowerRoberto(Operation):
3763 '''
3764 Written by R. Flores
3765 '''
3766 """Operation to normalize relative electron density from power with total electron density from Farday angle.
3767
3768 Parameters:
3769 -----------
3770 None
3771
3772 Example
3773 --------
3774
3775 op = proc_unit.addOperation(name='NormalizeDPPower', optype='other')
3776
3777 """
3778
3779 def __init__(self, **kwargs):
3780
3781 Operation.__init__(self, **kwargs)
3782 self.aux=1
3783
3784 def normal(self,a,b,n,m):
3785 chmin=1.0e30
3786 chisq=numpy.zeros(150,'float32')
3787 temp=numpy.zeros(150,'float32')
3788
3789 for i in range(2*m-1):
3790 an=al=be=chisq[i]=0.0
3791 for j in range(int(n/m)):
3792 k=int(j+i*n/(2*m))
3793 if(a[k]>0.0 and b[k]>0.0):
3794 al+=a[k]*b[k]
3795 be+=b[k]*b[k]
3796
3797 if(be>0.0):
3798 temp[i]=al/be
3799 else:
3800 temp[i]=1.0
2319 op = proc_unit.addOperation(name='ElectronDensityFaraday', optype='other')
2320 op.addParameter(name='NSHTS', value='50', format='int')
2321 op.addParameter(name='RATE', value='1.8978873e-6', format='float')
3801 2322
3802 for j in range(int(n/m)):
3803 k=int(j+i*n/(2*m))
3804 if(a[k]>0.0 and b[k]>0.0):
3805 chisq[i]+=(numpy.log10(b[k]*temp[i]/a[k]))**2
3806 an=an+1
2323 """
3807 2324
3808 if(chisq[i]>0.0):
3809 chisq[i]/=an
2325 def __init__(self, **kwargs):
3810 2326
3811 for i in range(int(2*m-1)):
3812 if(chisq[i]<chmin and chisq[i]>1.0e-6):
3813 chmin=chisq[i]
3814 cf=temp[i]
3815 return cf
2327 Operation.__init__(self, **kwargs)
2328 self.aux=1
3816 2329
3817 def normalize(self,dataOut):
2330 def run(self,dataOut,NSHTS=50,RATE=1.8978873e-6):
2331
2332 dataOut.NSHTS=NSHTS
2333 dataOut.RATE=RATE
3818 2334
3819 2335 if self.aux==1:
3820 dataOut.cf=numpy.zeros(1,'float32')
3821 dataOut.cflast=numpy.zeros(1,'float32')
2336 dataOut.dphi=numpy.zeros(dataOut.NDP,'float32')
2337 #dataOut.dphi_uc=numpy.zeros(dataOut.NDP,'float32')
2338 dataOut.sdn1=numpy.zeros(dataOut.NDP,'float32')
3822 2339 self.aux=0
3823
3824 night_first=300.0
3825 night_first1= 310.0
3826 night_end= 450.0
3827 day_first=250.0
3828 day_end=400.0
3829 day_first_sunrise=190.0
3830 day_end_sunrise=350.0
3831
3832 print(dataOut.ut_Faraday)
3833 '''
3834 if(dataOut.ut_Faraday>4.0 and dataOut.ut_Faraday<11.0): #early
3835 print("EARLY")
3836 i2=(night_end-dataOut.range1[0])/dataOut.DH
3837 i1=(night_first -dataOut.range1[0])/dataOut.DH
3838 elif (dataOut.ut_Faraday>0.0 and dataOut.ut_Faraday<4.0): #night
3839 print("NIGHT")
3840 i2=(night_end-dataOut.range1[0])/dataOut.DH
3841 i1=(night_first1 -dataOut.range1[0])/dataOut.DH
3842 elif (dataOut.ut_Faraday>=11.0 and dataOut.ut_Faraday<13.5): #sunrise
3843 print("SUNRISE")
3844 i2=( day_end_sunrise-dataOut.range1[0])/dataOut.DH
3845 i1=(day_first_sunrise - dataOut.range1[0])/dataOut.DH
3846 else:
3847 print("ELSE")
3848 i2=(day_end-dataOut.range1[0])/dataOut.DH
3849 i1=(day_first -dataOut.range1[0])/dataOut.DH
2340 theta=numpy.zeros(dataOut.NDP,dtype=numpy.complex_)
2341 thetai=numpy.zeros(dataOut.NDP,dtype=numpy.complex_)
2342 # use complex numbers for phase
3850 2343 '''
3851 i2=(420-dataOut.range1[0])/dataOut.DH
3852 i1=(200 -dataOut.range1[0])/dataOut.DH
3853 print(i1*dataOut.DH)
3854 print(i2*dataOut.DH)
3855
3856 i1=int(i1)
3857 i2=int(i2)
2344 for i in range(dataOut.NSHTS):
2345 theta[i]=math.cos(dataOut.phi[i])+math.sin(dataOut.phi[i])*1j
2346 thetai[i]=-math.sin(dataOut.phi[i])+math.cos(dataOut.phi[i])*1j
2347 ''' #Old Method
3858 2348
3859 try:
3860 dataOut.cf=self.normal(dataOut.dphi[i1::], dataOut.ph2[i1::], i2-i1, 1)
3861 except:
3862 pass
2349 # differentiate and convert to number density
2350 ndphi=dataOut.NSHTS-4
2351 #print(dataOut.phi)
2352 #exit(1)
2353 #'''
2354 if hasattr(dataOut, 'flagSpreadF') and dataOut.flagSpreadF:
2355 #if dataOut.flagSpreadF:
2356 nanindex = numpy.argwhere(numpy.isnan(dataOut.phi))
2357 i1 = nanindex[-1][0]
2358 #Analizar cuando SpreadF es Pluma
3863 2359
2360 #print(i1)
2361 dataOut.phi[i1+1:]=numpy.unwrap(dataOut.phi[i1+1:]) #Better results
2362 else:
2363 #dataOut.phi_uwrp = dataOut.phi.copy()
2364 dataOut.phi[:]=numpy.unwrap(dataOut.phi[:]) #Better results
2365 #'''
2366 #print(dataOut.phi)
3864 2367 #print(dataOut.ph2)
3865 #input()
3866 # in case of spread F, normalize much higher
3867 if(dataOut.cf<dataOut.cflast[0]/10.0):
3868 i1=(night_first1+100.-dataOut.range1[0])/dataOut.DH
3869 i2=(night_end+100.0-dataOut.range1[0])/dataOut.DH
3870 i1=int(i1)
3871 i2=int(i2)
3872 try:
3873 dataOut.cf=self.normal(dataOut.dphi[int(i1)::], dataOut.ph2[int(i1)::], int(i2-i1), 1)
3874 except:
3875 pass
2368 #exit(1)
3876 2369
3877 dataOut.cflast[0]=dataOut.cf
2370 '''
2371 #if dataOut.flagDecodeData:
2372 if 1:
2373 import matplotlib.pyplot as plt
2374 plt.plot(dataOut.phi,dataOut.heightList,'*-')
2375 #plt.ylim(60,95)
2376 plt.grid()
2377 plt.show()
2378 '''
2379 #print(dataOut.bki)
2380 #print(dataOut.NDP,dataOut.NSHTS)
2381 #print("phi: ", dataOut.phi)
2382 for i in range(2,dataOut.NSHTS-2):
2383 fact=(-0.5/(dataOut.RATE*dataOut.DH))*dataOut.bki[i]
2384 #print("fact: ", fact,dataOut.RATE,dataOut.DH,dataOut.bki[i])
2385 #four-point derivative, no phase unwrapping necessary
2386 #####dataOut.dphi[i]=((((theta[i+1]-theta[i-1])+(2.0*(theta[i+2]-theta[i-2])))/thetai[i])).real/10.0 #Original from C program
3878 2387
3879 ## normalize double pulse power and error bars to Faraday
3880 for i in range(dataOut.NSHTS):
3881 dataOut.ph2[i]*=dataOut.cf
3882 dataOut.sdp2[i]*=dataOut.cf
3883 #print(dataOut.ph2)
3884 #input()
2388 ##dataOut.dphi[i]=((((theta[i-2]-theta[i+2])+(8.0*(theta[i+1]-theta[i-1])))/thetai[i])).real/12.0
2389 dataOut.dphi[i]=((dataOut.phi[i+1]-dataOut.phi[i-1])+(2.0*(dataOut.phi[i+2]-dataOut.phi[i-2])))/10.0 #Better results
3885 2390
3886 for i in range(dataOut.NSHTS):
3887 dataOut.ph2[i]=(max(1.0, dataOut.ph2[i]))
3888 dataOut.dphi[i]=(max(1.0, dataOut.dphi[i]))
2391 #dataOut.dphi_uc[i] = abs(dataOut.phi[i]*dataOut.bki[i]*(-0.5)/dataOut.DH)
2392 #dataOut.dphi[i]=abs(dataOut.dphi[i]*fact)
2393 dataOut.dphi[i]=dataOut.dphi[i]*abs(fact)
2394 dataOut.sdn1[i]=(4.*(dataOut.sdn2[i-2]+dataOut.sdn2[i+2])+dataOut.sdn2[i-1]+dataOut.sdn2[i+1])
2395 dataOut.sdn1[i]=numpy.sqrt(dataOut.sdn1[i])*fact
3889 2396
2397 #print("dphi: ", dataOut.dphi)
2398 '''
2399 if dataOut.flagDecodeData:
2400 #exit(1)
2401 import matplotlib.pyplot as plt
2402 plt.plot(abs(dataOut.dphi),dataOut.heightList)
2403 plt.grid()
2404 #plt.xlim(0,1e7)
2405 plt.show()
2406
2407 '''
2408 #print("dH: ", dataOut.heightList[1]-dataOut.heightList[0])
3890 2409
3891 def run(self,dataOut):
3892 2410
3893 self.normalize(dataOut)
3894 #print(dataOut.ph2)
3895 #print(dataOut.sdp2)
3896 #input()
3897 2411
3898 2412
3899 2413 return dataOut
3900 2414
2415
3901 2416 class NormalizeDPPowerRoberto_V2(Operation):
3902 2417 '''
3903 2418 Written by R. Flores
@@ -3955,224 +2470,51 class NormalizeDPPowerRoberto_V2(Operation):
3955 2470 cf=temp[i]
3956 2471 return cf
3957 2472
3958 def normalize_Before(self,dataOut):
3959
3960 if self.aux==1:
3961 dataOut.cf=numpy.zeros(1,'float32')
3962 dataOut.cflast=numpy.zeros(1,'float32')
3963 self.aux=0
3964
3965 night_first=250.0
3966 night_first1= 300.0#350.0
3967 night_end= 450.0
3968 day_first=200.0#220.0
3969 day_end=350.0#400.0
3970 day_first_sunrise=200.0
3971 day_end_sunrise=300.0 #280.0
3972
3973 ##print(dataOut.ut_Faraday)
3974 #'''
3975 if(dataOut.ut_Faraday>2.0 and dataOut.ut_Faraday<7.0):
3976 #print("EARLY")
3977 i2=(night_end-dataOut.range1[0])/dataOut.DH
3978 i1=(night_first-dataOut.range1[0])/dataOut.DH
3979 elif (dataOut.ut_Faraday>=23.0 or dataOut.ut_Faraday<=2.0):
3980 #print("NIGHT")
3981 i2=(night_end-dataOut.range1[0])/dataOut.DH
3982 i1=(night_first1-dataOut.range1[0])/dataOut.DH
3983 elif (dataOut.ut_Faraday>=7.0 and dataOut.ut_Faraday<11.5):
3984 #print("SUNRISE")
3985 i2=(day_end_sunrise-dataOut.range1[0])/dataOut.DH
3986 i1=(day_first_sunrise-dataOut.range1[0])/dataOut.DH
3987 else:
3988 #print("ELSE")
3989 i2=(day_end-dataOut.range1[0])/dataOut.DH
3990 i1=(day_first-dataOut.range1[0])/dataOut.DH
3991 #'''
3992
3993 try:
3994 dataOut.heightList[i2]
3995 except:
3996 i2 -= 1
3997
3998 '''
3999 if not dataOut.flagSpreadF:
4000 i2=(420-dataOut.range1[0])/dataOut.DH
4001 else:
4002 i2=(620-dataOut.range1[0])/dataOut.DH
4003 '''
4004 #i1=(200 -dataOut.range1[0])/dataOut.DH
4005 ##print(i1*dataOut.DH)
4006 ##print(i2*dataOut.DH)
4007
4008 i1=int(i1)
4009 i2=int(i2)
4010 '''
4011 print(dataOut.ph2)
4012 import matplotlib.pyplot as plt
4013 plt.plot(dataOut.ph2,dataOut.heightList)
4014 plt.xlim(1.e5,1.e8)
4015 plt.show()
4016 '''
4017 #print("Flag: ",dataOut.flagTeTiCorrection)
4018 #print(dataOut.dphi[i1::])
4019 #print(dataOut.ph2[:])
4020
4021 if dataOut.flagTeTiCorrection:
4022 for i in range(dataOut.NSHTS):
4023 dataOut.ph2[i]/=dataOut.cf
4024 dataOut.sdp2[i]/=dataOut.cf
4025
4026 #'''
4027 #if dataOut.flagSpreadF:
4028 if hasattr(dataOut, 'flagSpreadF') and dataOut.flagSpreadF:
4029 i2=int((620-dataOut.range1[0])/dataOut.DH)
4030 #print(dataOut.ph2)
4031 #print(dataOut.heightList)
4032 nanindex = numpy.argwhere(numpy.isnan(dataOut.ph2))
4033 #print("nanindex",nanindex)
4034 i1 = nanindex[-1][0] #VER CUANDO i1>i2
4035 i1 += 1+2 #Se suma uno para no tomar el nan, se suma 2 para no tomar datos nan de "phi" debido al calculo de la derivada
4036 #print("i1, i2",i1,i2)
4037 #print(dataOut.heightList)
4038 #print("Bounds: ", dataOut.heightList[i1],dataOut.heightList[i2])
4039 #print(dataOut.dphi[33])
4040 #print(dataOut.ph2[33])
4041 #print(dataOut.dphi[i1::])
4042 #print(dataOut.ph2[i1::])
4043 #'''
4044 try:
4045 if hasattr(dataOut, 'flagSpreadF') and dataOut.flagSpreadF and i1 > 30:
4046 dataOut.cf = numpy.nan
4047 else:
4048 dataOut.cf=self.normal(dataOut.dphi[i1::], dataOut.ph2[i1::], i2-i1, 1)
4049
4050 except:
4051 dataOut.cf = numpy.nan
4052
4053 #print("cf: ",dataOut.cf)
4054 #print(dataOut.ph2)
4055 #input()
4056 # in case of spread F, normalize much higher
4057 #print("dens: ", dataOut.dphi,dataOut.ph2)
4058 if(dataOut.cf<dataOut.cflast[0]/10.0):
4059 i1=(night_first1+100.-dataOut.range1[0])/dataOut.DH
4060 i2=(night_end+100.0-dataOut.range1[0])/dataOut.DH
4061 i1=int(i1)
4062 i2=int(i2)
4063 try:
4064 dataOut.cf=self.normal(dataOut.dphi[int(i1)::], dataOut.ph2[int(i1)::], int(i2-i1), 1)
4065 except:
4066 pass
4067
4068 #print(dataOut.cf,dataOut.cflast[0])
4069 time_text = datetime.datetime.utcfromtimestamp(dataOut.utctime)
4070 #'''
4071 print("***Cleaning*** cflast: ", dataOut.cflast[0])
4072 print("***Cleaning*** cf: ", dataOut.cf)
4073 #if (time_text.hour == 5 and time_text.minute == 32): #Year: 2022, DOY:104
4074 #if (time_text.hour == 0 and time_text.minute == 12): #Year: 2022, DOY:93
4075 #if (time_text.hour == 0 and time_text.minute == 22) or (time_text.hour == 0 and time_text.minute == 54) or (time_text.hour == 1 and time_text.minute == 48): #Year: 2022, DOY:242
4076 #if (time_text.hour == 1 and time_text.minute == 23) or (time_text.hour == 1 and time_text.minute == 44): #Year: 2022, DOY:243
4077 #dataOut.cf = dataOut.cflast[0]
4078 if (time_text.hour == 0 and time_text.minute == 4): #Year: 2022, DOY:244
4079 dataOut.cf = 0.08
4080 #print("here")
4081 if (time_text.hour == 2 and time_text.minute == 23): #Year: 2022, DOY:244
4082 dataOut.cf = 0.08
4083 if (time_text.hour == 2 and time_text.minute == 33): #Year: 2022, DOY:244
4084 dataOut.cf = 0.09
4085 if (time_text.hour == 3 and time_text.minute == 59) or (time_text.hour == 4 and time_text.minute == 20): #Year: 2022, DOY:244
4086 dataOut.cf = 0.09
4087
4088
4089 #if (time_text.hour == 7 and time_text.minute == 18) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 50): #Year: 2023, DOY:028
4090 #dataOut.cf = 0.029844088
4091 #if (time_text.hour == 0 and time_text.minute == 12) or (time_text.hour == 0 and time_text.minute == 22): #Year: 2023, DOY:028
4092 #if (time_text.hour == 7 and time_text.minute == 8) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 8 and time_text.minute == 1) or (time_text.hour == 9 and time_text.minute == 48) or (time_text.hour == 9 and time_text.minute == 58): #Year: 2023, DOY:029
4093 #dataOut.cf = dataOut.cflast[0]
4094 #if (time_text.hour == 7 and time_text.minute == 29): #Year: 2023, DOY:029
4095 #dataOut.cf = 0.025670702
4096 #if (time_text.hour == 8 and time_text.minute == 12): #Year: 2023, DOY:029
4097 #dataOut.cf = 0.036969288
4098 #if (time_text.hour == 8 and time_text.minute == 22): #Year: 2023, DOY:029
4099 #dataOut.cf = 0.0418645
4100 #if (time_text.hour == 5 and time_text.minute == 10) or (time_text.hour == 5 and time_text.minute == 42) or (time_text.hour == 0 and time_text.minute == 22) or (time_text.hour == 0 and time_text.minute == 33): #Year: 2023, DOY:030
4101 #if (time_text.hour == 5 and time_text.minute == 10): #Year: 2023, DOY:172
4102 #if (time_text.hour == 5 and time_text.minute == 21) or (time_text.hour == 8 and time_text.minute == 44) or (time_text.hour == 9 and time_text.minute == 5) or (time_text.hour == 8 and time_text.minute == 54) or (time_text.hour == 8 and time_text.minute == 33) or (time_text.hour == 8 and time_text.minute == 22) or (time_text.hour == 8 and time_text.minute == 1) or (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 8) or (time_text.hour == 6 and time_text.minute == 4) or (time_text.hour == 5 and time_text.minute == 53) or (time_text.hour == 10 and time_text.minute == 9) or (time_text.hour == 6 and time_text.minute == 36) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 9 and time_text.minute == 26) or (time_text.hour == 9 and time_text.minute == 37) or (time_text.hour == 9 and time_text.minute == 48): #Year: 2023, DOY:175
4103 #if (time_text.hour == 1 and time_text.minute == 43) or (time_text.hour == 1 and time_text.minute == 48) or (time_text.hour == 1 and time_text.minute == 54): #Year: 2023, DOY:191
4104 #if (time_text.hour == 23 and time_text.minute == 50): #Year: 2023, DOY:247
4105 #dataOut.cf = 0.0068
4106 #if (time_text.hour == 0 and time_text.minute == 40): #Year: 2023, DOY:247
4107 #if (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 0 and time_text.minute == 0) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 50): #Year: 2023, DOY:248
4108 #if (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 20): #Year: 2023, DOY:250
4109 #if (time_text.hour == 7 and time_text.minute == 0) or (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 0) or (time_text.hour == 10 and time_text.minute == 10): #Year: 2023, DOY:269
4110 #if (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 12 and time_text.minute == 10) or (time_text.hour == 23 and time_text.minute == 40): #Year: 2023, DOY:265
4111 #if (time_text.hour == 6 and time_text.minute == 10) or (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute >= 10) or (time_text.hour == 8 and time_text.minute >= 10) or (time_text.hour == 9 and time_text.minute <= 20) or (time_text.hour == 9 and time_text.minute >= 40) or (time_text.hour == 11 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 2 and time_text.minute == 30): #Year: 2023, DOY:266
4112 #if (time_text.hour == 7 and time_text.minute >= 10) or (time_text.hour == 8 and time_text.minute <= 20) or (time_text.hour == 8 and time_text.minute >= 40) or (time_text.hour == 9) or (time_text.hour == 10) or (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 23) or (time_text.hour == 0 and time_text.minute <= 10): #Year: 2023, DOY:267
4113 #if (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 30) or (time_text.hour == 23 and time_text.minute == 30) or (time_text.hour == 23 and time_text.minute == 40) or (time_text.hour == 0 and time_text.minute == 0): #Year: 2023, DOY:268
4114 if (time_text.hour == 0 and time_text.minute == 4) or (time_text.hour == 0 and time_text.minute == 25) or (time_text.hour == 0 and time_text.minute == 57) or (time_text.hour == 1 and time_text.minute == 51) or (time_text.hour == 7 and time_text.minute == 29): #Year: 2022, DOY:244
4115 dataOut.cf = dataOut.cflast[0]
4116 #if (time_text.hour == 2 and time_text.minute == 50): #Year: 2023, DOY:265
4117 #dataOut.cf = 0.00145
4118 #if (time_text.hour == 10 and time_text.minute == 20) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 40): #Year: 2023, DOY:269
4119 #dataOut.cf = 0.0018814794
4120 #if (time_text.hour == 11 and time_text.minute == 0): #Year: 2023, DOY:269
4121 #dataOut.cf = 0.0016059145
4122
4123 #if (time_text.hour == 3 and time_text.minute == 40): #Year: 2023, DOY:249
4124 #dataOut.cf = 0.0061
4125 #if (time_text.hour == 4 and time_text.minute == 10): #Year: 2023, DOY:249
4126 #dataOut.cf = 0.0065
4127
4128 #if (time_text.hour == 1 and time_text.minute == 38): #Year: 2023, DOY:191
4129 #dataOut.cf = 0.00033544924
4130 #if (time_text.hour == 23 and time_text.minute == 56): #Year: 2023, DOY:191
4131 #dataOut.cf = 0.000311806775
4132 #if (time_text.hour == 0 and time_text.minute == 2): #Year: 2023, DOY:191
4133 #dataOut.cf = 0.0003127
4134 #if (time_text.hour == 0 and time_text.minute == 44): #Year: 2023, DOY:191
4135 #dataOut.cf = 0.00031403964500000003
4136
4137 #if (time_text.hour == 0 and time_text.minute == 22) or (time_text.hour == 0 and time_text.minute == 33): #Year: 2023, DOY:031
4138 #if (time_text.hour == 7 and time_text.minute == 29): #Year: 2023, DOY:032
4139 #dataOut.cf = dataOut.cflast[0]
4140 #'''
4141 #dataOut.cf = 0.000057#0.0008136899
4142 #if time_text.hour >= 5 and time_text.hour < 11:
4143 #dataOut.cf = 0.001355828593659634
4144
4145 #dataOut.cf = 1 #Without Normalization
4146
4147 dataOut.cflast[0]=dataOut.cf
4148 #print("cf: ", dataOut.cf)
4149
4150 #print(dataOut.ph2)
4151 #print(dataOut.sdp2)
4152
4153 ## normalize double pulse power and error bars to Faraday
4154 for i in range(dataOut.NSHTS):
4155 dataOut.ph2[i]*=dataOut.cf
4156 dataOut.sdp2[i]*=dataOut.cf
4157 #print(dataOut.ph2)
4158 #print(dataOut.sdp2)
4159 #exit(1)
4160 2473
4161 for i in range(dataOut.NSHTS):
4162 dataOut.ph2[i]=(max(1.0, dataOut.ph2[i]))
4163 dataOut.dphi[i]=(max(1.0, dataOut.dphi[i]))
4164 2474
4165 2475 def normalize(self,dataOut):
2476 # cf .- constant factor of normalization
4166 2477
4167 2478 if self.aux==1:
4168 2479 dataOut.cf=numpy.zeros(1,'float32')
4169 2480 dataOut.cflast=numpy.zeros(1,'float32')
4170 2481 self.aux=0
4171 2482
4172 if (dataOut.ut_Faraday>=11.5 and dataOut.ut_Faraday<23):
4173 i2=(500.-dataOut.range1[0])/dataOut.DH
4174 i1=(200.-dataOut.range1[0])/dataOut.DH
2483 #print(dataOut.ut_Faraday)
2484
2485 if (dataOut.ut_Faraday>=11.5 and dataOut.ut_Faraday<23):
2486 i2=(500.-dataOut.range1[0])/dataOut.DH
2487 i1=(200.-dataOut.range1[0])/dataOut.DH
2488
2489 elif(dataOut.ut_Faraday>=5 and dataOut.ut_Faraday<11.5):
2490 inda = numpy.where(dataOut.heightList >= 260) #200 km
2491 minIndex = inda[0][0]
2492 indb = numpy.where(dataOut.heightList < 350) # 700 km
2493 maxIndex = indb[0][-1]
2494 print(minIndex)
2495 print(dataOut.heightList)
2496
2497 ph2max_idx = numpy.nanargmax(dataOut.ph2[minIndex:maxIndex])
2498 #print("dataOut.ph2[minIndex:maxIndex]: ", dataOut.ph2[minIndex:maxIndex])
2499 #print("dataOut.ph2: ", dataOut.ph2)
2500 print("minIndex", minIndex, "maxIndex", maxIndex)
2501 print(ph2max_idx)
2502 '''
2503 #if dataOut.flagTeTiCorrection:
2504 if 1:
2505 import matplotlib.pyplot as plt
2506 plt.figure()
2507 plt.plot(dataOut.ph2[minIndex:maxIndex],dataOut.heightList[minIndex:maxIndex],'*-')
2508 plt.show()
2509 '''
2510 ph2max_idx += minIndex
2511
2512 i2 = maxIndex #ph2max_idx + 6
2513 i1 = minIndex #ph2max_idx - 6
4175 2514
2515 print("ELSE^^^^^^^^^^^^^^^^^^^^^")
2516 print(dataOut.heightList[i1])
2517 print(dataOut.heightList[i2])
4176 2518 else:
4177 2519 inda = numpy.where(dataOut.heightList >= 200) #200 km
4178 2520 minIndex = inda[0][0]
@@ -4182,8 +2524,10 class NormalizeDPPowerRoberto_V2(Operation):
4182 2524 print(dataOut.heightList)
4183 2525
4184 2526 ph2max_idx = numpy.nanargmax(dataOut.ph2[minIndex:maxIndex])
4185 print("dataOut.ph2[minIndex:maxIndex]: ", dataOut.ph2[minIndex:maxIndex])
4186 print(ph2max_idx)
2527 #print("dataOut.ph2[minIndex:maxIndex]: ", dataOut.ph2[minIndex:maxIndex])
2528 #print("dataOut.ph2: ", dataOut.ph2)
2529 #print("minIndex", minIndex, "maxIndex", maxIndex)
2530 #print(ph2max_idx)
4187 2531 '''
4188 2532 #if dataOut.flagTeTiCorrection:
4189 2533 if 1:
@@ -4196,9 +2540,35 class NormalizeDPPowerRoberto_V2(Operation):
4196 2540
4197 2541 i2 = ph2max_idx + 6
4198 2542 i1 = ph2max_idx - 6
2543
2544 print("ELSE^^^^^^^^^^^^^^^^^^^^^")
2545 print(dataOut.heightList[i1])
2546 print(dataOut.heightList[i2])
2547 '''
2548 elif(dataOut.ut_Faraday>=1.66 and dataOut.ut_Faraday<3.16): # 20 40 - 22 10 (1 40 - 3 10)
2549 inda = numpy.where(dataOut.heightList >= 435) #200 km
2550 minIndex = inda[0][0]
2551 indb = numpy.where(dataOut.heightList < 480) # 700 km
2552 maxIndex = indb[0][-1]
2553 print(minIndex)
2554 print(dataOut.heightList)
2555
2556 ph2max_idx = numpy.nanargmax(dataOut.ph2[minIndex:maxIndex])
2557 #print("dataOut.ph2[minIndex:maxIndex]: ", dataOut.ph2[minIndex:maxIndex])
2558 #print("dataOut.ph2: ", dataOut.ph2)
2559 print("minIndex", minIndex, "maxIndex", maxIndex)
2560 print(ph2max_idx)
2561
2562 ph2max_idx += minIndex
2563
2564 i2 = maxIndex #ph2max_idx + 6
2565 i1 = minIndex #ph2max_idx - 6
2566
4199 2567 print("ELSE^^^^^^^^^^^^^^^^^^^^^")
4200 2568 print(dataOut.heightList[i1])
4201 2569 print(dataOut.heightList[i2])
2570 '''
2571
4202 2572
4203 2573 try:
4204 2574 dataOut.heightList[i2]
@@ -4237,6 +2607,7 class NormalizeDPPowerRoberto_V2(Operation):
4237 2607 #'''
4238 2608 #if dataOut.flagSpreadF:
4239 2609 if hasattr(dataOut, 'flagSpreadF') and dataOut.flagSpreadF:
2610 print("flagSpreadF activated!!")
4240 2611 i2=int((700-dataOut.range1[0])/dataOut.DH)
4241 2612 #print(dataOut.ph2)
4242 2613 #print(dataOut.heightList)
@@ -4289,159 +2660,45 class NormalizeDPPowerRoberto_V2(Operation):
4289 2660 time_text = datetime.datetime.utcfromtimestamp(dataOut.utctime)
4290 2661
4291 2662 print("Bounds 3: ", dataOut.heightList[i1], dataOut.heightList[i2])
4292 '''
2663 print('time text', time_text)
2664
2665
2666 ### Manual cf correction ###
2667 flagcfcorrection = True
2668 DOY = time_text.timetuple().tm_yday
2669 print('time text', time_text, DOY)
2670 if flagcfcorrection:
4293 2671 print("***Cleaning*** cflast: ", dataOut.cflast[0])
4294 2672 print("***Cleaning*** cf: ", dataOut.cf)
4295 #if (time_text.hour == 5 and time_text.minute == 32): #Year: 2022, DOY:104
4296 #if (time_text.hour == 0 and time_text.minute == 12): #Year: 2022, DOY:93
4297 #if (time_text.hour == 0 and time_text.minute == 22) or (time_text.hour == 0 and time_text.minute == 54) or (time_text.hour == 1 and time_text.minute == 48): #Year: 2022, DOY:242
4298 #if (time_text.hour == 1 and time_text.minute == 23) or (time_text.hour == 1 and time_text.minute == 44): #Year: 2022, DOY:243
4299 #dataOut.cf = dataOut.cflast[0]
4300 #if (time_text.hour == 7 and time_text.minute == 18) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 50): #Year: 2023, DOY:028
4301 #dataOut.cf = 0.029844088
4302 #if (time_text.hour == 0 and time_text.minute == 12) or (time_text.hour == 0 and time_text.minute == 22): #Year: 2023, DOY:028
4303 #if (time_text.hour == 7 and time_text.minute == 8) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 8 and time_text.minute == 1) or (time_text.hour == 9 and time_text.minute == 48) or (time_text.hour == 9 and time_text.minute == 58): #Year: 2023, DOY:029
4304 #dataOut.cf = dataOut.cflast[0]
4305 #if (time_text.hour == 7 and time_text.minute == 29): #Year: 2023, DOY:029
4306 #dataOut.cf = 0.025670702
4307 #if (time_text.hour == 8 and time_text.minute == 12): #Year: 2023, DOY:029
4308 #dataOut.cf = 0.036969288
4309 #if (time_text.hour == 8 and time_text.minute == 22): #Year: 2023, DOY:029
4310 #dataOut.cf = 0.0418645
4311 #if (time_text.hour == 5 and time_text.minute == 10) or (time_text.hour == 5 and time_text.minute == 42) or (time_text.hour == 0 and time_text.minute == 22) or (time_text.hour == 0 and time_text.minute == 33): #Year: 2023, DOY:030
4312 #if (time_text.hour == 5 and time_text.minute == 10): #Year: 2023, DOY:172
4313 #if (time_text.hour == 5 and time_text.minute == 21) or (time_text.hour == 8 and time_text.minute == 44) or (time_text.hour == 9 and time_text.minute == 5) or (time_text.hour == 8 and time_text.minute == 54) or (time_text.hour == 8 and time_text.minute == 33) or (time_text.hour == 8 and time_text.minute == 22) or (time_text.hour == 8 and time_text.minute == 1) or (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 8) or (time_text.hour == 6 and time_text.minute == 4) or (time_text.hour == 5 and time_text.minute == 53) or (time_text.hour == 10 and time_text.minute == 9) or (time_text.hour == 6 and time_text.minute == 36) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 9 and time_text.minute == 26) or (time_text.hour == 9 and time_text.minute == 37) or (time_text.hour == 9 and time_text.minute == 48): #Year: 2023, DOY:175
4314 #if (time_text.hour == 1 and time_text.minute == 43) or (time_text.hour == 1 and time_text.minute == 48) or (time_text.hour == 1 and time_text.minute == 54): #Year: 2023, DOY:191
4315 #if (time_text.hour == 23 and time_text.minute == 50): #Year: 2023, DOY:247
4316 #dataOut.cf = 0.0068
4317 #if (time_text.hour == 0 and time_text.minute == 40): #Year: 2023, DOY:247
4318 #if (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 0 and time_text.minute == 0) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 50): #Year: 2023, DOY:248
4319 #if (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 20): #Year: 2023, DOY:250
4320 #if (time_text.hour == 7 and time_text.minute == 0) or (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 0) or (time_text.hour == 10 and time_text.minute == 10): #Year: 2023, DOY:269
4321 #if (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 12 and time_text.minute == 10) or (time_text.hour == 23 and time_text.minute == 40): #Year: 2023, DOY:265
4322 #if (time_text.hour == 6 and time_text.minute == 10) or (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute >= 10) or (time_text.hour == 8 and time_text.minute >= 10) or (time_text.hour == 9 and time_text.minute <= 20) or (time_text.hour == 9 and time_text.minute >= 40) or (time_text.hour == 11 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 2 and time_text.minute == 30): #Year: 2023, DOY:266
4323 #if (time_text.hour == 7 and time_text.minute >= 10) or (time_text.hour == 8 and time_text.minute <= 20) or (time_text.hour == 8 and time_text.minute >= 40) or (time_text.hour == 9) or (time_text.hour == 10) or (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 23) or (time_text.hour == 0 and time_text.minute <= 10): #Year: 2023, DOY:267
4324 #if (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 30) or (time_text.hour == 23 and time_text.minute == 30) or (time_text.hour == 23 and time_text.minute == 40) or (time_text.hour == 0 and time_text.minute == 0): #Year: 2023, DOY:268
4325 #if (time_text.hour == 2 and time_text.minute == 50): #Year: 2023, DOY:265
4326 #dataOut.cf = 0.00145
4327 #if (time_text.hour == 10 and time_text.minute == 20) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 40): #Year: 2023, DOY:269
4328 #dataOut.cf = 0.0018814794
4329 #if (time_text.hour == 11 and time_text.minute == 0): #Year: 2023, DOY:269
4330 #dataOut.cf = 0.0016059145
4331
4332 #if (time_text.hour == 3 and time_text.minute == 40): #Year: 2023, DOY:249
4333 #dataOut.cf = 0.0061
4334 #if (time_text.hour == 4 and time_text.minute == 10): #Year: 2023, DOY:249
4335 #dataOut.cf = 0.0065
4336
4337 #if (time_text.hour == 1 and time_text.minute == 38): #Year: 2023, DOY:191
4338 #dataOut.cf = 0.00033544924
4339 #if (time_text.hour == 23 and time_text.minute == 56): #Year: 2023, DOY:191
4340 #dataOut.cf = 0.000311806775
4341 #if (time_text.hour == 0 and time_text.minute == 2): #Year: 2023, DOY:191
4342 #dataOut.cf = 0.0003127
4343 #if (time_text.hour == 0 and time_text.minute == 44): #Year: 2023, DOY:191
4344 #dataOut.cf = 0.00031403964500000003
4345
4346 #if (time_text.hour == 0 and time_text.minute == 22) or (time_text.hour == 0 and time_text.minute == 33): #Year: 2023, DOY:031
4347 #if (time_text.hour == 7 and time_text.minute == 29): #Year: 2023, DOY:032
4348 #if (time_text.hour == 6 and time_text.minute == 0): #Year: 2023, DOY:050
4349 #dataOut.cf = 0.008
4350 #if (time_text.hour == 7 and time_text.minute == 20): #Year: 2023, DOY:050
4351 #dataOut.cf = 0.0077
4352 #if (time_text.hour == 11 and time_text.minute == 10): #Year: 2023, DOY:050
4353 #dataOut.cf = 0.014
4354 #if (time_text.hour == 11 and time_text.minute == 20): #Year: 2023, DOY:050
4355 #dataOut.cf = 0.010
4356 #if (time_text.hour == 10 and time_text.minute == 30): #Year: 2023, DOY:050
4357 #dataOut.cf = 0.012
4358 #if (time_text.hour == 10 and time_text.minute == 40): #Year: 2023, DOY:050
4359 #dataOut.cf = 0.014
4360 #if (time_text.hour == 5 and time_text.minute == 10): #Year: 2023, DOY:050
4361 #dataOut.cf = 0.01
4362 #if (time_text.hour == 7 and time_text.minute == 10) or (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 8 and time_text.minute == 10) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute >= 40) or (time_text.hour == 10 and time_text.minute <= 20): #Year: 2024, DOY:050
4363 #dataOut.cf = dataOut.cflast[0]
4364 #if (time_text.hour == 3 and time_text.minute == 35): #Year: 2024, DOY:046
4365 #dataOut.cf = 0.007
4366 #if (time_text.hour == 4 and time_text.minute == 25) or (time_text.hour == 3 and time_text.minute == 55): #Year: 2024, DOY:046
4367 #dataOut.cf = 0.0045
4368 #if (time_text.hour == 4 and time_text.minute == 45): #Year: 2024, DOY:046
4369 #dataOut.cf = 0.007
4370 #if (time_text.hour == 11 and time_text.minute == 10): #Year: 2024, DOY:047
4371 #dataOut.cf = 0.015
4372 #if (time_text.hour == 3 and time_text.minute == 50): #Year: 2024, DOY:047
4373 #dataOut.cf = 0.005
4374 #if (time_text.hour == 7 and time_text.minute >= 20) or (time_text.hour == 9 and time_text.minute >= 10) or (time_text.hour == 10 and time_text.minute >= 10) or (time_text.hour == 11 and time_text.minute == 0) or (time_text.hour == 1 and time_text.minute == 10) or (time_text.hour == 4 and time_text.minute == 0) or (time_text.hour == 4 and time_text.minute == 20): #Year: 2024, DOY:047
4375 #if (time_text.hour == 5 and time_text.minute == 30): #Year: 2024, DOY:049
4376 #dataOut.cf = 0.004
4377 #if (time_text.hour == 7 and time_text.minute == 20): #Year: 2024, DOY:049
4378 #dataOut.cf = 0.006
4379 #if (time_text.hour == 7 and time_text.minute == 30): #Year: 2024, DOY:049
4380 #dataOut.cf = 0.009
4381 #if (time_text.hour == 7 and time_text.minute == 40): #Year: 2024, DOY:049
4382 #dataOut.cf = 0.010
4383 #if (time_text.hour == 9 and time_text.minute == 10): #Year: 2024, DOY:049
4384 #dataOut.cf = 0.007
4385 #if (time_text.hour == 9 and time_text.minute == 20): #Year: 2024, DOY:049
4386 #dataOut.cf = 0.009
4387 #if (time_text.hour == 9 and time_text.minute >= 40): #Year: 2024, DOY:049
4388 #dataOut.cf = 0.012
4389 #if (time_text.hour == 3 and time_text.minute == 0) or (time_text.hour == 3 and time_text.minute == 50): #Year: 2024, DOY:049
4390 #dataOut.cf = 0.0054
4391 #if (time_text.hour == 6 and time_text.minute == 10): #Year: 2024, DOY:048
4392 #dataOut.cf = 0.007
4393 #if (time_text.hour == 6 and time_text.minute == 20): #Year: 2024, DOY:048
4394 #dataOut.cf = 0.009
4395 #if (time_text.hour == 9 and time_text.minute == 40): #Year: 2024, DOY:048
4396 #dataOut.cf = 0.015
4397 #if (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 30) or (time_text.hour == 10) or (time_text.hour == 11 and time_text.minute == 0) or (time_text.hour == 13 and time_text.minute == 50) or (time_text.hour == 14 and time_text.minute == 0) or (time_text.hour == 16 and time_text.minute == 0) or (time_text.hour == 16 and time_text.minute == 20) or (time_text.hour == 16 and time_text.minute == 50) or (time_text.hour == 17 and time_text.minute == 10) or (time_text.hour == 17 and time_text.minute == 50) or (time_text.hour == 19 and time_text.minute == 0) or (time_text.hour == 19 and time_text.minute == 20): #Year: 2024, DOY:049
4398 #if (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 8 and time_text.minute == 10) or (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9 and time_text.minute <= 30) or (time_text.hour == 9 and time_text.minute == 50) or (time_text.hour == 10) or (time_text.hour == 11 and time_text.minute == 0): #Year: 2024, DOY:048
4399 #if (time_text.hour == 18 and time_text.minute == 15) or (time_text.hour == 17 and time_text.minute == 55) or (time_text.hour == 17 and time_text.minute == 35) or (time_text.hour == 17 and time_text.minute == 25) or (time_text.hour == 17 and time_text.minute == 5) or (time_text.hour == 16 and time_text.minute == 25) or (time_text.hour == 16 and time_text.minute == 45) or (time_text.hour == 3 and time_text.minute == 5) or (time_text.hour == 3 and time_text.minute == 25) or (time_text.hour == 14 and time_text.minute == 15) or (time_text.hour == 15 and time_text.minute == 45) or (time_text.hour == 16 and time_text.minute == 25) or (time_text.hour == 18 and time_text.minute == 5): #Year: 2024, DOY:046
4400 #if (time_text.hour == 6 and time_text.minute == 20) or (time_text.hour == 6 and time_text.minute == 30): #Year: 2024, DOY:083
4401 #dataOut.cf = 0.07
4402 #if (time_text.hour == 5 and time_text.minute == 40): #Year: 2024, DOY:083
4403 #dataOut.cf = 0.05
4404 #if (time_text.hour == 5 and time_text.minute == 10): #Year: 2024, DOY:083
4405 #dataOut.cf = 0.039
4406 #if (time_text.hour == 7 and time_text.minute == 40): #Year: 2024, DOY:083
4407 #dataOut.cf = 0.08
4408 #if (time_text.hour == 8 and time_text.minute == 10) or (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 8 and time_text.minute == 50): #Year: 2024, DOY:083
4409 #dataOut.cf = 0.075
4410 #if (time_text.hour == 10 and time_text.minute == 50): #Year: 2024, DOY:082
4411 #dataOut.cf = 0.095
4412 #if (time_text.hour == 11 and time_text.minute == 0): #Year: 2024, DOY:081
4413 #dataOut.cf = 0.10
4414 #if (time_text.hour == 9 and time_text.minute == 10): #Year: 2024, DOY:081
4415 #dataOut.cf = 0.08
4416 #if (time_text.hour == 10 and time_text.minute == 40) or (time_text.hour == 11 and time_text.minute == 0): #Year: 2024, DOY:082
4417 #if (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 50): #Year: 2024, DOY:081
4418 #if (time_text.hour == 3 and time_text.minute == 10): #Year: 2024, DOY:080
4419 #dataOut.cf = 0.09
4420 #if (time_text.hour == 10 and time_text.minute == 20) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 40): #Year: 2024, DOY:080
4421 #dataOut.cf = 0.09
4422 #if (time_text.hour == 9 and time_text.minute == 10): #Year: 2024, DOY:080
4423 #if (time_text.hour == 3 and time_text.minute == 10): #Year: 2024, DOY:079
4424 #dataOut.cf = 0.065
4425 #if (time_text.hour == 3 and time_text.minute == 20): #Year: 2024, DOY:079
4426 #dataOut.cf = 0.05
4427 if (time_text.hour == 8 and time_text.minute == 40): #Year: 2024, DOY:136
4428 dataOut.cf = 0.006
4429 if (time_text.hour == 8 and time_text.minute == 45) or (time_text.hour == 8 and time_text.minute == 50): #Year: 2024, DOY:136
4430 dataOut.cf = 0.008
4431 if (time_text.hour == 3 and time_text.minute == 20) or (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 6 and time_text.minute == 35) or (time_text.hour == 7 and time_text.minute == 0) or (time_text.hour == 7 and time_text.minute == 15) or (time_text.hour == 7 and time_text.minute == 25) or (time_text.hour == 7 and time_text.minute == 35) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 45) or (time_text.hour == 7 and time_text.minute == 55) or (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 8 and time_text.minute == 5) or (time_text.hour == 8 and time_text.minute == 15) or (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 8 and time_text.minute == 25) or (time_text.hour == 10 and time_text.minute == 55) or (time_text.hour == 10 and time_text.minute == 35) or (time_text.hour == 10 and time_text.minute == 15) or (time_text.hour == 9 and time_text.minute == 45) or (time_text.hour == 9 and time_text.minute == 50) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 35) or (time_text.hour == 8 and time_text.minute == 40): #Year: 2024, DOY:136
4432 #if (time_text.hour == 8 and time_text.minute == 20): #Year: 2024, DOY:137
4433 #dataOut.cf = 0.008
4434 #if (time_text.hour == 10 and time_text.minute == 55) or (time_text.hour == 11 and time_text.minute == 0) or (time_text.hour == 11 and time_text.minute == 5): #Year: 2024, DOY:137
4435 #dataOut.cf = 0.009
4436 #if (time_text.hour == 18 and time_text.minute == 0) or (time_text.hour == 6 and time_text.minute == 30) or (time_text.hour == 6 and time_text.minute == 45) or (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 6 and time_text.minute == 55) or (time_text.hour == 7 and time_text.minute == 0) or (time_text.hour == 7 and time_text.minute == 5) or (time_text.hour == 7 and time_text.minute == 25) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 7 and time_text.minute == 35) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 35) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 45) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 5) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 25) or (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 9 and time_text.minute == 45) or (time_text.hour == 9 and time_text.minute == 55) or (time_text.hour == 10 and time_text.minute == 15) or (time_text.hour == 10 and time_text.minute == 20) or (time_text.hour == 10 and time_text.minute == 35) or (time_text.hour == 10 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute == 45) or (time_text.hour == 10 and time_text.minute == 50) or (time_text.hour == 3 and time_text.minute == 5) or (time_text.hour == 3 and time_text.minute == 35): #Year: 2024, DOY:137
4437 #if (time_text.hour == 6 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 7 and time_text.minute >= 40) or (time_text.hour == 8 and time_text.minute <= 10) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute >= 50) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 10 and time_text.minute == 25) or (time_text.hour == 9 and time_text.minute == 20): #Year: 2024, DOY:138
4438 dataOut.cf = dataOut.cflast[0]
4439 '''
4440 #dataOut.cf = 0.000057#0.0008136899
4441 #if time_text.hour >= 5 and time_text.hour < 11:
4442 #dataOut.cf = 0.001355828593659634
2673 path = os.path.join(os.path.dirname(__file__), 'normalize_factor2.json')
2674 with open(path) as f:
2675 jsondata= json.load(f)
2676
2677 corrections = {}
2678 for condition in jsondata['conditions']:
2679 year = condition['year']
2680 doy = condition['doy']
2681 cf = condition['cf']
2682
2683 for time_condition in condition['time']:
2684 hour = time_condition[0]
2685 minute = time_condition[1]
2686 corrections[(year, doy, hour, minute)] = cf
2687 key = (time_text.year, DOY, time_text.hour, time_text.minute)
2688
2689 if key in corrections:
2690 cf_value = corrections[key]
2691
2692 if isinstance(cf_value, str) and "cflast" in cf_value:
2693 dataOut.cf = eval(cf_value) #ast.literal_eval(cf_value)
2694 else:
2695 dataOut.cf = float(cf_value)
2696
2697 print(f"Correction applied: {dataOut.cf}")
4443 2698 print("***Cleaning*** cf After: ", dataOut.cf)
4444 #dataOut.cf = 1 #Without Normalization
2699
2700
2701
4445 2702
4446 2703 dataOut.cflast[0]=dataOut.cf
4447 2704 #print("cf: ", dataOut.cf)
@@ -4727,206 +2984,6 class DPTemperaturesEstimation(Operation):
4727 2984 return dataOut
4728 2985
4729 2986
4730 class DenCorrection_bckp_Dec_2022(NormalizeDPPowerRoberto_V2):
4731 '''
4732 Written by R. Flores
4733 '''
4734 def __init__(self, **kwargs):
4735
4736 Operation.__init__(self, **kwargs)
4737 self.aux = 0
4738
4739 def gaussian(self, x, a, b, c):
4740 val = a * numpy.exp(-(x - b)**2 / (2*c**2))
4741 return val
4742
4743 def TeTiEstimation(self,dataOut):
4744
4745 y=numpy.zeros(dataOut.DPL,order='F',dtype='float32')
4746
4747 #y_aux = numpy.zeros(1,,dtype='float32')
4748 for i in range(dataOut.NSHTS):
4749 y[0]=y[1]=dataOut.range1[i]
4750
4751 y = y.astype(dtype='float64',order='F')
4752 three=int(3)
4753 wl = 3.0
4754 tion=numpy.zeros(three,order='F',dtype='float32')
4755 fion=numpy.zeros(three,order='F',dtype='float32')
4756 nui=numpy.zeros(three,order='F',dtype='float32')
4757 wion=numpy.zeros(three,order='F',dtype='int32')
4758 bline=0.0
4759 #bline=numpy.zeros(1,order='F',dtype='float32')
4760 my_aux = numpy.ones(dataOut.NSHTS,order='F',dtype='float32')
4761 acf_Temps = numpy.ones(dataOut.NSHTS,order='F',dtype='float32')*numpy.nan
4762 acf_no_Temps = numpy.ones(dataOut.NSHTS,order='F',dtype='float32')*numpy.nan
4763
4764 from scipy import signal
4765
4766
4767 teti = numpy.ones(dataOut.NSHTS,order='F',dtype='float32')
4768
4769 for i in range(10,26):
4770 teti[i] = dataOut.te2[i]/dataOut.ti2[i]
4771
4772 ratio2 = teti-1
4773
4774 ratio2 = signal.medfilt(ratio2)
4775
4776 def func(params):
4777 return (ratio2-self.gaussian(dataOut.heightList[:dataOut.NSHTS],params[0],params[1],params[2]))
4778 #print(ratio2)
4779
4780 #plt.show()
4781 x0_value = numpy.array([.5,250,20])
4782
4783 popt = least_squares(func,x0=x0_value,verbose=0)
4784
4785 A = popt.x[0]; B = popt.x[1]; C = popt.x[2]
4786
4787 ratio2 = self.gaussian(dataOut.heightList[:dataOut.NSHTS], A, B, C) + 1 #Te/Ti + 1
4788 '''
4789 import matplotlib.pyplot as plt
4790 plt.clf()
4791 plt.plot(teti,dataOut.heightList[:dataOut.NSHTS])
4792 plt.plot(ratio2,dataOut.heightList[:dataOut.NSHTS])
4793 plt.title("{}".format(datetime.datetime.fromtimestamp(dataOut.utctime)))
4794 plt.xlim(.99,3)
4795 plt.grid()
4796 plt.savefig("/home/roberto/Pictures/Density_Comparison/V2/TeTi_from_temps/{}.png".format(dataOut.utctime))
4797 '''
4798 #dataOut.ti2 *= 5
4799 my_te2 = dataOut.ti2*ratio2
4800 #'''
4801
4802 te2_aux = dataOut.te2.copy()
4803 te2_aux[26:] = 1000
4804 te2_aux[:12] = 1000
4805 te2_aux -= 1000
4806 def func(params):
4807 #return (dataOut.te2-self.gaussian(dataOut.heightList[:dataOut.NSHTS],params[0],params[1],params[2]))
4808 return (te2_aux-self.gaussian(dataOut.heightList[:dataOut.NSHTS],params[0],params[1],params[2]))
4809 x0_value = numpy.array([1000,250,20])
4810 popt = least_squares(func,x0=x0_value,verbose=0)
4811 A = popt.x[0]; B = popt.x[1]; C = popt.x[2]
4812 te2_smooth = self.gaussian(dataOut.heightList[:dataOut.NSHTS], A, B, C)+1000
4813 te2_aux += 1000
4814 #'''
4815 ti2_smooth = te2_smooth/ratio2
4816 '''
4817 import matplotlib.pyplot as plt
4818 plt.clf()
4819 plt.plot(te2_smooth,dataOut.heightList[:dataOut.NSHTS],'*-',label = 'My Te')
4820 plt.plot(ti2_smooth,dataOut.heightList[:dataOut.NSHTS],'*-',label = 'My Ti')
4821 plt.plot(dataOut.te2,dataOut.heightList[:dataOut.NSHTS],'*-',label = 'Te')
4822 plt.plot(te2_aux,dataOut.heightList[:dataOut.NSHTS],'*-',label = 'Te_aux')
4823 plt.plot(ratio2*1000,dataOut.heightList[:dataOut.NSHTS],'*-',label = 'ratio*1000')
4824 #plt.plot(signal.medfilt(dataOut.te2),dataOut.heightList[:dataOut.NSHTS],'*-',label = 'Te')
4825 plt.title("{}".format(datetime.datetime.fromtimestamp(dataOut.utctime)))
4826 plt.xlim(-50,3000)
4827 plt.grid()
4828 plt.legend()
4829 plt.savefig("/home/roberto/Pictures/Density_Comparison/V3/Temps+{}.png".format(dataOut.utctime))
4830 #plt.show()
4831 '''
4832 #print("**** ACF2 WRAPPER ***** ",fitacf_acf2.acf2.__doc__ )
4833
4834 for i in range(dataOut.NSHTS):
4835 if dataOut.info2[i]==1:
4836 angle=dataOut.thb[i]*0.01745
4837 nue=nui[0]=nui[1]=nui[2]=0.0#nui[3]=0.0
4838 wion[0]=16 #O
4839 wion[1]=1 #H
4840 wion[2]=4 #He
4841 #tion[0]=tion[1]=tion[2]=dataOut.ti2[i]
4842 tion[0]=tion[1]=tion[2]=ti2_smooth[i]
4843 fion[0]=1.0-dataOut.phy2[i] #1
4844 fion[1]=dataOut.phy2[i] #0
4845 fion[2]=0.0 #0
4846 for j in range(dataOut.DPL):
4847 tau=dataOut.alag[j]*1.0e-3
4848 #print("***********ACF2***********")
4849 with suppress_stdout_stderr():#The smoothness in range of "y" depends on the smoothness of the input parameters
4850 y[j]=fitacf_acf2.acf2(wl,tau,dataOut.te2[i],tion,fion,nue,nui,wion,angle,dataOut.ph2[i],dataOut.bfm[i],y[j],three)
4851 #y[j]=fitacf_acf2.acf2(wl,tau,te2_smooth[i],tion,fion,nue,nui,wion,angle,dataOut.ph2[i],dataOut.bfm[i],y[j],three)
4852
4853 #y[j]=fitacf_acf2.acf2(wl,tau,my_te2[i],tion,fion,nue,nui,wion,angle,dataOut.ph2[i],dataOut.bfm[i],y[j],three)
4854 #exit(1)
4855 #if dataOut.ut_Faraday>11.0 and dataOut.range1[i]>150.0 and dataOut.range1[i]<400.0:
4856
4857 if dataOut.ut_Faraday>11.0 and dataOut.range1[i]>150.0 and dataOut.range1[i]<300.0:
4858 #if dataOut.ut_Faraday>11.0 and dataOut.range1[i]>150.0 and dataOut.range1[i]<400.0:
4859 tau=0.0
4860 with suppress_stdout_stderr():
4861 bline=fitacf_acf2.acf2(wl,tau,tion,tion,fion,nue,nui,wion,angle,dataOut.ph2[i],dataOut.bfm[i],bline,three)
4862 cf=min(1.2,max(1.0,bline/y[0])) #FACTOR DE EFICIENCIA
4863 #cf = bline/y[0]
4864 #cf=min(2.,max(1.0,bline/y[0]))
4865 my_aux[i] = cf
4866 acf_Temps[i] = y[0]
4867 acf_no_Temps[i] = bline
4868 #dataOut.ph2[i]=cf*dataOut.ph2[i] #Instead we adjust the curve "cf" into a Gaussian,
4869 #dataOut.sdp2[i]=cf*dataOut.sdp2[i] #in order to get smoother values of density
4870 for j in range(1,dataOut.DPL):
4871 #y[j]=(y[j]/y[0])*dataOut.DH+dataOut.range1[i]
4872 y[j]=min(max((y[j]/y[0]),-1.0),1.0)*dataOut.DH+dataOut.range1[i]
4873 y[0]=dataOut.range1[i]+dataOut.DH
4874
4875
4876 ratio = my_aux-1
4877 #ratio = dataOut.te2[:dataOut.NSHTS]/dataOut.ti2[:dataOut.NSHTS]
4878 def lsq_func(params):
4879 return (ratio-self.gaussian(dataOut.heightList[:dataOut.NSHTS],params[0],params[1],params[2]))
4880
4881 x0_value = numpy.array([max(ratio),250,20])
4882
4883 popt = least_squares(lsq_func,x0=x0_value,verbose=0)
4884
4885 A = popt.x[0]; B = popt.x[1]; C = popt.x[2]
4886
4887 aux = self.gaussian(dataOut.heightList[:dataOut.NSHTS], A, B, C) + 1 #ratio + 1
4888
4889 '''
4890 import matplotlib.pyplot as plt
4891 plt.clf()
4892 #plt.plot(aux,dataOut.heightList[:dataOut.NSHTS],'*:',label='Fitting')
4893 plt.plot(my_aux,dataOut.heightList[:dataOut.NSHTS],'*:',label='Ratio')
4894 #plt.plot(acf_Temps,dataOut.heightList[:dataOut.NSHTS],'b*:',label='Temps')
4895 #plt.plot(acf_no_Temps,dataOut.heightList[:dataOut.NSHTS],'k*:',label='No Temps')
4896 #plt.plot(dataOut.te2[:dataOut.NSHTS]/dataOut.ti2[:dataOut.NSHTS],dataOut.heightList[:dataOut.NSHTS],label='Ratio')
4897 #plt.ylim(180)
4898 plt.title("{}".format(datetime.datetime.fromtimestamp(dataOut.utctime)))
4899 plt.legend()
4900 plt.grid()
4901 #plt.xlim(.99,1.25)
4902 #plt.show()
4903 #plt.savefig("/home/roberto/Pictures/Density_Comparison/FactorEf_NoLimits/{}.png".format(dataOut.utctime))
4904 #plt.savefig("/home/roberto/Pictures/Density_Comparison/V2/TeTi_cte/Te2/{}.png".format(dataOut.utctime))
4905 #plt.savefig("/home/roberto/Pictures/Density_Comparison/V2/bline/Te2/{}.png".format(dataOut.utctime))
4906 plt.savefig("/home/roberto/Pictures/Density_Comparison/V3/{}.png".format(dataOut.utctime))
4907 #plt.savefig("/home/roberto/Pictures/Faraday_TeTi_Test/Ratio/{}.png".format(dataOut.utctime))
4908 '''
4909 #print("inside correction",dataOut.ph2)
4910
4911 #print("heeere",aux)
4912 #exit(1)
4913 dataOut.ph2[:dataOut.NSHTS]*=aux
4914 dataOut.sdp2[:dataOut.NSHTS]*=aux
4915 #dataOut.ph2[:26]*=aux[:26]
4916 #dataOut.sdp2[:26]*=aux[:26]
4917 #print(aux)
4918 #print("inside correction",dataOut.ph2)
4919
4920 def run(self,dataOut):
4921 #print("hour",gmtime(dataOut.utctime).tm_hour)
4922 if gmtime(dataOut.utctime).tm_hour < 24. and gmtime(dataOut.utctime).tm_hour >= 11.:
4923 #print("inside")
4924 self.TeTiEstimation(dataOut)
4925 dataOut.flagTeTiCorrection = True
4926
4927 self.normalize(dataOut)
4928
4929 return dataOut
4930 2987
4931 2988 class DenCorrection(NormalizeDPPowerRoberto_V2):
4932 2989 '''
@@ -5384,62 +3441,37 class DataSaveCleaner(Operation):
5384 3441 print(dataOut.heightList)
5385 3442 exit(1)
5386 3443 '''
3444 ### Manual Data Cleaning
5387 3445
5388 3446 time_text = datetime.datetime.utcfromtimestamp(dataOut.utctime)
5389 print("Final Cleaning Process", time_text.hour, time_text.minute)
5390 '''
5391 #Agregar año y mes para no estar comentando esta parte!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
5392 #if (time_text.hour == 13 and time_text.minute == 20) or (time_text.hour == 0 and time_text.minute > 40) or (time_text.hour == 2 and time_text.minute == 8) or (time_text.hour == 2 and time_text.minute == 19): #Year: 2022, DOY:101
5393 #if (time_text.hour == 17 and time_text.minute == 5) or (time_text.hour == 8 and time_text.minute >= 22) or (time_text.hour == 9) or (time_text.hour == 11 and time_text.minute == 2): #Year: 2022, DOY:102
5394 #if (time_text.hour == 3 and time_text.minute == 56) or (time_text.hour == 2 and time_text.minute == 30) or (time_text.hour == 2 and time_text.minute == 20) or (time_text.hour == 2 and time_text.minute == 9) or (time_text.hour == 8 and time_text.minute >= 22) or (time_text.hour >= 9 and time_text.hour < 11): #Year: 2022, DOY:103
5395 #if (time_text.hour >= 8 and time_text.hour < 11) or (time_text.hour == 11 and time_text.minute == 2) or (time_text.hour == 11 and time_text.minute == 13): #Year: 2022, DOY:104
5396 #if (time_text.hour == 17 and time_text.minute == 34): #Year: 2022, DOY:89
5397 #if (time_text.hour == 7 and time_text.minute>=40) or (time_text.hour >= 8 and time_text.hour<11) or (time_text.hour == 11 and time_text.minute<=25): #Year: 2022, DOY:90
5398 #if (time_text.hour == 6 and time_text.minute>=34) or (time_text.hour >= 7 and time_text.hour<11) or (time_text.hour == 11 and time_text.minute<47): #Year: 2022, DOY:94
5399 #if (time_text.hour == 7 and time_text.minute>=18) or (time_text.hour >= 8 and time_text.hour<11) or (time_text.hour == 11 and time_text.minute==2) or (time_text.hour == 1) or (time_text.hour == 2 and time_text.minute<=20) or (time_text.hour >= 3 and time_text.hour<=4): #Year: 2022, DOY:92
5400 #if (time_text.hour < 11 and time_text.hour >=5 ) or (time_text.hour == 11 and time_text.minute<=34): #Year: 2022, DOY:93
5401 #if (time_text.hour == 7 and time_text.minute>=18) or (time_text.hour >= 8 and time_text.hour <=11 ): #Year: 2022, DOY:91
5402
5403 #print(time_text.hour,time_text.minute)
5404 #if (time_text.hour == 16 and time_text.minute == 48) or (time_text.hour == 19 and time_text.minute ==49 ) or (time_text.hour >= 0 and time_text.hour < 5): #Year: 2022, DOY:241
5405 #if (time_text.hour == 5 and time_text.minute == 21) or (time_text.hour == 19 and time_text.minute ==49 ) or (time_text.hour == 7 and time_text.minute==40) or (time_text.hour == 7 and time_text.minute==50) or (time_text.hour >= 8 and time_text.hour < 11) or (time_text.hour == 11 and time_text.minute==2) or (time_text.hour == 11 and time_text.minute==13): #Year: 2022, DOY:242
5406 #if (time_text.hour >= 8 and time_text.hour < 11) or (time_text.hour == 11 and time_text.minute==2) or (time_text.hour == 11 and time_text.minute==13) or (time_text.hour == 11 and time_text.minute==24): #Year: 2022, DOY:243
5407 #if (time_text.hour >= 9 and time_text.hour < 11) or (time_text.hour == 8 and time_text.minute==12) or (time_text.hour == 8 and time_text.minute==22) or (time_text.hour == 8 and time_text.minute==33) or (time_text.hour == 8 and time_text.minute==44) or (time_text.hour == 8 and time_text.minute==54) or (time_text.hour == 11 and time_text.minute==2) or (time_text.hour == 11 and time_text.minute==13): #Year: 2022, DOY:245
5408 #if (time_text.hour >= 8 and time_text.hour < 11) or (time_text.hour == 1) or (time_text.hour == 0 and time_text.minute==15) or (time_text.hour == 0 and time_text.minute==25) or (time_text.hour == 0 and time_text.minute==36) or (time_text.hour == 0 and time_text.minute==47) or (time_text.hour == 0 and time_text.minute==57) or (time_text.hour == 2 and time_text.minute==1) or (time_text.hour == 11 and time_text.minute==2) or (time_text.hour == 11 and time_text.minute==13) or (time_text.hour == 11 and time_text.minute == 24) or (time_text.hour == 7 and time_text.minute==40) or (time_text.hour == 7 and time_text.minute==50) or (time_text.hour == 3 and time_text.minute==5) or (time_text.hour == 3 and time_text.minute==16) or (time_text.hour == 3 and time_text.minute==27): #Year: 2022, DOY:244
5409 #if (time_text.hour >= 8 and time_text.hour < 11) or (time_text.hour == 11 and time_text.minute==2) or (time_text.hour == 11 and time_text.minute==13) or (time_text.hour == 11 and time_text.minute == 24) or (time_text.hour == 7 and time_text.minute==40) or (time_text.hour == 7 and time_text.minute==50) or (time_text.hour == 3 and time_text.minute==5): #Year: 2022, DOY:244
5410 #if (time_text.hour == 0 and time_text.minute == 8) or (time_text.hour == 0 and time_text.minute==18): #Year: 2023, DOY:027
5411 #if (time_text.hour >= 3 and time_text.hour < 5) or (time_text.hour == 6) or (time_text.hour == 7 and time_text.minute==8) or (time_text.hour == 8 and time_text.minute==1) or (time_text.hour == 8 and time_text.minute==12) or (time_text.hour == 8 and time_text.minute==22) or (time_text.hour == 8 and time_text.minute==33) or (time_text.hour == 9 and time_text.minute>=16) or (time_text.hour == 10) or (time_text.hour == 11 and time_text.minute==2): #Year: 2023, DOY:028
5412 #if (time_text.hour >=2 and time_text.hour < 5) or (time_text.hour == 10): #Year: 2023, DOY:029
5413 #if (time_text.hour == 6 and time_text.minute == 36) or (time_text.hour == 6 and time_text.minute==46) or (time_text.hour == 6 and time_text.minute==57) or (time_text.hour == 7 and time_text.minute==8) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10) or (time_text.hour == 14 and time_text.minute==25) or (time_text.hour == 14 and time_text.minute==57): #Year: 2023, DOY:030
5414 #if (time_text.hour == 0 and time_text.minute == 54) or (time_text.hour >= 1 and time_text.hour<5) or (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9 and time_text.minute != 58): #Year: 2023, DOY:031
5415 #if (time_text.hour == 5 and time_text.minute <= 21) or (time_text.hour == 8 and time_text.minute==1) or (time_text.hour == 9 and time_text.minute==2) or (time_text.hour == 10) or (time_text.hour == 12 and time_text.minute==31): #Year: 2023, DOY:032
5416 #if (time_text.hour >= 5 and time_text.hour < 11) or (time_text.hour == 11 and time_text.minute<30): #Year: 2023, DOY:171
5417 #if (time_text.hour == 19 and time_text.minute > 40) or (time_text.hour == 20 and time_text.minute<20) or (time_text.hour == 6 and time_text.minute==57) or (time_text.hour > 6 and time_text.hour < 11) or (time_text.hour == 11 and time_text.minute<40): #Year: 2023, DOY:172
5418 #if (time_text.hour >= 5 and time_text.hour < 11) or (time_text.hour == 11 and time_text.minute < 40) or (time_text.hour == 16 and time_text.minute == 12): #Year: 2023, DOY:173
5419 #if (time_text.hour >= 5 and time_text.hour < 11) or (time_text.hour == 11 and time_text.minute == 2) or (time_text.hour == 20 and time_text.minute > 30) or (time_text.hour == 21) or (time_text.hour == 22 and time_text.minute < 40): #Year: 2023, DOY:174
5420 #if (time_text.hour == 19 and time_text.minute == 41): #Year: 2023, DOY:195
5421 #if (time_text.hour == 22 and time_text.minute == 0) or (time_text.hour == 10) or (time_text.hour == 11 and time_text.minute == 0): #Year: 2023, DOY:248
5422 #if (time_text.hour >= 8 and time_text.hour <= 10) or (time_text.hour == 3 and time_text.minute == 50) or (time_text.hour == 4 and time_text.minute == 0): #Year: 2023, DOY:249
5423 #if (time_text.hour == 8 and time_text.minute >= 40) or (time_text.hour == 9 or time_text.hour == 10) or (time_text.hour == 11 and time_text.minute <= 20): #Year: 2023, DOY:250
5424 #if (time_text.hour == 23 and time_text.minute >= 20) or (time_text.hour >= 0 and time_text.hour <= 2) or (time_text.hour == 4 and time_text.minute >= 20): #Year: 2023, DOY:264
5425 #if (time_text.hour == 8 and time_text.minute >= 10) or (time_text.hour == 9 and time_text.minute <= 20) or (time_text.hour == 1 and time_text.minute >= 20) or (time_text.hour == 2 and time_text.minute <= 30): #Year: 2023, DOY:265
5426 #if (time_text.hour == 0 and time_text.minute >= 10) or (time_text.hour == 1 and time_text.minute <= 40) or (time_text.hour == 2 and time_text.minute >= 40): #Year: 2023, DOY:266
5427 #if (time_text.hour == 5 and time_text.minute == 10) or (time_text.hour == 5 and time_text.minute == 20): #Year: 2023, DOY:267
5428 #if (time_text.hour == 3 and time_text.minute == 40) or (time_text.hour == 3 and time_text.minute == 50) or (time_text.hour == 4 and time_text.minute <= 20): #Year: 2023, DOY:268
5429 #if (time_text.hour == 2 and time_text.minute == 20): #Year: 2023, DOY:310
5430 #if (time_text.hour == 12 and time_text.minute == 20): #Year: 2023, DOY:311
5431 #if (time_text.hour == 3 and time_text.minute == 5) or (time_text.hour == 23 and time_text.minute == 25) or (time_text.hour == 23 and time_text.minute == 35) or (time_text.hour == 23 and time_text.minute == 45) or (time_text.hour == 2 and time_text.minute == 5) or (time_text.hour == 2 and time_text.minute == 45) or (time_text.hour == 3 and time_text.minute == 45): #Year: 2024, DOY:046
5432 #if (time_text.hour == 1 and time_text.minute == 40) or (time_text.hour == 1 and time_text.minute == 10) or (time_text.hour == 3 and time_text.minute <= 10): #Year: 2024, DOY:047
5433 #if (time_text.hour == 16 and time_text.minute == 30) or (time_text.hour == 0 and time_text.minute >= 30) or (time_text.hour == 1 and time_text.minute >= 30) or (time_text.hour == 2 and time_text.minute == 10) or (time_text.hour == 3 and time_text.minute == 20) or (time_text.hour == 3 and time_text.minute == 40): #Year: 2024, DOY:049
5434 #if (time_text.hour == 5 and time_text.minute <= 10) or (time_text.hour == 1 and time_text.minute >= 40) or (time_text.hour == 2) or (time_text.hour == 3) or (time_text.hour == 4 and time_text.minute == 30): #Year: 2024, DOY:048
5435 #if (time_text.hour == 1 and time_text.minute == 50): #Year: 2024, DOY:082
5436 #if (time_text.hour == 9 and time_text.minute >= 40) or (time_text.hour == 10 and time_text.minute <= 30): #Year: 2024, DOY:081
5437 #if (time_text.hour == 1 and time_text.minute <= 20): #Year: 2024, DOY:080
5438 #if (time_text.hour == 3 and time_text.minute <= 40): #Year: 2024, DOY:079
5439 #if (time_text.hour == 3 and time_text.minute == 55): #Year: 2024, DOY:135
5440 if (time_text.hour == 7 and time_text.minute >= 45) or (time_text.hour == 8 and time_text.minute <= 15): #Year: 2024, DOY:137
5441 dataOut.DensityFinal[0,:]=missing
5442 dataOut.EDensityFinal[0,:]=missing
3447 DOY = time_text.timetuple().tm_yday
3448 '''
3449 # 2 Sep 24
3450 if (time_text.hour == 1 and (time_text.minute == 40)): #06-18 LT
3451 #dataOut.DensityFinal[0,27:]=missing
3452 #dataOut.EDensityFinal[0,27:]=missing
3453 dataOut.ElecTempFinal[0,:]=missing
3454 dataOut.EElecTempFinal[0,:]=missing
3455 dataOut.IonTempFinal[0,:]=missing
3456 dataOut.EIonTempFinal[0,:]=missing
3457 dataOut.PhyFinal[0,:]=missing
3458 dataOut.EPhyFinal[0,:] = missing
3459 if (time_text.hour == 5 and (time_text.minute >= 20)) or (time_text.hour == 6 and (time_text.minute <= 5)): #06-18 LT
3460 #dataOut.DensityFinal[0,27:]=missing
3461 #dataOut.EDensityFinal[0,27:]=missing
3462 dataOut.ElecTempFinal[0,27:]=missing
3463 dataOut.EElecTempFinal[0,27:]=missing
3464 dataOut.IonTempFinal[0,27:]=missing
3465 dataOut.EIonTempFinal[0,27:]=missing
3466 dataOut.PhyFinal[0,27:]=missing
3467 dataOut.EPhyFinal[0, 27:] = missing
3468 '''
3469 '''
3470 # 5 Sep 24
3471
3472 if (time_text.hour == 3 and (time_text.minute == 35)) or (time_text.hour == 3 and (time_text.minute == 20)): #06-18 LT
3473 #dataOut.DensityFinal[0,27:]=missing
3474 #dataOut.EDensityFinal[0,27:]=missing
5443 3475 dataOut.ElecTempFinal[0,:]=missing
5444 3476 dataOut.EElecTempFinal[0,:]=missing
5445 3477 dataOut.IonTempFinal[0,:]=missing
@@ -5447,4971 +3479,127 class DataSaveCleaner(Operation):
5447 3479 dataOut.PhyFinal[0,:]=missing
5448 3480 dataOut.EPhyFinal[0,:] = missing
5449 3481
5450 dataOut.flagNoData = True #Remueve todo el perfil
5451 '''
5452 '''
5453 if (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10) or (time_text.hour == 11 and time_text.minute <= 15): #Year: 2024, DOY:138
5454 id_aux = 13
5455 dataOut.DensityFinal[0,:id_aux]=missing
5456 dataOut.EDensityFinal[0,:id_aux]=missing
5457 dataOut.ElecTempFinal[0,:id_aux]=missing
5458 dataOut.EElecTempFinal[0,:id_aux]=missing
5459 dataOut.IonTempFinal[0,:id_aux]=missing
5460 dataOut.EIonTempFinal[0,:id_aux]=missing
5461 dataOut.PhyFinal[0,:id_aux]=missing
5462 dataOut.EPhyFinal[0,:id_aux]=missing
5463 if (time_text.hour == 11 and time_text.minute >= 20) or (time_text.hour == 12): #Year: 2024, DOY:138
5464 id_aux = 9
5465 dataOut.DensityFinal[0,:id_aux]=missing
5466 dataOut.EDensityFinal[0,:id_aux]=missing
5467 dataOut.ElecTempFinal[0,:id_aux]=missing
5468 dataOut.EElecTempFinal[0,:id_aux]=missing
5469 dataOut.IonTempFinal[0,:id_aux]=missing
5470 dataOut.EIonTempFinal[0,:id_aux]=missing
5471 dataOut.PhyFinal[0,:id_aux]=missing
5472 dataOut.EPhyFinal[0,:id_aux]=missing
5473 if (time_text.hour == 6 and time_text.minute == 0): #Year: 2024, DOY:138
5474 id_aux = 38
5475 dataOut.DensityFinal[0,id_aux:]=missing
5476 dataOut.EDensityFinal[0,id_aux:]=missing
5477 dataOut.ElecTempFinal[0,id_aux:]=missing
5478 dataOut.EElecTempFinal[0,id_aux:]=missing
5479 dataOut.IonTempFinal[0,id_aux:]=missing
5480 dataOut.EIonTempFinal[0,id_aux:]=missing
5481 dataOut.PhyFinal[0,id_aux:]=missing
5482 dataOut.EPhyFinal[0,id_aux:]=missing
5483 if (time_text.hour == 6 and time_text.minute == 10): #Year: 2024, DOY:138
5484 id_aux = 40
5485 dataOut.DensityFinal[0,id_aux:]=missing
5486 dataOut.EDensityFinal[0,id_aux:]=missing
5487 dataOut.ElecTempFinal[0,id_aux:]=missing
5488 dataOut.EElecTempFinal[0,id_aux:]=missing
5489 dataOut.IonTempFinal[0,id_aux:]=missing
5490 dataOut.EIonTempFinal[0,id_aux:]=missing
5491 dataOut.PhyFinal[0,id_aux:]=missing
5492 dataOut.EPhyFinal[0,id_aux:]=missing
5493 if (time_text.hour == 6 and time_text.minute == 20) or (time_text.hour == 6 and time_text.minute == 25) or (time_text.hour == 10 and time_text.minute == 25) or (time_text.hour == 11 and time_text.minute == 35) or (time_text.hour == 12 and time_text.minute == 15): #Year: 2024, DOY:138
5494 id_aux = 37
5495 dataOut.DensityFinal[0,id_aux:]=missing
5496 dataOut.EDensityFinal[0,id_aux:]=missing
5497 dataOut.ElecTempFinal[0,id_aux:]=missing
5498 dataOut.EElecTempFinal[0,id_aux:]=missing
5499 dataOut.IonTempFinal[0,id_aux:]=missing
5500 dataOut.EIonTempFinal[0,id_aux:]=missing
5501 dataOut.PhyFinal[0,id_aux:]=missing
5502 dataOut.EPhyFinal[0,id_aux:]=missing
5503 if (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 6 and time_text.minute == 55) or (time_text.hour == 9 and time_text.minute >= 45) or (time_text.hour == 10 and time_text.minute == 0) or (time_text.hour == 10 and time_text.minute == 15): #Year: 2024, DOY:138
5504 id_aux = 33
5505 dataOut.DensityFinal[0,id_aux:]=missing
5506 dataOut.EDensityFinal[0,id_aux:]=missing
5507 dataOut.ElecTempFinal[0,id_aux:]=missing
5508 dataOut.EElecTempFinal[0,id_aux:]=missing
5509 dataOut.IonTempFinal[0,id_aux:]=missing
5510 dataOut.EIonTempFinal[0,id_aux:]=missing
5511 dataOut.PhyFinal[0,id_aux:]=missing
5512 dataOut.EPhyFinal[0,id_aux:]=missing
5513 if (time_text.hour == 7 and time_text.minute == 15) or (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 9 and time_text.minute == 55) or (time_text.hour == 10 and time_text.minute == 10): #Year: 2024, DOY:138
5514 id_aux = 31
5515 dataOut.DensityFinal[0,id_aux:]=missing
5516 dataOut.EDensityFinal[0,id_aux:]=missing
5517 dataOut.ElecTempFinal[0,id_aux:]=missing
5518 dataOut.EElecTempFinal[0,id_aux:]=missing
5519 dataOut.IonTempFinal[0,id_aux:]=missing
5520 dataOut.EIonTempFinal[0,id_aux:]=missing
5521 dataOut.PhyFinal[0,id_aux:]=missing
5522 dataOut.EPhyFinal[0,id_aux:]=missing
5523 if (time_text.hour == 7 and time_text.minute == 35) or (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 8 and time_text.minute == 10): #Year: 2024, DOY:138
5524 id_aux = 28
5525 dataOut.DensityFinal[0,id_aux:]=missing
5526 dataOut.EDensityFinal[0,id_aux:]=missing
5527 dataOut.ElecTempFinal[0,id_aux:]=missing
5528 dataOut.EElecTempFinal[0,id_aux:]=missing
5529 dataOut.IonTempFinal[0,id_aux:]=missing
5530 dataOut.EIonTempFinal[0,id_aux:]=missing
5531 dataOut.PhyFinal[0,id_aux:]=missing
5532 dataOut.EPhyFinal[0,id_aux:]=missing
5533 if (time_text.hour == 8 and time_text.minute == 20): #Year: 2024, DOY:138
5534 id_aux = 29
5535 dataOut.DensityFinal[0,id_aux:]=missing
5536 dataOut.EDensityFinal[0,id_aux:]=missing
5537 dataOut.ElecTempFinal[0,id_aux:]=missing
5538 dataOut.EElecTempFinal[0,id_aux:]=missing
5539 dataOut.IonTempFinal[0,id_aux:]=missing
5540 dataOut.EIonTempFinal[0,id_aux:]=missing
5541 dataOut.PhyFinal[0,id_aux:]=missing
5542 dataOut.EPhyFinal[0,id_aux:]=missing
5543 if (time_text.hour == 8 and time_text.minute == 45) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 10 and time_text.minute == 45) or (time_text.hour == 11 and time_text.minute == 0) or (time_text.hour == 11 and time_text.minute == 20): #Year: 2024, DOY:138
5544 id_aux = 32
5545 dataOut.DensityFinal[0,id_aux:]=missing
5546 dataOut.EDensityFinal[0,id_aux:]=missing
5547 dataOut.ElecTempFinal[0,id_aux:]=missing
5548 dataOut.EElecTempFinal[0,id_aux:]=missing
5549 dataOut.IonTempFinal[0,id_aux:]=missing
5550 dataOut.EIonTempFinal[0,id_aux:]=missing
5551 dataOut.PhyFinal[0,id_aux:]=missing
5552 dataOut.EPhyFinal[0,id_aux:]=missing
5553 if (time_text.hour == 10 and time_text.minute == 40) or (time_text.hour == 11 and time_text.minute == 25): #Year: 2024, DOY:138
5554 id_aux = 36
5555 dataOut.DensityFinal[0,id_aux:]=missing
5556 dataOut.EDensityFinal[0,id_aux:]=missing
5557 dataOut.ElecTempFinal[0,id_aux:]=missing
5558 dataOut.EElecTempFinal[0,id_aux:]=missing
5559 dataOut.IonTempFinal[0,id_aux:]=missing
5560 dataOut.EIonTempFinal[0,id_aux:]=missing
5561 dataOut.PhyFinal[0,id_aux:]=missing
5562 dataOut.EPhyFinal[0,id_aux:]=missing
5563 if (time_text.hour == 12 and time_text.minute == 30): #Year: 2024, DOY:138
5564 id_aux = 38
5565 dataOut.DensityFinal[0,id_aux:]=missing
5566 dataOut.EDensityFinal[0,id_aux:]=missing
5567 dataOut.ElecTempFinal[0,id_aux:]=missing
5568 dataOut.EElecTempFinal[0,id_aux:]=missing
5569 dataOut.IonTempFinal[0,id_aux:]=missing
5570 dataOut.EIonTempFinal[0,id_aux:]=missing
5571 dataOut.PhyFinal[0,id_aux:]=missing
5572 dataOut.EPhyFinal[0,id_aux:]=missing
5573 '''
5574 '''
5575 if (time_text.hour == 5 and time_text.minute <= 10): #Year: 2024, DOY:137
5576 id_aux = 14
5577 dataOut.DensityFinal[0,:id_aux]=missing
5578 dataOut.EDensityFinal[0,:id_aux]=missing
5579 dataOut.ElecTempFinal[0,:id_aux]=missing
5580 dataOut.EElecTempFinal[0,:id_aux]=missing
5581 dataOut.IonTempFinal[0,:id_aux]=missing
5582 dataOut.EIonTempFinal[0,:id_aux]=missing
5583 dataOut.PhyFinal[0,:id_aux]=missing
5584 dataOut.EPhyFinal[0,:id_aux]=missing
5585 if (time_text.hour == 5 and time_text.minute <= 40) or (time_text.hour == 6 and time_text.minute == 45) or (time_text.hour == 8) or (time_text.hour == 21 and time_text.minute <= 20) or (time_text.hour == 22 and time_text.minute >= 50) or (time_text.hour == 23) or (time_text.hour == 0) or (time_text.hour == 1) or (time_text.hour == 2) or (time_text.hour == 3) or (time_text.hour == 4): #Year: 2024, DOY:137
5586 id_aux = 13
5587 dataOut.DensityFinal[0,:id_aux]=missing
5588 dataOut.EDensityFinal[0,:id_aux]=missing
5589 dataOut.ElecTempFinal[0,:id_aux]=missing
5590 dataOut.EElecTempFinal[0,:id_aux]=missing
5591 dataOut.IonTempFinal[0,:id_aux]=missing
5592 dataOut.EIonTempFinal[0,:id_aux]=missing
5593 dataOut.PhyFinal[0,:id_aux]=missing
5594 dataOut.EPhyFinal[0,:id_aux]=missing
5595 if (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 9) or (time_text.hour == 10): #Year: 2024, DOY:137
5596 id_aux = 12
5597 dataOut.DensityFinal[0,:id_aux]=missing
5598 dataOut.EDensityFinal[0,:id_aux]=missing
5599 dataOut.ElecTempFinal[0,:id_aux]=missing
5600 dataOut.EElecTempFinal[0,:id_aux]=missing
5601 dataOut.IonTempFinal[0,:id_aux]=missing
5602 dataOut.EIonTempFinal[0,:id_aux]=missing
5603 dataOut.PhyFinal[0,:id_aux]=missing
5604 dataOut.EPhyFinal[0,:id_aux]=missing
5605 if (time_text.hour == 7) or (time_text.hour == 23 and time_text.minute == 0): #Year: 2024, DOY:137
5606 id_aux = 15
5607 dataOut.DensityFinal[0,:id_aux]=missing
5608 dataOut.EDensityFinal[0,:id_aux]=missing
5609 dataOut.ElecTempFinal[0,:id_aux]=missing
5610 dataOut.EElecTempFinal[0,:id_aux]=missing
5611 dataOut.IonTempFinal[0,:id_aux]=missing
5612 dataOut.EIonTempFinal[0,:id_aux]=missing
5613 dataOut.PhyFinal[0,:id_aux]=missing
5614 dataOut.EPhyFinal[0,:id_aux]=missing
5615 if (time_text.hour == 11 and time_text.minute <= 10): #Year: 2024, DOY:137
5616 id_aux = 16
5617 dataOut.DensityFinal[0,:id_aux]=missing
5618 dataOut.EDensityFinal[0,:id_aux]=missing
5619 dataOut.ElecTempFinal[0,:id_aux]=missing
5620 dataOut.EElecTempFinal[0,:id_aux]=missing
5621 dataOut.IonTempFinal[0,:id_aux]=missing
5622 dataOut.EIonTempFinal[0,:id_aux]=missing
5623 dataOut.PhyFinal[0,:id_aux]=missing
5624 dataOut.EPhyFinal[0,:id_aux]=missing
5625 if (time_text.hour == 12 and time_text.minute > 15) or (time_text.hour == 11) or (time_text.hour == 12): #Year: 2024, DOY:137
5626 id_aux = 9
5627 dataOut.DensityFinal[0,:id_aux]=missing
5628 dataOut.EDensityFinal[0,:id_aux]=missing
5629 dataOut.ElecTempFinal[0,:id_aux]=missing
5630 dataOut.EElecTempFinal[0,:id_aux]=missing
5631 dataOut.IonTempFinal[0,:id_aux]=missing
5632 dataOut.EIonTempFinal[0,:id_aux]=missing
5633 dataOut.PhyFinal[0,:id_aux]=missing
5634 dataOut.EPhyFinal[0,:id_aux]=missing
5635 if (time_text.hour == 22): #Year: 2024, DOY:137
5636 id_aux = 10
5637 dataOut.DensityFinal[0,:id_aux]=missing
5638 dataOut.EDensityFinal[0,:id_aux]=missing
5639 dataOut.ElecTempFinal[0,:id_aux]=missing
5640 dataOut.EElecTempFinal[0,:id_aux]=missing
5641 dataOut.IonTempFinal[0,:id_aux]=missing
5642 dataOut.EIonTempFinal[0,:id_aux]=missing
5643 dataOut.PhyFinal[0,:id_aux]=missing
5644 dataOut.EPhyFinal[0,:id_aux]=missing
5645 if (time_text.hour == 22 and time_text.minute == 45): #Year: 2024, DOY:137
5646 id_aux = 11
5647 dataOut.DensityFinal[0,:id_aux]=missing
5648 dataOut.EDensityFinal[0,:id_aux]=missing
5649 dataOut.ElecTempFinal[0,:id_aux]=missing
5650 dataOut.EElecTempFinal[0,:id_aux]=missing
5651 dataOut.IonTempFinal[0,:id_aux]=missing
5652 dataOut.EIonTempFinal[0,:id_aux]=missing
5653 dataOut.PhyFinal[0,:id_aux]=missing
5654 dataOut.EPhyFinal[0,:id_aux]=missing
5655 if (time_text.hour == 23 and time_text.minute == 5) or (time_text.hour == 23 and time_text.minute == 10): #Year: 2024, DOY:137
5656 id_aux = 17
5657 dataOut.DensityFinal[0,:id_aux]=missing
5658 dataOut.EDensityFinal[0,:id_aux]=missing
5659 dataOut.ElecTempFinal[0,:id_aux]=missing
5660 dataOut.EElecTempFinal[0,:id_aux]=missing
5661 dataOut.IonTempFinal[0,:id_aux]=missing
5662 dataOut.EIonTempFinal[0,:id_aux]=missing
5663 dataOut.PhyFinal[0,:id_aux]=missing
5664 dataOut.EPhyFinal[0,:id_aux]=missing
5665 if (time_text.hour == 0 and time_text.minute == 5) or (time_text.hour == 0 and time_text.minute == 10) or (time_text.hour == 0 and time_text.minute == 15): #Year: 2024, DOY:137
5666 id_aux = 25
5667 dataOut.DensityFinal[0,:id_aux]=missing
5668 dataOut.EDensityFinal[0,:id_aux]=missing
5669 dataOut.ElecTempFinal[0,:id_aux]=missing
5670 dataOut.EElecTempFinal[0,:id_aux]=missing
5671 dataOut.IonTempFinal[0,:id_aux]=missing
5672 dataOut.EIonTempFinal[0,:id_aux]=missing
5673 dataOut.PhyFinal[0,:id_aux]=missing
5674 dataOut.EPhyFinal[0,:id_aux]=missing
5675 if (time_text.hour == 2 and time_text.minute == 10) or (time_text.hour == 2 and time_text.minute == 15): #Year: 2024, DOY:137
5676 id_aux = 24
5677 dataOut.DensityFinal[0,:id_aux]=missing
5678 dataOut.EDensityFinal[0,:id_aux]=missing
5679 dataOut.ElecTempFinal[0,:id_aux]=missing
5680 dataOut.EElecTempFinal[0,:id_aux]=missing
5681 dataOut.IonTempFinal[0,:id_aux]=missing
5682 dataOut.EIonTempFinal[0,:id_aux]=missing
5683 dataOut.PhyFinal[0,:id_aux]=missing
5684 dataOut.EPhyFinal[0,:id_aux]=missing
5685 if (time_text.hour == 5 and time_text.minute == 10) or (time_text.hour == 11 and time_text.minute == 15): #Year: 2024, DOY:137
5686 id_aux = 40
5687 dataOut.DensityFinal[0,id_aux:]=missing
5688 dataOut.EDensityFinal[0,id_aux:]=missing
5689 dataOut.ElecTempFinal[0,id_aux:]=missing
5690 dataOut.EElecTempFinal[0,id_aux:]=missing
5691 dataOut.IonTempFinal[0,id_aux:]=missing
5692 dataOut.EIonTempFinal[0,id_aux:]=missing
5693 dataOut.PhyFinal[0,id_aux:]=missing
5694 dataOut.EPhyFinal[0,id_aux:]=missing
5695 if (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 45) or (time_text.hour == 8 and time_text.minute == 50): #Year: 2024, DOY:137
5696 id_aux = 33
5697 dataOut.DensityFinal[0,id_aux:]=missing
5698 dataOut.EDensityFinal[0,id_aux:]=missing
5699 dataOut.ElecTempFinal[0,id_aux:]=missing
5700 dataOut.EElecTempFinal[0,id_aux:]=missing
5701 dataOut.IonTempFinal[0,id_aux:]=missing
5702 dataOut.EIonTempFinal[0,id_aux:]=missing
5703 dataOut.PhyFinal[0,id_aux:]=missing
5704 dataOut.EPhyFinal[0,id_aux:]=missing
5705 if (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 11 and time_text.minute == 5) or (time_text.hour == 11 and time_text.minute == 20): #Year: 2024, DOY:137
5706 id_aux = 34
5707 dataOut.DensityFinal[0,id_aux:]=missing
5708 dataOut.EDensityFinal[0,id_aux:]=missing
5709 dataOut.ElecTempFinal[0,id_aux:]=missing
5710 dataOut.EElecTempFinal[0,id_aux:]=missing
5711 dataOut.IonTempFinal[0,id_aux:]=missing
5712 dataOut.EIonTempFinal[0,id_aux:]=missing
5713 dataOut.PhyFinal[0,id_aux:]=missing
5714 dataOut.EPhyFinal[0,id_aux:]=missing
5715 if (time_text.hour == 6 and time_text.minute == 5) or (time_text.hour == 6 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute >= 10) or (time_text.hour == 10 and time_text.minute == 15) or (time_text.hour == 5 and time_text.minute == 45): #Year: 2024, DOY:137
5716 id_aux = 36
5717 dataOut.DensityFinal[0,id_aux:]=missing
5718 dataOut.EDensityFinal[0,id_aux:]=missing
5719 dataOut.ElecTempFinal[0,id_aux:]=missing
5720 dataOut.EElecTempFinal[0,id_aux:]=missing
5721 dataOut.IonTempFinal[0,id_aux:]=missing
5722 dataOut.EIonTempFinal[0,id_aux:]=missing
5723 dataOut.PhyFinal[0,id_aux:]=missing
5724 dataOut.EPhyFinal[0,id_aux:]=missing
5725 if (time_text.hour == 6 and time_text.minute == 35) or (time_text.hour == 7 and time_text.minute == 55) or (time_text.hour == 10 and time_text.minute == 20): #Year: 2024, DOY:137
5726 id_aux = 29
5727 dataOut.DensityFinal[0,id_aux:]=missing
5728 dataOut.EDensityFinal[0,id_aux:]=missing
5729 dataOut.ElecTempFinal[0,id_aux:]=missing
5730 dataOut.EElecTempFinal[0,id_aux:]=missing
5731 dataOut.IonTempFinal[0,id_aux:]=missing
5732 dataOut.EIonTempFinal[0,id_aux:]=missing
5733 dataOut.PhyFinal[0,id_aux:]=missing
5734 dataOut.EPhyFinal[0,id_aux:]=missing
5735 if (time_text.hour == 6 and time_text.minute >= 45) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute == 30): #Year: 2024, DOY:137
5736 id_aux = 30
5737 dataOut.DensityFinal[0,id_aux:]=missing
5738 dataOut.EDensityFinal[0,id_aux:]=missing
5739 dataOut.ElecTempFinal[0,id_aux:]=missing
5740 dataOut.EElecTempFinal[0,id_aux:]=missing
5741 dataOut.IonTempFinal[0,id_aux:]=missing
5742 dataOut.EIonTempFinal[0,id_aux:]=missing
5743 dataOut.PhyFinal[0,id_aux:]=missing
5744 dataOut.EPhyFinal[0,id_aux:]=missing
5745 if (time_text.hour == 9 and time_text.minute == 50): #Year: 2024, DOY:137
5746 id_aux = 31
5747 dataOut.DensityFinal[0,id_aux:]=missing
5748 dataOut.EDensityFinal[0,id_aux:]=missing
5749 dataOut.ElecTempFinal[0,id_aux:]=missing
5750 dataOut.EElecTempFinal[0,id_aux:]=missing
5751 dataOut.IonTempFinal[0,id_aux:]=missing
5752 dataOut.EIonTempFinal[0,id_aux:]=missing
5753 dataOut.PhyFinal[0,id_aux:]=missing
5754 dataOut.EPhyFinal[0,id_aux:]=missing
5755 if (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 7 and time_text.minute == 25): #Year: 2024, DOY:137
5756 id_aux = 27
5757 dataOut.DensityFinal[0,id_aux:]=missing
5758 dataOut.EDensityFinal[0,id_aux:]=missing
5759 dataOut.ElecTempFinal[0,id_aux:]=missing
5760 dataOut.EElecTempFinal[0,id_aux:]=missing
5761 dataOut.IonTempFinal[0,id_aux:]=missing
5762 dataOut.EIonTempFinal[0,id_aux:]=missing
5763 dataOut.PhyFinal[0,id_aux:]=missing
5764 dataOut.EPhyFinal[0,id_aux:]=missing
5765 if (time_text.hour == 17 and time_text.minute == 45) or (time_text.hour == 11 and time_text.minute == 45): #Year: 2024, DOY:137
5766 id_aux = 39
5767 dataOut.DensityFinal[0,id_aux]=missing
5768 dataOut.EDensityFinal[0,id_aux]=missing
5769 dataOut.ElecTempFinal[0,id_aux]=missing
5770 dataOut.EElecTempFinal[0,id_aux]=missing
5771 dataOut.IonTempFinal[0,id_aux]=missing
5772 dataOut.EIonTempFinal[0,id_aux]=missing
5773 dataOut.PhyFinal[0,id_aux]=missing
5774 dataOut.EPhyFinal[0,id_aux]=missing
5775 if (time_text.hour == 17 and time_text.minute == 50) or (time_text.hour == 18 and time_text.minute == 35) or (time_text.hour == 21 and time_text.minute == 10): #Year: 2024, DOY:137
5776 id_aux = (38,39)
5777 dataOut.DensityFinal[0,id_aux]=missing
5778 dataOut.EDensityFinal[0,id_aux]=missing
5779 dataOut.ElecTempFinal[0,id_aux]=missing
5780 dataOut.EElecTempFinal[0,id_aux]=missing
5781 dataOut.IonTempFinal[0,id_aux]=missing
5782 dataOut.EIonTempFinal[0,id_aux]=missing
5783 dataOut.PhyFinal[0,id_aux]=missing
5784 dataOut.EPhyFinal[0,id_aux]=missing
5785 if (time_text.hour == 20 and time_text.minute == 55): #Year: 2024, DOY:137
5786 id_aux = 38
5787 dataOut.DensityFinal[0,id_aux]=missing
5788 dataOut.EDensityFinal[0,id_aux]=missing
5789 dataOut.ElecTempFinal[0,id_aux]=missing
5790 dataOut.EElecTempFinal[0,id_aux]=missing
5791 dataOut.IonTempFinal[0,id_aux]=missing
5792 dataOut.EIonTempFinal[0,id_aux]=missing
5793 dataOut.PhyFinal[0,id_aux]=missing
5794 dataOut.EPhyFinal[0,id_aux]=missing
5795 if (time_text.hour == 3 and time_text.minute == 5): #Year: 2024, DOY:137
5796 id_aux = (37,38,39)
5797 dataOut.DensityFinal[0,id_aux]=missing
5798 dataOut.EDensityFinal[0,id_aux]=missing
5799 dataOut.ElecTempFinal[0,id_aux]=missing
5800 dataOut.EElecTempFinal[0,id_aux]=missing
5801 dataOut.IonTempFinal[0,id_aux]=missing
5802 dataOut.EIonTempFinal[0,id_aux]=missing
5803 dataOut.PhyFinal[0,id_aux]=missing
5804 dataOut.EPhyFinal[0,id_aux]=missing
5805 if (time_text.hour == 18 and time_text.minute == 0): #Year: 2024, DOY:137
5806 id_aux = (24,25)
5807 dataOut.DensityFinal[0,id_aux]=missing
5808 dataOut.EDensityFinal[0,id_aux]=missing
5809 dataOut.ElecTempFinal[0,id_aux]=missing
5810 dataOut.EElecTempFinal[0,id_aux]=missing
5811 dataOut.IonTempFinal[0,id_aux]=missing
5812 dataOut.EIonTempFinal[0,id_aux]=missing
5813 dataOut.PhyFinal[0,id_aux]=missing
5814 dataOut.EPhyFinal[0,id_aux]=missing
5815 '''
5816 '''
5817 if (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10) or (time_text.hour == 11 and time_text.minute <= 30) or (time_text.hour == 1 and time_text.minute >= 35) or (time_text.hour == 2): #Year: 2024, DOY:136
5818 id_aux = 12
5819 dataOut.DensityFinal[0,:id_aux]=missing
5820 dataOut.EDensityFinal[0,:id_aux]=missing
5821 dataOut.ElecTempFinal[0,:id_aux]=missing
5822 dataOut.EElecTempFinal[0,:id_aux]=missing
5823 dataOut.IonTempFinal[0,:id_aux]=missing
5824 dataOut.EIonTempFinal[0,:id_aux]=missing
5825 dataOut.PhyFinal[0,:id_aux]=missing
5826 dataOut.EPhyFinal[0,:id_aux]=missing
5827 if (time_text.hour == 11 and time_text.minute == 35) or (time_text.hour == 11 and time_text.minute == 40): #Year: 2024, DOY:136
5828 id_aux = 11
5829 dataOut.DensityFinal[0,:id_aux]=missing
5830 dataOut.EDensityFinal[0,:id_aux]=missing
5831 dataOut.ElecTempFinal[0,:id_aux]=missing
5832 dataOut.EElecTempFinal[0,:id_aux]=missing
5833 dataOut.IonTempFinal[0,:id_aux]=missing
5834 dataOut.EIonTempFinal[0,:id_aux]=missing
5835 dataOut.PhyFinal[0,:id_aux]=missing
5836 dataOut.EPhyFinal[0,:id_aux]=missing
5837 if (time_text.hour == 11 and time_text.minute >= 45) or (time_text.hour == 12 and time_text.minute <= 40) or (time_text.hour == 21 and time_text.minute >= 20) or (time_text.hour == 22 and time_text.minute <= 15): #Year: 2024, DOY:136
5838 id_aux = 9
5839 dataOut.DensityFinal[0,:id_aux]=missing
5840 dataOut.EDensityFinal[0,:id_aux]=missing
5841 dataOut.ElecTempFinal[0,:id_aux]=missing
5842 dataOut.EElecTempFinal[0,:id_aux]=missing
5843 dataOut.IonTempFinal[0,:id_aux]=missing
5844 dataOut.EIonTempFinal[0,:id_aux]=missing
5845 dataOut.PhyFinal[0,:id_aux]=missing
5846 dataOut.EPhyFinal[0,:id_aux]=missing
5847 if (time_text.hour == 12 and time_text.minute > 40) or (time_text.hour == 21 and time_text.minute <= 15) or (time_text.hour == 22 and time_text.minute == 55) or (time_text.hour == 3) or (time_text.hour == 4): #Year: 2024, DOY:136
5848 id_aux = 13
5849 dataOut.DensityFinal[0,:id_aux]=missing
5850 dataOut.EDensityFinal[0,:id_aux]=missing
5851 dataOut.ElecTempFinal[0,:id_aux]=missing
5852 dataOut.EElecTempFinal[0,:id_aux]=missing
5853 dataOut.IonTempFinal[0,:id_aux]=missing
5854 dataOut.EIonTempFinal[0,:id_aux]=missing
5855 dataOut.PhyFinal[0,:id_aux]=missing
5856 dataOut.EPhyFinal[0,:id_aux]=missing
5857 if (time_text.hour == 22 and time_text.minute >= 20): #Year: 2024, DOY:136
5858 id_aux = 10
5859 dataOut.DensityFinal[0,:id_aux]=missing
5860 dataOut.EDensityFinal[0,:id_aux]=missing
5861 dataOut.ElecTempFinal[0,:id_aux]=missing
5862 dataOut.EElecTempFinal[0,:id_aux]=missing
5863 dataOut.IonTempFinal[0,:id_aux]=missing
5864 dataOut.EIonTempFinal[0,:id_aux]=missing
5865 dataOut.PhyFinal[0,:id_aux]=missing
5866 dataOut.EPhyFinal[0,:id_aux]=missing
5867 if (time_text.hour == 23 and time_text.minute <= 10): #Year: 2024, DOY:136
5868 id_aux = 16
5869 dataOut.DensityFinal[0,:id_aux]=missing
5870 dataOut.EDensityFinal[0,:id_aux]=missing
5871 dataOut.ElecTempFinal[0,:id_aux]=missing
5872 dataOut.EElecTempFinal[0,:id_aux]=missing
5873 dataOut.IonTempFinal[0,:id_aux]=missing
5874 dataOut.EIonTempFinal[0,:id_aux]=missing
5875 dataOut.PhyFinal[0,:id_aux]=missing
5876 dataOut.EPhyFinal[0,:id_aux]=missing
5877 if (time_text.hour == 23 and time_text.minute >= 15): #Year: 2024, DOY:136
5878 id_aux = 17
5879 dataOut.DensityFinal[0,:id_aux]=missing
5880 dataOut.EDensityFinal[0,:id_aux]=missing
5881 dataOut.ElecTempFinal[0,:id_aux]=missing
5882 dataOut.EElecTempFinal[0,:id_aux]=missing
5883 dataOut.IonTempFinal[0,:id_aux]=missing
5884 dataOut.EIonTempFinal[0,:id_aux]=missing
5885 dataOut.PhyFinal[0,:id_aux]=missing
5886 dataOut.EPhyFinal[0,:id_aux]=missing
5887 if (time_text.hour == 2 and time_text.minute == 40): #Year: 2024, DOY:136
5888 id_aux = 15
5889 dataOut.DensityFinal[0,:id_aux]=missing
5890 dataOut.EDensityFinal[0,:id_aux]=missing
5891 dataOut.ElecTempFinal[0,:id_aux]=missing
5892 dataOut.EElecTempFinal[0,:id_aux]=missing
5893 dataOut.IonTempFinal[0,:id_aux]=missing
5894 dataOut.EIonTempFinal[0,:id_aux]=missing
5895 dataOut.PhyFinal[0,:id_aux]=missing
5896 dataOut.EPhyFinal[0,:id_aux]=missing
5897 if (time_text.hour == 1 and time_text.minute == 30): #Year: 2024, DOY:136
5898 id_aux = 19
5899 dataOut.DensityFinal[0,:id_aux]=missing
5900 dataOut.EDensityFinal[0,:id_aux]=missing
5901 dataOut.ElecTempFinal[0,:id_aux]=missing
5902 dataOut.EElecTempFinal[0,:id_aux]=missing
5903 dataOut.IonTempFinal[0,:id_aux]=missing
5904 dataOut.EIonTempFinal[0,:id_aux]=missing
5905 dataOut.PhyFinal[0,:id_aux]=missing
5906 dataOut.EPhyFinal[0,:id_aux]=missing
5907 if (time_text.hour == 0 and time_text.minute == 40): #Year: 2024, DOY:136
5908 id_aux = 20
5909 dataOut.DensityFinal[0,:id_aux]=missing
5910 dataOut.EDensityFinal[0,:id_aux]=missing
5911 dataOut.ElecTempFinal[0,:id_aux]=missing
5912 dataOut.EElecTempFinal[0,:id_aux]=missing
5913 dataOut.IonTempFinal[0,:id_aux]=missing
5914 dataOut.EIonTempFinal[0,:id_aux]=missing
5915 dataOut.PhyFinal[0,:id_aux]=missing
5916 dataOut.EPhyFinal[0,:id_aux]=missing
5917 if (time_text.hour == 4 and time_text.minute >= 25): #Year: 2024, DOY:136
5918 id_aux = 14
5919 dataOut.DensityFinal[0,:id_aux]=missing
5920 dataOut.EDensityFinal[0,:id_aux]=missing
5921 dataOut.ElecTempFinal[0,:id_aux]=missing
5922 dataOut.EElecTempFinal[0,:id_aux]=missing
5923 dataOut.IonTempFinal[0,:id_aux]=missing
5924 dataOut.EIonTempFinal[0,:id_aux]=missing
5925 dataOut.PhyFinal[0,:id_aux]=missing
5926 dataOut.EPhyFinal[0,:id_aux]=missing
5927 if (time_text.hour == 6 and time_text.minute <= 10) or (time_text.hour == 9 and time_text.minute == 45) or (time_text.hour == 12 and time_text.minute == 25): #Year: 2024, DOY:136
5928 id_aux = 37
5929 dataOut.DensityFinal[0,id_aux:]=missing
5930 dataOut.EDensityFinal[0,id_aux:]=missing
5931 dataOut.ElecTempFinal[0,id_aux:]=missing
5932 dataOut.EElecTempFinal[0,id_aux:]=missing
5933 dataOut.IonTempFinal[0,id_aux:]=missing
5934 dataOut.EIonTempFinal[0,id_aux:]=missing
5935 dataOut.PhyFinal[0,id_aux:]=missing
5936 dataOut.EPhyFinal[0,id_aux:]=missing
5937 if (time_text.hour == 6 and time_text.minute == 40) or (time_text.hour == 6 and time_text.minute == 45) or (time_text.hour == 9 and time_text.minute == 35) or (time_text.hour == 11 and time_text.minute == 15) or (time_text.hour == 11 and time_text.minute == 25) or (time_text.hour == 11 and time_text.minute == 35) or (time_text.hour == 8 and time_text.minute == 25): #Year: 2024, DOY:136
5938 id_aux = 34
5939 dataOut.DensityFinal[0,id_aux:]=missing
5940 dataOut.EDensityFinal[0,id_aux:]=missing
5941 dataOut.ElecTempFinal[0,id_aux:]=missing
5942 dataOut.EElecTempFinal[0,id_aux:]=missing
5943 dataOut.IonTempFinal[0,id_aux:]=missing
5944 dataOut.EIonTempFinal[0,id_aux:]=missing
5945 dataOut.PhyFinal[0,id_aux:]=missing
5946 dataOut.EPhyFinal[0,id_aux:]=missing
5947 if (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute == 5) or (time_text.hour == 10 and time_text.minute == 15) or (time_text.hour == 11 and time_text.minute == 50) or (time_text.hour == 12 and time_text.minute == 15) or (time_text.hour == 10 and time_text.minute == 50): #Year: 2024, DOY:136
5948 id_aux = 36
5949 dataOut.DensityFinal[0,id_aux:]=missing
5950 dataOut.EDensityFinal[0,id_aux:]=missing
5951 dataOut.ElecTempFinal[0,id_aux:]=missing
5952 dataOut.EElecTempFinal[0,id_aux:]=missing
5953 dataOut.IonTempFinal[0,id_aux:]=missing
5954 dataOut.EIonTempFinal[0,id_aux:]=missing
5955 dataOut.PhyFinal[0,id_aux:]=missing
5956 dataOut.EPhyFinal[0,id_aux:]=missing
5957 if (time_text.hour == 7 and time_text.minute == 10) or (time_text.hour == 7 and time_text.minute == 15) or (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 55) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 55) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 10 and time_text.minute == 40): #Year: 2024, DOY:136
5958 id_aux = 32
5959 dataOut.DensityFinal[0,id_aux:]=missing
5960 dataOut.EDensityFinal[0,id_aux:]=missing
5961 dataOut.ElecTempFinal[0,id_aux:]=missing
5962 dataOut.EElecTempFinal[0,id_aux:]=missing
5963 dataOut.IonTempFinal[0,id_aux:]=missing
5964 dataOut.EIonTempFinal[0,id_aux:]=missing
5965 dataOut.PhyFinal[0,id_aux:]=missing
5966 dataOut.EPhyFinal[0,id_aux:]=missing
5967 if (time_text.hour == 8 and time_text.minute == 5): #Year: 2024, DOY:136
5968 id_aux = 26
5969 dataOut.DensityFinal[0,id_aux:]=missing
5970 dataOut.EDensityFinal[0,id_aux:]=missing
5971 dataOut.ElecTempFinal[0,id_aux:]=missing
5972 dataOut.EElecTempFinal[0,id_aux:]=missing
5973 dataOut.IonTempFinal[0,id_aux:]=missing
5974 dataOut.EIonTempFinal[0,id_aux:]=missing
5975 dataOut.PhyFinal[0,id_aux:]=missing
5976 dataOut.EPhyFinal[0,id_aux:]=missing
5977 if (time_text.hour == 8 and time_text.minute == 15): #Year: 2024, DOY:136
5978 id_aux = 27
5979 dataOut.DensityFinal[0,id_aux:]=missing
5980 dataOut.EDensityFinal[0,id_aux:]=missing
5981 dataOut.ElecTempFinal[0,id_aux:]=missing
5982 dataOut.EElecTempFinal[0,id_aux:]=missing
5983 dataOut.IonTempFinal[0,id_aux:]=missing
5984 dataOut.EIonTempFinal[0,id_aux:]=missing
5985 dataOut.PhyFinal[0,id_aux:]=missing
5986 dataOut.EPhyFinal[0,id_aux:]=missing
5987 if (time_text.hour == 10 and time_text.minute == 20) or (time_text.hour == 12 and time_text.minute == 35): #Year: 2024, DOY:136
5988 id_aux = 39
5989 dataOut.DensityFinal[0,id_aux:]=missing
5990 dataOut.EDensityFinal[0,id_aux:]=missing
5991 dataOut.ElecTempFinal[0,id_aux:]=missing
5992 dataOut.EElecTempFinal[0,id_aux:]=missing
5993 dataOut.IonTempFinal[0,id_aux:]=missing
5994 dataOut.EIonTempFinal[0,id_aux:]=missing
5995 dataOut.PhyFinal[0,id_aux:]=missing
5996 dataOut.EPhyFinal[0,id_aux:]=missing
5997 if (time_text.hour == 10 and time_text.minute == 45): #Year: 2024, DOY:136
5998 id_aux = 29
5999 dataOut.DensityFinal[0,id_aux:]=missing
6000 dataOut.EDensityFinal[0,id_aux:]=missing
6001 dataOut.ElecTempFinal[0,id_aux:]=missing
6002 dataOut.EElecTempFinal[0,id_aux:]=missing
6003 dataOut.IonTempFinal[0,id_aux:]=missing
6004 dataOut.EIonTempFinal[0,id_aux:]=missing
6005 dataOut.PhyFinal[0,id_aux:]=missing
6006 dataOut.EPhyFinal[0,id_aux:]=missing
6007 if (time_text.hour == 21 and time_text.minute == 55): #Year: 2024, DOY:136
6008 id_aux = 51
6009 dataOut.DensityFinal[0,id_aux:]=missing
6010 dataOut.EDensityFinal[0,id_aux:]=missing
6011 dataOut.ElecTempFinal[0,id_aux:]=missing
6012 dataOut.EElecTempFinal[0,id_aux:]=missing
6013 dataOut.IonTempFinal[0,id_aux:]=missing
6014 dataOut.EIonTempFinal[0,id_aux:]=missing
6015 dataOut.PhyFinal[0,id_aux:]=missing
6016 dataOut.EPhyFinal[0,id_aux:]=missing
6017 '''
6018 '''
6019 if (time_text.hour == 14 and time_text.minute == 0): #Year: 2024, DOY:135
6020 id_aux = 40
6021 dataOut.DensityFinal[0,id_aux:]=missing
6022 dataOut.EDensityFinal[0,id_aux:]=missing
6023 dataOut.ElecTempFinal[0,id_aux:]=missing
6024 dataOut.EElecTempFinal[0,id_aux:]=missing
6025 dataOut.IonTempFinal[0,id_aux:]=missing
6026 dataOut.EIonTempFinal[0,id_aux:]=missing
6027 dataOut.PhyFinal[0,id_aux:]=missing
6028 dataOut.EPhyFinal[0,id_aux:]=missing
6029 if (time_text.hour == 14 and time_text.minute == 10): #Year: 2024, DOY:135
6030 id_aux = 38
6031 dataOut.DensityFinal[0,id_aux:]=missing
6032 dataOut.EDensityFinal[0,id_aux:]=missing
6033 dataOut.ElecTempFinal[0,id_aux:]=missing
6034 dataOut.EElecTempFinal[0,id_aux:]=missing
6035 dataOut.IonTempFinal[0,id_aux:]=missing
6036 dataOut.EIonTempFinal[0,id_aux:]=missing
6037 dataOut.PhyFinal[0,id_aux:]=missing
6038 dataOut.EPhyFinal[0,id_aux:]=missing
6039 if (time_text.hour == 21 and time_text.minute >= 40) or (time_text.hour == 22 and time_text.minute <= 30): #Year: 2024, DOY:135
6040 id_aux = 10
6041 dataOut.DensityFinal[0,:id_aux]=missing
6042 dataOut.EDensityFinal[0,:id_aux]=missing
6043 dataOut.ElecTempFinal[0,:id_aux]=missing
6044 dataOut.EElecTempFinal[0,:id_aux]=missing
6045 dataOut.IonTempFinal[0,:id_aux]=missing
6046 dataOut.EIonTempFinal[0,:id_aux]=missing
6047 dataOut.PhyFinal[0,:id_aux]=missing
6048 dataOut.EPhyFinal[0,:id_aux]=missing
6049 if (time_text.hour == 22 and time_text.minute == 35): #Year: 2024, DOY:135
6050 id_aux = 11
6051 dataOut.DensityFinal[0,:id_aux]=missing
6052 dataOut.EDensityFinal[0,:id_aux]=missing
6053 dataOut.ElecTempFinal[0,:id_aux]=missing
6054 dataOut.EElecTempFinal[0,:id_aux]=missing
6055 dataOut.IonTempFinal[0,:id_aux]=missing
6056 dataOut.EIonTempFinal[0,:id_aux]=missing
6057 dataOut.PhyFinal[0,:id_aux]=missing
6058 dataOut.EPhyFinal[0,:id_aux]=missing
6059 if (time_text.hour == 22 and time_text.minute == 40) or (time_text.hour == 22 and time_text.minute == 45): #Year: 2024, DOY:135
6060 id_aux = 12
6061 dataOut.DensityFinal[0,:id_aux]=missing
6062 dataOut.EDensityFinal[0,:id_aux]=missing
6063 dataOut.ElecTempFinal[0,:id_aux]=missing
6064 dataOut.EElecTempFinal[0,:id_aux]=missing
6065 dataOut.IonTempFinal[0,:id_aux]=missing
6066 dataOut.EIonTempFinal[0,:id_aux]=missing
6067 dataOut.PhyFinal[0,:id_aux]=missing
6068 dataOut.EPhyFinal[0,:id_aux]=missing
6069 if (time_text.hour == 22 and time_text.minute == 50) or (time_text.hour == 4 and time_text.minute == 25) or (time_text.hour == 23) or (time_text.hour <= 4): #Year: 2024, DOY:135
6070 id_aux = 13
6071 dataOut.DensityFinal[0,:id_aux]=missing
6072 dataOut.EDensityFinal[0,:id_aux]=missing
6073 dataOut.ElecTempFinal[0,:id_aux]=missing
6074 dataOut.EElecTempFinal[0,:id_aux]=missing
6075 dataOut.IonTempFinal[0,:id_aux]=missing
6076 dataOut.EIonTempFinal[0,:id_aux]=missing
6077 dataOut.PhyFinal[0,:id_aux]=missing
6078 dataOut.EPhyFinal[0,:id_aux]=missing
6079 if (time_text.hour == 22 and time_text.minute == 55) or (time_text.hour == 23 and time_text.minute == 5) or (time_text.hour == 3 and time_text.minute == 30) or (time_text.hour == 3 and time_text.minute == 35): #Year: 2024, DOY:135
6080 id_aux = 15
6081 dataOut.DensityFinal[0,:id_aux]=missing
6082 dataOut.EDensityFinal[0,:id_aux]=missing
6083 dataOut.ElecTempFinal[0,:id_aux]=missing
6084 dataOut.EElecTempFinal[0,:id_aux]=missing
6085 dataOut.IonTempFinal[0,:id_aux]=missing
6086 dataOut.EIonTempFinal[0,:id_aux]=missing
6087 dataOut.PhyFinal[0,:id_aux]=missing
6088 dataOut.EPhyFinal[0,:id_aux]=missing
6089 if (time_text.hour == 23 and time_text.minute == 0) or (time_text.hour == 3 and time_text.minute == 25): #Year: 2024, DOY:135
6090 id_aux = 16
6091 dataOut.DensityFinal[0,:id_aux]=missing
6092 dataOut.EDensityFinal[0,:id_aux]=missing
6093 dataOut.ElecTempFinal[0,:id_aux]=missing
6094 dataOut.EElecTempFinal[0,:id_aux]=missing
6095 dataOut.IonTempFinal[0,:id_aux]=missing
6096 dataOut.EIonTempFinal[0,:id_aux]=missing
6097 dataOut.PhyFinal[0,:id_aux]=missing
6098 dataOut.EPhyFinal[0,:id_aux]=missing
6099 if (time_text.hour == 23 and time_text.minute == 20): #Year: 2024, DOY:135
6100 id_aux = 19
6101 dataOut.DensityFinal[0,:id_aux]=missing
6102 dataOut.EDensityFinal[0,:id_aux]=missing
6103 dataOut.ElecTempFinal[0,:id_aux]=missing
6104 dataOut.EElecTempFinal[0,:id_aux]=missing
6105 dataOut.IonTempFinal[0,:id_aux]=missing
6106 dataOut.EIonTempFinal[0,:id_aux]=missing
6107 dataOut.PhyFinal[0,:id_aux]=missing
6108 dataOut.EPhyFinal[0,:id_aux]=missing
6109 if (time_text.hour == 23 and time_text.minute == 50): #Year: 2024, DOY:135
6110 id_aux = 21
6111 dataOut.DensityFinal[0,:id_aux]=missing
6112 dataOut.EDensityFinal[0,:id_aux]=missing
6113 dataOut.ElecTempFinal[0,:id_aux]=missing
6114 dataOut.EElecTempFinal[0,:id_aux]=missing
6115 dataOut.IonTempFinal[0,:id_aux]=missing
6116 dataOut.EIonTempFinal[0,:id_aux]=missing
6117 dataOut.PhyFinal[0,:id_aux]=missing
6118 dataOut.EPhyFinal[0,:id_aux]=missing
6119 if (time_text.hour == 0 and time_text.minute == 30): #Year: 2024, DOY:135
6120 id_aux = 24
6121 dataOut.DensityFinal[0,:id_aux]=missing
6122 dataOut.EDensityFinal[0,:id_aux]=missing
6123 dataOut.ElecTempFinal[0,:id_aux]=missing
6124 dataOut.EElecTempFinal[0,:id_aux]=missing
6125 dataOut.IonTempFinal[0,:id_aux]=missing
6126 dataOut.EIonTempFinal[0,:id_aux]=missing
6127 dataOut.PhyFinal[0,:id_aux]=missing
6128 dataOut.EPhyFinal[0,:id_aux]=missing
6129 if (time_text.hour == 2 and time_text.minute == 0) or (time_text.hour == 2 and time_text.minute == 15) or (time_text.hour == 0 and time_text.minute == 50) or (time_text.hour == 0 and time_text.minute == 55) or (time_text.hour == 1 and time_text.minute == 0) or (time_text.hour == 1 and time_text.minute == 5): #Year: 2024, DOY:135
6130 id_aux = 23
6131 dataOut.DensityFinal[0,:id_aux]=missing
6132 dataOut.EDensityFinal[0,:id_aux]=missing
6133 dataOut.ElecTempFinal[0,:id_aux]=missing
6134 dataOut.EElecTempFinal[0,:id_aux]=missing
6135 dataOut.IonTempFinal[0,:id_aux]=missing
6136 dataOut.EIonTempFinal[0,:id_aux]=missing
6137 dataOut.PhyFinal[0,:id_aux]=missing
6138 dataOut.EPhyFinal[0,:id_aux]=missing
6139 if (time_text.hour == 3 and time_text.minute == 15): #Year: 2024, DOY:135
6140 id_aux = 17
6141 dataOut.DensityFinal[0,:id_aux]=missing
6142 dataOut.EDensityFinal[0,:id_aux]=missing
6143 dataOut.ElecTempFinal[0,:id_aux]=missing
6144 dataOut.EElecTempFinal[0,:id_aux]=missing
6145 dataOut.IonTempFinal[0,:id_aux]=missing
6146 dataOut.EIonTempFinal[0,:id_aux]=missing
6147 dataOut.PhyFinal[0,:id_aux]=missing
6148 dataOut.EPhyFinal[0,:id_aux]=missing
6149 '''
6150 '''
6151 if (time_text.hour == 21 and time_text.minute <= 30): #Year: 2024, DOY:079
6152 id_aux = 13
6153 dataOut.DensityFinal[0,:id_aux]=missing
6154 dataOut.EDensityFinal[0,:id_aux]=missing
6155 dataOut.ElecTempFinal[0,:id_aux]=missing
6156 dataOut.EElecTempFinal[0,:id_aux]=missing
6157 dataOut.IonTempFinal[0,:id_aux]=missing
6158 dataOut.EIonTempFinal[0,:id_aux]=missing
6159 dataOut.PhyFinal[0,:id_aux]=missing
6160 dataOut.EPhyFinal[0,:id_aux]=missing
6161 if (time_text.hour == 21 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute == 10) or (time_text.hour == 23 and time_text.minute == 20) or (time_text.hour == 3 and time_text.minute == 50): #Year: 2024, DOY:079
6162 id_aux = 12
6163 dataOut.DensityFinal[0,:id_aux]=missing
6164 dataOut.EDensityFinal[0,:id_aux]=missing
6165 dataOut.ElecTempFinal[0,:id_aux]=missing
6166 dataOut.EElecTempFinal[0,:id_aux]=missing
6167 dataOut.IonTempFinal[0,:id_aux]=missing
6168 dataOut.EIonTempFinal[0,:id_aux]=missing
6169 dataOut.PhyFinal[0,:id_aux]=missing
6170 dataOut.EPhyFinal[0,:id_aux]=missing
6171 if (time_text.hour == 22 and time_text.minute >= 20) or (time_text.hour == 4): #Year: 2024, DOY:079
6172 id_aux = 10
6173 dataOut.DensityFinal[0,:id_aux]=missing
6174 dataOut.EDensityFinal[0,:id_aux]=missing
6175 dataOut.ElecTempFinal[0,:id_aux]=missing
6176 dataOut.EElecTempFinal[0,:id_aux]=missing
6177 dataOut.IonTempFinal[0,:id_aux]=missing
6178 dataOut.EIonTempFinal[0,:id_aux]=missing
6179 dataOut.PhyFinal[0,:id_aux]=missing
6180 dataOut.EPhyFinal[0,:id_aux]=missing
6181 if (time_text.hour == 23 and time_text.minute == 0): #Year: 2024, DOY:079
6182 id_aux = 11
6183 dataOut.DensityFinal[0,:id_aux]=missing
6184 dataOut.EDensityFinal[0,:id_aux]=missing
6185 dataOut.ElecTempFinal[0,:id_aux]=missing
6186 dataOut.EElecTempFinal[0,:id_aux]=missing
6187 dataOut.IonTempFinal[0,:id_aux]=missing
6188 dataOut.EIonTempFinal[0,:id_aux]=missing
6189 dataOut.PhyFinal[0,:id_aux]=missing
6190 dataOut.EPhyFinal[0,:id_aux]=missing
6191 if (time_text.hour == 23 and time_text.minute >= 30) or (time_text.hour == 0) or (time_text.hour == 1) or (time_text.hour == 2 and time_text.minute == 0): #Year: 2024, DOY:079
6192 id_aux = 15
6193 dataOut.DensityFinal[0,:id_aux]=missing
6194 dataOut.EDensityFinal[0,:id_aux]=missing
6195 dataOut.ElecTempFinal[0,:id_aux]=missing
6196 dataOut.EElecTempFinal[0,:id_aux]=missing
6197 dataOut.IonTempFinal[0,:id_aux]=missing
6198 dataOut.EIonTempFinal[0,:id_aux]=missing
6199 dataOut.PhyFinal[0,:id_aux]=missing
6200 dataOut.EPhyFinal[0,:id_aux]=missing
6201 if (time_text.hour == 2 and time_text.minute == 10): #Year: 2024, DOY:079
6202 id_aux = 18
6203 dataOut.DensityFinal[0,:id_aux]=missing
6204 dataOut.EDensityFinal[0,:id_aux]=missing
6205 dataOut.ElecTempFinal[0,:id_aux]=missing
6206 dataOut.EElecTempFinal[0,:id_aux]=missing
6207 dataOut.IonTempFinal[0,:id_aux]=missing
6208 dataOut.EIonTempFinal[0,:id_aux]=missing
6209 dataOut.PhyFinal[0,:id_aux]=missing
6210 dataOut.EPhyFinal[0,:id_aux]=missing
6211 if (time_text.hour == 2 and time_text.minute == 20): #Year: 2024, DOY:079
6212 id_aux = 17
6213 dataOut.DensityFinal[0,:id_aux]=missing
6214 dataOut.EDensityFinal[0,:id_aux]=missing
6215 dataOut.ElecTempFinal[0,:id_aux]=missing
6216 dataOut.EElecTempFinal[0,:id_aux]=missing
6217 dataOut.IonTempFinal[0,:id_aux]=missing
6218 dataOut.EIonTempFinal[0,:id_aux]=missing
6219 dataOut.PhyFinal[0,:id_aux]=missing
6220 dataOut.EPhyFinal[0,:id_aux]=missing
6221 '''
6222 '''
6223 if (time_text.hour == 11) or (time_text.hour == 12): #Year: 2024, DOY:080
6224 id_aux = 9
6225 dataOut.DensityFinal[0,:id_aux]=missing
6226 dataOut.EDensityFinal[0,:id_aux]=missing
6227 dataOut.ElecTempFinal[0,:id_aux]=missing
6228 dataOut.EElecTempFinal[0,:id_aux]=missing
6229 dataOut.IonTempFinal[0,:id_aux]=missing
6230 dataOut.EIonTempFinal[0,:id_aux]=missing
6231 dataOut.PhyFinal[0,:id_aux]=missing
6232 dataOut.EPhyFinal[0,:id_aux]=missing
6233 if (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 10) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 40) or (time_text.hour == 22 and time_text.minute >= 30) or (time_text.hour == 4 and time_text.minute == 40): #Year: 2024, DOY:080
6234 id_aux = 10
6235 dataOut.DensityFinal[0,:id_aux]=missing
6236 dataOut.EDensityFinal[0,:id_aux]=missing
6237 dataOut.ElecTempFinal[0,:id_aux]=missing
6238 dataOut.EElecTempFinal[0,:id_aux]=missing
6239 dataOut.IonTempFinal[0,:id_aux]=missing
6240 dataOut.EIonTempFinal[0,:id_aux]=missing
6241 dataOut.PhyFinal[0,:id_aux]=missing
6242 dataOut.EPhyFinal[0,:id_aux]=missing
6243 if (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 20) or (time_text.hour == 23 and time_text.minute <= 10) or (time_text.hour == 2) or (time_text.hour == 3) or (time_text.hour == 4 and time_text.minute <= 30): #Year: 2024, DOY:080
6244 id_aux = 11
6245 dataOut.DensityFinal[0,:id_aux]=missing
6246 dataOut.EDensityFinal[0,:id_aux]=missing
6247 dataOut.ElecTempFinal[0,:id_aux]=missing
6248 dataOut.EElecTempFinal[0,:id_aux]=missing
6249 dataOut.IonTempFinal[0,:id_aux]=missing
6250 dataOut.EIonTempFinal[0,:id_aux]=missing
6251 dataOut.PhyFinal[0,:id_aux]=missing
6252 dataOut.EPhyFinal[0,:id_aux]=missing
6253 if (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 9 and time_text.minute == 50) or (time_text.hour == 21 and time_text.minute <= 10): #Year: 2024, DOY:080
6254 id_aux = 12
6255 dataOut.DensityFinal[0,:id_aux]=missing
6256 dataOut.EDensityFinal[0,:id_aux]=missing
6257 dataOut.ElecTempFinal[0,:id_aux]=missing
6258 dataOut.EElecTempFinal[0,:id_aux]=missing
6259 dataOut.IonTempFinal[0,:id_aux]=missing
6260 dataOut.EIonTempFinal[0,:id_aux]=missing
6261 dataOut.PhyFinal[0,:id_aux]=missing
6262 dataOut.EPhyFinal[0,:id_aux]=missing
6263 if (time_text.hour == 23 and time_text.minute == 20) or (time_text.hour == 23 and time_text.minute == 30): #Year: 2024, DOY:080
6264 id_aux = 13
6265 dataOut.DensityFinal[0,:id_aux]=missing
6266 dataOut.EDensityFinal[0,:id_aux]=missing
6267 dataOut.ElecTempFinal[0,:id_aux]=missing
6268 dataOut.EElecTempFinal[0,:id_aux]=missing
6269 dataOut.IonTempFinal[0,:id_aux]=missing
6270 dataOut.EIonTempFinal[0,:id_aux]=missing
6271 dataOut.PhyFinal[0,:id_aux]=missing
6272 dataOut.EPhyFinal[0,:id_aux]=missing
6273 if (time_text.hour == 23 and time_text.minute >= 40): #Year: 2024, DOY:080
6274 id_aux = 21
6275 dataOut.DensityFinal[0,:id_aux]=missing
6276 dataOut.EDensityFinal[0,:id_aux]=missing
6277 dataOut.ElecTempFinal[0,:id_aux]=missing
6278 dataOut.EElecTempFinal[0,:id_aux]=missing
6279 dataOut.IonTempFinal[0,:id_aux]=missing
6280 dataOut.EIonTempFinal[0,:id_aux]=missing
6281 dataOut.PhyFinal[0,:id_aux]=missing
6282 dataOut.EPhyFinal[0,:id_aux]=missing
6283 if (time_text.hour == 1 and time_text.minute == 30): #Year: 2024, DOY:080
6284 id_aux = 29
6285 dataOut.DensityFinal[0,:id_aux]=missing
6286 dataOut.EDensityFinal[0,:id_aux]=missing
6287 dataOut.ElecTempFinal[0,:id_aux]=missing
6288 dataOut.EElecTempFinal[0,:id_aux]=missing
6289 dataOut.IonTempFinal[0,:id_aux]=missing
6290 dataOut.EIonTempFinal[0,:id_aux]=missing
6291 dataOut.PhyFinal[0,:id_aux]=missing
6292 dataOut.EPhyFinal[0,:id_aux]=missing
6293 if (time_text.hour == 1 and time_text.minute == 40): #Year: 2024, DOY:080
6294 id_aux = 26
6295 dataOut.DensityFinal[0,:id_aux]=missing
6296 dataOut.EDensityFinal[0,:id_aux]=missing
6297 dataOut.ElecTempFinal[0,:id_aux]=missing
6298 dataOut.EElecTempFinal[0,:id_aux]=missing
6299 dataOut.IonTempFinal[0,:id_aux]=missing
6300 dataOut.EIonTempFinal[0,:id_aux]=missing
6301 dataOut.PhyFinal[0,:id_aux]=missing
6302 dataOut.EPhyFinal[0,:id_aux]=missing
6303 if (time_text.hour == 2 and time_text.minute == 50): #Year: 2024, DOY:080
6304 id_aux = 21
6305 dataOut.DensityFinal[0,:id_aux]=missing
6306 dataOut.EDensityFinal[0,:id_aux]=missing
6307 dataOut.ElecTempFinal[0,:id_aux]=missing
6308 dataOut.EElecTempFinal[0,:id_aux]=missing
6309 dataOut.IonTempFinal[0,:id_aux]=missing
6310 dataOut.EIonTempFinal[0,:id_aux]=missing
6311 dataOut.PhyFinal[0,:id_aux]=missing
6312 dataOut.EPhyFinal[0,:id_aux]=missing
6313 if (time_text.hour == 3 and time_text.minute == 10) or (time_text.hour == 3 and time_text.minute == 20): #Year: 2024, DOY:080
6314 id_aux = 36
6315 dataOut.DensityFinal[0,id_aux:]=missing
6316 dataOut.EDensityFinal[0,id_aux:]=missing
6317 dataOut.ElecTempFinal[0,id_aux:]=missing
6318 dataOut.EElecTempFinal[0,id_aux:]=missing
6319 dataOut.IonTempFinal[0,id_aux:]=missing
6320 dataOut.EIonTempFinal[0,id_aux:]=missing
6321 dataOut.PhyFinal[0,id_aux:]=missing
6322 dataOut.EPhyFinal[0,id_aux:]=missing
6323 if (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 9 and time_text.minute == 50): #Year: 2024, DOY:080
6324 id_aux = 38
6325 dataOut.DensityFinal[0,id_aux:]=missing
6326 dataOut.EDensityFinal[0,id_aux:]=missing
6327 dataOut.ElecTempFinal[0,id_aux:]=missing
6328 dataOut.EElecTempFinal[0,id_aux:]=missing
6329 dataOut.IonTempFinal[0,id_aux:]=missing
6330 dataOut.EIonTempFinal[0,id_aux:]=missing
6331 dataOut.PhyFinal[0,id_aux:]=missing
6332 dataOut.EPhyFinal[0,id_aux:]=missing
6333 if (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 40) or (time_text.hour == 12 and time_text.minute == 20): #Year: 2024, DOY:080
6334 id_aux = 35
6335 dataOut.DensityFinal[0,id_aux:]=missing
6336 dataOut.EDensityFinal[0,id_aux:]=missing
6337 dataOut.ElecTempFinal[0,id_aux:]=missing
6338 dataOut.EElecTempFinal[0,id_aux:]=missing
6339 dataOut.IonTempFinal[0,id_aux:]=missing
6340 dataOut.EIonTempFinal[0,id_aux:]=missing
6341 dataOut.PhyFinal[0,id_aux:]=missing
6342 dataOut.EPhyFinal[0,id_aux:]=missing
6343 if (time_text.hour == 11 and time_text.minute == 50): #Year: 2024, DOY:080
6344 id_aux = 32
6345 dataOut.DensityFinal[0,id_aux:]=missing
6346 dataOut.EDensityFinal[0,id_aux:]=missing
6347 dataOut.ElecTempFinal[0,id_aux:]=missing
6348 dataOut.EElecTempFinal[0,id_aux:]=missing
6349 dataOut.IonTempFinal[0,id_aux:]=missing
6350 dataOut.EIonTempFinal[0,id_aux:]=missing
6351 dataOut.PhyFinal[0,id_aux:]=missing
6352 dataOut.EPhyFinal[0,id_aux:]=missing
6353 '''
6354 '''
6355 if (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 22): #Year: 2024, DOY:081
6356 id_aux = 10
6357 dataOut.DensityFinal[0,:id_aux]=missing
6358 dataOut.EDensityFinal[0,:id_aux]=missing
6359 dataOut.ElecTempFinal[0,:id_aux]=missing
6360 dataOut.EElecTempFinal[0,:id_aux]=missing
6361 dataOut.IonTempFinal[0,:id_aux]=missing
6362 dataOut.EIonTempFinal[0,:id_aux]=missing
6363 dataOut.PhyFinal[0,:id_aux]=missing
6364 dataOut.EPhyFinal[0,:id_aux]=missing
6365 if (time_text.hour == 9 and time_text.minute >= 10) or (time_text.hour == 10 and time_text.minute == 0) or (time_text.hour == 11 and time_text.minute == 0): #Year: 2024, DOY:081
6366 id_aux = 13
6367 dataOut.DensityFinal[0,:id_aux]=missing
6368 dataOut.EDensityFinal[0,:id_aux]=missing
6369 dataOut.ElecTempFinal[0,:id_aux]=missing
6370 dataOut.EElecTempFinal[0,:id_aux]=missing
6371 dataOut.IonTempFinal[0,:id_aux]=missing
6372 dataOut.EIonTempFinal[0,:id_aux]=missing
6373 dataOut.PhyFinal[0,:id_aux]=missing
6374 dataOut.EPhyFinal[0,:id_aux]=missing
6375 if (time_text.hour == 10 and time_text.minute == 10): #Year: 2024, DOY:081
6376 id_aux = 17
6377 dataOut.DensityFinal[0,:id_aux]=missing
6378 dataOut.EDensityFinal[0,:id_aux]=missing
6379 dataOut.ElecTempFinal[0,:id_aux]=missing
6380 dataOut.EElecTempFinal[0,:id_aux]=missing
6381 dataOut.IonTempFinal[0,:id_aux]=missing
6382 dataOut.EIonTempFinal[0,:id_aux]=missing
6383 dataOut.PhyFinal[0,:id_aux]=missing
6384 dataOut.EPhyFinal[0,:id_aux]=missing
6385 if (time_text.hour == 10 and time_text.minute >= 40) or (time_text.hour == 11 and time_text.minute == 10) or (time_text.hour == 11 and time_text.minute == 20) or (time_text.hour == 3) or (time_text.hour == 4): #Year: 2024, DOY:081
6386 id_aux = 11
6387 dataOut.DensityFinal[0,:id_aux]=missing
6388 dataOut.EDensityFinal[0,:id_aux]=missing
6389 dataOut.ElecTempFinal[0,:id_aux]=missing
6390 dataOut.EElecTempFinal[0,:id_aux]=missing
6391 dataOut.IonTempFinal[0,:id_aux]=missing
6392 dataOut.EIonTempFinal[0,:id_aux]=missing
6393 dataOut.PhyFinal[0,:id_aux]=missing
6394 dataOut.EPhyFinal[0,:id_aux]=missing
6395 if (time_text.hour == 11 and time_text.minute >= 30) or (time_text.hour == 12 and time_text.minute <= 10): #Year: 2024, DOY:081
6396 id_aux = 9
6397 dataOut.DensityFinal[0,:id_aux]=missing
6398 dataOut.EDensityFinal[0,:id_aux]=missing
6399 dataOut.ElecTempFinal[0,:id_aux]=missing
6400 dataOut.EElecTempFinal[0,:id_aux]=missing
6401 dataOut.IonTempFinal[0,:id_aux]=missing
6402 dataOut.EIonTempFinal[0,:id_aux]=missing
6403 dataOut.PhyFinal[0,:id_aux]=missing
6404 dataOut.EPhyFinal[0,:id_aux]=missing
6405 if (time_text.hour == 21 and time_text.minute == 0) or (time_text.hour == 23) or (time_text.hour == 0) or (time_text.hour == 1) or (time_text.hour == 2): #Year: 2024, DOY:081
6406 id_aux = 12
6407 dataOut.DensityFinal[0,:id_aux]=missing
6408 dataOut.EDensityFinal[0,:id_aux]=missing
6409 dataOut.ElecTempFinal[0,:id_aux]=missing
6410 dataOut.EElecTempFinal[0,:id_aux]=missing
6411 dataOut.IonTempFinal[0,:id_aux]=missing
6412 dataOut.EIonTempFinal[0,:id_aux]=missing
6413 dataOut.PhyFinal[0,:id_aux]=missing
6414 dataOut.EPhyFinal[0,:id_aux]=missing
6415 if (time_text.hour == 8 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute == 10) or (time_text.hour == 11 and time_text.minute == 50): #Year: 2024, DOY:081
6416 id_aux = 33
6417 dataOut.DensityFinal[0,id_aux:]=missing
6418 dataOut.EDensityFinal[0,id_aux:]=missing
6419 dataOut.ElecTempFinal[0,id_aux:]=missing
6420 dataOut.EElecTempFinal[0,id_aux:]=missing
6421 dataOut.IonTempFinal[0,id_aux:]=missing
6422 dataOut.EIonTempFinal[0,id_aux:]=missing
6423 dataOut.PhyFinal[0,id_aux:]=missing
6424 dataOut.EPhyFinal[0,id_aux:]=missing
6425 if (time_text.hour == 10 and time_text.minute == 30): #Year: 2024, DOY:081
6426 id_aux = 29
6427 dataOut.DensityFinal[0,id_aux:]=missing
6428 dataOut.EDensityFinal[0,id_aux:]=missing
6429 dataOut.ElecTempFinal[0,id_aux:]=missing
6430 dataOut.EElecTempFinal[0,id_aux:]=missing
6431 dataOut.IonTempFinal[0,id_aux:]=missing
6432 dataOut.EIonTempFinal[0,id_aux:]=missing
6433 dataOut.PhyFinal[0,id_aux:]=missing
6434 dataOut.EPhyFinal[0,id_aux:]=missing
6435 if (time_text.hour == 12 and time_text.minute == 20): #Year: 2024, DOY:081
6436 id_aux = 38
6437 dataOut.DensityFinal[0,id_aux:]=missing
6438 dataOut.EDensityFinal[0,id_aux:]=missing
6439 dataOut.ElecTempFinal[0,id_aux:]=missing
6440 dataOut.EElecTempFinal[0,id_aux:]=missing
6441 dataOut.IonTempFinal[0,id_aux:]=missing
6442 dataOut.EIonTempFinal[0,id_aux:]=missing
6443 dataOut.PhyFinal[0,id_aux:]=missing
6444 dataOut.EPhyFinal[0,id_aux:]=missing
6445 '''
6446 '''
6447 if (time_text.hour == 5) or (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 6 and time_text.minute >= 20) or (time_text.hour == 7) or (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 3 and time_text.minute >= 40) or (time_text.hour == 4 and time_text.minute >= 30): #Year: 2024, DOY:082
6448 id_aux = 11
6449 dataOut.DensityFinal[0,:id_aux]=missing
6450 dataOut.EDensityFinal[0,:id_aux]=missing
6451 dataOut.ElecTempFinal[0,:id_aux]=missing
6452 dataOut.EElecTempFinal[0,:id_aux]=missing
6453 dataOut.IonTempFinal[0,:id_aux]=missing
6454 dataOut.EIonTempFinal[0,:id_aux]=missing
6455 dataOut.PhyFinal[0,:id_aux]=missing
6456 dataOut.EPhyFinal[0,:id_aux]=missing
6457 if (time_text.hour == 6 and time_text.minute == 10) or (time_text.hour == 8 and time_text.minute >= 10) or (time_text.hour == 9) or (time_text.hour == 10) or (time_text.hour == 23 and time_text.minute <= 10): #Year: 2024, DOY:082
6458 id_aux = 12
6459 dataOut.DensityFinal[0,:id_aux]=missing
6460 dataOut.EDensityFinal[0,:id_aux]=missing
6461 dataOut.ElecTempFinal[0,:id_aux]=missing
6462 dataOut.EElecTempFinal[0,:id_aux]=missing
6463 dataOut.IonTempFinal[0,:id_aux]=missing
6464 dataOut.EIonTempFinal[0,:id_aux]=missing
6465 dataOut.PhyFinal[0,:id_aux]=missing
6466 dataOut.EPhyFinal[0,:id_aux]=missing
6467 if (time_text.hour == 11) or (time_text.hour == 12): #Year: 2024, DOY:082
6468 id_aux = 9
6469 dataOut.DensityFinal[0,:id_aux]=missing
6470 dataOut.EDensityFinal[0,:id_aux]=missing
6471 dataOut.ElecTempFinal[0,:id_aux]=missing
6472 dataOut.EElecTempFinal[0,:id_aux]=missing
6473 dataOut.IonTempFinal[0,:id_aux]=missing
6474 dataOut.EIonTempFinal[0,:id_aux]=missing
6475 dataOut.PhyFinal[0,:id_aux]=missing
6476 dataOut.EPhyFinal[0,:id_aux]=missing
6477 if (time_text.hour == 22 and time_text.minute >= 20) or (time_text.hour == 4 and time_text.minute <= 20): #Year: 2024, DOY:082
6478 id_aux = 10
6479 dataOut.DensityFinal[0,:id_aux]=missing
6480 dataOut.EDensityFinal[0,:id_aux]=missing
6481 dataOut.ElecTempFinal[0,:id_aux]=missing
6482 dataOut.EElecTempFinal[0,:id_aux]=missing
6483 dataOut.IonTempFinal[0,:id_aux]=missing
6484 dataOut.EIonTempFinal[0,:id_aux]=missing
6485 dataOut.PhyFinal[0,:id_aux]=missing
6486 dataOut.EPhyFinal[0,:id_aux]=missing
6487 if (time_text.hour == 23 and time_text.minute >= 20) or (time_text.hour == 1) or (time_text.hour == 2) or (time_text.hour == 3 and time_text.minute <= 30): #Year: 2024, DOY:082
6488 id_aux = 13
6489 dataOut.DensityFinal[0,:id_aux]=missing
6490 dataOut.EDensityFinal[0,:id_aux]=missing
6491 dataOut.ElecTempFinal[0,:id_aux]=missing
6492 dataOut.EElecTempFinal[0,:id_aux]=missing
6493 dataOut.IonTempFinal[0,:id_aux]=missing
6494 dataOut.EIonTempFinal[0,:id_aux]=missing
6495 dataOut.PhyFinal[0,:id_aux]=missing
6496 dataOut.EPhyFinal[0,:id_aux]=missing
6497 if (time_text.hour == 2 and time_text.minute == 50): #Year: 2024, DOY:082
6498 id_aux = 19
6499 dataOut.DensityFinal[0,:id_aux]=missing
6500 dataOut.EDensityFinal[0,:id_aux]=missing
6501 dataOut.ElecTempFinal[0,:id_aux]=missing
6502 dataOut.EElecTempFinal[0,:id_aux]=missing
6503 dataOut.IonTempFinal[0,:id_aux]=missing
6504 dataOut.EIonTempFinal[0,:id_aux]=missing
6505 dataOut.PhyFinal[0,:id_aux]=missing
6506 dataOut.EPhyFinal[0,:id_aux]=missing
6507 if (time_text.hour == 3 and time_text.minute == 10): #Year: 2024, DOY:082
6508 id_aux = 17
6509 dataOut.DensityFinal[0,:id_aux]=missing
6510 dataOut.EDensityFinal[0,:id_aux]=missing
6511 dataOut.ElecTempFinal[0,:id_aux]=missing
6512 dataOut.EElecTempFinal[0,:id_aux]=missing
6513 dataOut.IonTempFinal[0,:id_aux]=missing
6514 dataOut.EIonTempFinal[0,:id_aux]=missing
6515 dataOut.PhyFinal[0,:id_aux]=missing
6516 dataOut.EPhyFinal[0,:id_aux]=missing
6517 if (time_text.hour == 9 and time_text.minute == 30) or (time_text.hour == 11 and time_text.minute == 20): #Year: 2024, DOY:082
6518 id_aux = 37
6519 dataOut.DensityFinal[0,id_aux:]=missing
6520 dataOut.EDensityFinal[0,id_aux:]=missing
6521 dataOut.ElecTempFinal[0,id_aux:]=missing
6522 dataOut.EElecTempFinal[0,id_aux:]=missing
6523 dataOut.IonTempFinal[0,id_aux:]=missing
6524 dataOut.EIonTempFinal[0,id_aux:]=missing
6525 dataOut.PhyFinal[0,id_aux:]=missing
6526 dataOut.EPhyFinal[0,id_aux:]=missing
6527 if (time_text.hour == 18 and time_text.minute == 50) or (time_text.hour == 19 and time_text.minute == 0): #Year: 2024, DOY:082
6528 id_aux = 57
6529 dataOut.DensityFinal[0,id_aux:]=missing
6530 dataOut.EDensityFinal[0,id_aux:]=missing
6531 dataOut.ElecTempFinal[0,id_aux:]=missing
6532 dataOut.EElecTempFinal[0,id_aux:]=missing
6533 dataOut.IonTempFinal[0,id_aux:]=missing
6534 dataOut.EIonTempFinal[0,id_aux:]=missing
6535 dataOut.PhyFinal[0,id_aux:]=missing
6536 dataOut.EPhyFinal[0,id_aux:]=missing
6537 '''
6538 '''
6539 if (time_text.hour == 5) or (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 10 and time_text.minute == 20) or (time_text.hour == 10 and time_text.minute == 30): #Year: 2024, DOY:083
6540 id_aux = 10
6541 dataOut.DensityFinal[0,:id_aux]=missing
6542 dataOut.EDensityFinal[0,:id_aux]=missing
6543 dataOut.ElecTempFinal[0,:id_aux]=missing
6544 dataOut.EElecTempFinal[0,:id_aux]=missing
6545 dataOut.IonTempFinal[0,:id_aux]=missing
6546 dataOut.EIonTempFinal[0,:id_aux]=missing
6547 dataOut.PhyFinal[0,:id_aux]=missing
6548 dataOut.EPhyFinal[0,:id_aux]=missing
6549 if (time_text.hour == 6 and time_text.minute == 10) or (time_text.hour == 6 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute >= 30) or (time_text.hour == 10 and time_text.minute <= 10) or (time_text.hour == 10 and time_text.minute == 50): #Year: 2024, DOY:083
6550 id_aux = 12
6551 dataOut.DensityFinal[0,:id_aux]=missing
6552 dataOut.EDensityFinal[0,:id_aux]=missing
6553 dataOut.ElecTempFinal[0,:id_aux]=missing
6554 dataOut.EElecTempFinal[0,:id_aux]=missing
6555 dataOut.IonTempFinal[0,:id_aux]=missing
6556 dataOut.EIonTempFinal[0,:id_aux]=missing
6557 dataOut.PhyFinal[0,:id_aux]=missing
6558 dataOut.EPhyFinal[0,:id_aux]=missing
6559 if (time_text.hour == 6 and time_text.minute >= 30) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9 and time_text.minute <= 20): #Year: 2024, DOY:083
6560 id_aux = 13
6561 dataOut.DensityFinal[0,:id_aux]=missing
6562 dataOut.EDensityFinal[0,:id_aux]=missing
6563 dataOut.ElecTempFinal[0,:id_aux]=missing
6564 dataOut.EElecTempFinal[0,:id_aux]=missing
6565 dataOut.IonTempFinal[0,:id_aux]=missing
6566 dataOut.EIonTempFinal[0,:id_aux]=missing
6567 dataOut.PhyFinal[0,:id_aux]=missing
6568 dataOut.EPhyFinal[0,:id_aux]=missing
6569 if (time_text.hour == 11) or (time_text.hour == 12): #Year: 2024, DOY:083
6570 id_aux = 9
6571 dataOut.DensityFinal[0,:id_aux]=missing
6572 dataOut.EDensityFinal[0,:id_aux]=missing
6573 dataOut.ElecTempFinal[0,:id_aux]=missing
6574 dataOut.EElecTempFinal[0,:id_aux]=missing
6575 dataOut.IonTempFinal[0,:id_aux]=missing
6576 dataOut.EIonTempFinal[0,:id_aux]=missing
6577 dataOut.PhyFinal[0,:id_aux]=missing
6578 dataOut.EPhyFinal[0,:id_aux]=missing
6579 if (time_text.hour == 11 and time_text.minute == 40): #Year: 2024, DOY:083
6580 id_aux = 39
6581 dataOut.DensityFinal[0,id_aux:]=missing
6582 dataOut.EDensityFinal[0,id_aux:]=missing
6583 dataOut.ElecTempFinal[0,id_aux:]=missing
6584 dataOut.EElecTempFinal[0,id_aux:]=missing
6585 dataOut.IonTempFinal[0,id_aux:]=missing
6586 dataOut.EIonTempFinal[0,id_aux:]=missing
6587 dataOut.PhyFinal[0,id_aux:]=missing
6588 dataOut.EPhyFinal[0,id_aux:]=missing
6589 '''
6590 '''
6591 if (time_text.hour == 5 and time_text.minute == 20): #Year: 2024, DOY:048
6592 id_aux = 16
6593 dataOut.DensityFinal[0,:id_aux]=missing
6594 dataOut.EDensityFinal[0,:id_aux]=missing
6595 dataOut.ElecTempFinal[0,:id_aux]=missing
6596 dataOut.EElecTempFinal[0,:id_aux]=missing
6597 dataOut.IonTempFinal[0,:id_aux]=missing
6598 dataOut.EIonTempFinal[0,:id_aux]=missing
6599 dataOut.PhyFinal[0,:id_aux]=missing
6600 dataOut.EPhyFinal[0,:id_aux]=missing
6601 if (time_text.hour == 5 and time_text.minute == 30): #Year: 2024, DOY:048
6602 id_aux = 15
6603 dataOut.DensityFinal[0,:id_aux]=missing
6604 dataOut.EDensityFinal[0,:id_aux]=missing
6605 dataOut.ElecTempFinal[0,:id_aux]=missing
6606 dataOut.EElecTempFinal[0,:id_aux]=missing
6607 dataOut.IonTempFinal[0,:id_aux]=missing
6608 dataOut.EIonTempFinal[0,:id_aux]=missing
6609 dataOut.PhyFinal[0,:id_aux]=missing
6610 dataOut.EPhyFinal[0,:id_aux]=missing
6611 if (time_text.hour == 5 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute >= 30) or (time_text.hour == 0): #Year: 2024, DOY:048
6612 id_aux = 14
6613 dataOut.DensityFinal[0,:id_aux]=missing
6614 dataOut.EDensityFinal[0,:id_aux]=missing
6615 dataOut.ElecTempFinal[0,:id_aux]=missing
6616 dataOut.EElecTempFinal[0,:id_aux]=missing
6617 dataOut.IonTempFinal[0,:id_aux]=missing
6618 dataOut.EIonTempFinal[0,:id_aux]=missing
6619 dataOut.PhyFinal[0,:id_aux]=missing
6620 dataOut.EPhyFinal[0,:id_aux]=missing
6621 if (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 6 and time_text.minute == 30) or (time_text.hour == 6 and time_text.minute == 40) or (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute == 0) or (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 7 and time_text.minute >= 40) or (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 8 and time_text.minute >= 40) or (time_text.hour == 21 and time_text.minute >= 20) or (time_text.hour == 22): #Year: 2024, DOY:048
6622 id_aux = 10
6623 dataOut.DensityFinal[0,:id_aux]=missing
6624 dataOut.EDensityFinal[0,:id_aux]=missing
6625 dataOut.ElecTempFinal[0,:id_aux]=missing
6626 dataOut.EElecTempFinal[0,:id_aux]=missing
6627 dataOut.IonTempFinal[0,:id_aux]=missing
6628 dataOut.EIonTempFinal[0,:id_aux]=missing
6629 dataOut.PhyFinal[0,:id_aux]=missing
6630 dataOut.EPhyFinal[0,:id_aux]=missing
6631 if (time_text.hour == 6 and time_text.minute == 10) or (time_text.hour == 4 and time_text.minute == 10): #Year: 2024, DOY:048
6632 id_aux = 24
6633 dataOut.DensityFinal[0,:id_aux]=missing
6634 dataOut.EDensityFinal[0,:id_aux]=missing
6635 dataOut.ElecTempFinal[0,:id_aux]=missing
6636 dataOut.EElecTempFinal[0,:id_aux]=missing
6637 dataOut.IonTempFinal[0,:id_aux]=missing
6638 dataOut.EIonTempFinal[0,:id_aux]=missing
6639 dataOut.PhyFinal[0,:id_aux]=missing
6640 dataOut.EPhyFinal[0,:id_aux]=missing
6641 if (time_text.hour == 6 and time_text.minute == 20) or (time_text.hour == 4 and time_text.minute == 20): #Year: 2024, DOY:048
6642 id_aux = 25
6643 dataOut.DensityFinal[0,:id_aux]=missing
6644 dataOut.EDensityFinal[0,:id_aux]=missing
6645 dataOut.ElecTempFinal[0,:id_aux]=missing
6646 dataOut.EElecTempFinal[0,:id_aux]=missing
6647 dataOut.IonTempFinal[0,:id_aux]=missing
6648 dataOut.EIonTempFinal[0,:id_aux]=missing
6649 dataOut.PhyFinal[0,:id_aux]=missing
6650 dataOut.EPhyFinal[0,:id_aux]=missing
6651 if (time_text.hour == 7 and time_text.minute == 10) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 10) or (time_text.hour == 9) or (time_text.hour == 10) or (time_text.hour == 21 and time_text.minute <= 10): #Year: 2024, DOY:048
6652 id_aux = 12
6653 dataOut.DensityFinal[0,:id_aux]=missing
6654 dataOut.EDensityFinal[0,:id_aux]=missing
6655 dataOut.ElecTempFinal[0,:id_aux]=missing
6656 dataOut.EElecTempFinal[0,:id_aux]=missing
6657 dataOut.IonTempFinal[0,:id_aux]=missing
6658 dataOut.EIonTempFinal[0,:id_aux]=missing
6659 dataOut.PhyFinal[0,:id_aux]=missing
6660 dataOut.EPhyFinal[0,:id_aux]=missing
6661 if (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 8 and time_text.minute == 30): #Year: 2024, DOY:048
6662 id_aux = 13
6663 dataOut.DensityFinal[0,:id_aux]=missing
6664 dataOut.EDensityFinal[0,:id_aux]=missing
6665 dataOut.ElecTempFinal[0,:id_aux]=missing
6666 dataOut.EElecTempFinal[0,:id_aux]=missing
6667 dataOut.IonTempFinal[0,:id_aux]=missing
6668 dataOut.EIonTempFinal[0,:id_aux]=missing
6669 dataOut.PhyFinal[0,:id_aux]=missing
6670 dataOut.EPhyFinal[0,:id_aux]=missing
6671 if (time_text.hour == 11) or (time_text.hour == 12): #Year: 2024, DOY:048
6672 id_aux = 9
6673 dataOut.DensityFinal[0,:id_aux]=missing
6674 dataOut.EDensityFinal[0,:id_aux]=missing
6675 dataOut.ElecTempFinal[0,:id_aux]=missing
6676 dataOut.EElecTempFinal[0,:id_aux]=missing
6677 dataOut.IonTempFinal[0,:id_aux]=missing
6678 dataOut.EIonTempFinal[0,:id_aux]=missing
6679 dataOut.PhyFinal[0,:id_aux]=missing
6680 dataOut.EPhyFinal[0,:id_aux]=missing
6681 if (time_text.hour == 23 and time_text.minute <= 20): #Year: 2024, DOY:048
6682 id_aux = 11
6683 dataOut.DensityFinal[0,:id_aux]=missing
6684 dataOut.EDensityFinal[0,:id_aux]=missing
6685 dataOut.ElecTempFinal[0,:id_aux]=missing
6686 dataOut.EElecTempFinal[0,:id_aux]=missing
6687 dataOut.IonTempFinal[0,:id_aux]=missing
6688 dataOut.EIonTempFinal[0,:id_aux]=missing
6689 dataOut.PhyFinal[0,:id_aux]=missing
6690 dataOut.EPhyFinal[0,:id_aux]=missing
6691 if (time_text.hour == 0 and time_text.minute >= 40) or (time_text.hour == 1 and time_text.minute <= 30) or (time_text.hour == 4 and time_text.minute == 40): #Year: 2024, DOY:048
6692 id_aux = 27
6693 dataOut.DensityFinal[0,:id_aux]=missing
6694 dataOut.EDensityFinal[0,:id_aux]=missing
6695 dataOut.ElecTempFinal[0,:id_aux]=missing
6696 dataOut.EElecTempFinal[0,:id_aux]=missing
6697 dataOut.IonTempFinal[0,:id_aux]=missing
6698 dataOut.EIonTempFinal[0,:id_aux]=missing
6699 dataOut.PhyFinal[0,:id_aux]=missing
6700 dataOut.EPhyFinal[0,:id_aux]=missing
6701 if (time_text.hour == 4 and time_text.minute == 0): #Year: 2024, DOY:048
6702 id_aux = 30
6703 dataOut.DensityFinal[0,:id_aux]=missing
6704 dataOut.EDensityFinal[0,:id_aux]=missing
6705 dataOut.ElecTempFinal[0,:id_aux]=missing
6706 dataOut.EElecTempFinal[0,:id_aux]=missing
6707 dataOut.IonTempFinal[0,:id_aux]=missing
6708 dataOut.EIonTempFinal[0,:id_aux]=missing
6709 dataOut.PhyFinal[0,:id_aux]=missing
6710 dataOut.EPhyFinal[0,:id_aux]=missing
6711 if (time_text.hour == 5 and time_text.minute == 20) or (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 10 and time_text.minute == 10) or (time_text.hour == 10 and time_text.minute == 20): #Year: 2024, DOY:048
6712 id_aux = 30
6713 dataOut.DensityFinal[0,id_aux:]=missing
6714 dataOut.EDensityFinal[0,id_aux:]=missing
6715 dataOut.ElecTempFinal[0,id_aux:]=missing
6716 dataOut.EElecTempFinal[0,id_aux:]=missing
6717 dataOut.IonTempFinal[0,id_aux:]=missing
6718 dataOut.EIonTempFinal[0,id_aux:]=missing
6719 dataOut.PhyFinal[0,id_aux:]=missing
6720 dataOut.EPhyFinal[0,id_aux:]=missing
6721 if (time_text.hour == 8 and time_text.minute == 10): #Year: 2024, DOY:048
6722 id_aux = 39
6723 dataOut.DensityFinal[0,id_aux:]=missing
6724 dataOut.EDensityFinal[0,id_aux:]=missing
6725 dataOut.ElecTempFinal[0,id_aux:]=missing
6726 dataOut.EElecTempFinal[0,id_aux:]=missing
6727 dataOut.IonTempFinal[0,id_aux:]=missing
6728 dataOut.EIonTempFinal[0,id_aux:]=missing
6729 dataOut.PhyFinal[0,id_aux:]=missing
6730 dataOut.EPhyFinal[0,id_aux:]=missing
6731 if (time_text.hour == 8 and time_text.minute >= 40) or (time_text.hour == 11 and time_text.minute == 30) or (time_text.hour == 12 and time_text.minute == 0) or (time_text.hour == 13 and time_text.minute == 50): #Year: 2024, DOY:048
6732 id_aux = 32
6733 dataOut.DensityFinal[0,id_aux:]=missing
6734 dataOut.EDensityFinal[0,id_aux:]=missing
6735 dataOut.ElecTempFinal[0,id_aux:]=missing
6736 dataOut.EElecTempFinal[0,id_aux:]=missing
6737 dataOut.IonTempFinal[0,id_aux:]=missing
6738 dataOut.EIonTempFinal[0,id_aux:]=missing
6739 dataOut.PhyFinal[0,id_aux:]=missing
6740 dataOut.EPhyFinal[0,id_aux:]=missing
6741 if (time_text.hour == 9) or (time_text.hour == 14 and time_text.minute == 0): #Year: 2024, DOY:048
6742 id_aux = 35
6743 dataOut.DensityFinal[0,id_aux:]=missing
6744 dataOut.EDensityFinal[0,id_aux:]=missing
6745 dataOut.ElecTempFinal[0,id_aux:]=missing
6746 dataOut.EElecTempFinal[0,id_aux:]=missing
6747 dataOut.IonTempFinal[0,id_aux:]=missing
6748 dataOut.EIonTempFinal[0,id_aux:]=missing
6749 dataOut.PhyFinal[0,id_aux:]=missing
6750 dataOut.EPhyFinal[0,id_aux:]=missing
6751 if (time_text.hour == 9 and time_text.minute == 50): #Year: 2024, DOY:048
6752 id_aux = 27
6753 dataOut.DensityFinal[0,id_aux:]=missing
6754 dataOut.EDensityFinal[0,id_aux:]=missing
6755 dataOut.ElecTempFinal[0,id_aux:]=missing
6756 dataOut.EElecTempFinal[0,id_aux:]=missing
6757 dataOut.IonTempFinal[0,id_aux:]=missing
6758 dataOut.EIonTempFinal[0,id_aux:]=missing
6759 dataOut.PhyFinal[0,id_aux:]=missing
6760 dataOut.EPhyFinal[0,id_aux:]=missing
6761 if (time_text.hour == 10 and time_text.minute == 50) or (time_text.hour == 11 and time_text.minute == 10): #Year: 2024, DOY:048
6762 id_aux = 26
6763 dataOut.DensityFinal[0,id_aux:]=missing
6764 dataOut.EDensityFinal[0,id_aux:]=missing
6765 dataOut.ElecTempFinal[0,id_aux:]=missing
6766 dataOut.EElecTempFinal[0,id_aux:]=missing
6767 dataOut.IonTempFinal[0,id_aux:]=missing
6768 dataOut.EIonTempFinal[0,id_aux:]=missing
6769 dataOut.PhyFinal[0,id_aux:]=missing
6770 dataOut.EPhyFinal[0,id_aux:]=missing
6771 if (time_text.hour == 12 and time_text.minute == 40): #Year: 2024, DOY:048
6772 id_aux = 33
6773 dataOut.DensityFinal[0,id_aux:]=missing
6774 dataOut.EDensityFinal[0,id_aux:]=missing
6775 dataOut.ElecTempFinal[0,id_aux:]=missing
6776 dataOut.EElecTempFinal[0,id_aux:]=missing
6777 dataOut.IonTempFinal[0,id_aux:]=missing
6778 dataOut.EIonTempFinal[0,id_aux:]=missing
6779 dataOut.PhyFinal[0,id_aux:]=missing
6780 dataOut.EPhyFinal[0,id_aux:]=missing
6781 if (time_text.hour == 14 and time_text.minute == 10): #Year: 2024, DOY:048
6782 id_aux = 36
6783 dataOut.DensityFinal[0,id_aux:]=missing
6784 dataOut.EDensityFinal[0,id_aux:]=missing
6785 dataOut.ElecTempFinal[0,id_aux:]=missing
6786 dataOut.EElecTempFinal[0,id_aux:]=missing
6787 dataOut.IonTempFinal[0,id_aux:]=missing
6788 dataOut.EIonTempFinal[0,id_aux:]=missing
6789 dataOut.PhyFinal[0,id_aux:]=missing
6790 dataOut.EPhyFinal[0,id_aux:]=missing
6791 if (time_text.hour == 14 and time_text.minute == 30): #Year: 2024, DOY:048
6792 id_aux = 37
6793 dataOut.DensityFinal[0,id_aux:]=missing
6794 dataOut.EDensityFinal[0,id_aux:]=missing
6795 dataOut.ElecTempFinal[0,id_aux:]=missing
6796 dataOut.EElecTempFinal[0,id_aux:]=missing
6797 dataOut.IonTempFinal[0,id_aux:]=missing
6798 dataOut.EIonTempFinal[0,id_aux:]=missing
6799 dataOut.PhyFinal[0,id_aux:]=missing
6800 dataOut.EPhyFinal[0,id_aux:]=missing
6801 if (time_text.hour == 16 and time_text.minute == 20): #Year: 2024, DOY:048
6802 id_aux = 40
6803 dataOut.DensityFinal[0,id_aux:]=missing
6804 dataOut.EDensityFinal[0,id_aux:]=missing
6805 dataOut.ElecTempFinal[0,id_aux:]=missing
6806 dataOut.EElecTempFinal[0,id_aux:]=missing
6807 dataOut.IonTempFinal[0,id_aux:]=missing
6808 dataOut.EIonTempFinal[0,id_aux:]=missing
6809 dataOut.PhyFinal[0,id_aux:]=missing
6810 dataOut.EPhyFinal[0,id_aux:]=missing
6811 if (time_text.hour == 4 and time_text.minute == 0): #Year: 2024, DOY:048
6812 id_aux = 43
6813 dataOut.DensityFinal[0,id_aux:]=missing
6814 dataOut.EDensityFinal[0,id_aux:]=missing
6815 dataOut.ElecTempFinal[0,id_aux:]=missing
6816 dataOut.EElecTempFinal[0,id_aux:]=missing
6817 dataOut.IonTempFinal[0,id_aux:]=missing
6818 dataOut.EIonTempFinal[0,id_aux:]=missing
6819 dataOut.PhyFinal[0,id_aux:]=missing
6820 dataOut.EPhyFinal[0,id_aux:]=missing
6821 '''
6822 '''
6823 if (time_text.hour == 5 and time_text.minute == 0) or (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 0) or (time_text.hour == 1) or (time_text.hour == 3 and time_text.minute == 50) or (time_text.hour == 4 and time_text.minute <= 20): #Year: 2024, DOY:049
6824 id_aux = 18
6825 dataOut.DensityFinal[0,:id_aux]=missing
6826 dataOut.EDensityFinal[0,:id_aux]=missing
6827 dataOut.ElecTempFinal[0,:id_aux]=missing
6828 dataOut.EElecTempFinal[0,:id_aux]=missing
6829 dataOut.IonTempFinal[0,:id_aux]=missing
6830 dataOut.EIonTempFinal[0,:id_aux]=missing
6831 dataOut.PhyFinal[0,:id_aux]=missing
6832 dataOut.EPhyFinal[0,:id_aux]=missing
6833 if (time_text.hour == 5 and time_text.minute == 10) or (time_text.hour == 5 and time_text.minute == 20) or (time_text.hour == 4 and time_text.minute == 30): #Year: 2024, DOY:049
6834 id_aux = 17
6835 dataOut.DensityFinal[0,:id_aux]=missing
6836 dataOut.EDensityFinal[0,:id_aux]=missing
6837 dataOut.ElecTempFinal[0,:id_aux]=missing
6838 dataOut.EElecTempFinal[0,:id_aux]=missing
6839 dataOut.IonTempFinal[0,:id_aux]=missing
6840 dataOut.EIonTempFinal[0,:id_aux]=missing
6841 dataOut.PhyFinal[0,:id_aux]=missing
6842 dataOut.EPhyFinal[0,:id_aux]=missing
6843 if (time_text.hour == 5 and time_text.minute == 30) or (time_text.hour == 4 and time_text.minute == 40): #Year: 2024, DOY:049
6844 id_aux = 16
6845 dataOut.DensityFinal[0,:id_aux]=missing
6846 dataOut.EDensityFinal[0,:id_aux]=missing
6847 dataOut.ElecTempFinal[0,:id_aux]=missing
6848 dataOut.EElecTempFinal[0,:id_aux]=missing
6849 dataOut.IonTempFinal[0,:id_aux]=missing
6850 dataOut.EIonTempFinal[0,:id_aux]=missing
6851 dataOut.PhyFinal[0,:id_aux]=missing
6852 dataOut.EPhyFinal[0,:id_aux]=missing
6853 if (time_text.hour == 5 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute == 30) or (time_text.hour == 23 and time_text.minute == 40): #Year: 2024, DOY:049
6854 id_aux = 15
6855 dataOut.DensityFinal[0,:id_aux]=missing
6856 dataOut.EDensityFinal[0,:id_aux]=missing
6857 dataOut.ElecTempFinal[0,:id_aux]=missing
6858 dataOut.EElecTempFinal[0,:id_aux]=missing
6859 dataOut.IonTempFinal[0,:id_aux]=missing
6860 dataOut.EIonTempFinal[0,:id_aux]=missing
6861 dataOut.PhyFinal[0,:id_aux]=missing
6862 dataOut.EPhyFinal[0,:id_aux]=missing
6863 if (time_text.hour == 6 and time_text.minute <= 50) or (time_text.hour == 7 and time_text.minute <= 10) or (time_text.hour == 7 and time_text.minute >= 30): #Year: 2024, DOY:049
6864 id_aux = 13
6865 dataOut.DensityFinal[0,:id_aux]=missing
6866 dataOut.EDensityFinal[0,:id_aux]=missing
6867 dataOut.ElecTempFinal[0,:id_aux]=missing
6868 dataOut.EElecTempFinal[0,:id_aux]=missing
6869 dataOut.IonTempFinal[0,:id_aux]=missing
6870 dataOut.EIonTempFinal[0,:id_aux]=missing
6871 dataOut.PhyFinal[0,:id_aux]=missing
6872 dataOut.EPhyFinal[0,:id_aux]=missing
6873 if (time_text.hour == 7 and time_text.minute == 20) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10) or (time_text.hour == 11 and time_text.minute == 0) or (time_text.hour == 21 and time_text.minute <= 10): #Year: 2024, DOY:049
6874 id_aux = 12
6875 dataOut.DensityFinal[0,:id_aux]=missing
6876 dataOut.EDensityFinal[0,:id_aux]=missing
6877 dataOut.ElecTempFinal[0,:id_aux]=missing
6878 dataOut.EElecTempFinal[0,:id_aux]=missing
6879 dataOut.IonTempFinal[0,:id_aux]=missing
6880 dataOut.EIonTempFinal[0,:id_aux]=missing
6881 dataOut.PhyFinal[0,:id_aux]=missing
6882 dataOut.EPhyFinal[0,:id_aux]=missing
6883 if (time_text.hour == 11 and time_text.minute >= 10) or (time_text.hour == 12): #Year: 2024, DOY:049
6884 id_aux = 9
6885 dataOut.DensityFinal[0,:id_aux]=missing
6886 dataOut.EDensityFinal[0,:id_aux]=missing
6887 dataOut.ElecTempFinal[0,:id_aux]=missing
6888 dataOut.EElecTempFinal[0,:id_aux]=missing
6889 dataOut.IonTempFinal[0,:id_aux]=missing
6890 dataOut.EIonTempFinal[0,:id_aux]=missing
6891 dataOut.PhyFinal[0,:id_aux]=missing
6892 dataOut.EPhyFinal[0,:id_aux]=missing
6893 if (time_text.hour == 21 and time_text.minute >= 20) or (time_text.hour == 22) or (time_text.hour == 23 and time_text.minute <= 20): #Year: 2024, DOY:049
6894 id_aux = 10
6895 dataOut.DensityFinal[0,:id_aux]=missing
6896 dataOut.EDensityFinal[0,:id_aux]=missing
6897 dataOut.ElecTempFinal[0,:id_aux]=missing
6898 dataOut.EElecTempFinal[0,:id_aux]=missing
6899 dataOut.IonTempFinal[0,:id_aux]=missing
6900 dataOut.EIonTempFinal[0,:id_aux]=missing
6901 dataOut.PhyFinal[0,:id_aux]=missing
6902 dataOut.EPhyFinal[0,:id_aux]=missing
6903 if (time_text.hour == 3 and time_text.minute <= 10): #Year: 2024, DOY:049
6904 id_aux = 33
6905 dataOut.DensityFinal[0,:id_aux]=missing
6906 dataOut.EDensityFinal[0,:id_aux]=missing
6907 dataOut.ElecTempFinal[0,:id_aux]=missing
6908 dataOut.EElecTempFinal[0,:id_aux]=missing
6909 dataOut.IonTempFinal[0,:id_aux]=missing
6910 dataOut.EIonTempFinal[0,:id_aux]=missing
6911 dataOut.PhyFinal[0,:id_aux]=missing
6912 dataOut.EPhyFinal[0,:id_aux]=missing
6913 if (time_text.hour == 3 and time_text.minute == 30): #Year: 2024, DOY:049
6914 id_aux = 29
6915 dataOut.DensityFinal[0,:id_aux]=missing
6916 dataOut.EDensityFinal[0,:id_aux]=missing
6917 dataOut.ElecTempFinal[0,:id_aux]=missing
6918 dataOut.EElecTempFinal[0,:id_aux]=missing
6919 dataOut.IonTempFinal[0,:id_aux]=missing
6920 dataOut.EIonTempFinal[0,:id_aux]=missing
6921 dataOut.PhyFinal[0,:id_aux]=missing
6922 dataOut.EPhyFinal[0,:id_aux]=missing
6923 if (time_text.hour == 3 and time_text.minute == 50): #Year: 2024, DOY:049
6924 id_aux = (33,34)
6925 dataOut.DensityFinal[0,id_aux]=missing
6926 dataOut.EDensityFinal[0,id_aux]=missing
6927 dataOut.ElecTempFinal[0,id_aux]=missing
6928 dataOut.EElecTempFinal[0,id_aux]=missing
6929 dataOut.IonTempFinal[0,id_aux]=missing
6930 dataOut.EIonTempFinal[0,id_aux]=missing
6931 dataOut.PhyFinal[0,id_aux]=missing
6932 dataOut.EPhyFinal[0,id_aux]=missing
6933 if (time_text.hour == 5 and time_text.minute == 40) or (time_text.hour == 13 and time_text.minute == 20): #Year: 2024, DOY:049
6934 id_aux = 31
6935 dataOut.DensityFinal[0,id_aux:]=missing
6936 dataOut.EDensityFinal[0,id_aux:]=missing
6937 dataOut.ElecTempFinal[0,id_aux:]=missing
6938 dataOut.EElecTempFinal[0,id_aux:]=missing
6939 dataOut.IonTempFinal[0,id_aux:]=missing
6940 dataOut.EIonTempFinal[0,id_aux:]=missing
6941 dataOut.PhyFinal[0,id_aux:]=missing
6942 dataOut.EPhyFinal[0,id_aux:]=missing
6943 if (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 30): #Year: 2024, DOY:049
6944 id_aux = 39
6945 dataOut.DensityFinal[0,id_aux:]=missing
6946 dataOut.EDensityFinal[0,id_aux:]=missing
6947 dataOut.ElecTempFinal[0,id_aux:]=missing
6948 dataOut.EElecTempFinal[0,id_aux:]=missing
6949 dataOut.IonTempFinal[0,id_aux:]=missing
6950 dataOut.EIonTempFinal[0,id_aux:]=missing
6951 dataOut.PhyFinal[0,id_aux:]=missing
6952 dataOut.EPhyFinal[0,id_aux:]=missing
6953 if (time_text.hour == 8 and time_text.minute == 10): #Year: 2024, DOY:049
6954 id_aux = 38
6955 dataOut.DensityFinal[0,id_aux:]=missing
6956 dataOut.EDensityFinal[0,id_aux:]=missing
6957 dataOut.ElecTempFinal[0,id_aux:]=missing
6958 dataOut.EElecTempFinal[0,id_aux:]=missing
6959 dataOut.IonTempFinal[0,id_aux:]=missing
6960 dataOut.EIonTempFinal[0,id_aux:]=missing
6961 dataOut.PhyFinal[0,id_aux:]=missing
6962 dataOut.EPhyFinal[0,id_aux:]=missing
6963 if (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 11 and time_text.minute == 50) or (time_text.hour == 12 and time_text.minute == 0) or (time_text.hour == 12 and time_text.minute >= 40) or (time_text.hour == 13 and time_text.minute == 30) or (time_text.hour == 14 and time_text.minute == 0): #Year: 2024, DOY:049
6964 id_aux = 36
6965 dataOut.DensityFinal[0,id_aux:]=missing
6966 dataOut.EDensityFinal[0,id_aux:]=missing
6967 dataOut.ElecTempFinal[0,id_aux:]=missing
6968 dataOut.EElecTempFinal[0,id_aux:]=missing
6969 dataOut.IonTempFinal[0,id_aux:]=missing
6970 dataOut.EIonTempFinal[0,id_aux:]=missing
6971 dataOut.PhyFinal[0,id_aux:]=missing
6972 dataOut.EPhyFinal[0,id_aux:]=missing
6973 if (time_text.hour == 10 and time_text.minute <= 10) or (time_text.hour == 11 and time_text.minute == 0) or (time_text.hour == 11 and time_text.minute == 20) or (time_text.hour == 12 and time_text.minute == 30) or (time_text.hour == 13 and time_text.minute == 50): #Year: 2024, DOY:049
6974 id_aux = 34
6975 dataOut.DensityFinal[0,id_aux:]=missing
6976 dataOut.EDensityFinal[0,id_aux:]=missing
6977 dataOut.ElecTempFinal[0,id_aux:]=missing
6978 dataOut.EElecTempFinal[0,id_aux:]=missing
6979 dataOut.IonTempFinal[0,id_aux:]=missing
6980 dataOut.EIonTempFinal[0,id_aux:]=missing
6981 dataOut.PhyFinal[0,id_aux:]=missing
6982 dataOut.EPhyFinal[0,id_aux:]=missing
6983 if (time_text.hour == 3 and time_text.minute == 0): #Year: 2024, DOY:049
6984 id_aux = 41
6985 dataOut.DensityFinal[0,id_aux:]=missing
6986 dataOut.EDensityFinal[0,id_aux:]=missing
6987 dataOut.ElecTempFinal[0,id_aux:]=missing
6988 dataOut.EElecTempFinal[0,id_aux:]=missing
6989 dataOut.IonTempFinal[0,id_aux:]=missing
6990 dataOut.EIonTempFinal[0,id_aux:]=missing
6991 dataOut.PhyFinal[0,id_aux:]=missing
6992 dataOut.EPhyFinal[0,id_aux:]=missing
6993 if (time_text.hour == 3 and time_text.minute == 50): #Year: 2024, DOY:049
6994 id_aux = 42
6995 dataOut.DensityFinal[0,id_aux:]=missing
6996 dataOut.EDensityFinal[0,id_aux:]=missing
6997 dataOut.ElecTempFinal[0,id_aux:]=missing
6998 dataOut.EElecTempFinal[0,id_aux:]=missing
6999 dataOut.IonTempFinal[0,id_aux:]=missing
7000 dataOut.EIonTempFinal[0,id_aux:]=missing
7001 dataOut.PhyFinal[0,id_aux:]=missing
7002 dataOut.EPhyFinal[0,id_aux:]=missing
7003 if (time_text.hour == 4 and time_text.minute == 10): #Year: 2024, DOY:049
7004 id_aux = 45
7005 dataOut.DensityFinal[0,id_aux:]=missing
7006 dataOut.EDensityFinal[0,id_aux:]=missing
7007 dataOut.ElecTempFinal[0,id_aux:]=missing
7008 dataOut.EElecTempFinal[0,id_aux:]=missing
7009 dataOut.IonTempFinal[0,id_aux:]=missing
7010 dataOut.EIonTempFinal[0,id_aux:]=missing
7011 dataOut.PhyFinal[0,id_aux:]=missing
7012 dataOut.EPhyFinal[0,id_aux:]=missing
7013 '''
7014 '''
7015 if (time_text.hour == 5 and time_text.minute == 0): #Year: 2024, DOY:047
7016 id_aux = 17
7017 dataOut.DensityFinal[0,:id_aux]=missing
7018 dataOut.EDensityFinal[0,:id_aux]=missing
7019 dataOut.ElecTempFinal[0,:id_aux]=missing
7020 dataOut.EElecTempFinal[0,:id_aux]=missing
7021 dataOut.IonTempFinal[0,:id_aux]=missing
7022 dataOut.EIonTempFinal[0,:id_aux]=missing
7023 dataOut.PhyFinal[0,:id_aux]=missing
7024 dataOut.EPhyFinal[0,:id_aux]=missing
7025 if (time_text.hour == 5 and time_text.minute == 10) or (time_text.hour == 5 and time_text.minute == 20) or (time_text.hour == 5 and time_text.minute == 30): #Year: 2024, DOY:047
7026 id_aux = 15
7027 dataOut.DensityFinal[0,:id_aux]=missing
7028 dataOut.EDensityFinal[0,:id_aux]=missing
7029 dataOut.ElecTempFinal[0,:id_aux]=missing
7030 dataOut.EElecTempFinal[0,:id_aux]=missing
7031 dataOut.IonTempFinal[0,:id_aux]=missing
7032 dataOut.EIonTempFinal[0,:id_aux]=missing
7033 dataOut.PhyFinal[0,:id_aux]=missing
7034 dataOut.EPhyFinal[0,:id_aux]=missing
7035 if (time_text.hour == 5 and time_text.minute == 40): #Year: 2024, DOY:047
7036 id_aux = 14
7037 dataOut.DensityFinal[0,:id_aux]=missing
7038 dataOut.EDensityFinal[0,:id_aux]=missing
7039 dataOut.ElecTempFinal[0,:id_aux]=missing
7040 dataOut.EElecTempFinal[0,:id_aux]=missing
7041 dataOut.IonTempFinal[0,:id_aux]=missing
7042 dataOut.EIonTempFinal[0,:id_aux]=missing
7043 dataOut.PhyFinal[0,:id_aux]=missing
7044 dataOut.EPhyFinal[0,:id_aux]=missing
7045 if (time_text.hour == 0 and time_text.minute <= 10) or (time_text.hour == 23 and time_text.minute >= 30) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 5 and time_text.minute == 50) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 11 and time_text.minute == 10): #Year: 2024, DOY:047
7046 id_aux = 13
7047 dataOut.DensityFinal[0,:id_aux]=missing
7048 dataOut.EDensityFinal[0,:id_aux]=missing
7049 dataOut.ElecTempFinal[0,:id_aux]=missing
7050 dataOut.EElecTempFinal[0,:id_aux]=missing
7051 dataOut.IonTempFinal[0,:id_aux]=missing
7052 dataOut.EIonTempFinal[0,:id_aux]=missing
7053 dataOut.PhyFinal[0,:id_aux]=missing
7054 dataOut.EPhyFinal[0,:id_aux]=missing
7055 if (time_text.hour == 1 and time_text.minute == 30) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 20) or (time_text.hour == 10 and time_text.minute >= 40) or (time_text.hour == 11 and time_text.minute == 0) or (time_text.hour == 21 and time_text.minute <= 20): #Year: 2024, DOY:047
7056 id_aux = 12
7057 dataOut.DensityFinal[0,:id_aux]=missing
7058 dataOut.EDensityFinal[0,:id_aux]=missing
7059 dataOut.ElecTempFinal[0,:id_aux]=missing
7060 dataOut.EElecTempFinal[0,:id_aux]=missing
7061 dataOut.IonTempFinal[0,:id_aux]=missing
7062 dataOut.EIonTempFinal[0,:id_aux]=missing
7063 dataOut.PhyFinal[0,:id_aux]=missing
7064 dataOut.EPhyFinal[0,:id_aux]=missing
7065 if (time_text.hour == 11 and time_text.minute >= 20) or (time_text.hour == 12): #Year: 2024, DOY:047
7066 id_aux = 9
7067 dataOut.DensityFinal[0,:id_aux]=missing
7068 dataOut.EDensityFinal[0,:id_aux]=missing
7069 dataOut.ElecTempFinal[0,:id_aux]=missing
7070 dataOut.EElecTempFinal[0,:id_aux]=missing
7071 dataOut.IonTempFinal[0,:id_aux]=missing
7072 dataOut.EIonTempFinal[0,:id_aux]=missing
7073 dataOut.PhyFinal[0,:id_aux]=missing
7074 dataOut.EPhyFinal[0,:id_aux]=missing
7075 if (time_text.hour == 21 and time_text.minute >= 40) or (time_text.hour == 22) or (time_text.hour == 23 and time_text.minute <= 20): #Year: 2024, DOY:047
7076 id_aux = 10
7077 dataOut.DensityFinal[0,:id_aux]=missing
7078 dataOut.EDensityFinal[0,:id_aux]=missing
7079 dataOut.ElecTempFinal[0,:id_aux]=missing
7080 dataOut.EElecTempFinal[0,:id_aux]=missing
7081 dataOut.IonTempFinal[0,:id_aux]=missing
7082 dataOut.EIonTempFinal[0,:id_aux]=missing
7083 dataOut.PhyFinal[0,:id_aux]=missing
7084 dataOut.EPhyFinal[0,:id_aux]=missing
7085 if (time_text.hour == 1 and time_text.minute == 20): #Year: 2024, DOY:047
7086 id_aux = 38
7087 dataOut.DensityFinal[0,:id_aux]=missing
7088 dataOut.EDensityFinal[0,:id_aux]=missing
7089 dataOut.ElecTempFinal[0,:id_aux]=missing
7090 dataOut.EElecTempFinal[0,:id_aux]=missing
7091 dataOut.IonTempFinal[0,:id_aux]=missing
7092 dataOut.EIonTempFinal[0,:id_aux]=missing
7093 dataOut.PhyFinal[0,:id_aux]=missing
7094 dataOut.EPhyFinal[0,:id_aux]=missing
7095 if (time_text.hour == 3 and time_text.minute == 0): #Year: 2024, DOY:047
7096 id_aux = 32
7097 dataOut.DensityFinal[0,:id_aux]=missing
7098 dataOut.EDensityFinal[0,:id_aux]=missing
7099 dataOut.ElecTempFinal[0,:id_aux]=missing
7100 dataOut.EElecTempFinal[0,:id_aux]=missing
7101 dataOut.IonTempFinal[0,:id_aux]=missing
7102 dataOut.EIonTempFinal[0,:id_aux]=missing
7103 dataOut.PhyFinal[0,:id_aux]=missing
7104 dataOut.EPhyFinal[0,:id_aux]=missing
7105 if (time_text.hour == 3 and time_text.minute == 10): #Year: 2024, DOY:047
7106 id_aux = 29
7107 dataOut.DensityFinal[0,:id_aux]=missing
7108 dataOut.EDensityFinal[0,:id_aux]=missing
7109 dataOut.ElecTempFinal[0,:id_aux]=missing
7110 dataOut.EElecTempFinal[0,:id_aux]=missing
7111 dataOut.IonTempFinal[0,:id_aux]=missing
7112 dataOut.EIonTempFinal[0,:id_aux]=missing
7113 dataOut.PhyFinal[0,:id_aux]=missing
7114 dataOut.EPhyFinal[0,:id_aux]=missing
7115 if (time_text.hour == 3 and time_text.minute == 20) or (time_text.hour == 4 and time_text.minute == 0): #Year: 2024, DOY:047
7116 id_aux = 24
7117 dataOut.DensityFinal[0,:id_aux]=missing
7118 dataOut.EDensityFinal[0,:id_aux]=missing
7119 dataOut.ElecTempFinal[0,:id_aux]=missing
7120 dataOut.EElecTempFinal[0,:id_aux]=missing
7121 dataOut.IonTempFinal[0,:id_aux]=missing
7122 dataOut.EIonTempFinal[0,:id_aux]=missing
7123 dataOut.PhyFinal[0,:id_aux]=missing
7124 dataOut.EPhyFinal[0,:id_aux]=missing
7125 if (time_text.hour == 3 and time_text.minute == 30) or (time_text.hour == 4 and time_text.minute == 10): #Year: 2024, DOY:047
7126 id_aux = 22
7127 dataOut.DensityFinal[0,:id_aux]=missing
7128 dataOut.EDensityFinal[0,:id_aux]=missing
7129 dataOut.ElecTempFinal[0,:id_aux]=missing
7130 dataOut.EElecTempFinal[0,:id_aux]=missing
7131 dataOut.IonTempFinal[0,:id_aux]=missing
7132 dataOut.EIonTempFinal[0,:id_aux]=missing
7133 dataOut.PhyFinal[0,:id_aux]=missing
7134 dataOut.EPhyFinal[0,:id_aux]=missing
7135 if (time_text.hour == 3 and time_text.minute == 40): #Year: 2024, DOY:047
7136 id_aux = 26
7137 dataOut.DensityFinal[0,:id_aux]=missing
7138 dataOut.EDensityFinal[0,:id_aux]=missing
7139 dataOut.ElecTempFinal[0,:id_aux]=missing
7140 dataOut.EElecTempFinal[0,:id_aux]=missing
7141 dataOut.IonTempFinal[0,:id_aux]=missing
7142 dataOut.EIonTempFinal[0,:id_aux]=missing
7143 dataOut.PhyFinal[0,:id_aux]=missing
7144 dataOut.EPhyFinal[0,:id_aux]=missing
7145 if (time_text.hour == 3 and time_text.minute == 50): #Year: 2024, DOY:047
7146 id_aux = 25
7147 dataOut.DensityFinal[0,:id_aux]=missing
7148 dataOut.EDensityFinal[0,:id_aux]=missing
7149 dataOut.ElecTempFinal[0,:id_aux]=missing
7150 dataOut.EElecTempFinal[0,:id_aux]=missing
7151 dataOut.IonTempFinal[0,:id_aux]=missing
7152 dataOut.EIonTempFinal[0,:id_aux]=missing
7153 dataOut.PhyFinal[0,:id_aux]=missing
7154 dataOut.EPhyFinal[0,:id_aux]=missing
7155 if (time_text.hour == 4 and time_text.minute == 20): #Year: 2024, DOY:047
7156 id_aux = 23
7157 dataOut.DensityFinal[0,:id_aux]=missing
7158 dataOut.EDensityFinal[0,:id_aux]=missing
7159 dataOut.ElecTempFinal[0,:id_aux]=missing
7160 dataOut.EElecTempFinal[0,:id_aux]=missing
7161 dataOut.IonTempFinal[0,:id_aux]=missing
7162 dataOut.EIonTempFinal[0,:id_aux]=missing
7163 dataOut.PhyFinal[0,:id_aux]=missing
7164 dataOut.EPhyFinal[0,:id_aux]=missing
7165 if (time_text.hour == 4 and time_text.minute == 30) or (time_text.hour == 4 and time_text.minute == 40): #Year: 2024, DOY:047
7166 id_aux = 20
7167 dataOut.DensityFinal[0,:id_aux]=missing
7168 dataOut.EDensityFinal[0,:id_aux]=missing
7169 dataOut.ElecTempFinal[0,:id_aux]=missing
7170 dataOut.EElecTempFinal[0,:id_aux]=missing
7171 dataOut.IonTempFinal[0,:id_aux]=missing
7172 dataOut.EIonTempFinal[0,:id_aux]=missing
7173 dataOut.PhyFinal[0,:id_aux]=missing
7174 dataOut.EPhyFinal[0,:id_aux]=missing
7175 if (time_text.hour == 7 and time_text.minute == 10) or (time_text.hour == 11 and time_text.minute == 50): #Year: 2024, DOY:047
7176 id_aux = 34
7177 dataOut.DensityFinal[0,id_aux:]=missing
7178 dataOut.EDensityFinal[0,id_aux:]=missing
7179 dataOut.ElecTempFinal[0,id_aux:]=missing
7180 dataOut.EElecTempFinal[0,id_aux:]=missing
7181 dataOut.IonTempFinal[0,id_aux:]=missing
7182 dataOut.EIonTempFinal[0,id_aux:]=missing
7183 dataOut.PhyFinal[0,id_aux:]=missing
7184 dataOut.EPhyFinal[0,id_aux:]=missing
7185 if (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 11 and time_text.minute == 30): #Year: 2024, DOY:047
7186 id_aux = 33
7187 dataOut.DensityFinal[0,id_aux:]=missing
7188 dataOut.EDensityFinal[0,id_aux:]=missing
7189 dataOut.ElecTempFinal[0,id_aux:]=missing
7190 dataOut.EElecTempFinal[0,id_aux:]=missing
7191 dataOut.IonTempFinal[0,id_aux:]=missing
7192 dataOut.EIonTempFinal[0,id_aux:]=missing
7193 dataOut.PhyFinal[0,id_aux:]=missing
7194 dataOut.EPhyFinal[0,id_aux:]=missing
7195 if (time_text.hour == 8 and time_text.minute == 30): #Year: 2024, DOY:047
7196 id_aux = 40
7197 dataOut.DensityFinal[0,id_aux:]=missing
7198 dataOut.EDensityFinal[0,id_aux:]=missing
7199 dataOut.ElecTempFinal[0,id_aux:]=missing
7200 dataOut.EElecTempFinal[0,id_aux:]=missing
7201 dataOut.IonTempFinal[0,id_aux:]=missing
7202 dataOut.EIonTempFinal[0,id_aux:]=missing
7203 dataOut.PhyFinal[0,id_aux:]=missing
7204 dataOut.EPhyFinal[0,id_aux:]=missing
7205 if (time_text.hour == 9 and time_text.minute == 10): #Year: 2024, DOY:047
7206 id_aux = 31
7207 dataOut.DensityFinal[0,id_aux:]=missing
7208 dataOut.EDensityFinal[0,id_aux:]=missing
7209 dataOut.ElecTempFinal[0,id_aux:]=missing
7210 dataOut.EElecTempFinal[0,id_aux:]=missing
7211 dataOut.IonTempFinal[0,id_aux:]=missing
7212 dataOut.EIonTempFinal[0,id_aux:]=missing
7213 dataOut.PhyFinal[0,id_aux:]=missing
7214 dataOut.EPhyFinal[0,id_aux:]=missing
7215 if (time_text.hour == 11 and time_text.minute <= 10) or (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute == 10): #Year: 2024, DOY:047
7216 id_aux = 29
7217 dataOut.DensityFinal[0,id_aux:]=missing
7218 dataOut.EDensityFinal[0,id_aux:]=missing
7219 dataOut.ElecTempFinal[0,id_aux:]=missing
7220 dataOut.EElecTempFinal[0,id_aux:]=missing
7221 dataOut.IonTempFinal[0,id_aux:]=missing
7222 dataOut.EIonTempFinal[0,id_aux:]=missing
7223 dataOut.PhyFinal[0,id_aux:]=missing
7224 dataOut.EPhyFinal[0,id_aux:]=missing
7225 if (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 15 and time_text.minute == 40): #Year: 2024, DOY:047
7226 id_aux = 40
7227 dataOut.DensityFinal[0,id_aux:]=missing
7228 dataOut.EDensityFinal[0,id_aux:]=missing
7229 dataOut.ElecTempFinal[0,id_aux:]=missing
7230 dataOut.EElecTempFinal[0,id_aux:]=missing
7231 dataOut.IonTempFinal[0,id_aux:]=missing
7232 dataOut.EIonTempFinal[0,id_aux:]=missing
7233 dataOut.PhyFinal[0,id_aux:]=missing
7234 dataOut.EPhyFinal[0,id_aux:]=missing
7235 if (time_text.hour == 10 and time_text.minute == 30): #Year: 2024, DOY:047
7236 id_aux = 26
7237 dataOut.DensityFinal[0,id_aux:]=missing
7238 dataOut.EDensityFinal[0,id_aux:]=missing
7239 dataOut.ElecTempFinal[0,id_aux:]=missing
7240 dataOut.EElecTempFinal[0,id_aux:]=missing
7241 dataOut.IonTempFinal[0,id_aux:]=missing
7242 dataOut.EIonTempFinal[0,id_aux:]=missing
7243 dataOut.PhyFinal[0,id_aux:]=missing
7244 dataOut.EPhyFinal[0,id_aux:]=missing
7245 if (time_text.hour == 12 and time_text.minute == 0): #Year: 2024, DOY:047
7246 id_aux = 35
7247 dataOut.DensityFinal[0,id_aux:]=missing
7248 dataOut.EDensityFinal[0,id_aux:]=missing
7249 dataOut.ElecTempFinal[0,id_aux:]=missing
7250 dataOut.EElecTempFinal[0,id_aux:]=missing
7251 dataOut.IonTempFinal[0,id_aux:]=missing
7252 dataOut.EIonTempFinal[0,id_aux:]=missing
7253 dataOut.PhyFinal[0,id_aux:]=missing
7254 dataOut.EPhyFinal[0,id_aux:]=missing
7255 if (time_text.hour == 12 and time_text.minute == 30) or (time_text.hour == 12 and time_text.minute == 50): #Year: 2024, DOY:047
7256 id_aux = 36
7257 dataOut.DensityFinal[0,id_aux:]=missing
7258 dataOut.EDensityFinal[0,id_aux:]=missing
7259 dataOut.ElecTempFinal[0,id_aux:]=missing
7260 dataOut.EElecTempFinal[0,id_aux:]=missing
7261 dataOut.IonTempFinal[0,id_aux:]=missing
7262 dataOut.EIonTempFinal[0,id_aux:]=missing
7263 dataOut.PhyFinal[0,id_aux:]=missing
7264 dataOut.EPhyFinal[0,id_aux:]=missing
7265 '''
7266 '''
7267 if (time_text.hour == 13 and time_text.minute == 15): #Year: 2024, DOY:046
7268 id_aux = 37
7269 dataOut.DensityFinal[0,id_aux:]=missing
7270 dataOut.EDensityFinal[0,id_aux:]=missing
7271 dataOut.ElecTempFinal[0,id_aux:]=missing
7272 dataOut.EElecTempFinal[0,id_aux:]=missing
7273 dataOut.IonTempFinal[0,id_aux:]=missing
7274 dataOut.EIonTempFinal[0,id_aux:]=missing
7275 dataOut.PhyFinal[0,id_aux:]=missing
7276 dataOut.EPhyFinal[0,id_aux:]=missing
7277 if (time_text.hour == 22) or (time_text.hour == 23 and time_text.minute == 5): #Year: 2024, DOY:046
7278 id_aux = 10
7279 dataOut.DensityFinal[0,:id_aux]=missing
7280 dataOut.EDensityFinal[0,:id_aux]=missing
7281 dataOut.ElecTempFinal[0,:id_aux]=missing
7282 dataOut.EElecTempFinal[0,:id_aux]=missing
7283 dataOut.IonTempFinal[0,:id_aux]=missing
7284 dataOut.EIonTempFinal[0,:id_aux]=missing
7285 dataOut.PhyFinal[0,:id_aux]=missing
7286 dataOut.EPhyFinal[0,:id_aux]=missing
7287 if (time_text.hour == 23 and time_text.minute == 55) or (time_text.hour == 4 and time_text.minute == 5) or (time_text.hour == 4 and time_text.minute == 35): #Year: 2024, DOY:046
7288 id_aux = 20
7289 dataOut.DensityFinal[0,:id_aux]=missing
7290 dataOut.EDensityFinal[0,:id_aux]=missing
7291 dataOut.ElecTempFinal[0,:id_aux]=missing
7292 dataOut.EElecTempFinal[0,:id_aux]=missing
7293 dataOut.IonTempFinal[0,:id_aux]=missing
7294 dataOut.EIonTempFinal[0,:id_aux]=missing
7295 dataOut.PhyFinal[0,:id_aux]=missing
7296 dataOut.EPhyFinal[0,:id_aux]=missing
7297 if (time_text.hour == 4 and time_text.minute == 45) or (time_text.hour == 3 and time_text.minute == 55) or (time_text.hour == 0 and time_text.minute == 35) or (time_text.hour == 1) or (time_text.hour == 2 and time_text.minute == 55) or (time_text.hour == 3 and time_text.minute == 55) or (time_text.hour == 4 and time_text.minute == 45): #Year: 2024, DOY:046
7298 id_aux = 25
7299 dataOut.DensityFinal[0,:id_aux]=missing
7300 dataOut.EDensityFinal[0,:id_aux]=missing
7301 dataOut.ElecTempFinal[0,:id_aux]=missing
7302 dataOut.EElecTempFinal[0,:id_aux]=missing
7303 dataOut.IonTempFinal[0,:id_aux]=missing
7304 dataOut.EIonTempFinal[0,:id_aux]=missing
7305 dataOut.PhyFinal[0,:id_aux]=missing
7306 dataOut.EPhyFinal[0,:id_aux]=missing
7307 if (time_text.hour == 1 and time_text.minute == 25) or (time_text.hour == 3 and time_text.minute == 15): #Year: 2024, DOY:046
7308 id_aux = 30
7309 dataOut.DensityFinal[0,:id_aux]=missing
7310 dataOut.EDensityFinal[0,:id_aux]=missing
7311 dataOut.ElecTempFinal[0,:id_aux]=missing
7312 dataOut.EElecTempFinal[0,:id_aux]=missing
7313 dataOut.IonTempFinal[0,:id_aux]=missing
7314 dataOut.EIonTempFinal[0,:id_aux]=missing
7315 dataOut.PhyFinal[0,:id_aux]=missing
7316 dataOut.EPhyFinal[0,:id_aux]=missing
7317 if (time_text.hour == 4 and time_text.minute == 15) or (time_text.hour == 4 and time_text.minute == 25): #Year: 2024, DOY:046
7318 id_aux = 21
7319 dataOut.DensityFinal[0,:id_aux]=missing
7320 dataOut.EDensityFinal[0,:id_aux]=missing
7321 dataOut.ElecTempFinal[0,:id_aux]=missing
7322 dataOut.EElecTempFinal[0,:id_aux]=missing
7323 dataOut.IonTempFinal[0,:id_aux]=missing
7324 dataOut.EIonTempFinal[0,:id_aux]=missing
7325 dataOut.PhyFinal[0,:id_aux]=missing
7326 dataOut.EPhyFinal[0,:id_aux]=missing
7327 if (time_text.hour == 3 and time_text.minute == 25) or (time_text.hour == 3 and time_text.minute == 35): #Year: 2024, DOY:046
7328 id_aux = 32
7329 dataOut.DensityFinal[0,:id_aux]=missing
7330 dataOut.EDensityFinal[0,:id_aux]=missing
7331 dataOut.ElecTempFinal[0,:id_aux]=missing
7332 dataOut.EElecTempFinal[0,:id_aux]=missing
7333 dataOut.IonTempFinal[0,:id_aux]=missing
7334 dataOut.EIonTempFinal[0,:id_aux]=missing
7335 dataOut.PhyFinal[0,:id_aux]=missing
7336 dataOut.EPhyFinal[0,:id_aux]=missing
7337 '''
7338 '''
7339 if (time_text.hour == 5 and time_text.minute == 0): #Year: 2024, DOY:050
7340 id_aux = 15
7341 dataOut.DensityFinal[0,:id_aux]=missing
7342 dataOut.EDensityFinal[0,:id_aux]=missing
7343 dataOut.ElecTempFinal[0,:id_aux]=missing
7344 dataOut.EElecTempFinal[0,:id_aux]=missing
7345 dataOut.IonTempFinal[0,:id_aux]=missing
7346 dataOut.EIonTempFinal[0,:id_aux]=missing
7347 dataOut.PhyFinal[0,:id_aux]=missing
7348 dataOut.EPhyFinal[0,:id_aux]=missing
7349 if (time_text.hour == 5 and time_text.minute == 10): #Year: 2024, DOY:050
7350 id_aux = 26
7351 dataOut.DensityFinal[0,:id_aux]=missing
7352 dataOut.EDensityFinal[0,:id_aux]=missing
7353 dataOut.ElecTempFinal[0,:id_aux]=missing
7354 dataOut.EElecTempFinal[0,:id_aux]=missing
7355 dataOut.IonTempFinal[0,:id_aux]=missing
7356 dataOut.EIonTempFinal[0,:id_aux]=missing
7357 dataOut.PhyFinal[0,:id_aux]=missing
7358 dataOut.EPhyFinal[0,:id_aux]=missing
7359 if (time_text.hour == 5 and time_text.minute == 20) or (time_text.hour == 5 and time_text.minute == 30) or (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 8 and time_text.minute == 50): #Year: 2024, DOY:050
7360 id_aux = 13
7361 dataOut.DensityFinal[0,:id_aux]=missing
7362 dataOut.EDensityFinal[0,:id_aux]=missing
7363 dataOut.ElecTempFinal[0,:id_aux]=missing
7364 dataOut.EElecTempFinal[0,:id_aux]=missing
7365 dataOut.IonTempFinal[0,:id_aux]=missing
7366 dataOut.EIonTempFinal[0,:id_aux]=missing
7367 dataOut.PhyFinal[0,:id_aux]=missing
7368 dataOut.EPhyFinal[0,:id_aux]=missing
7369 if (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 8 and time_text.minute <= 20) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 30) or (time_text.hour == 10 and time_text.minute == 50) or (time_text.hour == 11 and time_text.minute == 0) or (time_text.hour == 6 and time_text.minute == 30) or (time_text.hour == 7 and time_text.minute == 30) or (time_text.hour == 9 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 11 and time_text.minute == 10): #Year: 2024, DOY:050
7370 id_aux = 12
7371 dataOut.DensityFinal[0,:id_aux]=missing
7372 dataOut.EDensityFinal[0,:id_aux]=missing
7373 dataOut.ElecTempFinal[0,:id_aux]=missing
7374 dataOut.EElecTempFinal[0,:id_aux]=missing
7375 dataOut.IonTempFinal[0,:id_aux]=missing
7376 dataOut.EIonTempFinal[0,:id_aux]=missing
7377 dataOut.PhyFinal[0,:id_aux]=missing
7378 dataOut.EPhyFinal[0,:id_aux]=missing
7379 if (time_text.hour == 11 and time_text.minute == 20) or (time_text.hour == 11 and time_text.minute == 30) or (time_text.hour == 11 and time_text.minute == 50) or (time_text.hour == 12 and time_text.minute <= 10) or (time_text.hour == 12 and time_text.minute >= 30): #Year: 2024, DOY:050
7380 id_aux = 9
7381 dataOut.DensityFinal[0,:id_aux]=missing
7382 dataOut.EDensityFinal[0,:id_aux]=missing
7383 dataOut.ElecTempFinal[0,:id_aux]=missing
7384 dataOut.EElecTempFinal[0,:id_aux]=missing
7385 dataOut.IonTempFinal[0,:id_aux]=missing
7386 dataOut.EIonTempFinal[0,:id_aux]=missing
7387 dataOut.PhyFinal[0,:id_aux]=missing
7388 dataOut.EPhyFinal[0,:id_aux]=missing
7389 if (time_text.hour == 10 and time_text.minute == 40) or (time_text.hour == 11 and time_text.minute == 40) or (time_text.hour == 12 and time_text.minute == 20) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 40): #Year: 2024, DOY:050
7390 id_aux = 10
7391 dataOut.DensityFinal[0,:id_aux]=missing
7392 dataOut.EDensityFinal[0,:id_aux]=missing
7393 dataOut.ElecTempFinal[0,:id_aux]=missing
7394 dataOut.EElecTempFinal[0,:id_aux]=missing
7395 dataOut.IonTempFinal[0,:id_aux]=missing
7396 dataOut.EIonTempFinal[0,:id_aux]=missing
7397 dataOut.PhyFinal[0,:id_aux]=missing
7398 dataOut.EPhyFinal[0,:id_aux]=missing
7399 if (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute == 20): #Year: 2024, DOY:050
7400 id_aux = 39
7401 dataOut.DensityFinal[0,id_aux:]=missing
7402 dataOut.EDensityFinal[0,id_aux:]=missing
7403 dataOut.ElecTempFinal[0,id_aux:]=missing
7404 dataOut.EElecTempFinal[0,id_aux:]=missing
7405 dataOut.IonTempFinal[0,id_aux:]=missing
7406 dataOut.EIonTempFinal[0,id_aux:]=missing
7407 dataOut.PhyFinal[0,id_aux:]=missing
7408 dataOut.EPhyFinal[0,id_aux:]=missing
7409 if (time_text.hour == 8 and time_text.minute == 10): #Year: 2024, DOY:050
7410 id_aux = 40
7411 dataOut.DensityFinal[0,id_aux:]=missing
7412 dataOut.EDensityFinal[0,id_aux:]=missing
7413 dataOut.ElecTempFinal[0,id_aux:]=missing
7414 dataOut.EElecTempFinal[0,id_aux:]=missing
7415 dataOut.IonTempFinal[0,id_aux:]=missing
7416 dataOut.EIonTempFinal[0,id_aux:]=missing
7417 dataOut.PhyFinal[0,id_aux:]=missing
7418 dataOut.EPhyFinal[0,id_aux:]=missing
7419 if (time_text.hour == 8 and time_text.minute >= 20) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute == 30): #Year: 2024, DOY:050
7420 id_aux = 36
7421 dataOut.DensityFinal[0,id_aux:]=missing
7422 dataOut.EDensityFinal[0,id_aux:]=missing
7423 dataOut.ElecTempFinal[0,id_aux:]=missing
7424 dataOut.EElecTempFinal[0,id_aux:]=missing
7425 dataOut.IonTempFinal[0,id_aux:]=missing
7426 dataOut.EIonTempFinal[0,id_aux:]=missing
7427 dataOut.PhyFinal[0,id_aux:]=missing
7428 dataOut.EPhyFinal[0,id_aux:]=missing
7429 if (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 11 and time_text.minute == 20) or (time_text.hour == 12 and time_text.minute == 0): #Year: 2024, DOY:050
7430 id_aux = 31
7431 dataOut.DensityFinal[0,id_aux:]=missing
7432 dataOut.EDensityFinal[0,id_aux:]=missing
7433 dataOut.ElecTempFinal[0,id_aux:]=missing
7434 dataOut.EElecTempFinal[0,id_aux:]=missing
7435 dataOut.IonTempFinal[0,id_aux:]=missing
7436 dataOut.EIonTempFinal[0,id_aux:]=missing
7437 dataOut.PhyFinal[0,id_aux:]=missing
7438 dataOut.EPhyFinal[0,id_aux:]=missing
7439 if (time_text.hour == 9 and time_text.minute == 40): #Year: 2024, DOY:050
7440 id_aux = 27
7441 dataOut.DensityFinal[0,id_aux:]=missing
7442 dataOut.EDensityFinal[0,id_aux:]=missing
7443 dataOut.ElecTempFinal[0,id_aux:]=missing
7444 dataOut.EElecTempFinal[0,id_aux:]=missing
7445 dataOut.IonTempFinal[0,id_aux:]=missing
7446 dataOut.EIonTempFinal[0,id_aux:]=missing
7447 dataOut.PhyFinal[0,id_aux:]=missing
7448 dataOut.EPhyFinal[0,id_aux:]=missing
7449 if (time_text.hour == 9 and time_text.minute == 50): #Year: 2024, DOY:050
7450 id_aux = 29
7451 dataOut.DensityFinal[0,id_aux:]=missing
7452 dataOut.EDensityFinal[0,id_aux:]=missing
7453 dataOut.ElecTempFinal[0,id_aux:]=missing
7454 dataOut.EElecTempFinal[0,id_aux:]=missing
7455 dataOut.IonTempFinal[0,id_aux:]=missing
7456 dataOut.EIonTempFinal[0,id_aux:]=missing
7457 dataOut.PhyFinal[0,id_aux:]=missing
7458 dataOut.EPhyFinal[0,id_aux:]=missing
7459 if (time_text.hour == 10 and time_text.minute == 10): #Year: 2024, DOY:050
7460 id_aux = 26
7461 dataOut.DensityFinal[0,id_aux:]=missing
7462 dataOut.EDensityFinal[0,id_aux:]=missing
7463 dataOut.ElecTempFinal[0,id_aux:]=missing
7464 dataOut.EElecTempFinal[0,id_aux:]=missing
7465 dataOut.IonTempFinal[0,id_aux:]=missing
7466 dataOut.EIonTempFinal[0,id_aux:]=missing
7467 dataOut.PhyFinal[0,id_aux:]=missing
7468 dataOut.EPhyFinal[0,id_aux:]=missing
7469 if (time_text.hour == 11 and time_text.minute == 50): #Year: 2024, DOY:050
7470 id_aux = 33
7471 dataOut.DensityFinal[0,id_aux:]=missing
7472 dataOut.EDensityFinal[0,id_aux:]=missing
7473 dataOut.ElecTempFinal[0,id_aux:]=missing
7474 dataOut.EElecTempFinal[0,id_aux:]=missing
7475 dataOut.IonTempFinal[0,id_aux:]=missing
7476 dataOut.EIonTempFinal[0,id_aux:]=missing
7477 dataOut.PhyFinal[0,id_aux:]=missing
7478 dataOut.EPhyFinal[0,id_aux:]=missing
7479 '''
7480 '''
7481 if (time_text.hour == 5 and time_text.minute <= 10): #Year: 2023, DOY:313
7482 id_aux = 15
7483 dataOut.DensityFinal[0,:id_aux]=missing
7484 dataOut.EDensityFinal[0,:id_aux]=missing
7485 dataOut.ElecTempFinal[0,:id_aux]=missing
7486 dataOut.EElecTempFinal[0,:id_aux]=missing
7487 dataOut.IonTempFinal[0,:id_aux]=missing
7488 dataOut.EIonTempFinal[0,:id_aux]=missing
7489 dataOut.PhyFinal[0,:id_aux]=missing
7490 dataOut.EPhyFinal[0,:id_aux]=missing
7491 if (time_text.hour == 5 and time_text.minute >= 20 and time_text.minute <= 40): #Year: 2023, DOY:313
7492 id_aux = 13
7493 dataOut.DensityFinal[0,:id_aux]=missing
7494 dataOut.EDensityFinal[0,:id_aux]=missing
7495 dataOut.ElecTempFinal[0,:id_aux]=missing
7496 dataOut.EElecTempFinal[0,:id_aux]=missing
7497 dataOut.IonTempFinal[0,:id_aux]=missing
7498 dataOut.EIonTempFinal[0,:id_aux]=missing
7499 dataOut.PhyFinal[0,:id_aux]=missing
7500 dataOut.EPhyFinal[0,:id_aux]=missing
7501 if (time_text.hour == 5 and time_text.minute == 50) or (time_text.hour == 6 and time_text.minute <= 30): #Year: 2023, DOY:313
7502 id_aux = 11
7503 dataOut.DensityFinal[0,:id_aux]=missing
7504 dataOut.EDensityFinal[0,:id_aux]=missing
7505 dataOut.ElecTempFinal[0,:id_aux]=missing
7506 dataOut.EElecTempFinal[0,:id_aux]=missing
7507 dataOut.IonTempFinal[0,:id_aux]=missing
7508 dataOut.EIonTempFinal[0,:id_aux]=missing
7509 dataOut.PhyFinal[0,:id_aux]=missing
7510 dataOut.EPhyFinal[0,:id_aux]=missing
7511 if (time_text.hour == 6 and time_text.minute >= 40) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 10): #Year: 2023, DOY:313
7512 id_aux = 10
7513 dataOut.DensityFinal[0,:id_aux]=missing
7514 dataOut.EDensityFinal[0,:id_aux]=missing
7515 dataOut.ElecTempFinal[0,:id_aux]=missing
7516 dataOut.EElecTempFinal[0,:id_aux]=missing
7517 dataOut.IonTempFinal[0,:id_aux]=missing
7518 dataOut.EIonTempFinal[0,:id_aux]=missing
7519 dataOut.PhyFinal[0,:id_aux]=missing
7520 dataOut.EPhyFinal[0,:id_aux]=missing
7521 if (time_text.hour == 10 and time_text.minute >= 20) or (time_text.hour == 11): #Year: 2023, DOY:313
7522 id_aux = 9
7523 dataOut.DensityFinal[0,:id_aux]=missing
7524 dataOut.EDensityFinal[0,:id_aux]=missing
7525 dataOut.ElecTempFinal[0,:id_aux]=missing
7526 dataOut.EElecTempFinal[0,:id_aux]=missing
7527 dataOut.IonTempFinal[0,:id_aux]=missing
7528 dataOut.EIonTempFinal[0,:id_aux]=missing
7529 dataOut.PhyFinal[0,:id_aux]=missing
7530 dataOut.EPhyFinal[0,:id_aux]=missing
7531 if (time_text.hour == 10 and time_text.minute == 20) or (time_text.hour == 11 and time_text.minute == 0): #Year: 2023, DOY:313
7532 id_aux = 40
7533 dataOut.DensityFinal[0,id_aux:]=missing
7534 dataOut.EDensityFinal[0,id_aux:]=missing
7535 dataOut.ElecTempFinal[0,id_aux:]=missing
7536 dataOut.EElecTempFinal[0,id_aux:]=missing
7537 dataOut.IonTempFinal[0,id_aux:]=missing
7538 dataOut.EIonTempFinal[0,id_aux:]=missing
7539 dataOut.PhyFinal[0,id_aux:]=missing
7540 dataOut.EPhyFinal[0,id_aux:]=missing
7541 '''
7542 '''
7543 if (time_text.hour == 5) or (time_text.hour == 6 and time_text.minute <= 30) or (time_text.hour == 23 and time_text.minute >= 20) or (time_text.hour <= 4): #Year: 2023, DOY:312
7544 id_aux = 16
7545 dataOut.DensityFinal[0,:id_aux]=missing
7546 dataOut.EDensityFinal[0,:id_aux]=missing
7547 dataOut.ElecTempFinal[0,:id_aux]=missing
7548 dataOut.EElecTempFinal[0,:id_aux]=missing
7549 dataOut.IonTempFinal[0,:id_aux]=missing
7550 dataOut.EIonTempFinal[0,:id_aux]=missing
7551 dataOut.PhyFinal[0,:id_aux]=missing
7552 dataOut.EPhyFinal[0,:id_aux]=missing
7553 if (time_text.hour == 6 and time_text.minute == 40) or (time_text.hour == 6 and time_text.minute == 50): #Year: 2023, DOY:312
7554 id_aux = 15
7555 dataOut.DensityFinal[0,:id_aux]=missing
7556 dataOut.EDensityFinal[0,:id_aux]=missing
7557 dataOut.ElecTempFinal[0,:id_aux]=missing
7558 dataOut.EElecTempFinal[0,:id_aux]=missing
7559 dataOut.IonTempFinal[0,:id_aux]=missing
7560 dataOut.EIonTempFinal[0,:id_aux]=missing
7561 dataOut.PhyFinal[0,:id_aux]=missing
7562 dataOut.EPhyFinal[0,:id_aux]=missing
7563 if (time_text.hour == 7): #Year: 2023, DOY:312
7564 id_aux = 13
7565 dataOut.DensityFinal[0,:id_aux]=missing
7566 dataOut.EDensityFinal[0,:id_aux]=missing
7567 dataOut.ElecTempFinal[0,:id_aux]=missing
7568 dataOut.EElecTempFinal[0,:id_aux]=missing
7569 dataOut.IonTempFinal[0,:id_aux]=missing
7570 dataOut.EIonTempFinal[0,:id_aux]=missing
7571 dataOut.PhyFinal[0,:id_aux]=missing
7572 dataOut.EPhyFinal[0,:id_aux]=missing
7573 if (time_text.hour == 8 and time_text.minute == 0): #Year: 2023, DOY:312
7574 id_aux = 11
7575 dataOut.DensityFinal[0,:id_aux]=missing
7576 dataOut.EDensityFinal[0,:id_aux]=missing
7577 dataOut.ElecTempFinal[0,:id_aux]=missing
7578 dataOut.EElecTempFinal[0,:id_aux]=missing
7579 dataOut.IonTempFinal[0,:id_aux]=missing
7580 dataOut.EIonTempFinal[0,:id_aux]=missing
7581 dataOut.PhyFinal[0,:id_aux]=missing
7582 dataOut.EPhyFinal[0,:id_aux]=missing
7583 if (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 10): #Year: 2023, DOY:312
7584 id_aux = 10
7585 dataOut.DensityFinal[0,:id_aux]=missing
7586 dataOut.EDensityFinal[0,:id_aux]=missing
7587 dataOut.ElecTempFinal[0,:id_aux]=missing
7588 dataOut.EElecTempFinal[0,:id_aux]=missing
7589 dataOut.IonTempFinal[0,:id_aux]=missing
7590 dataOut.EIonTempFinal[0,:id_aux]=missing
7591 dataOut.PhyFinal[0,:id_aux]=missing
7592 dataOut.EPhyFinal[0,:id_aux]=missing
7593 if (time_text.hour == 10 and time_text.minute >= 20) or (time_text.hour == 11): #Year: 2023, DOY:312
7594 id_aux = 9
7595 dataOut.DensityFinal[0,:id_aux]=missing
7596 dataOut.EDensityFinal[0,:id_aux]=missing
7597 dataOut.ElecTempFinal[0,:id_aux]=missing
7598 dataOut.EElecTempFinal[0,:id_aux]=missing
7599 dataOut.IonTempFinal[0,:id_aux]=missing
7600 dataOut.EIonTempFinal[0,:id_aux]=missing
7601 dataOut.PhyFinal[0,:id_aux]=missing
7602 dataOut.EPhyFinal[0,:id_aux]=missing
7603 if (time_text.hour == 9 and time_text.minute == 30): #Year: 2023, DOY:312
7604 id_aux = 39
7605 dataOut.DensityFinal[0,id_aux:]=missing
7606 dataOut.EDensityFinal[0,id_aux:]=missing
7607 dataOut.ElecTempFinal[0,id_aux:]=missing
7608 dataOut.EElecTempFinal[0,id_aux:]=missing
7609 dataOut.IonTempFinal[0,id_aux:]=missing
7610 dataOut.EIonTempFinal[0,id_aux:]=missing
7611 dataOut.PhyFinal[0,id_aux:]=missing
7612 dataOut.EPhyFinal[0,id_aux:]=missing
7613 if (time_text.hour == 11 and time_text.minute == 20): #Year: 2023, DOY:312
7614 id_aux = 40
7615 dataOut.DensityFinal[0,id_aux:]=missing
7616 dataOut.EDensityFinal[0,id_aux:]=missing
7617 dataOut.ElecTempFinal[0,id_aux:]=missing
7618 dataOut.EElecTempFinal[0,id_aux:]=missing
7619 dataOut.IonTempFinal[0,id_aux:]=missing
7620 dataOut.EIonTempFinal[0,id_aux:]=missing
7621 dataOut.PhyFinal[0,id_aux:]=missing
7622 dataOut.EPhyFinal[0,id_aux:]=missing
7623 '''
7624 '''
7625 if (time_text.hour == 9 and time_text.minute == 50): #Year: 2023, DOY:311
7626 id_aux = 40
7627 dataOut.DensityFinal[0,id_aux:]=missing
7628 dataOut.EDensityFinal[0,id_aux:]=missing
7629 dataOut.ElecTempFinal[0,id_aux:]=missing
7630 dataOut.EElecTempFinal[0,id_aux:]=missing
7631 dataOut.IonTempFinal[0,id_aux:]=missing
7632 dataOut.EIonTempFinal[0,id_aux:]=missing
7633 dataOut.PhyFinal[0,id_aux:]=missing
7634 dataOut.EPhyFinal[0,id_aux:]=missing
7635 if (time_text.hour >= 5 and time_text.hour <= 8) or (time_text.hour == 9 and time_text.minute <= 30) or (time_text.hour == 23 and time_text.minute >= 30) or (time_text.hour <= 4): #Year: 2023, DOY:311
7636 id_aux = 13
7637 dataOut.DensityFinal[0,:id_aux]=missing
7638 dataOut.EDensityFinal[0,:id_aux]=missing
7639 dataOut.ElecTempFinal[0,:id_aux]=missing
7640 dataOut.EElecTempFinal[0,:id_aux]=missing
7641 dataOut.IonTempFinal[0,:id_aux]=missing
7642 dataOut.EIonTempFinal[0,:id_aux]=missing
7643 dataOut.PhyFinal[0,:id_aux]=missing
7644 dataOut.EPhyFinal[0,:id_aux]=missing
7645 if (time_text.hour == 10 and time_text.minute <= 10) or (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 9 and time_text.minute == 50): #Year: 2023, DOY:311
7646 id_aux = 10
7647 dataOut.DensityFinal[0,:id_aux]=missing
7648 dataOut.EDensityFinal[0,:id_aux]=missing
7649 dataOut.ElecTempFinal[0,:id_aux]=missing
7650 dataOut.EElecTempFinal[0,:id_aux]=missing
7651 dataOut.IonTempFinal[0,:id_aux]=missing
7652 dataOut.EIonTempFinal[0,:id_aux]=missing
7653 dataOut.PhyFinal[0,:id_aux]=missing
7654 dataOut.EPhyFinal[0,:id_aux]=missing
7655 if (time_text.hour == 10 and time_text.minute >= 20) or (time_text.hour == 11): #Year: 2023, DOY:311
7656 id_aux = 9
7657 dataOut.DensityFinal[0,:id_aux]=missing
7658 dataOut.EDensityFinal[0,:id_aux]=missing
7659 dataOut.ElecTempFinal[0,:id_aux]=missing
7660 dataOut.EElecTempFinal[0,:id_aux]=missing
7661 dataOut.IonTempFinal[0,:id_aux]=missing
7662 dataOut.EIonTempFinal[0,:id_aux]=missing
7663 dataOut.PhyFinal[0,:id_aux]=missing
7664 dataOut.EPhyFinal[0,:id_aux]=missing
7665 if (time_text.hour == 3 and time_text.minute == 10): #Year: 2023, DOY:311
7666 id_aux = 16
7667 dataOut.DensityFinal[0,:id_aux]=missing
7668 dataOut.EDensityFinal[0,:id_aux]=missing
7669 dataOut.ElecTempFinal[0,:id_aux]=missing
7670 dataOut.EElecTempFinal[0,:id_aux]=missing
7671 dataOut.IonTempFinal[0,:id_aux]=missing
7672 dataOut.EIonTempFinal[0,:id_aux]=missing
7673 dataOut.PhyFinal[0,:id_aux]=missing
7674 dataOut.EPhyFinal[0,:id_aux]=missing
7675 if (time_text.hour == 1 and time_text.minute == 10) or (time_text.hour == 1 and time_text.minute == 20) or (time_text.hour == 1 and time_text.minute == 30): #Year: 2023, DOY:311
7676 id_aux = 22
7677 dataOut.DensityFinal[0,:id_aux]=missing
7678 dataOut.EDensityFinal[0,:id_aux]=missing
7679 dataOut.ElecTempFinal[0,:id_aux]=missing
7680 dataOut.EElecTempFinal[0,:id_aux]=missing
7681 dataOut.IonTempFinal[0,:id_aux]=missing
7682 dataOut.EIonTempFinal[0,:id_aux]=missing
7683 dataOut.PhyFinal[0,:id_aux]=missing
7684 dataOut.EPhyFinal[0,:id_aux]=missing
7685 if (time_text.hour == 1 and time_text.minute == 40): #Year: 2023, DOY:311
7686 id_aux = 21
7687 dataOut.DensityFinal[0,:id_aux]=missing
7688 dataOut.EDensityFinal[0,:id_aux]=missing
7689 dataOut.ElecTempFinal[0,:id_aux]=missing
7690 dataOut.EElecTempFinal[0,:id_aux]=missing
7691 dataOut.IonTempFinal[0,:id_aux]=missing
7692 dataOut.EIonTempFinal[0,:id_aux]=missing
7693 dataOut.PhyFinal[0,:id_aux]=missing
7694 dataOut.EPhyFinal[0,:id_aux]=missing
7695 if (time_text.hour == 1 and time_text.minute == 50): #Year: 2023, DOY:311
7696 id_aux = 20
7697 dataOut.DensityFinal[0,:id_aux]=missing
7698 dataOut.EDensityFinal[0,:id_aux]=missing
7699 dataOut.ElecTempFinal[0,:id_aux]=missing
7700 dataOut.EElecTempFinal[0,:id_aux]=missing
7701 dataOut.IonTempFinal[0,:id_aux]=missing
7702 dataOut.EIonTempFinal[0,:id_aux]=missing
7703 dataOut.PhyFinal[0,:id_aux]=missing
7704 dataOut.EPhyFinal[0,:id_aux]=missing
7705 if (time_text.hour == 2 and time_text.minute <= 10): #Year: 2023, DOY:311
7706 id_aux = 19
7707 dataOut.DensityFinal[0,:id_aux]=missing
7708 dataOut.EDensityFinal[0,:id_aux]=missing
7709 dataOut.ElecTempFinal[0,:id_aux]=missing
7710 dataOut.EElecTempFinal[0,:id_aux]=missing
7711 dataOut.IonTempFinal[0,:id_aux]=missing
7712 dataOut.EIonTempFinal[0,:id_aux]=missing
7713 dataOut.PhyFinal[0,:id_aux]=missing
7714 dataOut.EPhyFinal[0,:id_aux]=missing
7715 if (time_text.hour == 2 and time_text.minute == 20) or (time_text.hour == 2 and time_text.minute == 30): #Year: 2023, DOY:311
7716 id_aux = 18
7717 dataOut.DensityFinal[0,:id_aux]=missing
7718 dataOut.EDensityFinal[0,:id_aux]=missing
7719 dataOut.ElecTempFinal[0,:id_aux]=missing
7720 dataOut.EElecTempFinal[0,:id_aux]=missing
7721 dataOut.IonTempFinal[0,:id_aux]=missing
7722 dataOut.EIonTempFinal[0,:id_aux]=missing
7723 dataOut.PhyFinal[0,:id_aux]=missing
7724 dataOut.EPhyFinal[0,:id_aux]=missing
7725 '''
7726 '''
7727 if (time_text.hour == 23 and time_text.minute >= 10) or (time_text.hour <= 4): #Year: 2023, DOY:310
7728 id_aux = 12
7729 dataOut.DensityFinal[0,:id_aux]=missing
7730 dataOut.EDensityFinal[0,:id_aux]=missing
7731 dataOut.ElecTempFinal[0,:id_aux]=missing
7732 dataOut.EElecTempFinal[0,:id_aux]=missing
7733 dataOut.IonTempFinal[0,:id_aux]=missing
7734 dataOut.EIonTempFinal[0,:id_aux]=missing
7735 dataOut.PhyFinal[0,:id_aux]=missing
7736 dataOut.EPhyFinal[0,:id_aux]=missing
7737 if (time_text.hour == 0 and time_text.minute == 0): #Year: 2023, DOY:310
7738 id_aux = 28
7739 dataOut.DensityFinal[0,:id_aux]=missing
7740 dataOut.EDensityFinal[0,:id_aux]=missing
7741 dataOut.ElecTempFinal[0,:id_aux]=missing
7742 dataOut.EElecTempFinal[0,:id_aux]=missing
7743 dataOut.IonTempFinal[0,:id_aux]=missing
7744 dataOut.EIonTempFinal[0,:id_aux]=missing
7745 dataOut.PhyFinal[0,:id_aux]=missing
7746 dataOut.EPhyFinal[0,:id_aux]=missing
7747 if (time_text.hour == 1 and time_text.minute == 50): #Year: 2023, DOY:310
7748 id_aux = 25
7749 dataOut.DensityFinal[0,:id_aux]=missing
7750 dataOut.EDensityFinal[0,:id_aux]=missing
7751 dataOut.ElecTempFinal[0,:id_aux]=missing
7752 dataOut.EElecTempFinal[0,:id_aux]=missing
7753 dataOut.IonTempFinal[0,:id_aux]=missing
7754 dataOut.EIonTempFinal[0,:id_aux]=missing
7755 dataOut.PhyFinal[0,:id_aux]=missing
7756 dataOut.EPhyFinal[0,:id_aux]=missing
7757 if (time_text.hour == 2 and time_text.minute == 0): #Year: 2023, DOY:310
7758 id_aux = 26
7759 dataOut.DensityFinal[0,:id_aux]=missing
7760 dataOut.EDensityFinal[0,:id_aux]=missing
7761 dataOut.ElecTempFinal[0,:id_aux]=missing
7762 dataOut.EElecTempFinal[0,:id_aux]=missing
7763 dataOut.IonTempFinal[0,:id_aux]=missing
7764 dataOut.EIonTempFinal[0,:id_aux]=missing
7765 dataOut.PhyFinal[0,:id_aux]=missing
7766 dataOut.EPhyFinal[0,:id_aux]=missing
7767 '''
7768 '''
7769 if (time_text.hour == 11 and time_text.minute == 40): #Year: 2023, DOY:268
7770 id_aux = 36
7771 dataOut.DensityFinal[0,id_aux:]=missing
7772 dataOut.EDensityFinal[0,id_aux:]=missing
7773 dataOut.ElecTempFinal[0,id_aux:]=missing
7774 dataOut.EElecTempFinal[0,id_aux:]=missing
7775 dataOut.IonTempFinal[0,id_aux:]=missing
7776 dataOut.EIonTempFinal[0,id_aux:]=missing
7777 dataOut.PhyFinal[0,id_aux:]=missing
7778 dataOut.EPhyFinal[0,id_aux:]=missing
7779 if (time_text.hour == 12 and time_text.minute == 50) or (time_text.hour == 13 and time_text.minute == 40): #Year: 2023, DOY:268
7780 id_aux = 39
7781 dataOut.DensityFinal[0,id_aux:]=missing
7782 dataOut.EDensityFinal[0,id_aux:]=missing
7783 dataOut.ElecTempFinal[0,id_aux:]=missing
7784 dataOut.EElecTempFinal[0,id_aux:]=missing
7785 dataOut.IonTempFinal[0,id_aux:]=missing
7786 dataOut.EIonTempFinal[0,id_aux:]=missing
7787 dataOut.PhyFinal[0,id_aux:]=missing
7788 dataOut.EPhyFinal[0,id_aux:]=missing
7789 if (time_text.hour == 5) or (time_text.hour == 10 and time_text.minute == 40) or (time_text.hour == 22 and time_text.minute >= 40) or (time_text.hour == 23 and time_text.minute == 0) or (time_text.hour == 3 and time_text.minute == 20) or (time_text.hour == 4 and time_text.minute == 40) or (time_text.hour == 6 and time_text.minute == 50): #Year: 2023, DOY:268
7790 id_aux = 12
7791 dataOut.DensityFinal[0,:id_aux]=missing
7792 dataOut.EDensityFinal[0,:id_aux]=missing
7793 dataOut.ElecTempFinal[0,:id_aux]=missing
7794 dataOut.EElecTempFinal[0,:id_aux]=missing
7795 dataOut.IonTempFinal[0,:id_aux]=missing
7796 dataOut.EIonTempFinal[0,:id_aux]=missing
7797 dataOut.PhyFinal[0,:id_aux]=missing
7798 dataOut.EPhyFinal[0,:id_aux]=missing
7799 if (time_text.hour == 2): #Year: 2023, DOY:268
7800 id_aux = 13
7801 dataOut.DensityFinal[0,:id_aux]=missing
7802 dataOut.EDensityFinal[0,:id_aux]=missing
7803 dataOut.ElecTempFinal[0,:id_aux]=missing
7804 dataOut.EElecTempFinal[0,:id_aux]=missing
7805 dataOut.IonTempFinal[0,:id_aux]=missing
7806 dataOut.EIonTempFinal[0,:id_aux]=missing
7807 dataOut.PhyFinal[0,:id_aux]=missing
7808 dataOut.EPhyFinal[0,:id_aux]=missing
7809 if (time_text.hour == 8 and time_text.minute == 10) or (time_text.hour == 6 and time_text.minute <= 40) or (time_text.hour == 7 and time_text.minute >= 10): #Year: 2023, DOY:268
7810 id_aux = 16
7811 dataOut.DensityFinal[0,:id_aux]=missing
7812 dataOut.EDensityFinal[0,:id_aux]=missing
7813 dataOut.ElecTempFinal[0,:id_aux]=missing
7814 dataOut.EElecTempFinal[0,:id_aux]=missing
7815 dataOut.IonTempFinal[0,:id_aux]=missing
7816 dataOut.EIonTempFinal[0,:id_aux]=missing
7817 dataOut.PhyFinal[0,:id_aux]=missing
7818 dataOut.EPhyFinal[0,:id_aux]=missing
7819 if (time_text.hour == 7 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 20) or (time_text.hour == 23 and time_text.minute >= 10): #Year: 2023, DOY:268
7820 id_aux = 17
7821 dataOut.DensityFinal[0,:id_aux]=missing
7822 dataOut.EDensityFinal[0,:id_aux]=missing
7823 dataOut.ElecTempFinal[0,:id_aux]=missing
7824 dataOut.EElecTempFinal[0,:id_aux]=missing
7825 dataOut.IonTempFinal[0,:id_aux]=missing
7826 dataOut.EIonTempFinal[0,:id_aux]=missing
7827 dataOut.PhyFinal[0,:id_aux]=missing
7828 dataOut.EPhyFinal[0,:id_aux]=missing
7829 if (time_text.hour == 2 and time_text.minute == 20) or (time_text.hour == 23 and time_text.minute == 30): #Year: 2023, DOY:268
7830 id_aux = 18
7831 dataOut.DensityFinal[0,:id_aux]=missing
7832 dataOut.EDensityFinal[0,:id_aux]=missing
7833 dataOut.ElecTempFinal[0,:id_aux]=missing
7834 dataOut.EElecTempFinal[0,:id_aux]=missing
7835 dataOut.IonTempFinal[0,:id_aux]=missing
7836 dataOut.EIonTempFinal[0,:id_aux]=missing
7837 dataOut.PhyFinal[0,:id_aux]=missing
7838 dataOut.EPhyFinal[0,:id_aux]=missing
7839 if (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 50) or (time_text.hour == 10 and time_text.minute <= 10): #Year: 2023, DOY:268
7840 id_aux = 19
7841 dataOut.DensityFinal[0,:id_aux]=missing
7842 dataOut.EDensityFinal[0,:id_aux]=missing
7843 dataOut.ElecTempFinal[0,:id_aux]=missing
7844 dataOut.EElecTempFinal[0,:id_aux]=missing
7845 dataOut.IonTempFinal[0,:id_aux]=missing
7846 dataOut.EIonTempFinal[0,:id_aux]=missing
7847 dataOut.PhyFinal[0,:id_aux]=missing
7848 dataOut.EPhyFinal[0,:id_aux]=missing
7849 if (time_text.hour == 8 and time_text.minute == 50): #Year: 2023, DOY:268
7850 id_aux = 20
7851 dataOut.DensityFinal[0,:id_aux]=missing
7852 dataOut.EDensityFinal[0,:id_aux]=missing
7853 dataOut.ElecTempFinal[0,:id_aux]=missing
7854 dataOut.EElecTempFinal[0,:id_aux]=missing
7855 dataOut.IonTempFinal[0,:id_aux]=missing
7856 dataOut.EIonTempFinal[0,:id_aux]=missing
7857 dataOut.PhyFinal[0,:id_aux]=missing
7858 dataOut.EPhyFinal[0,:id_aux]=missing
7859 if (time_text.hour == 0) or (time_text.hour == 1) or (time_text.hour == 2 and time_text.minute == 0): #Year: 2023, DOY:268
7860 id_aux = 21
7861 dataOut.DensityFinal[0,:id_aux]=missing
7862 dataOut.EDensityFinal[0,:id_aux]=missing
7863 dataOut.ElecTempFinal[0,:id_aux]=missing
7864 dataOut.EElecTempFinal[0,:id_aux]=missing
7865 dataOut.IonTempFinal[0,:id_aux]=missing
7866 dataOut.EIonTempFinal[0,:id_aux]=missing
7867 dataOut.PhyFinal[0,:id_aux]=missing
7868 dataOut.EPhyFinal[0,:id_aux]=missing
7869 if (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 9 and time_text.minute <= 10) or (time_text.hour == 9 and time_text.minute == 30) or (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute == 40): #Year: 2023, DOY:268
7870 id_aux = 24
7871 dataOut.DensityFinal[0,:id_aux]=missing
7872 dataOut.EDensityFinal[0,:id_aux]=missing
7873 dataOut.ElecTempFinal[0,:id_aux]=missing
7874 dataOut.EElecTempFinal[0,:id_aux]=missing
7875 dataOut.IonTempFinal[0,:id_aux]=missing
7876 dataOut.EIonTempFinal[0,:id_aux]=missing
7877 dataOut.PhyFinal[0,:id_aux]=missing
7878 dataOut.EPhyFinal[0,:id_aux]=missing
7879 '''
7880 '''
7881 if (time_text.hour == 11 and time_text.minute == 20): #Year: 2023, DOY:267
7882 id_aux = 25
7883 dataOut.DensityFinal[0,id_aux:]=missing
7884 dataOut.EDensityFinal[0,id_aux:]=missing
7885 dataOut.ElecTempFinal[0,id_aux:]=missing
7886 dataOut.EElecTempFinal[0,id_aux:]=missing
7887 dataOut.IonTempFinal[0,id_aux:]=missing
7888 dataOut.EIonTempFinal[0,id_aux:]=missing
7889 dataOut.PhyFinal[0,id_aux:]=missing
7890 dataOut.EPhyFinal[0,id_aux:]=missing
7891 if (time_text.hour == 11 and time_text.minute == 10): #Year: 2023, DOY:267
7892 id_aux = 26
7893 dataOut.DensityFinal[0,id_aux:]=missing
7894 dataOut.EDensityFinal[0,id_aux:]=missing
7895 dataOut.ElecTempFinal[0,id_aux:]=missing
7896 dataOut.EElecTempFinal[0,id_aux:]=missing
7897 dataOut.IonTempFinal[0,id_aux:]=missing
7898 dataOut.EIonTempFinal[0,id_aux:]=missing
7899 dataOut.PhyFinal[0,id_aux:]=missing
7900 dataOut.EPhyFinal[0,id_aux:]=missing
7901 if (time_text.hour == 10 and time_text.minute == 50) or (time_text.hour == 11 and time_text.minute == 0): #Year: 2023, DOY:267
7902 id_aux = 27
7903 dataOut.DensityFinal[0,id_aux:]=missing
7904 dataOut.EDensityFinal[0,id_aux:]=missing
7905 dataOut.ElecTempFinal[0,id_aux:]=missing
7906 dataOut.EElecTempFinal[0,id_aux:]=missing
7907 dataOut.IonTempFinal[0,id_aux:]=missing
7908 dataOut.EIonTempFinal[0,id_aux:]=missing
7909 dataOut.PhyFinal[0,id_aux:]=missing
7910 dataOut.EPhyFinal[0,id_aux:]=missing
7911 if (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 40): #Year: 2023, DOY:267
7912 id_aux = 31
7913 dataOut.DensityFinal[0,id_aux:]=missing
7914 dataOut.EDensityFinal[0,id_aux:]=missing
7915 dataOut.ElecTempFinal[0,id_aux:]=missing
7916 dataOut.EElecTempFinal[0,id_aux:]=missing
7917 dataOut.IonTempFinal[0,id_aux:]=missing
7918 dataOut.EIonTempFinal[0,id_aux:]=missing
7919 dataOut.PhyFinal[0,id_aux:]=missing
7920 dataOut.EPhyFinal[0,id_aux:]=missing
7921 if (time_text.hour == 5 and time_text.minute == 0) or (time_text.hour == 11 and time_text.minute == 40) or (time_text.hour == 13 and time_text.minute == 50): #Year: 2023, DOY:267
7922 id_aux = 39
7923 dataOut.DensityFinal[0,id_aux:]=missing
7924 dataOut.EDensityFinal[0,id_aux:]=missing
7925 dataOut.ElecTempFinal[0,id_aux:]=missing
7926 dataOut.EElecTempFinal[0,id_aux:]=missing
7927 dataOut.IonTempFinal[0,id_aux:]=missing
7928 dataOut.EIonTempFinal[0,id_aux:]=missing
7929 dataOut.PhyFinal[0,id_aux:]=missing
7930 dataOut.EPhyFinal[0,id_aux:]=missing
7931 if (time_text.hour == 6 and time_text.minute == 10) or (time_text.hour == 6 and time_text.minute == 20) or (time_text.hour == 7 and time_text.minute >= 40) or (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 8 and time_text.minute >= 30) or (time_text.hour == 9 and time_text.minute >= 30): #Year: 2023, DOY:267
7932 id_aux = 34
7933 dataOut.DensityFinal[0,id_aux:]=missing
7934 dataOut.EDensityFinal[0,id_aux:]=missing
7935 dataOut.ElecTempFinal[0,id_aux:]=missing
7936 dataOut.EElecTempFinal[0,id_aux:]=missing
7937 dataOut.IonTempFinal[0,id_aux:]=missing
7938 dataOut.EIonTempFinal[0,id_aux:]=missing
7939 dataOut.PhyFinal[0,id_aux:]=missing
7940 dataOut.EPhyFinal[0,id_aux:]=missing
7941 if (time_text.hour == 23 and time_text.minute == 0) or (time_text.hour == 23 and time_text.minute == 20): #Year: 2023, DOY:267
7942 id_aux = 35
7943 dataOut.DensityFinal[0,id_aux:]=missing
7944 dataOut.EDensityFinal[0,id_aux:]=missing
7945 dataOut.ElecTempFinal[0,id_aux:]=missing
7946 dataOut.EElecTempFinal[0,id_aux:]=missing
7947 dataOut.IonTempFinal[0,id_aux:]=missing
7948 dataOut.EIonTempFinal[0,id_aux:]=missing
7949 dataOut.PhyFinal[0,id_aux:]=missing
7950 dataOut.EPhyFinal[0,id_aux:]=missing
7951 if (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 50) or (time_text.hour == 11 and time_text.minute == 10) or (time_text.hour == 11 and time_text.minute == 20) or (time_text.hour == 11 and time_text.minute == 50) or (time_text.hour == 12 and time_text.minute == 30) or (time_text.hour == 12 and time_text.minute == 50): #Year: 2023, DOY:267
7952 id_aux = 36
7953 dataOut.DensityFinal[0,id_aux:]=missing
7954 dataOut.EDensityFinal[0,id_aux:]=missing
7955 dataOut.ElecTempFinal[0,id_aux:]=missing
7956 dataOut.EElecTempFinal[0,id_aux:]=missing
7957 dataOut.IonTempFinal[0,id_aux:]=missing
7958 dataOut.EIonTempFinal[0,id_aux:]=missing
7959 dataOut.PhyFinal[0,id_aux:]=missing
7960 dataOut.EPhyFinal[0,id_aux:]=missing
7961 if (time_text.hour == 2 and time_text.minute == 50): #Year: 2023, DOY:267
7962 id_aux = 40
7963 dataOut.DensityFinal[0,id_aux:]=missing
7964 dataOut.EDensityFinal[0,id_aux:]=missing
7965 dataOut.ElecTempFinal[0,id_aux:]=missing
7966 dataOut.EElecTempFinal[0,id_aux:]=missing
7967 dataOut.IonTempFinal[0,id_aux:]=missing
7968 dataOut.EIonTempFinal[0,id_aux:]=missing
7969 dataOut.PhyFinal[0,id_aux:]=missing
7970 dataOut.EPhyFinal[0,id_aux:]=missing
7971 if (time_text.hour == 4) or (time_text.hour == 3) or (time_text.hour == 2) or (time_text.hour == 1) or (time_text.hour == 0 and time_text.minute == 50) or (time_text.hour == 22 and time_text.minute == 40) or (time_text.hour == 5 and time_text.minute == 0) or (time_text.hour == 5 and time_text.minute == 40) or (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 6 and time_text.minute >= 20) or (time_text.hour == 7) or (time_text.hour == 8) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 30): #Year: 2023, DOY:267
7972 id_aux = 12
7973 dataOut.DensityFinal[0,:id_aux]=missing
7974 dataOut.EDensityFinal[0,:id_aux]=missing
7975 dataOut.ElecTempFinal[0,:id_aux]=missing
7976 dataOut.EElecTempFinal[0,:id_aux]=missing
7977 dataOut.IonTempFinal[0,:id_aux]=missing
7978 dataOut.EIonTempFinal[0,:id_aux]=missing
7979 dataOut.PhyFinal[0,:id_aux]=missing
7980 dataOut.EPhyFinal[0,:id_aux]=missing
7981 if (time_text.hour == 7 and time_text.minute == 50): #Year: 2023, DOY:267
7982 id_aux = 14
7983 dataOut.DensityFinal[0,:id_aux]=missing
7984 dataOut.EDensityFinal[0,:id_aux]=missing
7985 dataOut.ElecTempFinal[0,:id_aux]=missing
7986 dataOut.EElecTempFinal[0,:id_aux]=missing
7987 dataOut.IonTempFinal[0,:id_aux]=missing
7988 dataOut.EIonTempFinal[0,:id_aux]=missing
7989 dataOut.PhyFinal[0,:id_aux]=missing
7990 dataOut.EPhyFinal[0,:id_aux]=missing
7991 if (time_text.hour == 22 and time_text.minute == 50) or (time_text.hour == 10 and time_text.minute == 0): #Year: 2023, DOY:267
7992 id_aux = 17
7993 dataOut.DensityFinal[0,:id_aux]=missing
7994 dataOut.EDensityFinal[0,:id_aux]=missing
7995 dataOut.ElecTempFinal[0,:id_aux]=missing
7996 dataOut.EElecTempFinal[0,:id_aux]=missing
7997 dataOut.IonTempFinal[0,:id_aux]=missing
7998 dataOut.EIonTempFinal[0,:id_aux]=missing
7999 dataOut.PhyFinal[0,:id_aux]=missing
8000 dataOut.EPhyFinal[0,:id_aux]=missing
8001 if (time_text.hour == 23 and time_text.minute >= 10) or (time_text.hour == 0 and time_text.minute <= 20): #Year: 2023, DOY:267
8002 id_aux = 22
8003 dataOut.DensityFinal[0,:id_aux]=missing
8004 dataOut.EDensityFinal[0,:id_aux]=missing
8005 dataOut.ElecTempFinal[0,:id_aux]=missing
8006 dataOut.EElecTempFinal[0,:id_aux]=missing
8007 dataOut.IonTempFinal[0,:id_aux]=missing
8008 dataOut.EIonTempFinal[0,:id_aux]=missing
8009 dataOut.PhyFinal[0,:id_aux]=missing
8010 dataOut.EPhyFinal[0,:id_aux]=missing
8011 if (time_text.hour == 23 and time_text.minute == 40): #Year: 2023, DOY:267
8012 id_aux = 24
8013 dataOut.DensityFinal[0,:id_aux]=missing
8014 dataOut.EDensityFinal[0,:id_aux]=missing
8015 dataOut.ElecTempFinal[0,:id_aux]=missing
8016 dataOut.EElecTempFinal[0,:id_aux]=missing
8017 dataOut.IonTempFinal[0,:id_aux]=missing
8018 dataOut.EIonTempFinal[0,:id_aux]=missing
8019 dataOut.PhyFinal[0,:id_aux]=missing
8020 dataOut.EPhyFinal[0,:id_aux]=missing
8021 '''
8022 '''
8023 if (time_text.hour == 11 and time_text.minute == 0): #Year: 2023, DOY:266
8024 id_aux = 28
8025 dataOut.DensityFinal[0,id_aux:]=missing
8026 dataOut.EDensityFinal[0,id_aux:]=missing
8027 dataOut.ElecTempFinal[0,id_aux:]=missing
8028 dataOut.EElecTempFinal[0,id_aux:]=missing
8029 dataOut.IonTempFinal[0,id_aux:]=missing
8030 dataOut.EIonTempFinal[0,id_aux:]=missing
8031 dataOut.PhyFinal[0,id_aux:]=missing
8032 dataOut.EPhyFinal[0,id_aux:]=missing
8033 if (time_text.hour == 9 and time_text.minute == 40) or (time_text.hour == 10 and time_text.minute <= 10): #Year: 2023, DOY:266
8034 id_aux = 33
8035 dataOut.DensityFinal[0,id_aux:]=missing
8036 dataOut.EDensityFinal[0,id_aux:]=missing
8037 dataOut.ElecTempFinal[0,id_aux:]=missing
8038 dataOut.EElecTempFinal[0,id_aux:]=missing
8039 dataOut.IonTempFinal[0,id_aux:]=missing
8040 dataOut.EIonTempFinal[0,id_aux:]=missing
8041 dataOut.PhyFinal[0,id_aux:]=missing
8042 dataOut.EPhyFinal[0,id_aux:]=missing
8043 if (time_text.hour == 12 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute <= 10) or (time_text.hour == 9 and time_text.minute == 30): #Year: 2023, DOY:266
8044 id_aux = 34
8045 dataOut.DensityFinal[0,id_aux:]=missing
8046 dataOut.EDensityFinal[0,id_aux:]=missing
8047 dataOut.ElecTempFinal[0,id_aux:]=missing
8048 dataOut.EElecTempFinal[0,id_aux:]=missing
8049 dataOut.IonTempFinal[0,id_aux:]=missing
8050 dataOut.EIonTempFinal[0,id_aux:]=missing
8051 dataOut.PhyFinal[0,id_aux:]=missing
8052 dataOut.EPhyFinal[0,id_aux:]=missing
8053 if (time_text.hour == 12 and time_text.minute == 10) or (time_text.hour == 12 and time_text.minute == 20) or (time_text.hour == 5 and time_text.minute == 50) or (time_text.hour == 8 and time_text.minute >= 30): #Year: 2023, DOY:266
8054 id_aux = 36
8055 dataOut.DensityFinal[0,id_aux:]=missing
8056 dataOut.EDensityFinal[0,id_aux:]=missing
8057 dataOut.ElecTempFinal[0,id_aux:]=missing
8058 dataOut.EElecTempFinal[0,id_aux:]=missing
8059 dataOut.IonTempFinal[0,id_aux:]=missing
8060 dataOut.EIonTempFinal[0,id_aux:]=missing
8061 dataOut.PhyFinal[0,id_aux:]=missing
8062 dataOut.EPhyFinal[0,id_aux:]=missing
8063 if (time_text.hour == 8 and time_text.minute == 10): #Year: 2023, DOY:266
8064 id_aux = 38
8065 dataOut.DensityFinal[0,id_aux:]=missing
8066 dataOut.EDensityFinal[0,id_aux:]=missing
8067 dataOut.ElecTempFinal[0,id_aux:]=missing
8068 dataOut.EElecTempFinal[0,id_aux:]=missing
8069 dataOut.IonTempFinal[0,id_aux:]=missing
8070 dataOut.EIonTempFinal[0,id_aux:]=missing
8071 dataOut.PhyFinal[0,id_aux:]=missing
8072 dataOut.EPhyFinal[0,id_aux:]=missing
8073 if (time_text.hour == 6 and time_text.minute == 0): #Year: 2023, DOY:266
8074 id_aux = 39
8075 dataOut.DensityFinal[0,id_aux:]=missing
8076 dataOut.EDensityFinal[0,id_aux:]=missing
8077 dataOut.ElecTempFinal[0,id_aux:]=missing
8078 dataOut.EElecTempFinal[0,id_aux:]=missing
8079 dataOut.IonTempFinal[0,id_aux:]=missing
8080 dataOut.EIonTempFinal[0,id_aux:]=missing
8081 dataOut.PhyFinal[0,id_aux:]=missing
8082 dataOut.EPhyFinal[0,id_aux:]=missing
8083 if (time_text.hour == 23 and time_text.minute == 20): #Year: 2023, DOY:266
8084 id_aux = 40
8085 dataOut.DensityFinal[0,id_aux:]=missing
8086 dataOut.EDensityFinal[0,id_aux:]=missing
8087 dataOut.ElecTempFinal[0,id_aux:]=missing
8088 dataOut.EElecTempFinal[0,id_aux:]=missing
8089 dataOut.IonTempFinal[0,id_aux:]=missing
8090 dataOut.EIonTempFinal[0,id_aux:]=missing
8091 dataOut.PhyFinal[0,id_aux:]=missing
8092 dataOut.EPhyFinal[0,id_aux:]=missing
8093 if (time_text.hour == 22 and time_text.minute == 10): #Year: 2023, DOY:266
8094 id_aux = 9
8095 dataOut.DensityFinal[0,:id_aux]=missing
8096 dataOut.EDensityFinal[0,:id_aux]=missing
8097 dataOut.ElecTempFinal[0,:id_aux]=missing
8098 dataOut.EElecTempFinal[0,:id_aux]=missing
8099 dataOut.IonTempFinal[0,:id_aux]=missing
8100 dataOut.EIonTempFinal[0,:id_aux]=missing
8101 dataOut.PhyFinal[0,:id_aux]=missing
8102 dataOut.EPhyFinal[0,:id_aux]=missing
8103 if (time_text.hour == 4) or (time_text.hour == 3 and time_text.minute >= 10) or (time_text.hour == 5 and time_text.minute == 10) or (time_text.hour == 5 and time_text.minute == 20) or (time_text.hour == 5 and time_text.minute == 30) or (time_text.hour == 6 and time_text.minute == 30) or (time_text.hour == 7): #Year: 2023, DOY:266
8104 id_aux = 11
8105 dataOut.DensityFinal[0,:id_aux]=missing
8106 dataOut.EDensityFinal[0,:id_aux]=missing
8107 dataOut.ElecTempFinal[0,:id_aux]=missing
8108 dataOut.EElecTempFinal[0,:id_aux]=missing
8109 dataOut.IonTempFinal[0,:id_aux]=missing
8110 dataOut.EIonTempFinal[0,:id_aux]=missing
8111 dataOut.PhyFinal[0,:id_aux]=missing
8112 dataOut.EPhyFinal[0,:id_aux]=missing
8113 if (time_text.hour == 3 and time_text.minute == 0) or (time_text.hour == 2 and time_text.minute >= 20) or (time_text.hour == 23 and time_text.minute == 10) or (time_text.hour == 22 and time_text.minute == 50) or (time_text.hour == 6 and time_text.minute == 40) or (time_text.hour == 10): #Year: 2023, DOY:266
8114 id_aux = 12
8115 dataOut.DensityFinal[0,:id_aux]=missing
8116 dataOut.EDensityFinal[0,:id_aux]=missing
8117 dataOut.ElecTempFinal[0,:id_aux]=missing
8118 dataOut.EElecTempFinal[0,:id_aux]=missing
8119 dataOut.IonTempFinal[0,:id_aux]=missing
8120 dataOut.EIonTempFinal[0,:id_aux]=missing
8121 dataOut.PhyFinal[0,:id_aux]=missing
8122 dataOut.EPhyFinal[0,:id_aux]=missing
8123 if (time_text.hour == 8) or (time_text.hour == 9): #Year: 2023, DOY:266
8124 id_aux = 13
8125 dataOut.DensityFinal[0,:id_aux]=missing
8126 dataOut.EDensityFinal[0,:id_aux]=missing
8127 dataOut.ElecTempFinal[0,:id_aux]=missing
8128 dataOut.EElecTempFinal[0,:id_aux]=missing
8129 dataOut.IonTempFinal[0,:id_aux]=missing
8130 dataOut.EIonTempFinal[0,:id_aux]=missing
8131 dataOut.PhyFinal[0,:id_aux]=missing
8132 dataOut.EPhyFinal[0,:id_aux]=missing
8133 if (time_text.hour == 23 and time_text.minute >= 20) or (time_text.hour == 0) or (time_text.hour == 1) or (time_text.hour == 2 and time_text.minute == 0): #Year: 2023, DOY:266
8134 id_aux = 21
8135 dataOut.DensityFinal[0,:id_aux]=missing
8136 dataOut.EDensityFinal[0,:id_aux]=missing
8137 dataOut.ElecTempFinal[0,:id_aux]=missing
8138 dataOut.EElecTempFinal[0,:id_aux]=missing
8139 dataOut.IonTempFinal[0,:id_aux]=missing
8140 dataOut.EIonTempFinal[0,:id_aux]=missing
8141 dataOut.PhyFinal[0,:id_aux]=missing
8142 dataOut.EPhyFinal[0,:id_aux]=missing
8143 '''
8144 '''
8145 if (time_text.hour == 5 and time_text.minute <= 10): #Year: 2023, DOY:265
8146 id_aux = 24
8147 dataOut.DensityFinal[0,id_aux:]=missing
8148 dataOut.EDensityFinal[0,id_aux:]=missing
8149 dataOut.ElecTempFinal[0,id_aux:]=missing
8150 dataOut.EElecTempFinal[0,id_aux:]=missing
8151 dataOut.IonTempFinal[0,id_aux:]=missing
8152 dataOut.EIonTempFinal[0,id_aux:]=missing
8153 dataOut.PhyFinal[0,id_aux:]=missing
8154 dataOut.EPhyFinal[0,id_aux:]=missing
8155 if (time_text.hour == 2 and time_text.minute == 40): #Year: 2023, DOY:265
8156 id_aux = 28
8157 dataOut.DensityFinal[0,id_aux:]=missing
8158 dataOut.EDensityFinal[0,id_aux:]=missing
8159 dataOut.ElecTempFinal[0,id_aux:]=missing
8160 dataOut.EElecTempFinal[0,id_aux:]=missing
8161 dataOut.IonTempFinal[0,id_aux:]=missing
8162 dataOut.EIonTempFinal[0,id_aux:]=missing
8163 dataOut.PhyFinal[0,id_aux:]=missing
8164 dataOut.EPhyFinal[0,id_aux:]=missing
8165 if (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 6 and time_text.minute == 0) or (time_text.hour == 6 and time_text.minute == 20) or (time_text.hour == 3 and time_text.minute == 0): #Year: 2023, DOY:265
8166 id_aux = 30
8167 dataOut.DensityFinal[0,id_aux:]=missing
8168 dataOut.EDensityFinal[0,id_aux:]=missing
8169 dataOut.ElecTempFinal[0,id_aux:]=missing
8170 dataOut.EElecTempFinal[0,id_aux:]=missing
8171 dataOut.IonTempFinal[0,id_aux:]=missing
8172 dataOut.EIonTempFinal[0,id_aux:]=missing
8173 dataOut.PhyFinal[0,id_aux:]=missing
8174 dataOut.EPhyFinal[0,id_aux:]=missing
8175 if (time_text.hour == 11) or (time_text.hour == 12 and time_text.minute <= 10): #Year: 2023, DOY:265
8176 id_aux = 31
8177 dataOut.DensityFinal[0,id_aux:]=missing
8178 dataOut.EDensityFinal[0,id_aux:]=missing
8179 dataOut.ElecTempFinal[0,id_aux:]=missing
8180 dataOut.EElecTempFinal[0,id_aux:]=missing
8181 dataOut.IonTempFinal[0,id_aux:]=missing
8182 dataOut.EIonTempFinal[0,id_aux:]=missing
8183 dataOut.PhyFinal[0,id_aux:]=missing
8184 dataOut.EPhyFinal[0,id_aux:]=missing
8185 if (time_text.hour == 2 and time_text.minute == 50) or (time_text.hour == 3 and time_text.minute == 20) or (time_text.hour == 3 and time_text.minute == 30) or (time_text.hour == 3 and time_text.minute == 50): #Year: 2023, DOY:265
8186 id_aux = 32
8187 dataOut.DensityFinal[0,id_aux:]=missing
8188 dataOut.EDensityFinal[0,id_aux:]=missing
8189 dataOut.ElecTempFinal[0,id_aux:]=missing
8190 dataOut.EElecTempFinal[0,id_aux:]=missing
8191 dataOut.IonTempFinal[0,id_aux:]=missing
8192 dataOut.EIonTempFinal[0,id_aux:]=missing
8193 dataOut.PhyFinal[0,id_aux:]=missing
8194 dataOut.EPhyFinal[0,id_aux:]=missing
8195 if (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 12 and time_text.minute == 50) or (time_text.hour == 13 and time_text.minute == 0) or (time_text.hour == 13 and time_text.minute == 50) or (time_text.hour == 4 and time_text.minute <= 10): #Year: 2023, DOY:265
8196 id_aux = 33
8197 dataOut.DensityFinal[0,id_aux:]=missing
8198 dataOut.EDensityFinal[0,id_aux:]=missing
8199 dataOut.ElecTempFinal[0,id_aux:]=missing
8200 dataOut.EElecTempFinal[0,id_aux:]=missing
8201 dataOut.IonTempFinal[0,id_aux:]=missing
8202 dataOut.EIonTempFinal[0,id_aux:]=missing
8203 dataOut.PhyFinal[0,id_aux:]=missing
8204 dataOut.EPhyFinal[0,id_aux:]=missing
8205 if (time_text.hour == 3 and time_text.minute == 10) or (time_text.hour == 14 and time_text.minute == 0): #Year: 2023, DOY:265
8206 id_aux = 34
8207 dataOut.DensityFinal[0,id_aux:]=missing
8208 dataOut.EDensityFinal[0,id_aux:]=missing
8209 dataOut.ElecTempFinal[0,id_aux:]=missing
8210 dataOut.EElecTempFinal[0,id_aux:]=missing
8211 dataOut.IonTempFinal[0,id_aux:]=missing
8212 dataOut.EIonTempFinal[0,id_aux:]=missing
8213 dataOut.PhyFinal[0,id_aux:]=missing
8214 dataOut.EPhyFinal[0,id_aux:]=missing
8215 if (time_text.hour == 6 and time_text.minute >= 30) or (time_text.hour == 7 and time_text.minute == 10): #Year: 2023, DOY:265
8216 id_aux = 35
8217 dataOut.DensityFinal[0,id_aux:]=missing
8218 dataOut.EDensityFinal[0,id_aux:]=missing
8219 dataOut.ElecTempFinal[0,id_aux:]=missing
8220 dataOut.EElecTempFinal[0,id_aux:]=missing
8221 dataOut.IonTempFinal[0,id_aux:]=missing
8222 dataOut.EIonTempFinal[0,id_aux:]=missing
8223 dataOut.PhyFinal[0,id_aux:]=missing
8224 dataOut.EPhyFinal[0,id_aux:]=missing
8225 if (time_text.hour == 15 and time_text.minute == 0): #Year: 2023, DOY:265
8226 id_aux = 38
8227 dataOut.DensityFinal[0,id_aux:]=missing
8228 dataOut.EDensityFinal[0,id_aux:]=missing
8229 dataOut.ElecTempFinal[0,id_aux:]=missing
8230 dataOut.EElecTempFinal[0,id_aux:]=missing
8231 dataOut.IonTempFinal[0,id_aux:]=missing
8232 dataOut.EIonTempFinal[0,id_aux:]=missing
8233 dataOut.PhyFinal[0,id_aux:]=missing
8234 dataOut.EPhyFinal[0,id_aux:]=missing
8235 if (time_text.hour == 23) or (time_text.hour == 4 and time_text.minute == 30): #Year: 2023, DOY:265
8236 id_aux = 15
8237 dataOut.DensityFinal[0,:id_aux]=missing
8238 dataOut.EDensityFinal[0,:id_aux]=missing
8239 dataOut.ElecTempFinal[0,:id_aux]=missing
8240 dataOut.EElecTempFinal[0,:id_aux]=missing
8241 dataOut.IonTempFinal[0,:id_aux]=missing
8242 dataOut.EIonTempFinal[0,:id_aux]=missing
8243 dataOut.PhyFinal[0,:id_aux]=missing
8244 dataOut.EPhyFinal[0,:id_aux]=missing
8245 if (time_text.hour == 2 and time_text.minute == 40): #Year: 2023, DOY:265
8246 id_aux = 17
8247 dataOut.DensityFinal[0,:id_aux]=missing
8248 dataOut.EDensityFinal[0,:id_aux]=missing
8249 dataOut.ElecTempFinal[0,:id_aux]=missing
8250 dataOut.EElecTempFinal[0,:id_aux]=missing
8251 dataOut.IonTempFinal[0,:id_aux]=missing
8252 dataOut.EIonTempFinal[0,:id_aux]=missing
8253 dataOut.PhyFinal[0,:id_aux]=missing
8254 dataOut.EPhyFinal[0,:id_aux]=missing
8255 if (time_text.hour == 5) or (time_text.hour == 10 and time_text.minute == 40) or (time_text.hour == 8 and time_text.minute == 0): #Year: 2023, DOY:265
8256 id_aux = 10
8257 dataOut.DensityFinal[0,:id_aux]=missing
8258 dataOut.EDensityFinal[0,:id_aux]=missing
8259 dataOut.ElecTempFinal[0,:id_aux]=missing
8260 dataOut.EElecTempFinal[0,:id_aux]=missing
8261 dataOut.IonTempFinal[0,:id_aux]=missing
8262 dataOut.EIonTempFinal[0,:id_aux]=missing
8263 dataOut.PhyFinal[0,:id_aux]=missing
8264 dataOut.EPhyFinal[0,:id_aux]=missing
8265 if (time_text.hour == 2 and time_text.minute == 50) or (time_text.hour == 3 and time_text.minute <= 30) or (time_text.hour == 3 and time_text.minute == 50) or (time_text.hour == 4 and time_text.minute == 0) or (time_text.hour == 22 and time_text.minute >= 40) or (time_text.hour == 10 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute >= 30) or (time_text.hour == 9) or (time_text.hour == 10 and time_text.minute <= 30): #Year: 2023, DOY:265
8266 id_aux = 11
8267 dataOut.DensityFinal[0,:id_aux]=missing
8268 dataOut.EDensityFinal[0,:id_aux]=missing
8269 dataOut.ElecTempFinal[0,:id_aux]=missing
8270 dataOut.EElecTempFinal[0,:id_aux]=missing
8271 dataOut.IonTempFinal[0,:id_aux]=missing
8272 dataOut.EIonTempFinal[0,:id_aux]=missing
8273 dataOut.PhyFinal[0,:id_aux]=missing
8274 dataOut.EPhyFinal[0,:id_aux]=missing
8275 if (time_text.hour == 4 and time_text.minute == 20): #Year: 2023, DOY:265
8276 id_aux = 13
8277 dataOut.DensityFinal[0,:id_aux]=missing
8278 dataOut.EDensityFinal[0,:id_aux]=missing
8279 dataOut.ElecTempFinal[0,:id_aux]=missing
8280 dataOut.EElecTempFinal[0,:id_aux]=missing
8281 dataOut.IonTempFinal[0,:id_aux]=missing
8282 dataOut.EIonTempFinal[0,:id_aux]=missing
8283 dataOut.PhyFinal[0,:id_aux]=missing
8284 dataOut.EPhyFinal[0,:id_aux]=missing
8285 if (time_text.hour == 3 and time_text.minute == 40): #Year: 2023, DOY:265
8286 id_aux = 14
8287 dataOut.DensityFinal[0,:id_aux]=missing
8288 dataOut.EDensityFinal[0,:id_aux]=missing
8289 dataOut.ElecTempFinal[0,:id_aux]=missing
8290 dataOut.EElecTempFinal[0,:id_aux]=missing
8291 dataOut.IonTempFinal[0,:id_aux]=missing
8292 dataOut.EIonTempFinal[0,:id_aux]=missing
8293 dataOut.PhyFinal[0,:id_aux]=missing
8294 dataOut.EPhyFinal[0,:id_aux]=missing
8295 if (time_text.hour == 23 and time_text.minute >= 30) or (time_text.hour == 0 or time_text.hour == 1): #Year: 2023, DOY:265
8296 id_aux = 22
8297 dataOut.DensityFinal[0,:id_aux]=missing
8298 dataOut.EDensityFinal[0,:id_aux]=missing
8299 dataOut.ElecTempFinal[0,:id_aux]=missing
8300 dataOut.EElecTempFinal[0,:id_aux]=missing
8301 dataOut.IonTempFinal[0,:id_aux]=missing
8302 dataOut.EIonTempFinal[0,:id_aux]=missing
8303 dataOut.PhyFinal[0,:id_aux]=missing
8304 dataOut.EPhyFinal[0,:id_aux]=missing
8305 if (time_text.hour == 23 and time_text.minute == 50): #Year: 2023, DOY:265
8306 id_aux = 25
8307 dataOut.DensityFinal[0,:id_aux]=missing
8308 dataOut.EDensityFinal[0,:id_aux]=missing
8309 dataOut.ElecTempFinal[0,:id_aux]=missing
8310 dataOut.EElecTempFinal[0,:id_aux]=missing
8311 dataOut.IonTempFinal[0,:id_aux]=missing
8312 dataOut.EIonTempFinal[0,:id_aux]=missing
8313 dataOut.PhyFinal[0,:id_aux]=missing
8314 dataOut.EPhyFinal[0,:id_aux]=missing
8315 '''
8316 '''
8317 if (time_text.hour == 14 and time_text.minute == 10): #Year: 2023, DOY:264
8318 id_aux = 39
8319 dataOut.DensityFinal[0,id_aux:]=missing
8320 dataOut.EDensityFinal[0,id_aux:]=missing
8321 dataOut.ElecTempFinal[0,id_aux:]=missing
8322 dataOut.EElecTempFinal[0,id_aux:]=missing
8323 dataOut.IonTempFinal[0,id_aux:]=missing
8324 dataOut.EIonTempFinal[0,id_aux:]=missing
8325 dataOut.PhyFinal[0,id_aux:]=missing
8326 dataOut.EPhyFinal[0,id_aux:]=missing
8327 if (time_text.hour == 22): #Year: 2023, DOY:264
8328 id_aux = 9
8329 dataOut.DensityFinal[0,:id_aux]=missing
8330 dataOut.EDensityFinal[0,:id_aux]=missing
8331 dataOut.ElecTempFinal[0,:id_aux]=missing
8332 dataOut.EElecTempFinal[0,:id_aux]=missing
8333 dataOut.IonTempFinal[0,:id_aux]=missing
8334 dataOut.EIonTempFinal[0,:id_aux]=missing
8335 dataOut.PhyFinal[0,:id_aux]=missing
8336 dataOut.EPhyFinal[0,:id_aux]=missing
8337 if (time_text.hour == 22 and time_text.minute == 40) or(time_text.hour == 3 or time_text.hour == 4) : #Year: 2023, DOY:264
8338 id_aux = 12
8339 dataOut.DensityFinal[0,:id_aux]=missing
8340 dataOut.EDensityFinal[0,:id_aux]=missing
8341 dataOut.ElecTempFinal[0,:id_aux]=missing
8342 dataOut.EElecTempFinal[0,:id_aux]=missing
8343 dataOut.IonTempFinal[0,:id_aux]=missing
8344 dataOut.EIonTempFinal[0,:id_aux]=missing
8345 dataOut.PhyFinal[0,:id_aux]=missing
8346 dataOut.EPhyFinal[0,:id_aux]=missing
8347 '''
8348 '''
8349 if (time_text.hour == 5 and time_text.minute == 40) or (time_text.hour == 6 and time_text.minute >= 10) or (time_text.hour == 8 and time_text.minute == 30) or (time_text.hour == 8 and time_text.minute == 40) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 9 and time_text.minute == 50): #Year: 2023, DOY:269
8350 id_aux = 35
8351 dataOut.DensityFinal[0,id_aux:]=missing
8352 dataOut.EDensityFinal[0,id_aux:]=missing
8353 dataOut.ElecTempFinal[0,id_aux:]=missing
8354 dataOut.EElecTempFinal[0,id_aux:]=missing
8355 dataOut.IonTempFinal[0,id_aux:]=missing
8356 dataOut.EIonTempFinal[0,id_aux:]=missing
8357 dataOut.PhyFinal[0,id_aux:]=missing
8358 dataOut.EPhyFinal[0,id_aux:]=missing
8359 if (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 8 and time_text.minute == 10) or (time_text.hour == 8 and time_text.minute == 20) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 11 and time_text.minute == 10): #Year: 2023, DOY:269
8360 id_aux = 34
8361 dataOut.DensityFinal[0,id_aux:]=missing
8362 dataOut.EDensityFinal[0,id_aux:]=missing
8363 dataOut.ElecTempFinal[0,id_aux:]=missing
8364 dataOut.EElecTempFinal[0,id_aux:]=missing
8365 dataOut.IonTempFinal[0,id_aux:]=missing
8366 dataOut.EIonTempFinal[0,id_aux:]=missing
8367 dataOut.PhyFinal[0,id_aux:]=missing
8368 dataOut.EPhyFinal[0,id_aux:]=missing
8369 if (time_text.hour == 8 and time_text.minute == 50): #Year: 2023, DOY:269
8370 id_aux = 38
8371 dataOut.DensityFinal[0,id_aux:]=missing
8372 dataOut.EDensityFinal[0,id_aux:]=missing
8373 dataOut.ElecTempFinal[0,id_aux:]=missing
8374 dataOut.EElecTempFinal[0,id_aux:]=missing
8375 dataOut.IonTempFinal[0,id_aux:]=missing
8376 dataOut.EIonTempFinal[0,id_aux:]=missing
8377 dataOut.PhyFinal[0,id_aux:]=missing
8378 dataOut.EPhyFinal[0,id_aux:]=missing
8379 if (time_text.hour == 10 and time_text.minute == 50) or (time_text.hour == 11 and time_text.minute == 0): #Year: 2023, DOY:269
8380 id_aux = 32
8381 dataOut.DensityFinal[0,id_aux:]=missing
8382 dataOut.EDensityFinal[0,id_aux:]=missing
8383 dataOut.ElecTempFinal[0,id_aux:]=missing
8384 dataOut.EElecTempFinal[0,id_aux:]=missing
8385 dataOut.IonTempFinal[0,id_aux:]=missing
8386 dataOut.EIonTempFinal[0,id_aux:]=missing
8387 dataOut.PhyFinal[0,id_aux:]=missing
8388 dataOut.EPhyFinal[0,id_aux:]=missing
8389 if (time_text.hour == 11 and time_text.minute == 20): #Year: 2023, DOY:269
8390 id_aux = 30
8391 dataOut.DensityFinal[0,id_aux:]=missing
8392 dataOut.EDensityFinal[0,id_aux:]=missing
8393 dataOut.ElecTempFinal[0,id_aux:]=missing
8394 dataOut.EElecTempFinal[0,id_aux:]=missing
8395 dataOut.IonTempFinal[0,id_aux:]=missing
8396 dataOut.EIonTempFinal[0,id_aux:]=missing
8397 dataOut.PhyFinal[0,id_aux:]=missing
8398 dataOut.EPhyFinal[0,id_aux:]=missing
8399 if (time_text.hour == 11 and time_text.minute == 50) or (time_text.hour == 12 and time_text.minute == 10): #Year: 2023, DOY:269
8400 id_aux = 36
8401 dataOut.DensityFinal[0,id_aux:]=missing
8402 dataOut.EDensityFinal[0,id_aux:]=missing
8403 dataOut.ElecTempFinal[0,id_aux:]=missing
8404 dataOut.EElecTempFinal[0,id_aux:]=missing
8405 dataOut.IonTempFinal[0,id_aux:]=missing
8406 dataOut.EIonTempFinal[0,id_aux:]=missing
8407 dataOut.PhyFinal[0,id_aux:]=missing
8408 dataOut.EPhyFinal[0,id_aux:]=missing
8409 if (time_text.hour >= 5 or time_text.hour <= 9): #Year: 2023, DOY:269
8410 id_aux = 11
8411 dataOut.DensityFinal[0,:id_aux]=missing
8412 dataOut.EDensityFinal[0,:id_aux]=missing
8413 dataOut.ElecTempFinal[0,:id_aux]=missing
8414 dataOut.EElecTempFinal[0,:id_aux]=missing
8415 dataOut.IonTempFinal[0,:id_aux]=missing
8416 dataOut.EIonTempFinal[0,:id_aux]=missing
8417 dataOut.PhyFinal[0,:id_aux]=missing
8418 dataOut.EPhyFinal[0,:id_aux]=missing
8419 if (time_text.hour == 7) or (time_text.hour == 8 or time_text.minute == 20): #Year: 2023, DOY:269
8420 id_aux = 12
8421 dataOut.DensityFinal[0,:id_aux]=missing
8422 dataOut.EDensityFinal[0,:id_aux]=missing
8423 dataOut.ElecTempFinal[0,:id_aux]=missing
8424 dataOut.EElecTempFinal[0,:id_aux]=missing
8425 dataOut.IonTempFinal[0,:id_aux]=missing
8426 dataOut.EIonTempFinal[0,:id_aux]=missing
8427 dataOut.PhyFinal[0,:id_aux]=missing
8428 dataOut.EPhyFinal[0,:id_aux]=missing
8429 '''
8430 '''
8431 if (time_text.hour == 6 and time_text.minute == 50) or (time_text.hour == 7 and time_text.minute < 30): #Year: 2023, DOY:250
8432 id_aux = 37
8433 dataOut.DensityFinal[0,id_aux:]=missing
8434 dataOut.EDensityFinal[0,id_aux:]=missing
8435 dataOut.ElecTempFinal[0,id_aux:]=missing
8436 dataOut.EElecTempFinal[0,id_aux:]=missing
8437 dataOut.IonTempFinal[0,id_aux:]=missing
8438 dataOut.EIonTempFinal[0,id_aux:]=missing
8439 dataOut.PhyFinal[0,id_aux:]=missing
8440 dataOut.EPhyFinal[0,id_aux:]=missing
8441 if (time_text.hour == 7 and time_text.minute >= 30) or (time_text.hour == 8 and time_text.minute == 0) or (time_text.hour == 9 and time_text.minute == 10) or (time_text.hour == 11 and time_text.minute == 40) or (time_text.hour == 12 and time_text.minute == 50): #Year: 2023, DOY:250
8442 id_aux = 34
8443 dataOut.DensityFinal[0,id_aux:]=missing
8444 dataOut.EDensityFinal[0,id_aux:]=missing
8445 dataOut.ElecTempFinal[0,id_aux:]=missing
8446 dataOut.EElecTempFinal[0,id_aux:]=missing
8447 dataOut.IonTempFinal[0,id_aux:]=missing
8448 dataOut.EIonTempFinal[0,id_aux:]=missing
8449 dataOut.PhyFinal[0,id_aux:]=missing
8450 dataOut.EPhyFinal[0,id_aux:]=missing
8451 if (time_text.hour >= 5 and time_text.hour <= 9) or (time_text.hour == 10 and time_text.minute <= 40): #Year: 2023, DOY:250
8452 id_aux = 12
8453 dataOut.DensityFinal[0,:id_aux]=missing
8454 dataOut.EDensityFinal[0,:id_aux]=missing
8455 dataOut.ElecTempFinal[0,:id_aux]=missing
8456 dataOut.EElecTempFinal[0,:id_aux]=missing
8457 dataOut.IonTempFinal[0,:id_aux]=missing
8458 dataOut.EIonTempFinal[0,:id_aux]=missing
8459 dataOut.PhyFinal[0,:id_aux]=missing
8460 dataOut.EPhyFinal[0,:id_aux]=missing
8461 if (time_text.hour == 10 or time_text.hour == 11): #Year: 2023, DOY:250
8462 id_aux = 10
8463 dataOut.DensityFinal[0,:id_aux]=missing
8464 dataOut.EDensityFinal[0,:id_aux]=missing
8465 dataOut.ElecTempFinal[0,:id_aux]=missing
8466 dataOut.EElecTempFinal[0,:id_aux]=missing
8467 dataOut.IonTempFinal[0,:id_aux]=missing
8468 dataOut.EIonTempFinal[0,:id_aux]=missing
8469 dataOut.PhyFinal[0,:id_aux]=missing
8470 dataOut.EPhyFinal[0,:id_aux]=missing
8471 '''
8472 '''
8473 if (time_text.hour == 5 and time_text.minute == 30) or (time_text.hour == 6 and time_text.minute == 0): #Year: 2023, DOY:249
8474 id_aux = 38
8475 dataOut.DensityFinal[0,id_aux:]=missing
8476 dataOut.EDensityFinal[0,id_aux:]=missing
8477 dataOut.ElecTempFinal[0,id_aux:]=missing
8478 dataOut.EElecTempFinal[0,id_aux:]=missing
8479 dataOut.IonTempFinal[0,id_aux:]=missing
8480 dataOut.EIonTempFinal[0,id_aux:]=missing
8481 dataOut.PhyFinal[0,id_aux:]=missing
8482 dataOut.EPhyFinal[0,id_aux:]=missing
8483 if (time_text.hour >= 8 and time_text.hour <= 11) or (time_text.hour == 12 and time_text.minute <= 20): #Year: 2023, DOY:249
8484 id_aux = 36
8485 dataOut.DensityFinal[0,id_aux:]=missing
8486 dataOut.EDensityFinal[0,id_aux:]=missing
8487 dataOut.ElecTempFinal[0,id_aux:]=missing
8488 dataOut.EElecTempFinal[0,id_aux:]=missing
8489 dataOut.IonTempFinal[0,id_aux:]=missing
8490 dataOut.EIonTempFinal[0,id_aux:]=missing
8491 dataOut.PhyFinal[0,id_aux:]=missing
8492 dataOut.EPhyFinal[0,id_aux:]=missing
8493 if (time_text.hour == 13 and time_text.minute == 0): #Year: 2023, DOY:249
8494 id_aux = 40
8495 dataOut.DensityFinal[0,id_aux:]=missing
8496 dataOut.EDensityFinal[0,id_aux:]=missing
8497 dataOut.ElecTempFinal[0,id_aux:]=missing
8498 dataOut.EElecTempFinal[0,id_aux:]=missing
8499 dataOut.IonTempFinal[0,id_aux:]=missing
8500 dataOut.EIonTempFinal[0,id_aux:]=missing
8501 dataOut.PhyFinal[0,id_aux:]=missing
8502 dataOut.EPhyFinal[0,id_aux:]=missing
8503 if (time_text.hour == 4 and time_text.minute == 10): #Year: 2023, DOY:249
8504 id_aux = 23
8505 dataOut.DensityFinal[0,id_aux:]=missing
8506 dataOut.EDensityFinal[0,id_aux:]=missing
8507 dataOut.ElecTempFinal[0,id_aux:]=missing
8508 dataOut.EElecTempFinal[0,id_aux:]=missing
8509 dataOut.IonTempFinal[0,id_aux:]=missing
8510 dataOut.EIonTempFinal[0,id_aux:]=missing
8511 dataOut.PhyFinal[0,id_aux:]=missing
8512 dataOut.EPhyFinal[0,id_aux:]=missing
8513 if (time_text.hour == 4 and time_text.minute == 20): #Year: 2023, DOY:249
8514 id_aux = 29
8515 dataOut.DensityFinal[0,id_aux:]=missing
8516 dataOut.EDensityFinal[0,id_aux:]=missing
8517 dataOut.ElecTempFinal[0,id_aux:]=missing
8518 dataOut.EElecTempFinal[0,id_aux:]=missing
8519 dataOut.IonTempFinal[0,id_aux:]=missing
8520 dataOut.EIonTempFinal[0,id_aux:]=missing
8521 dataOut.PhyFinal[0,id_aux:]=missing
8522 dataOut.EPhyFinal[0,id_aux:]=missing
8523 if (time_text.hour == 5): #Year: 2023, DOY:249
8524 id_aux = 11
8525 dataOut.DensityFinal[0,:id_aux]=missing
8526 dataOut.EDensityFinal[0,:id_aux]=missing
8527 dataOut.ElecTempFinal[0,:id_aux]=missing
8528 dataOut.EElecTempFinal[0,:id_aux]=missing
8529 dataOut.IonTempFinal[0,:id_aux]=missing
8530 dataOut.EIonTempFinal[0,:id_aux]=missing
8531 dataOut.PhyFinal[0,:id_aux]=missing
8532 dataOut.EPhyFinal[0,:id_aux]=missing
8533 if (time_text.hour >= 6 and time_text.hour <= 8): #Year: 2023, DOY:249
8534 id_aux = 10
8535 dataOut.DensityFinal[0,:id_aux]=missing
8536 dataOut.EDensityFinal[0,:id_aux]=missing
8537 dataOut.ElecTempFinal[0,:id_aux]=missing
8538 dataOut.EElecTempFinal[0,:id_aux]=missing
8539 dataOut.IonTempFinal[0,:id_aux]=missing
8540 dataOut.EIonTempFinal[0,:id_aux]=missing
8541 dataOut.PhyFinal[0,:id_aux]=missing
8542 dataOut.EPhyFinal[0,:id_aux]=missing
8543 if (time_text.hour >= 8 and time_text.hour <= 10): #Year: 2023, DOY:249
8544 id_aux = 13
8545 dataOut.DensityFinal[0,:id_aux]=missing
8546 dataOut.EDensityFinal[0,:id_aux]=missing
8547 dataOut.ElecTempFinal[0,:id_aux]=missing
8548 dataOut.EElecTempFinal[0,:id_aux]=missing
8549 dataOut.IonTempFinal[0,:id_aux]=missing
8550 dataOut.EIonTempFinal[0,:id_aux]=missing
8551 dataOut.PhyFinal[0,:id_aux]=missing
8552 dataOut.EPhyFinal[0,:id_aux]=missing
8553 if (time_text.hour == 23 and time_text.minute <= 20): #Year: 2023, DOY:249
8554 id_aux = 13
8555 dataOut.DensityFinal[0,:id_aux]=missing
8556 dataOut.EDensityFinal[0,:id_aux]=missing
8557 dataOut.ElecTempFinal[0,:id_aux]=missing
8558 dataOut.EElecTempFinal[0,:id_aux]=missing
8559 dataOut.IonTempFinal[0,:id_aux]=missing
8560 dataOut.EIonTempFinal[0,:id_aux]=missing
8561 dataOut.PhyFinal[0,:id_aux]=missing
8562 dataOut.EPhyFinal[0,:id_aux]=missing
8563 if (time_text.hour == 23 and time_text.minute >= 40) or (time_text.hour >= 0 and time_text.hour < 3): #Year: 2023, DOY:249
8564 id_aux = 17
8565 dataOut.DensityFinal[0,:id_aux]=missing
8566 dataOut.EDensityFinal[0,:id_aux]=missing
8567 dataOut.ElecTempFinal[0,:id_aux]=missing
8568 dataOut.EElecTempFinal[0,:id_aux]=missing
8569 dataOut.IonTempFinal[0,:id_aux]=missing
8570 dataOut.EIonTempFinal[0,:id_aux]=missing
8571 dataOut.PhyFinal[0,:id_aux]=missing
8572 dataOut.EPhyFinal[0,:id_aux]=missing
8573 if (time_text.hour == 3 and time_text.minute == 0): #Year: 2023, DOY:249
8574 id_aux = 16
8575 dataOut.DensityFinal[0,:id_aux]=missing
8576 dataOut.EDensityFinal[0,:id_aux]=missing
8577 dataOut.ElecTempFinal[0,:id_aux]=missing
8578 dataOut.EElecTempFinal[0,:id_aux]=missing
8579 dataOut.IonTempFinal[0,:id_aux]=missing
8580 dataOut.EIonTempFinal[0,:id_aux]=missing
8581 dataOut.PhyFinal[0,:id_aux]=missing
8582 dataOut.EPhyFinal[0,:id_aux]=missing
8583 if (time_text.hour == 3 and time_text.minute == 10): #Year: 2023, DOY:249
8584 id_aux = 15
8585 dataOut.DensityFinal[0,:id_aux]=missing
8586 dataOut.EDensityFinal[0,:id_aux]=missing
8587 dataOut.ElecTempFinal[0,:id_aux]=missing
8588 dataOut.EElecTempFinal[0,:id_aux]=missing
8589 dataOut.IonTempFinal[0,:id_aux]=missing
8590 dataOut.EIonTempFinal[0,:id_aux]=missing
8591 dataOut.PhyFinal[0,:id_aux]=missing
8592 dataOut.EPhyFinal[0,:id_aux]=missing
8593 if (time_text.hour == 0): #Year: 2023, DOY:249
8594 id_aux = 20
8595 dataOut.DensityFinal[0,:id_aux]=missing
8596 dataOut.EDensityFinal[0,:id_aux]=missing
8597 dataOut.ElecTempFinal[0,:id_aux]=missing
8598 dataOut.EElecTempFinal[0,:id_aux]=missing
8599 dataOut.IonTempFinal[0,:id_aux]=missing
8600 dataOut.EIonTempFinal[0,:id_aux]=missing
8601 dataOut.PhyFinal[0,:id_aux]=missing
8602 dataOut.EPhyFinal[0,:id_aux]=missing
8603 if (time_text.hour == 3 or time_text.hour == 4): #Year: 2023, DOY:249
8604 id_aux = 12
8605 dataOut.DensityFinal[0,:id_aux]=missing
8606 dataOut.EDensityFinal[0,:id_aux]=missing
8607 dataOut.ElecTempFinal[0,:id_aux]=missing
8608 dataOut.EElecTempFinal[0,:id_aux]=missing
8609 dataOut.IonTempFinal[0,:id_aux]=missing
8610 dataOut.EIonTempFinal[0,:id_aux]=missing
8611 dataOut.PhyFinal[0,:id_aux]=missing
8612 dataOut.EPhyFinal[0,:id_aux]=missing
8613 '''
8614 '''
8615 if (time_text.hour == 5 and time_text.minute == 30) or (time_text.hour == 0 and time_text.minute == 20) or (time_text.hour == 0 and time_text.minute == 40): #Year: 2023, DOY:248
8616 id_aux = 38
8617 dataOut.DensityFinal[0,id_aux:]=missing
8618 dataOut.EDensityFinal[0,id_aux:]=missing
8619 dataOut.ElecTempFinal[0,id_aux:]=missing
8620 dataOut.EElecTempFinal[0,id_aux:]=missing
8621 dataOut.IonTempFinal[0,id_aux:]=missing
8622 dataOut.EIonTempFinal[0,id_aux:]=missing
8623 dataOut.PhyFinal[0,id_aux:]=missing
8624 dataOut.EPhyFinal[0,id_aux:]=missing
8625 if (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 12 and time_text.minute == 20) or (time_text.hour == 12 and time_text.minute == 40): #Year: 2023, DOY:248
8626 id_aux = 37
8627 dataOut.DensityFinal[0,id_aux:]=missing
8628 dataOut.EDensityFinal[0,id_aux:]=missing
8629 dataOut.ElecTempFinal[0,id_aux:]=missing
8630 dataOut.EElecTempFinal[0,id_aux:]=missing
8631 dataOut.IonTempFinal[0,id_aux:]=missing
8632 dataOut.EIonTempFinal[0,id_aux:]=missing
8633 dataOut.PhyFinal[0,id_aux:]=missing
8634 dataOut.EPhyFinal[0,id_aux:]=missing
8635 if (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 13 and time_text.minute == 30): #Year: 2023, DOY:248
8636 id_aux = 36
8637 dataOut.DensityFinal[0,id_aux:]=missing
8638 dataOut.EDensityFinal[0,id_aux:]=missing
8639 dataOut.ElecTempFinal[0,id_aux:]=missing
8640 dataOut.EElecTempFinal[0,id_aux:]=missing
8641 dataOut.IonTempFinal[0,id_aux:]=missing
8642 dataOut.EIonTempFinal[0,id_aux:]=missing
8643 dataOut.PhyFinal[0,id_aux:]=missing
8644 dataOut.EPhyFinal[0,id_aux:]=missing
8645 if (time_text.hour == 8 and time_text.minute <= 30) or (time_text.hour == 8 and time_text.minute == 50) or (time_text.hour == 9) or (time_text.hour == 11 and time_text.minute == 50): #Year: 2023, DOY:248
8646 id_aux = 35
8647 dataOut.DensityFinal[0,id_aux:]=missing
8648 dataOut.EDensityFinal[0,id_aux:]=missing
8649 dataOut.ElecTempFinal[0,id_aux:]=missing
8650 dataOut.EElecTempFinal[0,id_aux:]=missing
8651 dataOut.IonTempFinal[0,id_aux:]=missing
8652 dataOut.EIonTempFinal[0,id_aux:]=missing
8653 dataOut.PhyFinal[0,id_aux:]=missing
8654 dataOut.EPhyFinal[0,id_aux:]=missing
8655 if (time_text.hour == 11 and time_text.minute == 30): #Year: 2023, DOY:248
8656 id_aux = 30
8657 dataOut.DensityFinal[0,id_aux:]=missing
8658 dataOut.EDensityFinal[0,id_aux:]=missing
8659 dataOut.ElecTempFinal[0,id_aux:]=missing
8660 dataOut.EElecTempFinal[0,id_aux:]=missing
8661 dataOut.IonTempFinal[0,id_aux:]=missing
8662 dataOut.EIonTempFinal[0,id_aux:]=missing
8663 dataOut.PhyFinal[0,id_aux:]=missing
8664 dataOut.EPhyFinal[0,id_aux:]=missing
8665 if (time_text.hour == 9 and time_text.minute == 20): #Year: 2023, DOY:248
8666 id_aux = 32
8667 dataOut.DensityFinal[0,id_aux:]=missing
8668 dataOut.EDensityFinal[0,id_aux:]=missing
8669 dataOut.ElecTempFinal[0,id_aux:]=missing
8670 dataOut.EElecTempFinal[0,id_aux:]=missing
8671 dataOut.IonTempFinal[0,id_aux:]=missing
8672 dataOut.EIonTempFinal[0,id_aux:]=missing
8673 dataOut.PhyFinal[0,id_aux:]=missing
8674 dataOut.EPhyFinal[0,id_aux:]=missing
8675 if (time_text.hour >= 5 and time_text.hour <= 11) or (time_text.hour >= 2 and time_text.hour <= 4): #Year: 2023, DOY:248
8676 id_aux = 12
8677 dataOut.DensityFinal[0,:id_aux]=missing
8678 dataOut.EDensityFinal[0,:id_aux]=missing
8679 dataOut.ElecTempFinal[0,:id_aux]=missing
8680 dataOut.EElecTempFinal[0,:id_aux]=missing
8681 dataOut.IonTempFinal[0,:id_aux]=missing
8682 dataOut.EIonTempFinal[0,:id_aux]=missing
8683 dataOut.PhyFinal[0,:id_aux]=missing
8684 dataOut.EPhyFinal[0,:id_aux]=missing
8685 if (time_text.hour == 23 and time_text.minute >= 10) or (time_text.hour >= 0 and time_text.hour < 2): #Year: 2023, DOY:248
8686 id_aux = 15
8687 dataOut.DensityFinal[0,:id_aux]=missing
8688 dataOut.EDensityFinal[0,:id_aux]=missing
8689 dataOut.ElecTempFinal[0,:id_aux]=missing
8690 dataOut.EElecTempFinal[0,:id_aux]=missing
8691 dataOut.IonTempFinal[0,:id_aux]=missing
8692 dataOut.EIonTempFinal[0,:id_aux]=missing
8693 dataOut.PhyFinal[0,:id_aux]=missing
8694 dataOut.EPhyFinal[0,:id_aux]=missing
8695 if (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 0 and time_text.minute == 0): #Year: 2023, DOY:248
8696 id_aux = 21
8697 dataOut.DensityFinal[0,:id_aux]=missing
8698 dataOut.EDensityFinal[0,:id_aux]=missing
8699 dataOut.ElecTempFinal[0,:id_aux]=missing
8700 dataOut.EElecTempFinal[0,:id_aux]=missing
8701 dataOut.IonTempFinal[0,:id_aux]=missing
8702 dataOut.EIonTempFinal[0,:id_aux]=missing
8703 dataOut.PhyFinal[0,:id_aux]=missing
8704 dataOut.EPhyFinal[0,:id_aux]=missing
8705 if (time_text.hour == 0 and time_text.minute == 20): #Year: 2023, DOY:248
8706 id_aux = 24
8707 dataOut.DensityFinal[0,:id_aux]=missing
8708 dataOut.EDensityFinal[0,:id_aux]=missing
8709 dataOut.ElecTempFinal[0,:id_aux]=missing
8710 dataOut.EElecTempFinal[0,:id_aux]=missing
8711 dataOut.IonTempFinal[0,:id_aux]=missing
8712 dataOut.EIonTempFinal[0,:id_aux]=missing
8713 dataOut.PhyFinal[0,:id_aux]=missing
8714 dataOut.EPhyFinal[0,:id_aux]=missing
8715 if (time_text.hour == 1 and time_text.minute == 50): #Year: 2023, DOY:248
8716 id_aux = 18
8717 dataOut.DensityFinal[0,:id_aux]=missing
8718 dataOut.EDensityFinal[0,:id_aux]=missing
8719 dataOut.ElecTempFinal[0,:id_aux]=missing
8720 dataOut.EElecTempFinal[0,:id_aux]=missing
8721 dataOut.IonTempFinal[0,:id_aux]=missing
8722 dataOut.EIonTempFinal[0,:id_aux]=missing
8723 dataOut.PhyFinal[0,:id_aux]=missing
8724 dataOut.EPhyFinal[0,:id_aux]=missing
8725 if (time_text.hour == 2 and time_text.minute == 0): #Year: 2023, DOY:248
8726 id_aux = 17
8727 dataOut.DensityFinal[0,:id_aux]=missing
8728 dataOut.EDensityFinal[0,:id_aux]=missing
8729 dataOut.ElecTempFinal[0,:id_aux]=missing
8730 dataOut.EElecTempFinal[0,:id_aux]=missing
8731 dataOut.IonTempFinal[0,:id_aux]=missing
8732 dataOut.EIonTempFinal[0,:id_aux]=missing
8733 dataOut.PhyFinal[0,:id_aux]=missing
8734 dataOut.EPhyFinal[0,:id_aux]=missing
8735 if (time_text.hour == 2 and time_text.minute == 20): #Year: 2023, DOY:248
8736 id_aux = 16
8737 dataOut.DensityFinal[0,:id_aux]=missing
8738 dataOut.EDensityFinal[0,:id_aux]=missing
8739 dataOut.ElecTempFinal[0,:id_aux]=missing
8740 dataOut.EElecTempFinal[0,:id_aux]=missing
8741 dataOut.IonTempFinal[0,:id_aux]=missing
8742 dataOut.EIonTempFinal[0,:id_aux]=missing
8743 dataOut.PhyFinal[0,:id_aux]=missing
8744 dataOut.EPhyFinal[0,:id_aux]=missing
8745 '''
8746 '''
8747 if (time_text.hour == 23): #Year: 2023, DOY:247
8748 id_aux = 13
8749 dataOut.DensityFinal[0,:id_aux]=missing
8750 dataOut.EDensityFinal[0,:id_aux]=missing
8751 dataOut.ElecTempFinal[0,:id_aux]=missing
8752 dataOut.EElecTempFinal[0,:id_aux]=missing
8753 dataOut.IonTempFinal[0,:id_aux]=missing
8754 dataOut.EIonTempFinal[0,:id_aux]=missing
8755 dataOut.PhyFinal[0,:id_aux]=missing
8756 dataOut.EPhyFinal[0,:id_aux]=missing
8757 if (time_text.hour >= 0 and time_text.hour < 2): #Year: 2023, DOY:247
8758 id_aux = 22
8759 dataOut.DensityFinal[0,:id_aux]=missing
8760 dataOut.EDensityFinal[0,:id_aux]=missing
8761 dataOut.ElecTempFinal[0,:id_aux]=missing
8762 dataOut.EElecTempFinal[0,:id_aux]=missing
8763 dataOut.IonTempFinal[0,:id_aux]=missing
8764 dataOut.EIonTempFinal[0,:id_aux]=missing
8765 dataOut.PhyFinal[0,:id_aux]=missing
8766 dataOut.EPhyFinal[0,:id_aux]=missing
8767 if (time_text.hour == 2 and time_text.minute <= 40): #Year: 2023, DOY:247
8768 id_aux = 16
8769 dataOut.DensityFinal[0,:id_aux]=missing
8770 dataOut.EDensityFinal[0,:id_aux]=missing
8771 dataOut.ElecTempFinal[0,:id_aux]=missing
8772 dataOut.EElecTempFinal[0,:id_aux]=missing
8773 dataOut.IonTempFinal[0,:id_aux]=missing
8774 dataOut.EIonTempFinal[0,:id_aux]=missing
8775 dataOut.PhyFinal[0,:id_aux]=missing
8776 dataOut.EPhyFinal[0,:id_aux]=missing
8777 if (time_text.hour == 2 and time_text.minute == 50): #Year: 2023, DOY:247
8778 id_aux = 17
8779 dataOut.DensityFinal[0,:id_aux]=missing
8780 dataOut.EDensityFinal[0,:id_aux]=missing
8781 dataOut.ElecTempFinal[0,:id_aux]=missing
8782 dataOut.EElecTempFinal[0,:id_aux]=missing
8783 dataOut.IonTempFinal[0,:id_aux]=missing
8784 dataOut.EIonTempFinal[0,:id_aux]=missing
8785 dataOut.PhyFinal[0,:id_aux]=missing
8786 dataOut.EPhyFinal[0,:id_aux]=missing
8787 if (time_text.hour == 3 and time_text.minute == 10): #Year: 2023, DOY:247
8788 id_aux = 14
8789 dataOut.DensityFinal[0,:id_aux]=missing
8790 dataOut.EDensityFinal[0,:id_aux]=missing
8791 dataOut.ElecTempFinal[0,:id_aux]=missing
8792 dataOut.EElecTempFinal[0,:id_aux]=missing
8793 dataOut.IonTempFinal[0,:id_aux]=missing
8794 dataOut.EIonTempFinal[0,:id_aux]=missing
8795 dataOut.PhyFinal[0,:id_aux]=missing
8796 dataOut.EPhyFinal[0,:id_aux]=missing
8797 if (time_text.hour == 3 or time_text.hour == 4): #Year: 2023, DOY:247
8798 id_aux = 12
8799 dataOut.DensityFinal[0,:id_aux]=missing
8800 dataOut.EDensityFinal[0,:id_aux]=missing
8801 dataOut.ElecTempFinal[0,:id_aux]=missing
8802 dataOut.EElecTempFinal[0,:id_aux]=missing
8803 dataOut.IonTempFinal[0,:id_aux]=missing
8804 dataOut.EIonTempFinal[0,:id_aux]=missing
8805 dataOut.PhyFinal[0,:id_aux]=missing
8806 dataOut.EPhyFinal[0,:id_aux]=missing
8807 '''
8808 '''
8809 if (time_text.hour >= 0 and time_text.hour < 6): #Year: 2023, DOY:191
8810 id_aux = 20
8811 dataOut.DensityFinal[0,:id_aux]=missing
8812 dataOut.EDensityFinal[0,:id_aux]=missing
8813 dataOut.ElecTempFinal[0,:id_aux]=missing
8814 dataOut.EElecTempFinal[0,:id_aux]=missing
8815 dataOut.IonTempFinal[0,:id_aux]=missing
8816 dataOut.EIonTempFinal[0,:id_aux]=missing
8817 dataOut.PhyFinal[0,:id_aux]=missing
8818 dataOut.EPhyFinal[0,:id_aux]=missing
8819 if (time_text.hour == 1 and time_text.minute == 43): #Year: 2023, DOY:191
8820 id_aux = 21
8821 dataOut.DensityFinal[0,:id_aux]=missing
8822 dataOut.EDensityFinal[0,:id_aux]=missing
8823 dataOut.ElecTempFinal[0,:id_aux]=missing
8824 dataOut.EElecTempFinal[0,:id_aux]=missing
8825 dataOut.IonTempFinal[0,:id_aux]=missing
8826 dataOut.EIonTempFinal[0,:id_aux]=missing
8827 dataOut.PhyFinal[0,:id_aux]=missing
8828 dataOut.EPhyFinal[0,:id_aux]=missing
8829 if (time_text.hour == 1 and time_text.minute == 38): #Year: 2023, DOY:191
8830 id_aux = 22
8831 dataOut.DensityFinal[0,:id_aux]=missing
8832 dataOut.EDensityFinal[0,:id_aux]=missing
8833 dataOut.ElecTempFinal[0,:id_aux]=missing
8834 dataOut.EElecTempFinal[0,:id_aux]=missing
8835 dataOut.IonTempFinal[0,:id_aux]=missing
8836 dataOut.EIonTempFinal[0,:id_aux]=missing
8837 dataOut.PhyFinal[0,:id_aux]=missing
8838 dataOut.EPhyFinal[0,:id_aux]=missing
8839 if (time_text.hour == 23 and time_text.minute > 20): #Year: 2023, DOY:191
8840 id_aux = 15
8841 dataOut.DensityFinal[0,:id_aux]=missing
8842 dataOut.EDensityFinal[0,:id_aux]=missing
8843 dataOut.ElecTempFinal[0,:id_aux]=missing
8844 dataOut.EElecTempFinal[0,:id_aux]=missing
8845 dataOut.IonTempFinal[0,:id_aux]=missing
8846 dataOut.EIonTempFinal[0,:id_aux]=missing
8847 dataOut.PhyFinal[0,:id_aux]=missing
8848 dataOut.EPhyFinal[0,:id_aux]=missing
8849 if (time_text.hour == 23 and time_text.minute > 50): #Year: 2023, DOY:191
8850 id_aux = 19
8851 dataOut.DensityFinal[0,:id_aux]=missing
8852 dataOut.EDensityFinal[0,:id_aux]=missing
8853 dataOut.ElecTempFinal[0,:id_aux]=missing
8854 dataOut.EElecTempFinal[0,:id_aux]=missing
8855 dataOut.IonTempFinal[0,:id_aux]=missing
8856 dataOut.EIonTempFinal[0,:id_aux]=missing
8857 dataOut.PhyFinal[0,:id_aux]=missing
8858 dataOut.EPhyFinal[0,:id_aux]=missing
8859 '''
8860 '''
8861 if (time_text.hour == 5) or (time_text.hour == 6 and time_text.minute == 4): #Year: 2023, DOY:175
8862 id_aux = 31
8863 dataOut.DensityFinal[0,id_aux:]=missing
8864 dataOut.EDensityFinal[0,id_aux:]=missing
8865 dataOut.ElecTempFinal[0,id_aux:]=missing
8866 dataOut.EElecTempFinal[0,id_aux:]=missing
8867 dataOut.IonTempFinal[0,id_aux:]=missing
8868 dataOut.EIonTempFinal[0,id_aux:]=missing
8869 dataOut.PhyFinal[0,id_aux:]=missing
8870 dataOut.EPhyFinal[0,id_aux:]=missing
8871 if (time_text.hour == 6 and time_text.minute == 14) or (time_text.hour == 6 and time_text.minute == 46): #Year: 2023, DOY:175
8872 id_aux = 33
8873 dataOut.DensityFinal[0,id_aux:]=missing
8874 dataOut.EDensityFinal[0,id_aux:]=missing
8875 dataOut.ElecTempFinal[0,id_aux:]=missing
8876 dataOut.EElecTempFinal[0,id_aux:]=missing
8877 dataOut.IonTempFinal[0,id_aux:]=missing
8878 dataOut.EIonTempFinal[0,id_aux:]=missing
8879 dataOut.PhyFinal[0,id_aux:]=missing
8880 dataOut.EPhyFinal[0,id_aux:]=missing
8881 if (time_text.hour >= 5 and time_text.hour <= 9): #Year: 2023, DOY:175
8882 id_aux = 12
8883 dataOut.DensityFinal[0,:id_aux]=missing
8884 dataOut.EDensityFinal[0,:id_aux]=missing
8885 dataOut.ElecTempFinal[0,:id_aux]=missing
8886 dataOut.EElecTempFinal[0,:id_aux]=missing
8887 dataOut.IonTempFinal[0,:id_aux]=missing
8888 dataOut.EIonTempFinal[0,:id_aux]=missing
8889 dataOut.PhyFinal[0,:id_aux]=missing
8890 dataOut.EPhyFinal[0,:id_aux]=missing
8891 if (time_text.hour == 10 and time_text.minute == 9) or (time_text.hour == 10 and time_text.minute == 30) or (time_text.hour == 10 and time_text.minute == 52): #Year: 2023, DOY:175
8892 id_aux = 12
8893 dataOut.DensityFinal[0,:id_aux]=missing
8894 dataOut.EDensityFinal[0,:id_aux]=missing
8895 dataOut.ElecTempFinal[0,:id_aux]=missing
8896 dataOut.EElecTempFinal[0,:id_aux]=missing
8897 dataOut.IonTempFinal[0,:id_aux]=missing
8898 dataOut.EIonTempFinal[0,:id_aux]=missing
8899 dataOut.PhyFinal[0,:id_aux]=missing
8900 dataOut.EPhyFinal[0,:id_aux]=missing
8901 if (time_text.hour == 9 and time_text.minute == 58) or (time_text.hour == 12 and time_text.minute == 28): #Year: 2023, DOY:175
8902 id_aux = 39
8903 dataOut.DensityFinal[0,id_aux:]=missing
8904 dataOut.EDensityFinal[0,id_aux:]=missing
8905 dataOut.ElecTempFinal[0,id_aux:]=missing
8906 dataOut.EElecTempFinal[0,id_aux:]=missing
8907 dataOut.IonTempFinal[0,id_aux:]=missing
8908 dataOut.EIonTempFinal[0,id_aux:]=missing
8909 dataOut.PhyFinal[0,id_aux:]=missing
8910 dataOut.EPhyFinal[0,id_aux:]=missing
8911 if (time_text.hour == 10 and time_text.minute == 52) or (time_text.hour == 11 and time_text.minute == 13): #Year: 2023, DOY:175
8912 id_aux = 34
8913 dataOut.DensityFinal[0,id_aux:]=missing
8914 dataOut.EDensityFinal[0,id_aux:]=missing
8915 dataOut.ElecTempFinal[0,id_aux:]=missing
8916 dataOut.EElecTempFinal[0,id_aux:]=missing
8917 dataOut.IonTempFinal[0,id_aux:]=missing
8918 dataOut.EIonTempFinal[0,id_aux:]=missing
8919 dataOut.PhyFinal[0,id_aux:]=missing
8920 dataOut.EPhyFinal[0,id_aux:]=missing
8921 if (time_text.hour == 11 and time_text.minute == 2): #Year: 2023, DOY:175
8922 id_aux = 9
8923 dataOut.DensityFinal[0,:id_aux]=missing
8924 dataOut.EDensityFinal[0,:id_aux]=missing
8925 dataOut.ElecTempFinal[0,:id_aux]=missing
8926 dataOut.EElecTempFinal[0,:id_aux]=missing
8927 dataOut.IonTempFinal[0,:id_aux]=missing
8928 dataOut.EIonTempFinal[0,:id_aux]=missing
8929 dataOut.PhyFinal[0,:id_aux]=missing
8930 dataOut.EPhyFinal[0,:id_aux]=missing
8931 '''
8932 '''
8933 if (time_text.hour == 11 and time_text.minute == 45) or (time_text.hour == 12 and time_text.minute == 6) or (time_text.hour == 12 and time_text.minute == 17): #Year: 2023, DOY:174
8934 id_aux = 35
8935 dataOut.DensityFinal[0,id_aux:]=missing
8936 dataOut.EDensityFinal[0,id_aux:]=missing
8937 dataOut.ElecTempFinal[0,id_aux:]=missing
8938 dataOut.EElecTempFinal[0,id_aux:]=missing
8939 dataOut.IonTempFinal[0,id_aux:]=missing
8940 dataOut.EIonTempFinal[0,id_aux:]=missing
8941 dataOut.PhyFinal[0,id_aux:]=missing
8942 dataOut.EPhyFinal[0,id_aux:]=missing
8943 if (time_text.hour == 23 or time_text.hour <= 4): #Year: 2023, DOY:174
8944 id_aux = 12
8945 dataOut.DensityFinal[0,:id_aux]=missing
8946 dataOut.EDensityFinal[0,:id_aux]=missing
8947 dataOut.ElecTempFinal[0,:id_aux]=missing
8948 dataOut.EElecTempFinal[0,:id_aux]=missing
8949 dataOut.IonTempFinal[0,:id_aux]=missing
8950 dataOut.EIonTempFinal[0,:id_aux]=missing
8951 dataOut.PhyFinal[0,:id_aux]=missing
8952 dataOut.EPhyFinal[0,:id_aux]=missing
8953 '''
8954 '''
8955 if (time_text.hour == 12 and time_text.minute == 6) or (time_text.hour == 4 and time_text.minute == 28): #Year: 2023, DOY:173
8956 id_aux = 31
8957 dataOut.DensityFinal[0,id_aux:]=missing
8958 dataOut.EDensityFinal[0,id_aux:]=missing
8959 dataOut.ElecTempFinal[0,id_aux:]=missing
8960 dataOut.EElecTempFinal[0,id_aux:]=missing
8961 dataOut.IonTempFinal[0,id_aux:]=missing
8962 dataOut.EIonTempFinal[0,id_aux:]=missing
8963 dataOut.PhyFinal[0,id_aux:]=missing
8964 dataOut.EPhyFinal[0,id_aux:]=missing
8965 if (time_text.hour == 12 and time_text.minute == 17) or (time_text.hour == 2 and time_text.minute == 52) or (time_text.hour == 3 and time_text.minute == 56) or (time_text.hour == 4 and time_text.minute == 17): #Year: 2023, DOY:173
8966 id_aux = 36
8967 dataOut.DensityFinal[0,id_aux:]=missing
8968 dataOut.EDensityFinal[0,id_aux:]=missing
8969 dataOut.ElecTempFinal[0,id_aux:]=missing
8970 dataOut.EElecTempFinal[0,id_aux:]=missing
8971 dataOut.IonTempFinal[0,id_aux:]=missing
8972 dataOut.EIonTempFinal[0,id_aux:]=missing
8973 dataOut.PhyFinal[0,id_aux:]=missing
8974 dataOut.EPhyFinal[0,id_aux:]=missing
8975 if (time_text.hour == 12 and time_text.minute == 38) or (time_text.hour == 12 and time_text.minute == 49) or (time_text.hour == 13 and time_text.minute == 10): #Year: 2023, DOY:173
8976 id_aux = 35
8977 dataOut.DensityFinal[0,id_aux:]=missing
8978 dataOut.EDensityFinal[0,id_aux:]=missing
8979 dataOut.ElecTempFinal[0,id_aux:]=missing
8980 dataOut.EElecTempFinal[0,id_aux:]=missing
8981 dataOut.IonTempFinal[0,id_aux:]=missing
8982 dataOut.EIonTempFinal[0,id_aux:]=missing
8983 dataOut.PhyFinal[0,id_aux:]=missing
8984 dataOut.EPhyFinal[0,id_aux:]=missing
8985 if (time_text.hour == 23 or time_text.hour <= 4): #Year: 2023, DOY:173
8986 id_aux = 12
8987 dataOut.DensityFinal[0,:id_aux]=missing
8988 dataOut.EDensityFinal[0,:id_aux]=missing
8989 dataOut.ElecTempFinal[0,:id_aux]=missing
8990 dataOut.EElecTempFinal[0,:id_aux]=missing
8991 dataOut.IonTempFinal[0,:id_aux]=missing
8992 dataOut.EIonTempFinal[0,:id_aux]=missing
8993 dataOut.PhyFinal[0,:id_aux]=missing
8994 dataOut.EPhyFinal[0,:id_aux]=missing
8995 if (time_text.hour == 3 and time_text.minute == 2) or (time_text.hour == 3 and time_text.minute == 24): #Year: 2023, DOY:173
8996 id_aux = 39
8997 dataOut.DensityFinal[0,id_aux:]=missing
8998 dataOut.EDensityFinal[0,id_aux:]=missing
8999 dataOut.ElecTempFinal[0,id_aux:]=missing
9000 dataOut.EElecTempFinal[0,id_aux:]=missing
9001 dataOut.IonTempFinal[0,id_aux:]=missing
9002 dataOut.EIonTempFinal[0,id_aux:]=missing
9003 dataOut.PhyFinal[0,id_aux:]=missing
9004 dataOut.EPhyFinal[0,id_aux:]=missing
9005 '''
9006 '''
9007 if (time_text.hour == 5 and time_text.minute == 32): #Year: 2023, DOY:172
9008 id_aux = 10
9009 dataOut.DensityFinal[0,id_aux]=missing
9010 dataOut.EDensityFinal[0,id_aux]=missing
9011 dataOut.ElecTempFinal[0,id_aux]=missing
9012 dataOut.EElecTempFinal[0,id_aux]=missing
9013 dataOut.IonTempFinal[0,id_aux]=missing
9014 dataOut.EIonTempFinal[0,id_aux]=missing
9015 dataOut.PhyFinal[0,id_aux]=missing
9016 dataOut.EPhyFinal[0,id_aux]=missing
9017 id_aux = 26
9018 dataOut.DensityFinal[0,id_aux:]=missing
9019 dataOut.EDensityFinal[0,id_aux:]=missing
9020 dataOut.ElecTempFinal[0,id_aux:]=missing
9021 dataOut.EElecTempFinal[0,id_aux:]=missing
9022 dataOut.IonTempFinal[0,id_aux:]=missing
9023 dataOut.EIonTempFinal[0,id_aux:]=missing
9024 dataOut.PhyFinal[0,id_aux:]=missing
9025 dataOut.EPhyFinal[0,id_aux:]=missing
9026 if (time_text.hour == 5 and time_text.minute == 21): #Year: 2023, DOY:172
9027 id_aux = 28
9028 dataOut.DensityFinal[0,id_aux:]=missing
9029 dataOut.EDensityFinal[0,id_aux:]=missing
9030 dataOut.ElecTempFinal[0,id_aux:]=missing
9031 dataOut.EElecTempFinal[0,id_aux:]=missing
9032 dataOut.IonTempFinal[0,id_aux:]=missing
9033 dataOut.EIonTempFinal[0,id_aux:]=missing
9034 dataOut.PhyFinal[0,id_aux:]=missing
9035 dataOut.EPhyFinal[0,id_aux:]=missing
9036 if (time_text.hour == 12 and time_text.minute == 6): #Year: 2023, DOY:172
9037 id_aux = 28
9038 dataOut.DensityFinal[0,id_aux:]=missing
9039 dataOut.EDensityFinal[0,id_aux:]=missing
9040 dataOut.ElecTempFinal[0,id_aux:]=missing
9041 dataOut.EElecTempFinal[0,id_aux:]=missing
9042 dataOut.IonTempFinal[0,id_aux:]=missing
9043 dataOut.EIonTempFinal[0,id_aux:]=missing
9044 dataOut.PhyFinal[0,id_aux:]=missing
9045 dataOut.EPhyFinal[0,id_aux:]=missing
9046 if (time_text.hour == 5 and time_text.minute == 0) or (time_text.hour == 6 and time_text.minute == 25): #Year: 2023, DOY:172
9047 id_aux = 34
9048 dataOut.DensityFinal[0,id_aux:]=missing
9049 dataOut.EDensityFinal[0,id_aux:]=missing
9050 dataOut.ElecTempFinal[0,id_aux:]=missing
9051 dataOut.EElecTempFinal[0,id_aux:]=missing
9052 dataOut.IonTempFinal[0,id_aux:]=missing
9053 dataOut.EIonTempFinal[0,id_aux:]=missing
9054 dataOut.PhyFinal[0,id_aux:]=missing
9055 dataOut.EPhyFinal[0,id_aux:]=missing
9056 if (time_text.hour == 6): #Year: 2023, DOY:172
9057 id_aux = 12
9058 dataOut.DensityFinal[0,:id_aux]=missing
9059 dataOut.EDensityFinal[0,:id_aux]=missing
9060 dataOut.ElecTempFinal[0,:id_aux]=missing
9061 dataOut.EElecTempFinal[0,:id_aux]=missing
9062 dataOut.IonTempFinal[0,:id_aux]=missing
9063 dataOut.EIonTempFinal[0,:id_aux]=missing
9064 dataOut.PhyFinal[0,:id_aux]=missing
9065 dataOut.EPhyFinal[0,:id_aux]=missing
9066 if (time_text.hour == 12 and time_text.minute > 25) or (time_text.hour == 4 and time_text.minute == 6): #Year: 2023, DOY:172
9067 id_aux = 33
9068 dataOut.DensityFinal[0,id_aux:]=missing
9069 dataOut.EDensityFinal[0,id_aux:]=missing
9070 dataOut.ElecTempFinal[0,id_aux:]=missing
9071 dataOut.EElecTempFinal[0,id_aux:]=missing
9072 dataOut.IonTempFinal[0,id_aux:]=missing
9073 dataOut.EIonTempFinal[0,id_aux:]=missing
9074 dataOut.PhyFinal[0,id_aux:]=missing
9075 dataOut.EPhyFinal[0,id_aux:]=missing
9076 if (time_text.hour == 23 or time_text.hour <= 4): #Year: 2023, DOY:172
9077 id_aux = 13
9078 dataOut.DensityFinal[0,:id_aux]=missing
9079 dataOut.EDensityFinal[0,:id_aux]=missing
9080 dataOut.ElecTempFinal[0,:id_aux]=missing
9081 dataOut.EElecTempFinal[0,:id_aux]=missing
9082 dataOut.IonTempFinal[0,:id_aux]=missing
9083 dataOut.EIonTempFinal[0,:id_aux]=missing
9084 dataOut.PhyFinal[0,:id_aux]=missing
9085 dataOut.EPhyFinal[0,:id_aux]=missing
9086 if (time_text.hour == 2 and time_text.minute == 30): #Year: 2023, DOY:172
9087 id_aux = 38
9088 dataOut.DensityFinal[0,id_aux:]=missing
9089 dataOut.EDensityFinal[0,id_aux:]=missing
9090 dataOut.ElecTempFinal[0,id_aux:]=missing
9091 dataOut.EElecTempFinal[0,id_aux:]=missing
9092 dataOut.IonTempFinal[0,id_aux:]=missing
9093 dataOut.EIonTempFinal[0,id_aux:]=missing
9094 dataOut.PhyFinal[0,id_aux:]=missing
9095 dataOut.EPhyFinal[0,id_aux:]=missing
9096 '''
9097 '''
9098 if (time_text.hour == 11 and time_text.minute == 34) or (time_text.hour == 4 and time_text.minute == 28): #Year: 2023, DOY:171
9099 id_aux = 34
9100 dataOut.DensityFinal[0,id_aux:]=missing
9101 dataOut.EDensityFinal[0,id_aux:]=missing
9102 dataOut.ElecTempFinal[0,id_aux:]=missing
9103 dataOut.EElecTempFinal[0,id_aux:]=missing
9104 dataOut.IonTempFinal[0,id_aux:]=missing
9105 dataOut.EIonTempFinal[0,id_aux:]=missing
9106 dataOut.PhyFinal[0,id_aux:]=missing
9107 dataOut.EPhyFinal[0,id_aux:]=missing
9108 if (time_text.hour == 13 and time_text.minute == 21) or (time_text.hour == 2 and time_text.minute == 52): #Year: 2023, DOY:171
9109 id_aux = 40
9110 dataOut.DensityFinal[0,id_aux:]=missing
9111 dataOut.EDensityFinal[0,id_aux:]=missing
9112 dataOut.ElecTempFinal[0,id_aux:]=missing
9113 dataOut.EElecTempFinal[0,id_aux:]=missing
9114 dataOut.IonTempFinal[0,id_aux:]=missing
9115 dataOut.EIonTempFinal[0,id_aux:]=missing
9116 dataOut.PhyFinal[0,id_aux:]=missing
9117 dataOut.EPhyFinal[0,id_aux:]=missing
9118
9119 id_aux = 9 #Year: 2023, DOY:171 #All Hours
9120 dataOut.DensityFinal[0,:id_aux]=missing
9121 dataOut.EDensityFinal[0,:id_aux]=missing
9122 dataOut.ElecTempFinal[0,:id_aux]=missing
9123 dataOut.EElecTempFinal[0,:id_aux]=missing
9124 dataOut.IonTempFinal[0,:id_aux]=missing
9125 dataOut.EIonTempFinal[0,:id_aux]=missing
9126 dataOut.PhyFinal[0,:id_aux]=missing
9127 dataOut.EPhyFinal[0,:id_aux]=missing
9128
9129 if (time_text.hour == 23 or time_text.hour <= 4): #Year: 2023, DOY:171
9130 id_aux = 13
9131 dataOut.DensityFinal[0,:id_aux]=missing
9132 dataOut.EDensityFinal[0,:id_aux]=missing
9133 dataOut.ElecTempFinal[0,:id_aux]=missing
9134 dataOut.EElecTempFinal[0,:id_aux]=missing
9135 dataOut.IonTempFinal[0,:id_aux]=missing
9136 dataOut.EIonTempFinal[0,:id_aux]=missing
9137 dataOut.PhyFinal[0,:id_aux]=missing
9138 dataOut.EPhyFinal[0,:id_aux]=missing
9139 if (time_text.hour == 0 and time_text.minute == 33): #Year: 2023, DOY:171
9140 id_aux = 17
9141 dataOut.DensityFinal[0,id_aux]=missing
9142 dataOut.EDensityFinal[0,id_aux]=missing
9143 dataOut.ElecTempFinal[0,id_aux]=missing
9144 dataOut.EElecTempFinal[0,id_aux]=missing
9145 dataOut.IonTempFinal[0,id_aux]=missing
9146 dataOut.EIonTempFinal[0,id_aux]=missing
9147 dataOut.PhyFinal[0,id_aux]=missing
9148 dataOut.EPhyFinal[0,id_aux]=missing
9149 '''
9150 '''
9151 if (time_text.hour == 16 and time_text.minute == 39): #Year: 2023, DOY:170
9152 id_aux = 48
9153 dataOut.DensityFinal[0,id_aux:]=missing
9154 dataOut.EDensityFinal[0,id_aux:]=missing
9155 dataOut.ElecTempFinal[0,id_aux:]=missing
9156 dataOut.EElecTempFinal[0,id_aux:]=missing
9157 dataOut.IonTempFinal[0,id_aux:]=missing
9158 dataOut.EIonTempFinal[0,id_aux:]=missing
9159 dataOut.PhyFinal[0,id_aux:]=missing
9160 dataOut.EPhyFinal[0,id_aux:]=missing
9161 if (time_text.hour <= 4): #Year: 2023, DOY:170
9162 id_aux = 12
9163 dataOut.DensityFinal[0,:id_aux]=missing
9164 dataOut.EDensityFinal[0,:id_aux]=missing
9165 dataOut.ElecTempFinal[0,:id_aux]=missing
9166 dataOut.EElecTempFinal[0,:id_aux]=missing
9167 dataOut.IonTempFinal[0,:id_aux]=missing
9168 dataOut.EIonTempFinal[0,:id_aux]=missing
9169 dataOut.PhyFinal[0,:id_aux]=missing
9170 dataOut.EPhyFinal[0,:id_aux]=missing
9171 if (time_text.hour == 23 and time_text.minute > 10): #Year: 2023, DOY:170
9172 id_aux = 12
9173 dataOut.DensityFinal[0,:id_aux]=missing
9174 dataOut.EDensityFinal[0,:id_aux]=missing
9175 dataOut.ElecTempFinal[0,:id_aux]=missing
9176 dataOut.EElecTempFinal[0,:id_aux]=missing
9177 dataOut.IonTempFinal[0,:id_aux]=missing
9178 dataOut.EIonTempFinal[0,:id_aux]=missing
9179 dataOut.PhyFinal[0,:id_aux]=missing
9180 dataOut.EPhyFinal[0,:id_aux]=missing
9181 if (time_text.hour == 1 and time_text.minute == 43): #Year: 2023, DOY:170
9182 id_aux = 14
9183 dataOut.DensityFinal[0,:id_aux]=missing
9184 dataOut.EDensityFinal[0,:id_aux]=missing
9185 dataOut.ElecTempFinal[0,:id_aux]=missing
9186 dataOut.EElecTempFinal[0,:id_aux]=missing
9187 dataOut.IonTempFinal[0,:id_aux]=missing
9188 dataOut.EIonTempFinal[0,:id_aux]=missing
9189 dataOut.PhyFinal[0,:id_aux]=missing
9190 dataOut.EPhyFinal[0,:id_aux]=missing
9191 if (time_text.hour == 3 and time_text.minute == 19) or (time_text.hour == 4 and time_text.minute == 12): #Year: 2023, DOY:170
9192 id_aux = 39
9193 dataOut.DensityFinal[0,id_aux:]=missing
9194 dataOut.EDensityFinal[0,id_aux:]=missing
9195 dataOut.ElecTempFinal[0,id_aux:]=missing
9196 dataOut.EElecTempFinal[0,id_aux:]=missing
9197 dataOut.IonTempFinal[0,id_aux:]=missing
9198 dataOut.EIonTempFinal[0,id_aux:]=missing
9199 dataOut.PhyFinal[0,id_aux:]=missing
9200 dataOut.EPhyFinal[0,id_aux:]=missing
9201 if (time_text.hour == 3 and time_text.minute == 40): #Year: 2023, DOY:170
9202 id_aux = 35
9203 dataOut.DensityFinal[0,id_aux:]=missing
9204 dataOut.EDensityFinal[0,id_aux:]=missing
9205 dataOut.ElecTempFinal[0,id_aux:]=missing
9206 dataOut.EElecTempFinal[0,id_aux:]=missing
9207 dataOut.IonTempFinal[0,id_aux:]=missing
9208 dataOut.EIonTempFinal[0,id_aux:]=missing
9209 dataOut.PhyFinal[0,id_aux:]=missing
9210 dataOut.EPhyFinal[0,id_aux:]=missing
9211 if (time_text.hour == 4 and time_text.minute == 44): #Year: 2023, DOY:170
9212 id_aux = 32
9213 dataOut.DensityFinal[0,id_aux:]=missing
9214 dataOut.EDensityFinal[0,id_aux:]=missing
9215 dataOut.ElecTempFinal[0,id_aux:]=missing
9216 dataOut.EElecTempFinal[0,id_aux:]=missing
9217 dataOut.IonTempFinal[0,id_aux:]=missing
9218 dataOut.EIonTempFinal[0,id_aux:]=missing
9219 dataOut.PhyFinal[0,id_aux:]=missing
9220 dataOut.EPhyFinal[0,id_aux:]=missing
9221 '''
9222
9223 '''
9224 if (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 9): #Year: 2023, DOY:032
9225 id_aux = 11
9226 dataOut.DensityFinal[0,:id_aux]=missing
9227 dataOut.EDensityFinal[0,:id_aux]=missing
9228 dataOut.ElecTempFinal[0,:id_aux]=missing
9229 dataOut.EElecTempFinal[0,:id_aux]=missing
9230 dataOut.IonTempFinal[0,:id_aux]=missing
9231 dataOut.EIonTempFinal[0,:id_aux]=missing
9232 dataOut.PhyFinal[0,:id_aux]=missing
9233 dataOut.EPhyFinal[0,:id_aux]=missing
9234
9235 if (time_text.hour == 6 and time_text.minute == 57) or (time_text.hour == 7 and time_text.minute == 29): #Year: 2023, DOY:032
9236 id_aux = 36
9237 dataOut.DensityFinal[0,id_aux:]=missing
9238 dataOut.EDensityFinal[0,id_aux:]=missing
9239 dataOut.ElecTempFinal[0,id_aux:]=missing
9240 dataOut.EElecTempFinal[0,id_aux:]=missing
9241 dataOut.IonTempFinal[0,id_aux:]=missing
9242 dataOut.EIonTempFinal[0,id_aux:]=missing
9243 dataOut.PhyFinal[0,id_aux:]=missing
9244 dataOut.EPhyFinal[0,id_aux:]=missing
9245
9246 if (time_text.hour == 9 and time_text.minute == 24): #Year: 2023, DOY:032
9247 id_aux = 30
9248 dataOut.DensityFinal[0,id_aux:]=missing
9249 dataOut.EDensityFinal[0,id_aux:]=missing
9250 dataOut.ElecTempFinal[0,id_aux:]=missing
9251 dataOut.EElecTempFinal[0,id_aux:]=missing
9252 dataOut.IonTempFinal[0,id_aux:]=missing
9253 dataOut.EIonTempFinal[0,id_aux:]=missing
9254 dataOut.PhyFinal[0,id_aux:]=missing
9255 dataOut.EPhyFinal[0,id_aux:]=missing
9256
9257 if (time_text.hour == 5 and time_text.minute == 32): #Year: 2023, DOY:032
9258 id_aux = 41
9259 dataOut.DensityFinal[0,id_aux:]=missing
9260 dataOut.EDensityFinal[0,id_aux:]=missing
9261 dataOut.ElecTempFinal[0,id_aux:]=missing
9262 dataOut.EElecTempFinal[0,id_aux:]=missing
9263 dataOut.IonTempFinal[0,id_aux:]=missing
9264 dataOut.EIonTempFinal[0,id_aux:]=missing
9265 dataOut.PhyFinal[0,id_aux:]=missing
9266 dataOut.EPhyFinal[0,id_aux:]=missing
9267
9268 if (time_text.hour == 11 and time_text.minute == 14): #Year: 2023, DOY:032
9269 id_aux = 35
9270 dataOut.DensityFinal[0,id_aux:]=missing
9271 dataOut.EDensityFinal[0,id_aux:]=missing
9272 dataOut.ElecTempFinal[0,id_aux:]=missing
9273 dataOut.EElecTempFinal[0,id_aux:]=missing
9274 dataOut.IonTempFinal[0,id_aux:]=missing
9275 dataOut.EIonTempFinal[0,id_aux:]=missing
9276 dataOut.PhyFinal[0,id_aux:]=missing
9277 dataOut.EPhyFinal[0,id_aux:]=missing
9278 '''
9279 '''
9280 if (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 0): #Year: 2023, DOY:031
9281 id_aux = 18
9282 dataOut.DensityFinal[0,:id_aux]=missing
9283 dataOut.EDensityFinal[0,:id_aux]=missing
9284 dataOut.ElecTempFinal[0,:id_aux]=missing
9285 dataOut.EElecTempFinal[0,:id_aux]=missing
9286 dataOut.IonTempFinal[0,:id_aux]=missing
9287 dataOut.EIonTempFinal[0,:id_aux]=missing
9288 dataOut.PhyFinal[0,:id_aux]=missing
9289 dataOut.EPhyFinal[0,:id_aux]=missing
9290
9291 if (time_text.hour == 23 and time_text.minute == 40) or (time_text.hour == 9 and time_text.minute == 58) or (time_text.hour == 10 and time_text.minute == 20): #Year: 2023, DOY:031
9292 id_aux = 12
9293 dataOut.DensityFinal[0,:id_aux]=missing
9294 dataOut.EDensityFinal[0,:id_aux]=missing
9295 dataOut.ElecTempFinal[0,:id_aux]=missing
9296 dataOut.EElecTempFinal[0,:id_aux]=missing
9297 dataOut.IonTempFinal[0,:id_aux]=missing
9298 dataOut.EIonTempFinal[0,:id_aux]=missing
9299 dataOut.PhyFinal[0,:id_aux]=missing
9300 dataOut.EPhyFinal[0,:id_aux]=missing
9301
9302 if (time_text.hour == 11 and time_text.minute == 45): #Year: 2023, DOY:031
9303 id_aux = 8
9304 dataOut.DensityFinal[0,:id_aux]=missing
9305 dataOut.EDensityFinal[0,:id_aux]=missing
9306 dataOut.ElecTempFinal[0,:id_aux]=missing
9307 dataOut.EElecTempFinal[0,:id_aux]=missing
9308 dataOut.IonTempFinal[0,:id_aux]=missing
9309 dataOut.EIonTempFinal[0,:id_aux]=missing
9310 dataOut.PhyFinal[0,:id_aux]=missing
9311 dataOut.EPhyFinal[0,:id_aux]=missing
9312
9313 if (time_text.hour == 13): #Year: 2023, DOY:031
9314 id_aux = 37
9315 dataOut.DensityFinal[0,id_aux:]=missing
9316 dataOut.EDensityFinal[0,id_aux:]=missing
9317 dataOut.ElecTempFinal[0,id_aux:]=missing
9318 dataOut.EElecTempFinal[0,id_aux:]=missing
9319 dataOut.IonTempFinal[0,id_aux:]=missing
9320 dataOut.EIonTempFinal[0,id_aux:]=missing
9321 dataOut.PhyFinal[0,id_aux:]=missing
9322 dataOut.EPhyFinal[0,id_aux:]=missing
9323
9324 if (time_text.hour == 15 and time_text.minute == 18): #Year: 2023, DOY:031
9325 id_aux = 34
9326 dataOut.DensityFinal[0,id_aux:]=missing
9327 dataOut.EDensityFinal[0,id_aux:]=missing
9328 dataOut.ElecTempFinal[0,id_aux:]=missing
9329 dataOut.EElecTempFinal[0,id_aux:]=missing
9330 dataOut.IonTempFinal[0,id_aux:]=missing
9331 dataOut.EIonTempFinal[0,id_aux:]=missing
9332 dataOut.PhyFinal[0,id_aux:]=missing
9333 dataOut.EPhyFinal[0,id_aux:]=missing
9334
9335 if (time_text.hour == 10 and time_text.minute == 52): #Year: 2023, DOY:031
9336 id_aux = 29
9337 dataOut.DensityFinal[0,id_aux:]=missing
9338 dataOut.EDensityFinal[0,id_aux:]=missing
9339 dataOut.ElecTempFinal[0,id_aux:]=missing
9340 dataOut.EElecTempFinal[0,id_aux:]=missing
9341 dataOut.IonTempFinal[0,id_aux:]=missing
9342 dataOut.EIonTempFinal[0,id_aux:]=missing
9343 dataOut.PhyFinal[0,id_aux:]=missing
9344 dataOut.EPhyFinal[0,id_aux:]=missing
9345
9346 if (time_text.hour == 10 and time_text.minute == 9): #Year: 2023, DOY:031
9347 id_aux = 33
9348 dataOut.DensityFinal[0,id_aux:]=missing
9349 dataOut.EDensityFinal[0,id_aux:]=missing
9350 dataOut.ElecTempFinal[0,id_aux:]=missing
9351 dataOut.EElecTempFinal[0,id_aux:]=missing
9352 dataOut.IonTempFinal[0,id_aux:]=missing
9353 dataOut.EIonTempFinal[0,id_aux:]=missing
9354 dataOut.PhyFinal[0,id_aux:]=missing
9355 dataOut.EPhyFinal[0,id_aux:]=missing
9356 '''
9357
9358 '''
9359 if (time_text.hour == 0 and time_text.minute == 33): #Year: 2023, DOY:030
9360 id_aux = 38
9361 dataOut.DensityFinal[0,id_aux]=missing
9362 dataOut.EDensityFinal[0,id_aux]=missing
9363 dataOut.ElecTempFinal[0,id_aux]=missing
9364 dataOut.EElecTempFinal[0,id_aux]=missing
9365 dataOut.IonTempFinal[0,id_aux]=missing
9366 dataOut.EIonTempFinal[0,id_aux]=missing
9367 dataOut.PhyFinal[0,id_aux]=missing
9368 dataOut.EPhyFinal[0,id_aux]=missing
9369
9370 if (time_text.hour == 18 and time_text.minute == 41): #Year: 2023, DOY:030
9371 id_aux = 49
9372 dataOut.DensityFinal[0,id_aux]=missing
9373 dataOut.EDensityFinal[0,id_aux]=missing
9374 dataOut.ElecTempFinal[0,id_aux]=missing
9375 dataOut.EElecTempFinal[0,id_aux]=missing
9376 dataOut.IonTempFinal[0,id_aux]=missing
9377 dataOut.EIonTempFinal[0,id_aux]=missing
9378 dataOut.PhyFinal[0,id_aux]=missing
9379 dataOut.EPhyFinal[0,id_aux]=missing
9380
9381 if (time_text.hour == 14 and time_text.minute == 14): #Year: 2023, DOY:030
9382 id_aux = 34
9383 dataOut.DensityFinal[0,id_aux]=missing
9384 dataOut.EDensityFinal[0,id_aux]=missing
9385 dataOut.ElecTempFinal[0,id_aux]=missing
9386 dataOut.EElecTempFinal[0,id_aux]=missing
9387 dataOut.IonTempFinal[0,id_aux]=missing
9388 dataOut.EIonTempFinal[0,id_aux]=missing
9389 dataOut.PhyFinal[0,id_aux]=missing
9390 dataOut.EPhyFinal[0,id_aux]=missing
9391
9392 if (time_text.hour == 16 and time_text.minute == 1): #Year: 2023, DOY:030
9393 id_aux = (40,41)
9394 dataOut.DensityFinal[0,id_aux]=missing
9395 dataOut.EDensityFinal[0,id_aux]=missing
9396 dataOut.ElecTempFinal[0,id_aux]=missing
9397 dataOut.EElecTempFinal[0,id_aux]=missing
9398 dataOut.IonTempFinal[0,id_aux]=missing
9399 dataOut.EIonTempFinal[0,id_aux]=missing
9400 dataOut.PhyFinal[0,id_aux]=missing
9401 dataOut.EPhyFinal[0,id_aux]=missing
9402
9403 if (time_text.hour == 5 and time_text.minute == 53) or (time_text.hour == 15 and time_text.minute == 40): #Year: 2023, DOY:030
9404 id_aux = 40
9405 dataOut.DensityFinal[0,id_aux:]=missing
9406 dataOut.EDensityFinal[0,id_aux:]=missing
9407 dataOut.ElecTempFinal[0,id_aux:]=missing
9408 dataOut.EElecTempFinal[0,id_aux:]=missing
9409 dataOut.IonTempFinal[0,id_aux:]=missing
9410 dataOut.EIonTempFinal[0,id_aux:]=missing
9411 dataOut.PhyFinal[0,id_aux:]=missing
9412 dataOut.EPhyFinal[0,id_aux:]=missing
9413
9414 if (time_text.hour == 6 and time_text.minute == 25) or (time_text.hour == 15 and time_text.minute == 8) or (time_text.hour == 13 and time_text.minute == 42) or (time_text.hour == 13 and time_text.minute == 0): #Year: 2023, DOY:030
9415 id_aux = 37
9416 dataOut.DensityFinal[0,id_aux:]=missing
9417 dataOut.EDensityFinal[0,id_aux:]=missing
9418 dataOut.ElecTempFinal[0,id_aux:]=missing
9419 dataOut.EElecTempFinal[0,id_aux:]=missing
9420 dataOut.IonTempFinal[0,id_aux:]=missing
9421 dataOut.EIonTempFinal[0,id_aux:]=missing
9422 dataOut.PhyFinal[0,id_aux:]=missing
9423 dataOut.EPhyFinal[0,id_aux:]=missing
9424
9425 if (time_text.hour == 7 and time_text.minute == 40): #Year: 2023, DOY:030
9426 id_aux = 31
9427 dataOut.DensityFinal[0,id_aux:]=missing
9428 dataOut.EDensityFinal[0,id_aux:]=missing
9429 dataOut.ElecTempFinal[0,id_aux:]=missing
9430 dataOut.EElecTempFinal[0,id_aux:]=missing
9431 dataOut.IonTempFinal[0,id_aux:]=missing
9432 dataOut.EIonTempFinal[0,id_aux:]=missing
9433 dataOut.PhyFinal[0,id_aux:]=missing
9434 dataOut.EPhyFinal[0,id_aux:]=missing
9435
9436 if (time_text.hour == 11 and time_text.minute == 2): #Year: 2023, DOY:030
9437 id_aux = 24
9438 dataOut.DensityFinal[0,id_aux:]=missing
9439 dataOut.EDensityFinal[0,id_aux:]=missing
9440 dataOut.ElecTempFinal[0,id_aux:]=missing
9441 dataOut.EElecTempFinal[0,id_aux:]=missing
9442 dataOut.IonTempFinal[0,id_aux:]=missing
9443 dataOut.EIonTempFinal[0,id_aux:]=missing
9444 dataOut.PhyFinal[0,id_aux:]=missing
9445 dataOut.EPhyFinal[0,id_aux:]=missing
9446
9447 if (time_text.hour == 5) or (time_text.hour == 6) or (time_text.hour == 7) or (time_text.hour == 0): #Year: 2023, DOY:030
9448 id_aux = 12
9449 dataOut.DensityFinal[0,:id_aux]=missing
9450 dataOut.EDensityFinal[0,:id_aux]=missing
9451 dataOut.ElecTempFinal[0,:id_aux]=missing
9452 dataOut.EElecTempFinal[0,:id_aux]=missing
9453 dataOut.IonTempFinal[0,:id_aux]=missing
9454 dataOut.EIonTempFinal[0,:id_aux]=missing
9455 dataOut.PhyFinal[0,:id_aux]=missing
9456 dataOut.EPhyFinal[0,:id_aux]=missing
9457
9458 if (time_text.hour == 23 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute == 50): #Year: 2023, DOY:030
9459 id_aux = 13
9460 dataOut.DensityFinal[0,:id_aux]=missing
9461 dataOut.EDensityFinal[0,:id_aux]=missing
9462 dataOut.ElecTempFinal[0,:id_aux]=missing
9463 dataOut.EElecTempFinal[0,:id_aux]=missing
9464 dataOut.IonTempFinal[0,:id_aux]=missing
9465 dataOut.EIonTempFinal[0,:id_aux]=missing
9466 dataOut.PhyFinal[0,:id_aux]=missing
9467 dataOut.EPhyFinal[0,:id_aux]=missing
9468
9469 if (time_text.hour == 11 and time_text.minute == 56): #Year: 2023, DOY:030
9470 id_aux = 8
9471 dataOut.DensityFinal[0,:id_aux]=missing
9472 dataOut.EDensityFinal[0,:id_aux]=missing
9473 dataOut.ElecTempFinal[0,:id_aux]=missing
9474 dataOut.EElecTempFinal[0,:id_aux]=missing
9475 dataOut.IonTempFinal[0,:id_aux]=missing
9476 dataOut.EIonTempFinal[0,:id_aux]=missing
9477 dataOut.PhyFinal[0,:id_aux]=missing
9478 dataOut.EPhyFinal[0,:id_aux]=missing
9479 '''
9480
9481 '''
9482 if (time_text.hour == 14 and time_text.minute == 42): #Year: 2023, DOY:027
9483 id_aux = 31
9484 dataOut.DensityFinal[0,id_aux:]=missing
9485 dataOut.EDensityFinal[0,id_aux:]=missing
9486 dataOut.ElecTempFinal[0,id_aux:]=missing
9487 dataOut.EElecTempFinal[0,id_aux:]=missing
9488 dataOut.IonTempFinal[0,id_aux:]=missing
9489 dataOut.EIonTempFinal[0,id_aux:]=missing
9490 dataOut.PhyFinal[0,id_aux:]=missing
9491 dataOut.EPhyFinal[0,id_aux:]=missing
9492
9493 if (time_text.hour == 15 and time_text.minute == 25) or (time_text.hour == 15 and time_text.minute == 36): #Year: 2023, DOY:027
9494 id_aux = 35
9495 dataOut.DensityFinal[0,id_aux:]=missing
9496 dataOut.EDensityFinal[0,id_aux:]=missing
9497 dataOut.ElecTempFinal[0,id_aux:]=missing
9498 dataOut.EElecTempFinal[0,id_aux:]=missing
9499 dataOut.IonTempFinal[0,id_aux:]=missing
9500 dataOut.EIonTempFinal[0,id_aux:]=missing
9501 dataOut.PhyFinal[0,id_aux:]=missing
9502 dataOut.EPhyFinal[0,id_aux:]=missing
9503
9504 if (time_text.hour == 23 and time_text.minute == 36) or (time_text.hour == 23 and time_text.minute == 46) or (time_text.hour == 23 and time_text.minute == 57): #Year: 2023, DOY:027
9505 id_aux = 13
9506 dataOut.DensityFinal[0,:id_aux]=missing
9507 dataOut.EDensityFinal[0,:id_aux]=missing
9508 dataOut.ElecTempFinal[0,:id_aux]=missing
9509 dataOut.EElecTempFinal[0,:id_aux]=missing
9510 dataOut.IonTempFinal[0,:id_aux]=missing
9511 dataOut.EIonTempFinal[0,:id_aux]=missing
9512 dataOut.PhyFinal[0,:id_aux]=missing
9513 dataOut.EPhyFinal[0,:id_aux]=missing
9514 '''
9515
9516 '''
9517 if (time_text.hour == 23 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 0 and time_text.minute <= 22) or (time_text.hour == 5 and time_text.minute == 10) or (time_text.hour == 6) or (time_text.hour == 7): #Year: 2023, DOY:029
9518 id_aux = 14
9519 dataOut.DensityFinal[0,:id_aux]=missing
9520 dataOut.EDensityFinal[0,:id_aux]=missing
9521 dataOut.ElecTempFinal[0,:id_aux]=missing
9522 dataOut.EElecTempFinal[0,:id_aux]=missing
9523 dataOut.IonTempFinal[0,:id_aux]=missing
9524 dataOut.EIonTempFinal[0,:id_aux]=missing
9525 dataOut.PhyFinal[0,:id_aux]=missing
9526 dataOut.EPhyFinal[0,:id_aux]=missing
9527
9528 if (time_text.hour == 8) or (time_text.hour == 9 and time_text.minute != 58) or (time_text.hour == 11 and time_text.minute == 2) or (time_text.hour == 5 and time_text.minute == 21) or (time_text.hour == 5 and time_text.minute == 42) or (time_text.hour == 5 and time_text.minute == 53): #Year: 2023, DOY:029
9529 id_aux = 12
9530 dataOut.DensityFinal[0,:id_aux]=missing
9531 dataOut.EDensityFinal[0,:id_aux]=missing
9532 dataOut.ElecTempFinal[0,:id_aux]=missing
9533 dataOut.EElecTempFinal[0,:id_aux]=missing
9534 dataOut.IonTempFinal[0,:id_aux]=missing
9535 dataOut.EIonTempFinal[0,:id_aux]=missing
9536 dataOut.PhyFinal[0,:id_aux]=missing
9537 dataOut.EPhyFinal[0,:id_aux]=missing
9538
9539 if (time_text.hour == 5 and time_text.minute == 32): #Year: 2023, DOY:029
9540 id_aux = 16
9541 dataOut.DensityFinal[0,:id_aux]=missing
9542 dataOut.EDensityFinal[0,:id_aux]=missing
9543 dataOut.ElecTempFinal[0,:id_aux]=missing
9544 dataOut.EElecTempFinal[0,:id_aux]=missing
9545 dataOut.IonTempFinal[0,:id_aux]=missing
9546 dataOut.EIonTempFinal[0,:id_aux]=missing
9547 dataOut.PhyFinal[0,:id_aux]=missing
9548 dataOut.EPhyFinal[0,:id_aux]=missing
9549
9550 if (time_text.hour == 0 and time_text.minute > 22 and time_text.minute != 54): #Year: 2023, DOY:029
9551 id_aux = 22
9552 dataOut.DensityFinal[0,:id_aux]=missing
9553 dataOut.EDensityFinal[0,:id_aux]=missing
9554 dataOut.ElecTempFinal[0,:id_aux]=missing
9555 dataOut.EElecTempFinal[0,:id_aux]=missing
9556 dataOut.IonTempFinal[0,:id_aux]=missing
9557 dataOut.EIonTempFinal[0,:id_aux]=missing
9558 dataOut.PhyFinal[0,:id_aux]=missing
9559 dataOut.EPhyFinal[0,:id_aux]=missing
9560
9561 if (time_text.hour == 12 and time_text.minute == 49): #Year: 2023, DOY:029
9562 id_aux = 32
9563 dataOut.DensityFinal[0,id_aux:]=missing
9564 dataOut.EDensityFinal[0,id_aux:]=missing
9565 dataOut.ElecTempFinal[0,id_aux:]=missing
9566 dataOut.EElecTempFinal[0,id_aux:]=missing
9567 dataOut.IonTempFinal[0,id_aux:]=missing
9568 dataOut.EIonTempFinal[0,id_aux:]=missing
9569 dataOut.PhyFinal[0,id_aux:]=missing
9570 dataOut.EPhyFinal[0,id_aux:]=missing
9571
9572 if (time_text.hour == 13 and time_text.minute == 21) or (time_text.hour == 14 and time_text.minute == 25) or (time_text.hour == 14 and time_text.minute == 36) or (time_text.hour == 14 and time_text.minute == 57): #Year: 2023, DOY:029
9573 id_aux = 37
9574 dataOut.DensityFinal[0,id_aux:]=missing
9575 dataOut.EDensityFinal[0,id_aux:]=missing
9576 dataOut.ElecTempFinal[0,id_aux:]=missing
9577 dataOut.EElecTempFinal[0,id_aux:]=missing
9578 dataOut.IonTempFinal[0,id_aux:]=missing
9579 dataOut.EIonTempFinal[0,id_aux:]=missing
9580 dataOut.PhyFinal[0,id_aux:]=missing
9581 dataOut.EPhyFinal[0,id_aux:]=missing
9582
9583 if (time_text.hour == 6 and time_text.minute == 46) or (time_text.hour == 6 and time_text.minute == 57) or (time_text.hour == 7 and time_text.minute == 50) or (time_text.hour == 6 and time_text.minute == 14): #Year: 2023, DOY:029
9584 id_aux = 35
9585 dataOut.DensityFinal[0,id_aux:]=missing
9586 dataOut.EDensityFinal[0,id_aux:]=missing
9587 dataOut.ElecTempFinal[0,id_aux:]=missing
9588 dataOut.EElecTempFinal[0,id_aux:]=missing
9589 dataOut.IonTempFinal[0,id_aux:]=missing
9590 dataOut.EIonTempFinal[0,id_aux:]=missing
9591 dataOut.PhyFinal[0,id_aux:]=missing
9592 dataOut.EPhyFinal[0,id_aux:]=missing
9593
9594 if (time_text.hour == 7 and time_text.minute == 18): #Year: 2023, DOY:029
9595 id_aux = 36
9596 dataOut.DensityFinal[0,id_aux:]=missing
9597 dataOut.EDensityFinal[0,id_aux:]=missing
9598 dataOut.ElecTempFinal[0,id_aux:]=missing
9599 dataOut.EElecTempFinal[0,id_aux:]=missing
9600 dataOut.IonTempFinal[0,id_aux:]=missing
9601 dataOut.EIonTempFinal[0,id_aux:]=missing
9602 dataOut.PhyFinal[0,id_aux:]=missing
9603 dataOut.EPhyFinal[0,id_aux:]=missing
9604
9605 if (time_text.hour == 9 and time_text.minute == 26) or (time_text.hour == 9 and time_text.minute == 37): #Year: 2023, DOY:029
9606 id_aux = 28
9607 dataOut.DensityFinal[0,id_aux:]=missing
9608 dataOut.EDensityFinal[0,id_aux:]=missing
9609 dataOut.ElecTempFinal[0,id_aux:]=missing
9610 dataOut.EElecTempFinal[0,id_aux:]=missing
9611 dataOut.IonTempFinal[0,id_aux:]=missing
9612 dataOut.EIonTempFinal[0,id_aux:]=missing
9613 dataOut.PhyFinal[0,id_aux:]=missing
9614 dataOut.EPhyFinal[0,id_aux:]=missing
9615
9616 if (time_text.hour == 22 and time_text.minute == 14) or (time_text.hour == 22 and time_text.minute == 25): #Year: 2023, DOY:029
9617 id_aux = (37,38)
9618 dataOut.DensityFinal[0,id_aux]=missing
9619 dataOut.EDensityFinal[0,id_aux]=missing
9620 dataOut.ElecTempFinal[0,id_aux]=missing
9621 dataOut.EElecTempFinal[0,id_aux]=missing
9622 dataOut.IonTempFinal[0,id_aux]=missing
9623 dataOut.EIonTempFinal[0,id_aux]=missing
9624 dataOut.PhyFinal[0,id_aux]=missing
9625 dataOut.EPhyFinal[0,id_aux]=missing
9626 '''
9627
9628 '''
9629 if (time_text.hour == 5 and time_text.minute == 32) or (time_text.hour == 5 and time_text.minute == 42) or (time_text.hour == 5 and time_text.minute == 53) or (time_text.hour == 7 and time_text.minute == 18) or (time_text.hour == 7 and time_text.minute == 29) or (time_text.hour == 7 and time_text.minute == 40) or (time_text.hour == 7 and time_text.minute == 50): #Year: 2023, DOY:028
9630 id_aux = 13
9631 dataOut.DensityFinal[0,:id_aux]=missing
9632 dataOut.EDensityFinal[0,:id_aux]=missing
9633 dataOut.ElecTempFinal[0,:id_aux]=missing
9634 dataOut.EElecTempFinal[0,:id_aux]=missing
9635 dataOut.IonTempFinal[0,:id_aux]=missing
9636 dataOut.EIonTempFinal[0,:id_aux]=missing
9637 dataOut.PhyFinal[0,:id_aux]=missing
9638 dataOut.EPhyFinal[0,:id_aux]=missing
9639
9640 if (time_text.hour == 9 and time_text.minute == 5): #Year: 2023, DOY:028
9641 id_aux = 11
9642 dataOut.DensityFinal[0,:id_aux]=missing
9643 dataOut.EDensityFinal[0,:id_aux]=missing
9644 dataOut.ElecTempFinal[0,:id_aux]=missing
9645 dataOut.EElecTempFinal[0,:id_aux]=missing
9646 dataOut.IonTempFinal[0,:id_aux]=missing
9647 dataOut.EIonTempFinal[0,:id_aux]=missing
9648 dataOut.PhyFinal[0,:id_aux]=missing
9649 dataOut.EPhyFinal[0,:id_aux]=missing
9650
9651 if (time_text.hour == 11 and time_text.minute == 13) or (time_text.hour == 12 and time_text.minute == 17): #Year: 2023, DOY:028
9652 id_aux = 34
9653 dataOut.DensityFinal[0,id_aux:]=missing
9654 dataOut.EDensityFinal[0,id_aux:]=missing
9655 dataOut.ElecTempFinal[0,id_aux:]=missing
9656 dataOut.EElecTempFinal[0,id_aux:]=missing
9657 dataOut.IonTempFinal[0,id_aux:]=missing
9658 dataOut.EIonTempFinal[0,id_aux:]=missing
9659 dataOut.PhyFinal[0,id_aux:]=missing
9660 dataOut.EPhyFinal[0,id_aux:]=missing
9661
9662 if (time_text.hour == 7 and time_text.minute == 29): #Year: 2023, DOY:028
9663 id_aux = 35
9664 dataOut.DensityFinal[0,id_aux:]=missing
9665 dataOut.EDensityFinal[0,id_aux:]=missing
9666 dataOut.ElecTempFinal[0,id_aux:]=missing
9667 dataOut.EElecTempFinal[0,id_aux:]=missing
9668 dataOut.IonTempFinal[0,id_aux:]=missing
9669 dataOut.EIonTempFinal[0,id_aux:]=missing
9670 dataOut.PhyFinal[0,id_aux:]=missing
9671 dataOut.EPhyFinal[0,id_aux:]=missing
9672
9673 if (time_text.hour == 13 and time_text.minute == 53) or (time_text.hour == 14 and time_text.minute == 4) or (time_text.hour == 14 and time_text.minute == 36): #Year: 2023, DOY:028
9674 id_aux = 37
9675 dataOut.DensityFinal[0,id_aux:]=missing
9676 dataOut.EDensityFinal[0,id_aux:]=missing
9677 dataOut.ElecTempFinal[0,id_aux:]=missing
9678 dataOut.EElecTempFinal[0,id_aux:]=missing
9679 dataOut.IonTempFinal[0,id_aux:]=missing
9680 dataOut.EIonTempFinal[0,id_aux:]=missing
9681 dataOut.PhyFinal[0,id_aux:]=missing
9682 dataOut.EPhyFinal[0,id_aux:]=missing
9683
9684 if (time_text.hour == 0 and time_text.minute == 22) or (time_text.hour == 0 and time_text.minute == 33): #Year: 2023, DOY:028
9685 id_aux = 22
9686 dataOut.DensityFinal[0,:id_aux]=missing
9687 dataOut.EDensityFinal[0,:id_aux]=missing
9688 dataOut.ElecTempFinal[0,:id_aux]=missing
9689 dataOut.EElecTempFinal[0,:id_aux]=missing
9690 dataOut.IonTempFinal[0,:id_aux]=missing
9691 dataOut.EIonTempFinal[0,:id_aux]=missing
9692 dataOut.PhyFinal[0,:id_aux]=missing
9693 dataOut.EPhyFinal[0,:id_aux]=missing
9694
9695 if (time_text.hour == 23 and time_text.minute == 40) or (time_text.hour == 23 and time_text.minute == 50) or (time_text.hour == 0 and time_text.minute == 12): #Year: 2023, DOY:028
9696 id_aux = 12
9697 dataOut.DensityFinal[0,:id_aux]=missing
9698 dataOut.EDensityFinal[0,:id_aux]=missing
9699 dataOut.ElecTempFinal[0,:id_aux]=missing
9700 dataOut.EElecTempFinal[0,:id_aux]=missing
9701 dataOut.IonTempFinal[0,:id_aux]=missing
9702 dataOut.EIonTempFinal[0,:id_aux]=missing
9703 dataOut.PhyFinal[0,:id_aux]=missing
9704 dataOut.EPhyFinal[0,:id_aux]=missing
9705 '''
9706
9707 '''
9708 #if (time_text.hour >= 7 and time_text.hour < 9): #Year: 2022, DOY:102
9709 if (time_text.hour == 20 and time_text.minute == 8): #Year: 2022, DOY:243
9710 id_aux = 35
9711 dataOut.DensityFinal[0,id_aux:]=missing
9712 dataOut.EDensityFinal[0,id_aux:]=missing
9713 dataOut.ElecTempFinal[0,id_aux:]=missing
9714 dataOut.EElecTempFinal[0,id_aux:]=missing
9715 dataOut.IonTempFinal[0,id_aux:]=missing
9716 dataOut.EIonTempFinal[0,id_aux:]=missing
9717 dataOut.PhyFinal[0,id_aux:]=missing
9718 dataOut.EPhyFinal[0,id_aux:]=missing
9719 if (time_text.hour == 20 and time_text.minute == 19): #Year: 2022, DOY:243
9720 id_aux = 33
9721 dataOut.DensityFinal[0,id_aux:]=missing
9722 dataOut.EDensityFinal[0,id_aux:]=missing
9723 dataOut.ElecTempFinal[0,id_aux:]=missing
9724 dataOut.EElecTempFinal[0,id_aux:]=missing
9725 dataOut.IonTempFinal[0,id_aux:]=missing
9726 dataOut.EIonTempFinal[0,id_aux:]=missing
9727 dataOut.PhyFinal[0,id_aux:]=missing
9728 dataOut.EPhyFinal[0,id_aux:]=missing
9729 if (time_text.hour == 20 and time_text.minute == 29): #Year: 2022, DOY:243
9730 id_aux = 30
9731 dataOut.DensityFinal[0,id_aux:]=missing
9732 dataOut.EDensityFinal[0,id_aux:]=missing
9733 dataOut.ElecTempFinal[0,id_aux:]=missing
9734 dataOut.EElecTempFinal[0,id_aux:]=missing
9735 dataOut.IonTempFinal[0,id_aux:]=missing
9736 dataOut.EIonTempFinal[0,id_aux:]=missing
9737 dataOut.PhyFinal[0,id_aux:]=missing
9738 dataOut.EPhyFinal[0,id_aux:]=missing
9739 if (time_text.hour == 20 and time_text.minute == 44): #Year: 2022, DOY:243
9740 id_aux = 31
9741 dataOut.DensityFinal[0,id_aux:]=missing
9742 dataOut.EDensityFinal[0,id_aux:]=missing
9743 dataOut.ElecTempFinal[0,id_aux:]=missing
9744 dataOut.EElecTempFinal[0,id_aux:]=missing
9745 dataOut.IonTempFinal[0,id_aux:]=missing
9746 dataOut.EIonTempFinal[0,id_aux:]=missing
9747 dataOut.PhyFinal[0,id_aux:]=missing
9748 dataOut.EPhyFinal[0,id_aux:]=missing
9749 if (time_text.hour <= 8): #Year: 2022, DOY:243
9750 id_aux = 11
9751 dataOut.DensityFinal[0,:id_aux]=missing
9752 dataOut.EDensityFinal[0,:id_aux]=missing
9753 dataOut.ElecTempFinal[0,:id_aux]=missing
9754 dataOut.EElecTempFinal[0,:id_aux]=missing
9755 dataOut.IonTempFinal[0,:id_aux]=missing
9756 dataOut.EIonTempFinal[0,:id_aux]=missing
9757 dataOut.PhyFinal[0,:id_aux]=missing
9758 dataOut.EPhyFinal[0,:id_aux]=missing
9759 if (time_text.hour == 23): #Year: 2022, DOY:243
9760 id_aux = 12
9761 dataOut.DensityFinal[0,:id_aux]=missing
9762 dataOut.EDensityFinal[0,:id_aux]=missing
9763 dataOut.ElecTempFinal[0,:id_aux]=missing
9764 dataOut.EElecTempFinal[0,:id_aux]=missing
9765 dataOut.IonTempFinal[0,:id_aux]=missing
9766 dataOut.EIonTempFinal[0,:id_aux]=missing
9767 dataOut.PhyFinal[0,:id_aux]=missing
9768 dataOut.EPhyFinal[0,:id_aux]=missing
9769 if (time_text.hour == 5 and time_text.minute == 21): #Year: 2022, DOY:243
9770 id_aux = (36,37)
9771 dataOut.DensityFinal[0,id_aux]=missing
9772 dataOut.EDensityFinal[0,id_aux]=missing
9773 dataOut.ElecTempFinal[0,id_aux]=missing
9774 dataOut.EElecTempFinal[0,id_aux]=missing
9775 dataOut.IonTempFinal[0,id_aux]=missing
9776 dataOut.EIonTempFinal[0,id_aux]=missing
9777 dataOut.PhyFinal[0,id_aux]=missing
9778 dataOut.EPhyFinal[0,id_aux]=missing
9779 if (time_text.hour == 5 and time_text.minute == 53): #Year: 2022, DOY:243
9780 id_aux = (37,38)
9781 dataOut.DensityFinal[0,id_aux]=missing
9782 dataOut.EDensityFinal[0,id_aux]=missing
9783 dataOut.ElecTempFinal[0,id_aux]=missing
9784 dataOut.EElecTempFinal[0,id_aux]=missing
9785 dataOut.IonTempFinal[0,id_aux]=missing
9786 dataOut.EIonTempFinal[0,id_aux]=missing
9787 dataOut.PhyFinal[0,id_aux]=missing
9788 dataOut.EPhyFinal[0,id_aux]=missing
9789 if (time_text.hour == 6 and time_text.minute == 4): #Year: 2022, DOY:243
9790 id_aux = (38,39)
9791 dataOut.DensityFinal[0,id_aux]=missing
9792 dataOut.EDensityFinal[0,id_aux]=missing
9793 dataOut.ElecTempFinal[0,id_aux]=missing
9794 dataOut.EElecTempFinal[0,id_aux]=missing
9795 dataOut.IonTempFinal[0,id_aux]=missing
9796 dataOut.EIonTempFinal[0,id_aux]=missing
9797 dataOut.PhyFinal[0,id_aux]=missing
9798 dataOut.EPhyFinal[0,id_aux]=missing
9799 if (time_text.hour == 12 and time_text.minute == 6): #Year: 2022, DOY:243
9800 id_aux = (29,30)
9801 dataOut.DensityFinal[0,id_aux]=missing
9802 dataOut.EDensityFinal[0,id_aux]=missing
9803 dataOut.ElecTempFinal[0,id_aux]=missing
9804 dataOut.EElecTempFinal[0,id_aux]=missing
9805 dataOut.IonTempFinal[0,id_aux]=missing
9806 dataOut.EIonTempFinal[0,id_aux]=missing
9807 dataOut.PhyFinal[0,id_aux]=missing
9808 dataOut.EPhyFinal[0,id_aux]=missing
9809 if (time_text.hour == 14 and time_text.minute == 14): #Year: 2022, DOY:243
9810 id_aux = (35,36)
9811 dataOut.DensityFinal[0,id_aux]=missing
9812 dataOut.EDensityFinal[0,id_aux]=missing
9813 dataOut.ElecTempFinal[0,id_aux]=missing
9814 dataOut.EElecTempFinal[0,id_aux]=missing
9815 dataOut.IonTempFinal[0,id_aux]=missing
9816 dataOut.EIonTempFinal[0,id_aux]=missing
9817 dataOut.PhyFinal[0,id_aux]=missing
9818 dataOut.EPhyFinal[0,id_aux]=missing
9819 if (time_text.hour == 23 and time_text.minute == 2): #Year: 2022, DOY:243
9820 id_aux = (41,42)
9821 dataOut.DensityFinal[0,id_aux]=missing
9822 dataOut.EDensityFinal[0,id_aux]=missing
9823 dataOut.ElecTempFinal[0,id_aux]=missing
9824 dataOut.EElecTempFinal[0,id_aux]=missing
9825 dataOut.IonTempFinal[0,id_aux]=missing
9826 dataOut.EIonTempFinal[0,id_aux]=missing
9827 dataOut.PhyFinal[0,id_aux]=missing
9828 dataOut.EPhyFinal[0,id_aux]=missing
9829 if (time_text.hour == 0 and time_text.minute == 8): #Year: 2022, DOY:243
9830 id_aux = 33
9831 dataOut.DensityFinal[0,id_aux:]=missing
9832 dataOut.EDensityFinal[0,id_aux:]=missing
9833 dataOut.ElecTempFinal[0,id_aux:]=missing
9834 dataOut.EElecTempFinal[0,id_aux:]=missing
9835 dataOut.IonTempFinal[0,id_aux:]=missing
9836 dataOut.EIonTempFinal[0,id_aux:]=missing
9837 dataOut.PhyFinal[0,id_aux:]=missing
9838 dataOut.EPhyFinal[0,id_aux:]=missing
9839 id_aux = 18
9840 dataOut.DensityFinal[0,id_aux]=missing
9841 dataOut.EDensityFinal[0,id_aux]=missing
9842 dataOut.ElecTempFinal[0,id_aux]=missing
9843 dataOut.EElecTempFinal[0,id_aux]=missing
9844 dataOut.IonTempFinal[0,id_aux]=missing
9845 dataOut.EIonTempFinal[0,id_aux]=missing
9846 dataOut.PhyFinal[0,id_aux]=missing
9847 dataOut.EPhyFinal[0,id_aux]=missing
9848 if (time_text.hour == 23 and time_text.minute == 26): #Year: 2022, DOY:243
9849 id_aux = (12,13,14)
9850 dataOut.DensityFinal[0,id_aux]=missing
9851 dataOut.EDensityFinal[0,id_aux]=missing
9852 dataOut.ElecTempFinal[0,id_aux]=missing
9853 dataOut.EElecTempFinal[0,id_aux]=missing
9854 dataOut.IonTempFinal[0,id_aux]=missing
9855 dataOut.EIonTempFinal[0,id_aux]=missing
9856 dataOut.PhyFinal[0,id_aux]=missing
9857 dataOut.EPhyFinal[0,id_aux]=missing
9858 if (time_text.hour == 23 and time_text.minute == 36): #Year: 2022, DOY:243
9859 id_aux = (14,15,16)
9860 dataOut.DensityFinal[0,id_aux]=missing
9861 dataOut.EDensityFinal[0,id_aux]=missing
9862 dataOut.ElecTempFinal[0,id_aux]=missing
9863 dataOut.EElecTempFinal[0,id_aux]=missing
9864 dataOut.IonTempFinal[0,id_aux]=missing
9865 dataOut.EIonTempFinal[0,id_aux]=missing
9866 dataOut.PhyFinal[0,id_aux]=missing
9867 dataOut.EPhyFinal[0,id_aux]=missing
9868 if (time_text.hour == 2 and time_text.minute == 6): #Year: 2022, DOY:243
9869 id_aux = (36,37,38)
9870 dataOut.DensityFinal[0,id_aux]=missing
9871 dataOut.EDensityFinal[0,id_aux]=missing
9872 dataOut.ElecTempFinal[0,id_aux]=missing
9873 dataOut.EElecTempFinal[0,id_aux]=missing
9874 dataOut.IonTempFinal[0,id_aux]=missing
9875 dataOut.EIonTempFinal[0,id_aux]=missing
9876 dataOut.PhyFinal[0,id_aux]=missing
9877 dataOut.EPhyFinal[0,id_aux]=missing
9878 if (time_text.hour == 2 and time_text.minute == 16): #Year: 2022, DOY:243
9879 id_aux = (34,35)
9880 dataOut.DensityFinal[0,id_aux]=missing
9881 dataOut.EDensityFinal[0,id_aux]=missing
9882 dataOut.ElecTempFinal[0,id_aux]=missing
9883 dataOut.EElecTempFinal[0,id_aux]=missing
9884 dataOut.IonTempFinal[0,id_aux]=missing
9885 dataOut.EIonTempFinal[0,id_aux]=missing
9886 dataOut.PhyFinal[0,id_aux]=missing
9887 dataOut.EPhyFinal[0,id_aux]=missing
9888 if (time_text.hour == 2 and time_text.minute == 38): #Year: 2022, DOY:243
9889 id_aux = (35,36)
9890 dataOut.DensityFinal[0,id_aux]=missing
9891 dataOut.EDensityFinal[0,id_aux]=missing
9892 dataOut.ElecTempFinal[0,id_aux]=missing
9893 dataOut.EElecTempFinal[0,id_aux]=missing
9894 dataOut.IonTempFinal[0,id_aux]=missing
9895 dataOut.EIonTempFinal[0,id_aux]=missing
9896 dataOut.PhyFinal[0,id_aux]=missing
9897 dataOut.EPhyFinal[0,id_aux]=missing
9898 if (time_text.hour == 3 and time_text.minute == 20): #Year: 2022, DOY:243
9899 id_aux = (33,34)
9900 dataOut.DensityFinal[0,id_aux]=missing
9901 dataOut.EDensityFinal[0,id_aux]=missing
9902 dataOut.ElecTempFinal[0,id_aux]=missing
9903 dataOut.EElecTempFinal[0,id_aux]=missing
9904 dataOut.IonTempFinal[0,id_aux]=missing
9905 dataOut.EIonTempFinal[0,id_aux]=missing
9906 dataOut.PhyFinal[0,id_aux]=missing
9907 dataOut.EPhyFinal[0,id_aux]=missing
9908 if (time_text.hour == 3 and time_text.minute == 42): #Year: 2022, DOY:243
9909 id_aux = 34
9910 dataOut.DensityFinal[0,id_aux:]=missing
9911 dataOut.EDensityFinal[0,id_aux:]=missing
9912 dataOut.ElecTempFinal[0,id_aux:]=missing
9913 dataOut.EElecTempFinal[0,id_aux:]=missing
9914 dataOut.IonTempFinal[0,id_aux:]=missing
9915 dataOut.EIonTempFinal[0,id_aux:]=missing
9916 dataOut.PhyFinal[0,id_aux:]=missing
9917 dataOut.EPhyFinal[0,id_aux:]=missing
9918 if (time_text.hour == 4 and time_text.minute == 35): #Year: 2022, DOY:243
9919 id_aux = (36,37)
9920 dataOut.DensityFinal[0,id_aux]=missing
9921 dataOut.EDensityFinal[0,id_aux]=missing
9922 dataOut.ElecTempFinal[0,id_aux]=missing
9923 dataOut.EElecTempFinal[0,id_aux]=missing
9924 dataOut.IonTempFinal[0,id_aux]=missing
9925 dataOut.EIonTempFinal[0,id_aux]=missing
9926 dataOut.PhyFinal[0,id_aux]=missing
9927 dataOut.EPhyFinal[0,id_aux]=missing
9928 '''
9929 '''
9930 if (time_text.hour == 2 and time_text.minute == 23): #Year: 2022, DOY:244
9931 id_aux = 12
9932 dataOut.DensityFinal[0,:id_aux]=missing
9933 dataOut.EDensityFinal[0,:id_aux]=missing
9934 dataOut.ElecTempFinal[0,:id_aux]=missing
9935 dataOut.EElecTempFinal[0,:id_aux]=missing
9936 dataOut.IonTempFinal[0,:id_aux]=missing
9937 dataOut.EIonTempFinal[0,:id_aux]=missing
9938 dataOut.PhyFinal[0,:id_aux]=missing
9939 dataOut.EPhyFinal[0,:id_aux]=missing
9940 if (time_text.hour == 20 and time_text.minute == 52): #Year: 2022, DOY:244
9941 id_aux = 25
9942 dataOut.DensityFinal[0,id_aux:]=missing
9943 dataOut.EDensityFinal[0,id_aux:]=missing
9944 dataOut.ElecTempFinal[0,id_aux:]=missing
9945 dataOut.EElecTempFinal[0,id_aux:]=missing
9946 dataOut.IonTempFinal[0,id_aux:]=missing
9947 dataOut.EIonTempFinal[0,id_aux:]=missing
9948 dataOut.PhyFinal[0,id_aux:]=missing
9949 dataOut.EPhyFinal[0,id_aux:]=missing
9950 if (time_text.hour == 21 and time_text.minute == 3): #Year: 2022, DOY:244
9951 id_aux = 38
9952 dataOut.DensityFinal[0,id_aux:]=missing
9953 dataOut.EDensityFinal[0,id_aux:]=missing
9954 dataOut.ElecTempFinal[0,id_aux:]=missing
9955 dataOut.EElecTempFinal[0,id_aux:]=missing
9956 dataOut.IonTempFinal[0,id_aux:]=missing
9957 dataOut.EIonTempFinal[0,id_aux:]=missing
9958 dataOut.PhyFinal[0,id_aux:]=missing
9959 dataOut.EPhyFinal[0,id_aux:]=missing
9960 if (time_text.hour == 21 and time_text.minute == 13) or (time_text.hour == 2 and time_text.minute == 55): #Year: 2022, DOY:244
9961 id_aux = 26
9962 dataOut.DensityFinal[0,id_aux:]=missing
9963 dataOut.EDensityFinal[0,id_aux:]=missing
9964 dataOut.ElecTempFinal[0,id_aux:]=missing
9965 dataOut.EElecTempFinal[0,id_aux:]=missing
9966 dataOut.IonTempFinal[0,id_aux:]=missing
9967 dataOut.EIonTempFinal[0,id_aux:]=missing
9968 dataOut.PhyFinal[0,id_aux:]=missing
9969 dataOut.EPhyFinal[0,id_aux:]=missing
9970 if (time_text.hour == 21 and time_text.minute == 24): #Year: 2022, DOY:244
9971 id_aux = 37
9972 dataOut.DensityFinal[0,id_aux:]=missing
9973 dataOut.EDensityFinal[0,id_aux:]=missing
9974 dataOut.ElecTempFinal[0,id_aux:]=missing
9975 dataOut.EElecTempFinal[0,id_aux:]=missing
9976 dataOut.IonTempFinal[0,id_aux:]=missing
9977 dataOut.EIonTempFinal[0,id_aux:]=missing
9978 dataOut.PhyFinal[0,id_aux:]=missing
9979 dataOut.EPhyFinal[0,id_aux:]=missing
9980 if (time_text.hour == 21 and time_text.minute == 35): #Year: 2022, DOY:244
9981 id_aux = 37
9982 dataOut.DensityFinal[0,id_aux:]=missing
9983 dataOut.EDensityFinal[0,id_aux:]=missing
9984 dataOut.ElecTempFinal[0,id_aux:]=missing
9985 dataOut.EElecTempFinal[0,id_aux:]=missing
9986 dataOut.IonTempFinal[0,id_aux:]=missing
9987 dataOut.EIonTempFinal[0,id_aux:]=missing
9988 dataOut.PhyFinal[0,id_aux:]=missing
9989 dataOut.EPhyFinal[0,id_aux:]=missing
9990 if (time_text.hour == 21 and time_text.minute == 45): #Year: 2022, DOY:244
9991 id_aux = 36
9992 dataOut.DensityFinal[0,id_aux:]=missing
9993 dataOut.EDensityFinal[0,id_aux:]=missing
9994 dataOut.ElecTempFinal[0,id_aux:]=missing
9995 dataOut.EElecTempFinal[0,id_aux:]=missing
9996 dataOut.IonTempFinal[0,id_aux:]=missing
9997 dataOut.EIonTempFinal[0,id_aux:]=missing
9998 dataOut.PhyFinal[0,id_aux:]=missing
9999 dataOut.EPhyFinal[0,id_aux:]=missing
10000 if (time_text.hour == 3 and time_text.minute == 59): #Year: 2022, DOY:244
10001 id_aux = 36
10002 dataOut.DensityFinal[0,id_aux:]=missing
10003 dataOut.EDensityFinal[0,id_aux:]=missing
10004 dataOut.ElecTempFinal[0,id_aux:]=missing
10005 dataOut.EElecTempFinal[0,id_aux:]=missing
10006 dataOut.IonTempFinal[0,id_aux:]=missing
10007 dataOut.EIonTempFinal[0,id_aux:]=missing
10008 dataOut.PhyFinal[0,id_aux:]=missing
10009 dataOut.EPhyFinal[0,id_aux:]=missing
10010 if (time_text.hour <= 8): #Year: 2022, DOY:244
10011 id_aux = 12
10012 dataOut.DensityFinal[0,:id_aux]=missing
10013 dataOut.EDensityFinal[0,:id_aux]=missing
10014 dataOut.ElecTempFinal[0,:id_aux]=missing
10015 dataOut.EElecTempFinal[0,:id_aux]=missing
10016 dataOut.IonTempFinal[0,:id_aux]=missing
10017 dataOut.EIonTempFinal[0,:id_aux]=missing
10018 dataOut.PhyFinal[0,:id_aux]=missing
10019 dataOut.EPhyFinal[0,:id_aux]=missing
10020 if (time_text.hour == 23): #Year: 2022, DOY:244
10021 id_aux = 12
10022 dataOut.DensityFinal[0,:id_aux]=missing
10023 dataOut.EDensityFinal[0,:id_aux]=missing
10024 dataOut.ElecTempFinal[0,:id_aux]=missing
10025 dataOut.EElecTempFinal[0,:id_aux]=missing
10026 dataOut.IonTempFinal[0,:id_aux]=missing
10027 dataOut.EIonTempFinal[0,:id_aux]=missing
10028 dataOut.PhyFinal[0,:id_aux]=missing
10029 dataOut.EPhyFinal[0,:id_aux]=missing
10030 if (time_text.hour == 5 and time_text.minute == 42): #Year: 2022, DOY:244
10031 id_aux = (32,33)
10032 dataOut.DensityFinal[0,id_aux]=missing
10033 dataOut.EDensityFinal[0,id_aux]=missing
10034 dataOut.ElecTempFinal[0,id_aux]=missing
10035 dataOut.EElecTempFinal[0,id_aux]=missing
10036 dataOut.IonTempFinal[0,id_aux]=missing
10037 dataOut.EIonTempFinal[0,id_aux]=missing
10038 dataOut.PhyFinal[0,id_aux]=missing
10039 dataOut.EPhyFinal[0,id_aux]=missing
10040 if (time_text.hour == 11 and time_text.minute == 56): #Year: 2022, DOY:244
10041 id_aux = (39,40)
10042 dataOut.DensityFinal[0,id_aux]=missing
10043 dataOut.EDensityFinal[0,id_aux]=missing
10044 dataOut.ElecTempFinal[0,id_aux]=missing
10045 dataOut.EElecTempFinal[0,id_aux]=missing
10046 dataOut.IonTempFinal[0,id_aux]=missing
10047 dataOut.EIonTempFinal[0,id_aux]=missing
10048 dataOut.PhyFinal[0,id_aux]=missing
10049 dataOut.EPhyFinal[0,id_aux]=missing
10050 if (time_text.hour == 12 and time_text.minute == 52): #Year: 2022, DOY:244
10051 id_aux = (36,37)
10052 dataOut.DensityFinal[0,id_aux]=missing
10053 dataOut.EDensityFinal[0,id_aux]=missing
10054 dataOut.ElecTempFinal[0,id_aux]=missing
10055 dataOut.EElecTempFinal[0,id_aux]=missing
10056 dataOut.IonTempFinal[0,id_aux]=missing
10057 dataOut.EIonTempFinal[0,id_aux]=missing
10058 dataOut.PhyFinal[0,id_aux]=missing
10059 dataOut.EPhyFinal[0,id_aux]=missing
10060 if (time_text.hour == 13 and time_text.minute == 3): #Year: 2022, DOY:244
10061 id_aux = (37,38)
10062 dataOut.DensityFinal[0,id_aux]=missing
10063 dataOut.EDensityFinal[0,id_aux]=missing
10064 dataOut.ElecTempFinal[0,id_aux]=missing
10065 dataOut.EElecTempFinal[0,id_aux]=missing
10066 dataOut.IonTempFinal[0,id_aux]=missing
10067 dataOut.EIonTempFinal[0,id_aux]=missing
10068 dataOut.PhyFinal[0,id_aux]=missing
10069 dataOut.EPhyFinal[0,id_aux]=missing
10070 if (time_text.hour == 23 and time_text.minute == 11): #Year: 2022, DOY:244
10071 id_aux = (40,41)
10072 dataOut.DensityFinal[0,id_aux]=missing
10073 dataOut.EDensityFinal[0,id_aux]=missing
10074 dataOut.ElecTempFinal[0,id_aux]=missing
10075 dataOut.EElecTempFinal[0,id_aux]=missing
10076 dataOut.IonTempFinal[0,id_aux]=missing
10077 dataOut.EIonTempFinal[0,id_aux]=missing
10078 dataOut.PhyFinal[0,id_aux]=missing
10079 dataOut.EPhyFinal[0,id_aux]=missing
10080 if (time_text.hour == 23 and time_text.minute == 21): #Year: 2022, DOY:244
10081 id_aux = (12,13,39,40,41)
10082 dataOut.DensityFinal[0,id_aux]=missing
10083 dataOut.EDensityFinal[0,id_aux]=missing
10084 dataOut.ElecTempFinal[0,id_aux]=missing
10085 dataOut.EElecTempFinal[0,id_aux]=missing
10086 dataOut.IonTempFinal[0,id_aux]=missing
10087 dataOut.EIonTempFinal[0,id_aux]=missing
10088 dataOut.PhyFinal[0,id_aux]=missing
10089 dataOut.EPhyFinal[0,id_aux]=missing
10090 if (time_text.hour == 23 and time_text.minute == 53): #Year: 2022, DOY:244
10091 id_aux = (15,16,17,18)
10092 dataOut.DensityFinal[0,id_aux]=missing
10093 dataOut.EDensityFinal[0,id_aux]=missing
10094 dataOut.ElecTempFinal[0,id_aux]=missing
10095 dataOut.EElecTempFinal[0,id_aux]=missing
10096 dataOut.IonTempFinal[0,id_aux]=missing
10097 dataOut.EIonTempFinal[0,id_aux]=missing
10098 dataOut.PhyFinal[0,id_aux]=missing
10099 dataOut.EPhyFinal[0,id_aux]=missing
10100 if (time_text.hour == 2 and time_text.minute == 44): #Year: 2022, DOY:244
10101 id_aux = (40,41,42)
10102 dataOut.DensityFinal[0,id_aux]=missing
10103 dataOut.EDensityFinal[0,id_aux]=missing
10104 dataOut.ElecTempFinal[0,id_aux]=missing
10105 dataOut.EElecTempFinal[0,id_aux]=missing
10106 dataOut.IonTempFinal[0,id_aux]=missing
10107 dataOut.EIonTempFinal[0,id_aux]=missing
10108 dataOut.PhyFinal[0,id_aux]=missing
10109 dataOut.EPhyFinal[0,id_aux]=missing
10110 if (time_text.hour == 3 and time_text.minute == 37): #Year: 2022, DOY:244
10111 id_aux = (36,37)
10112 dataOut.DensityFinal[0,id_aux]=missing
10113 dataOut.EDensityFinal[0,id_aux]=missing
10114 dataOut.ElecTempFinal[0,id_aux]=missing
10115 dataOut.EElecTempFinal[0,id_aux]=missing
10116 dataOut.IonTempFinal[0,id_aux]=missing
10117 dataOut.EIonTempFinal[0,id_aux]=missing
10118 dataOut.PhyFinal[0,id_aux]=missing
10119 dataOut.EPhyFinal[0,id_aux]=missing
10120 if (time_text.hour == 4 and time_text.minute == 9): #Year: 2022, DOY:244
10121 id_aux = (32,33,34)
10122 dataOut.DensityFinal[0,id_aux]=missing
10123 dataOut.EDensityFinal[0,id_aux]=missing
10124 dataOut.ElecTempFinal[0,id_aux]=missing
10125 dataOut.EElecTempFinal[0,id_aux]=missing
10126 dataOut.IonTempFinal[0,id_aux]=missing
10127 dataOut.EIonTempFinal[0,id_aux]=missing
10128 dataOut.PhyFinal[0,id_aux]=missing
10129 dataOut.EPhyFinal[0,id_aux]=missing
10130 if (time_text.hour == 4 and time_text.minute == 20): #Year: 2022, DOY:244
10131 id_aux = 37
10132 dataOut.DensityFinal[0,id_aux:]=missing
10133 dataOut.EDensityFinal[0,id_aux:]=missing
10134 dataOut.ElecTempFinal[0,id_aux:]=missing
10135 dataOut.EElecTempFinal[0,id_aux:]=missing
10136 dataOut.IonTempFinal[0,id_aux:]=missing
10137 dataOut.EIonTempFinal[0,id_aux:]=missing
10138 dataOut.PhyFinal[0,id_aux:]=missing
10139 dataOut.EPhyFinal[0,id_aux:]=missing
10140 if (time_text.hour == 4 and time_text.minute == 31): #Year: 2022, DOY:244
10141 id_aux = 33
10142 dataOut.DensityFinal[0,id_aux:]=missing
10143 dataOut.EDensityFinal[0,id_aux:]=missing
10144 dataOut.ElecTempFinal[0,id_aux:]=missing
10145 dataOut.EElecTempFinal[0,id_aux:]=missing
10146 dataOut.IonTempFinal[0,id_aux:]=missing
10147 dataOut.EIonTempFinal[0,id_aux:]=missing
10148 dataOut.PhyFinal[0,id_aux:]=missing
10149 dataOut.EPhyFinal[0,id_aux:]=missing
10150 if (time_text.hour == 2 and time_text.minute == 1): #Year: 2022, DOY:244
10151 id_aux = 40
10152 dataOut.DensityFinal[0,id_aux:]=missing
10153 dataOut.EDensityFinal[0,id_aux:]=missing
10154 dataOut.ElecTempFinal[0,id_aux:]=missing
10155 dataOut.EElecTempFinal[0,id_aux:]=missing
10156 dataOut.IonTempFinal[0,id_aux:]=missing
10157 dataOut.EIonTempFinal[0,id_aux:]=missing
10158 dataOut.PhyFinal[0,id_aux:]=missing
10159 dataOut.EPhyFinal[0,id_aux:]=missing
10160 if (time_text.hour == 2 and time_text.minute == 1): #Year: 2022, DOY:244
10161 id_aux = 26
10162 dataOut.DensityFinal[0,:id_aux]=missing
10163 dataOut.EDensityFinal[0,:id_aux]=missing
10164 dataOut.ElecTempFinal[0,:id_aux]=missing
10165 dataOut.EElecTempFinal[0,:id_aux]=missing
10166 dataOut.IonTempFinal[0,:id_aux]=missing
10167 dataOut.EIonTempFinal[0,:id_aux]=missing
10168 dataOut.PhyFinal[0,:id_aux]=missing
10169 dataOut.EPhyFinal[0,:id_aux]=missing
10170 if (time_text.hour == 1 and time_text.minute == 29): #Year: 2022, DOY:244
10171 id_aux = 30
10172 dataOut.DensityFinal[0,:id_aux]=missing
10173 dataOut.EDensityFinal[0,:id_aux]=missing
10174 dataOut.ElecTempFinal[0,:id_aux]=missing
10175 dataOut.EElecTempFinal[0,:id_aux]=missing
10176 dataOut.IonTempFinal[0,:id_aux]=missing
10177 dataOut.EIonTempFinal[0,:id_aux]=missing
10178 dataOut.PhyFinal[0,:id_aux]=missing
10179 dataOut.EPhyFinal[0,:id_aux]=missing
10180 if (time_text.hour == 0 and time_text.minute == 25) or (time_text.hour == 0 and time_text.minute == 36) or (time_text.hour == 1 and time_text.minute == 8) or (time_text.hour == 1 and time_text.minute == 19) or (time_text.hour == 1 and time_text.minute == 29): #Year: 2022, DOY:244
10181 id_aux = 20
10182 dataOut.DensityFinal[0,:id_aux]=missing
10183 dataOut.EDensityFinal[0,:id_aux]=missing
10184 dataOut.ElecTempFinal[0,:id_aux]=missing
10185 dataOut.EElecTempFinal[0,:id_aux]=missing
10186 dataOut.IonTempFinal[0,:id_aux]=missing
10187 dataOut.EIonTempFinal[0,:id_aux]=missing
10188 dataOut.PhyFinal[0,:id_aux]=missing
10189 dataOut.EPhyFinal[0,:id_aux]=missing
10190 if (time_text.hour == 1 and time_text.minute == 40) or (time_text.hour == 1 and time_text.minute == 51): #Year: 2022, DOY:244
10191 id_aux = 34
10192 dataOut.DensityFinal[0,:id_aux]=missing
10193 dataOut.EDensityFinal[0,:id_aux]=missing
10194 dataOut.ElecTempFinal[0,:id_aux]=missing
10195 dataOut.EElecTempFinal[0,:id_aux]=missing
10196 dataOut.IonTempFinal[0,:id_aux]=missing
10197 dataOut.EIonTempFinal[0,:id_aux]=missing
10198 dataOut.PhyFinal[0,:id_aux]=missing
10199 dataOut.EPhyFinal[0,:id_aux]=missing
10200 '''
10201 '''
10202 if (time_text.hour <= 10): #Year: 2022, DOY:245
10203 id_aux = 11
10204 dataOut.DensityFinal[0,:id_aux]=missing
10205 dataOut.EDensityFinal[0,:id_aux]=missing
10206 dataOut.ElecTempFinal[0,:id_aux]=missing
10207 dataOut.EElecTempFinal[0,:id_aux]=missing
10208 dataOut.IonTempFinal[0,:id_aux]=missing
10209 dataOut.EIonTempFinal[0,:id_aux]=missing
10210 dataOut.PhyFinal[0,:id_aux]=missing
10211 dataOut.EPhyFinal[0,:id_aux]=missing
10212 if (time_text.hour == 5 and time_text.minute == 10): #Year: 2022, DOY:245
10213 id_aux = 35
10214 dataOut.DensityFinal[0,id_aux:]=missing
10215 dataOut.EDensityFinal[0,id_aux:]=missing
10216 dataOut.ElecTempFinal[0,id_aux:]=missing
10217 dataOut.EElecTempFinal[0,id_aux:]=missing
10218 dataOut.IonTempFinal[0,id_aux:]=missing
10219 dataOut.EIonTempFinal[0,id_aux:]=missing
10220 dataOut.PhyFinal[0,id_aux:]=missing
10221 dataOut.EPhyFinal[0,id_aux:]=missing
10222 if (time_text.hour == 5 and time_text.minute == 21): #Year: 2022, DOY:245
10223 id_aux = 36
10224 dataOut.DensityFinal[0,id_aux:]=missing
10225 dataOut.EDensityFinal[0,id_aux:]=missing
10226 dataOut.ElecTempFinal[0,id_aux:]=missing
10227 dataOut.EElecTempFinal[0,id_aux:]=missing
10228 dataOut.IonTempFinal[0,id_aux:]=missing
10229 dataOut.EIonTempFinal[0,id_aux:]=missing
10230 dataOut.PhyFinal[0,id_aux:]=missing
10231 dataOut.EPhyFinal[0,id_aux:]=missing
10232 if (time_text.hour == 11 and time_text.minute == 45): #Year: 2022, DOY:245
10233 id_aux = 7
10234 dataOut.DensityFinal[0,id_aux]=missing
10235 dataOut.EDensityFinal[0,id_aux]=missing
10236 dataOut.ElecTempFinal[0,id_aux]=missing
10237 dataOut.EElecTempFinal[0,id_aux]=missing
10238 dataOut.IonTempFinal[0,id_aux]=missing
10239 dataOut.EIonTempFinal[0,id_aux]=missing
10240 dataOut.PhyFinal[0,id_aux]=missing
10241 dataOut.EPhyFinal[0,id_aux]=missing
10242 '''
10243 '''
10244 if (time_text.hour == 23 and time_text.minute > 30): #Year: 2022, DOY:241
10245 id_aux = 17
10246 dataOut.DensityFinal[0,:id_aux]=missing
10247 dataOut.EDensityFinal[0,:id_aux]=missing
10248 dataOut.ElecTempFinal[0,:id_aux]=missing
10249 dataOut.EElecTempFinal[0,:id_aux]=missing
10250 dataOut.IonTempFinal[0,:id_aux]=missing
10251 dataOut.EIonTempFinal[0,:id_aux]=missing
10252 dataOut.PhyFinal[0,:id_aux]=missing
10253 dataOut.EPhyFinal[0,:id_aux]=missing
10254
10255 if (time_text.hour == 13 and time_text.minute == 36): #Year: 2022, DOY:241
10256 id_aux = 33
10257 dataOut.DensityFinal[0,id_aux:]=missing
10258 dataOut.EDensityFinal[0,id_aux:]=missing
10259 dataOut.ElecTempFinal[0,id_aux:]=missing
10260 dataOut.EElecTempFinal[0,id_aux:]=missing
10261 dataOut.IonTempFinal[0,id_aux:]=missing
10262 dataOut.EIonTempFinal[0,id_aux:]=missing
10263 dataOut.PhyFinal[0,id_aux:]=missing
10264 dataOut.EPhyFinal[0,id_aux:]=missing
10265 if (time_text.hour == 13 and time_text.minute == 47): #Year: 2022, DOY:241
10266 id_aux = 36
10267 dataOut.DensityFinal[0,id_aux:]=missing
10268 dataOut.EDensityFinal[0,id_aux:]=missing
10269 dataOut.ElecTempFinal[0,id_aux:]=missing
10270 dataOut.EElecTempFinal[0,id_aux:]=missing
10271 dataOut.IonTempFinal[0,id_aux:]=missing
10272 dataOut.EIonTempFinal[0,id_aux:]=missing
10273 dataOut.PhyFinal[0,id_aux:]=missing
10274 dataOut.EPhyFinal[0,id_aux:]=missing
10275
10276 if (time_text.hour == 13 and time_text.minute == 57): #Year: 2022, DOY:241
10277 id_aux = 36
10278 dataOut.DensityFinal[0,id_aux:]=missing
10279 dataOut.EDensityFinal[0,id_aux:]=missing
10280 dataOut.ElecTempFinal[0,id_aux:]=missing
10281 dataOut.EElecTempFinal[0,id_aux:]=missing
10282 dataOut.IonTempFinal[0,id_aux:]=missing
10283 dataOut.EIonTempFinal[0,id_aux:]=missing
10284 dataOut.PhyFinal[0,id_aux:]=missing
10285 dataOut.EPhyFinal[0,id_aux:]=missing
10286 '''
3482 if (time_text.hour == 5 and (time_text.minute >= 20)) or (time_text.hour == 6 and (time_text.minute <= 5)): #06-18 LT
3483 #dataOut.DensityFinal[0,27:]=missing
3484 #dataOut.EDensityFinal[0,27:]=missing
3485 dataOut.ElecTempFinal[0,27:]=missing
3486 dataOut.EElecTempFinal[0,27:]=missing
3487 dataOut.IonTempFinal[0,27:]=missing
3488 dataOut.EIonTempFinal[0,27:]=missing
3489 dataOut.PhyFinal[0,27:]=missing
3490 dataOut.EPhyFinal[0,27:] = missing
3491 '''
3492 '''
3493 # 6 Sep 24
3494 if (time_text.hour == 5 and (time_text.minute <= 25)) or (time_text.hour == 6 and (time_text.minute >= 5)): #06-18 LT
3495 #dataOut.DensityFinal[0,27:]=missing
3496 #dataOut.EDensityFinal[0,27:]=missing
3497 dataOut.ElecTempFinal[0,25:]=missing
3498 dataOut.EElecTempFinal[0,25:]=missing
3499 dataOut.IonTempFinal[0,25:]=missing
3500 dataOut.EIonTempFinal[0,25:]=missing
3501 dataOut.PhyFinal[0,25:]=missing
3502 dataOut.EPhyFinal[0, 25:] = missing
3503 '''
3504 # 8 Sep 24
3505 if True: #06-18 LT
3506 #dataOut.DensityFinal[0,27:]=missing
3507 #dataOut.EDensityFinal[0,27:]=missing
3508 dataOut.ElecTempFinal[0,36:]=missing
3509 dataOut.EElecTempFinal[0,36:]=missing
3510 dataOut.IonTempFinal[0,36:]=missing
3511 dataOut.EIonTempFinal[0,36:]=missing
3512 dataOut.PhyFinal[0,36:]=missing
3513 dataOut.EPhyFinal[0, 36:] = missing
3514 start = time()
3515 flagcleandata = True
3516 if flagcleandata:
3517 #print("Final Cleaning Process", time_text.hour, time_text.minute)
3518 path = os.path.join(os.path.dirname(__file__), 'clean_data.json')
3519 with open(path) as f:
3520 jsondata= json.load(f)
3521
3522 corrections = {}
3523
3524
3525 for condition in jsondata['conditions']:
3526 year = condition['year']
3527 doy = condition['doy']
3528 init = condition['initial_time']
3529 final = condition['final_time']
3530 aux_index = condition['aux_index']
3531
3532 input_time_obj = datetime.time(hour=time_text.hour, minute=time_text.minute)
3533 init_time_obj = datetime.time(hour=init[0], minute=init[1])
3534 final_time_obj = datetime.time(hour=final[0], minute=final[1])
3535
3536 is_between = init_time_obj <= input_time_obj <= final_time_obj
3537
3538 if (year != time_text.year) or (DOY != doy) or (is_between == False):
3539 #print("NON valid condition:", condition)
3540 continue
3541
3542 print("valid condition:", condition)
3543 indexi, indexf = aux_index[0], aux_index[1]
3544 #index = slice(indexi, indexf)
3545 #print(index, "index")
3546 dataOut.DensityFinal[0,indexi:indexf]=missing
3547 dataOut.EDensityFinal[0,indexi:indexf]=missing
3548 dataOut.ElecTempFinal[0,indexi:indexf]=missing
3549 dataOut.EElecTempFinal[0,indexi:indexf]=missing
3550 dataOut.IonTempFinal[0,indexi:indexf]=missing
3551 dataOut.EIonTempFinal[0,indexi:indexf]=missing
3552 dataOut.PhyFinal[0,indexi:indexf]=missing
3553 dataOut.EPhyFinal[0,indexi:indexf]=missing
3554
3555 print(f"** Cleaning applied ** Data eliminated at {time_text} from heigh index {indexi} to {indexf}")
3556
3557 end = time() ########
3558 #spend_clean_time += end - start
3559 print("clean data time: ", end - start)
3560
3561
10287 3562 '''
10288 #print("den: ", dataOut.DensityFinal[0,27])
10289 if (time_text.hour == 5 and time_text.minute == 42): #Year: 2022, DOY:242
10290 id_aux = 16
10291 dataOut.DensityFinal[0,:id_aux]=missing
10292 dataOut.EDensityFinal[0,:id_aux]=missing
10293 dataOut.ElecTempFinal[0,:id_aux]=missing
10294 dataOut.EElecTempFinal[0,:id_aux]=missing
10295 dataOut.IonTempFinal[0,:id_aux]=missing
10296 dataOut.EIonTempFinal[0,:id_aux]=missing
10297 dataOut.PhyFinal[0,:id_aux]=missing
10298 dataOut.EPhyFinal[0,:id_aux]=missing
10299 if (time_text.hour == 5 and time_text.minute == 53): #Year: 2022, DOY:242
10300 id_aux = 9
10301 dataOut.DensityFinal[0,id_aux]=missing
10302 dataOut.EDensityFinal[0,id_aux]=missing
10303 dataOut.ElecTempFinal[0,id_aux]=missing
10304 dataOut.EElecTempFinal[0,id_aux]=missing
10305 dataOut.IonTempFinal[0,id_aux]=missing
10306 dataOut.EIonTempFinal[0,id_aux]=missing
10307 dataOut.PhyFinal[0,id_aux]=missing
10308 dataOut.EPhyFinal[0,id_aux]=missing
10309 if (time_text.hour == 6): #Year: 2022, DOY:242
10310 id_aux = 9
10311 dataOut.DensityFinal[0,id_aux]=missing
10312 dataOut.EDensityFinal[0,id_aux]=missing
10313 dataOut.ElecTempFinal[0,id_aux]=missing
10314 dataOut.EElecTempFinal[0,id_aux]=missing
10315 dataOut.IonTempFinal[0,id_aux]=missing
10316 dataOut.EIonTempFinal[0,id_aux]=missing
10317 dataOut.PhyFinal[0,id_aux]=missing
10318 dataOut.EPhyFinal[0,id_aux]=missing
10319 if (time_text.hour == 6 and time_text.minute == 36): #Year: 2022, DOY:242
10320 id_aux = (10,36,37)
10321 dataOut.DensityFinal[0,id_aux]=missing
10322 dataOut.EDensityFinal[0,id_aux]=missing
10323 dataOut.ElecTempFinal[0,id_aux]=missing
10324 dataOut.EElecTempFinal[0,id_aux]=missing
10325 dataOut.IonTempFinal[0,id_aux]=missing
10326 dataOut.EIonTempFinal[0,id_aux]=missing
10327 dataOut.PhyFinal[0,id_aux]=missing
10328 dataOut.EPhyFinal[0,id_aux]=missing
10329 if (time_text.hour == 7): #Year: 2022, DOY:242
10330 id_aux = 9
10331 dataOut.DensityFinal[0,id_aux]=missing
10332 dataOut.EDensityFinal[0,id_aux]=missing
10333 dataOut.ElecTempFinal[0,id_aux]=missing
10334 dataOut.EElecTempFinal[0,id_aux]=missing
10335 dataOut.IonTempFinal[0,id_aux]=missing
10336 dataOut.EIonTempFinal[0,id_aux]=missing
10337 dataOut.PhyFinal[0,id_aux]=missing
10338 dataOut.EPhyFinal[0,id_aux]=missing
10339 if (time_text.hour == 13 and time_text.minute == 32): #Year: 2022, DOY:242
10340 id_aux = (36,37)
10341 dataOut.DensityFinal[0,id_aux]=missing
10342 dataOut.EDensityFinal[0,id_aux]=missing
10343 dataOut.ElecTempFinal[0,id_aux]=missing
10344 dataOut.EElecTempFinal[0,id_aux]=missing
10345 dataOut.IonTempFinal[0,id_aux]=missing
10346 dataOut.EIonTempFinal[0,id_aux]=missing
10347 dataOut.PhyFinal[0,id_aux]=missing
10348 dataOut.EPhyFinal[0,id_aux]=missing
10349 if (time_text.hour == 23 or time_text.hour <= 4): #Year: 2022, DOY:242
10350 id_aux = 15
10351 dataOut.DensityFinal[0,:id_aux]=missing
10352 dataOut.EDensityFinal[0,:id_aux]=missing
10353 dataOut.ElecTempFinal[0,:id_aux]=missing
10354 dataOut.EElecTempFinal[0,:id_aux]=missing
10355 dataOut.IonTempFinal[0,:id_aux]=missing
10356 dataOut.EIonTempFinal[0,:id_aux]=missing
10357 dataOut.PhyFinal[0,:id_aux]=missing
10358 dataOut.EPhyFinal[0,:id_aux]=missing
10359 if (time_text.hour == 3 and time_text.minute == 13): #Year: 2022, DOY:242
10360 id_aux = (37,38)
10361 dataOut.DensityFinal[0,id_aux]=missing
10362 dataOut.EDensityFinal[0,id_aux]=missing
10363 dataOut.ElecTempFinal[0,id_aux]=missing
10364 dataOut.EElecTempFinal[0,id_aux]=missing
10365 dataOut.IonTempFinal[0,id_aux]=missing
10366 dataOut.EIonTempFinal[0,id_aux]=missing
10367 dataOut.PhyFinal[0,id_aux]=missing
10368 dataOut.EPhyFinal[0,id_aux]=missing
10369 if (time_text.hour == 3 and time_text.minute == 34): #Year: 2022, DOY:242
10370 id_aux = (35,36)
10371 dataOut.DensityFinal[0,id_aux]=missing
10372 dataOut.EDensityFinal[0,id_aux]=missing
10373 dataOut.ElecTempFinal[0,id_aux]=missing
10374 dataOut.EElecTempFinal[0,id_aux]=missing
10375 dataOut.IonTempFinal[0,id_aux]=missing
10376 dataOut.EIonTempFinal[0,id_aux]=missing
10377 dataOut.PhyFinal[0,id_aux]=missing
10378 dataOut.EPhyFinal[0,id_aux]=missing
10379 if (time_text.hour == 4 and time_text.minute == 17): #Year: 2022, DOY:242
10380 id_aux = (34,35)
10381 dataOut.DensityFinal[0,id_aux]=missing
10382 dataOut.EDensityFinal[0,id_aux]=missing
10383 dataOut.ElecTempFinal[0,id_aux]=missing
10384 dataOut.EElecTempFinal[0,id_aux]=missing
10385 dataOut.IonTempFinal[0,id_aux]=missing
10386 dataOut.EIonTempFinal[0,id_aux]=missing
10387 dataOut.PhyFinal[0,id_aux]=missing
10388 dataOut.EPhyFinal[0,id_aux]=missing
10389 if (time_text.hour == 18 and time_text.minute == 30): #Year: 2022, DOY:242
10390 id_aux = (26,27)
10391 dataOut.DensityFinal[0,id_aux]=missing
10392 dataOut.EDensityFinal[0,id_aux]=missing
10393 dataOut.ElecTempFinal[0,id_aux]=missing
10394 dataOut.EElecTempFinal[0,id_aux]=missing
10395 dataOut.IonTempFinal[0,id_aux]=missing
10396 dataOut.EIonTempFinal[0,id_aux]=missing
10397 dataOut.PhyFinal[0,id_aux]=missing
10398 dataOut.EPhyFinal[0,id_aux]=missing
10399 if (time_text.hour == 14 and time_text.minute == 14): #Year: 2022, DOY:242
10400 id_aux = (35,36)
10401 dataOut.DensityFinal[0,id_aux]=missing
10402 dataOut.EDensityFinal[0,id_aux]=missing
10403 dataOut.ElecTempFinal[0,id_aux]=missing
10404 dataOut.EElecTempFinal[0,id_aux]=missing
10405 dataOut.IonTempFinal[0,id_aux]=missing
10406 dataOut.EIonTempFinal[0,id_aux]=missing
10407 dataOut.PhyFinal[0,id_aux]=missing
10408 dataOut.EPhyFinal[0,id_aux]=missing
3563 if key in corrections:
3564 #
3565 input_time_obj = datetime.time(hour=time_text.hour, minute=time_text.minute)
3566 init_time_obj = datetime.time(hour=init[0], minute=init[1])
3567 final_time_obj = datetime.time(hour=final[0], minute=final[1])
3568
3569 if init_time_obj <= final_time_obj:
3570 # Interval does not cross midnight
3571 is_between = init_time_obj <= input_time_obj <= final_time_obj
3572 else:
3573 # Interval crosses midnight
3574 is_between = init_time_obj <= input_time_obj or input_time_obj <= final_time_obj
3575
3576 if not is_between:
3577 pass
3578 #
3579
3580 clean = corrections[key]
3581 indexi, indexf = clean[0], clean[1]
3582 index = slice(indexi, indexf)
3583
3584 dataOut.DensityFinal[0,index]=missing
3585 dataOut.EDensityFinal[0,index]=missing
3586 dataOut.ElecTempFinal[0,index]=missing
3587 dataOut.EElecTempFinal[0,index]=missing
3588 dataOut.IonTempFinal[0,index]=missing
3589 dataOut.EIonTempFinal[0,index]=missing
3590 dataOut.PhyFinal[0,index]=missing
3591 dataOut.EPhyFinal[0,index]=missing
3592
3593 print(f"Cleaning applied:")
10409 3594 '''
10410 #print("den_final",dataOut.DensityFinal)
10411 3595
10412 3596
10413 dataOut.flagNoData = numpy.all(numpy.isnan(dataOut.DensityFinal)) #Si todos los valores son NaN no se prosigue
10414 3597
3598 #print("den_final",dataOut.DensityFinal)
3599
3600 # for MAD
3601 dataOut.flagNoData = numpy.all(numpy.isnan(dataOut.DensityFinal)) #Si todos los valores son NaN no se prosigue
3602 '''Save of clean data information in temp csv file for den correction'''
10415 3603 if not dataOut.flagNoData:
10416 3604 if savecfclean:
10417 3605 try:
@@ -10434,7 +3622,7 class DataSaveCleaner(Operation):
10434 3622 cf = numpy.array([dataOut.utctime,dataOut.cf])
10435 3623 f.writerow(cf)
10436 3624 file.close()
10437
3625 # for plot
10438 3626 dataOut.flagNoData = False #Descomentar solo para ploteo #Comentar para MADWriter
10439 3627
10440 3628 dataOut.DensityFinal *= 1.e6 #Convert units to m^⁻3
@@ -10446,188 +3634,6 class DataSaveCleaner(Operation):
10446 3634 return dataOut
10447 3635
10448 3636
10449 class DataSaveCleanerHP(Operation):
10450 '''
10451 Written by R. Flores
10452 '''
10453 def __init__(self, **kwargs):
10454
10455 Operation.__init__(self, **kwargs)
10456
10457 def run(self,dataOut):
10458
10459 dataOut.Density_DP=numpy.zeros(dataOut.cut)
10460 dataOut.EDensity_DP=numpy.zeros(dataOut.cut)
10461 dataOut.ElecTemp_DP=numpy.zeros(dataOut.cut)
10462 dataOut.EElecTemp_DP=numpy.zeros(dataOut.cut)
10463 dataOut.IonTemp_DP=numpy.zeros(dataOut.cut)
10464 dataOut.EIonTemp_DP=numpy.zeros(dataOut.cut)
10465 dataOut.Phy_DP=numpy.zeros(dataOut.cut)
10466 dataOut.EPhy_DP=numpy.zeros(dataOut.cut)
10467 dataOut.Phe_DP=numpy.empty(dataOut.cut)
10468 dataOut.EPhe_DP=numpy.empty(dataOut.cut)
10469
10470 dataOut.Density_DP[:]=numpy.copy(dataOut.ph2[:dataOut.cut])
10471 dataOut.EDensity_DP[:]=numpy.copy(dataOut.sdp2[:dataOut.cut])
10472 dataOut.ElecTemp_DP[:]=numpy.copy(dataOut.te2[:dataOut.cut])
10473 dataOut.EElecTemp_DP[:]=numpy.copy(dataOut.ete2[:dataOut.cut])
10474 dataOut.IonTemp_DP[:]=numpy.copy(dataOut.ti2[:dataOut.cut])
10475 dataOut.EIonTemp_DP[:]=numpy.copy(dataOut.eti2[:dataOut.cut])
10476 dataOut.Phy_DP[:]=numpy.copy(dataOut.phy2[:dataOut.cut])
10477 dataOut.EPhy_DP[:]=numpy.copy(dataOut.ephy2[:dataOut.cut])
10478 dataOut.Phe_DP[:]=numpy.nan
10479 dataOut.EPhe_DP[:]=numpy.nan
10480
10481 missing=numpy.nan
10482 temp_min=100.0
10483 temp_max_dp=3000.0
10484
10485 for i in range(dataOut.cut):
10486 if dataOut.info2[i]!=1:
10487 dataOut.ElecTemp_DP[i]=dataOut.EElecTemp_DP[i]=dataOut.IonTemp_DP[i]=dataOut.EIonTemp_DP[i]=missing
10488
10489 if dataOut.ElecTemp_DP[i]<=temp_min or dataOut.ElecTemp_DP[i]>temp_max_dp or dataOut.EElecTemp_DP[i]>temp_max_dp:
10490
10491 dataOut.ElecTemp_DP[i]=dataOut.EElecTemp_DP[i]=missing
10492
10493 if dataOut.IonTemp_DP[i]<=temp_min or dataOut.IonTemp_DP[i]>temp_max_dp or dataOut.EIonTemp_DP[i]>temp_max_dp:
10494 dataOut.IonTemp_DP[i]=dataOut.EIonTemp_DP[i]=missing
10495
10496 ####################################################################################### CHECK THIS
10497 if dataOut.lags_to_plot[i,:][~numpy.isnan(dataOut.lags_to_plot[i,:])].shape[0]<6:
10498 dataOut.ElecTemp_DP[i]=dataOut.EElecTemp_DP[i]=dataOut.IonTemp_DP[i]=dataOut.EIonTemp_DP[i]=missing
10499
10500 if dataOut.ut_Faraday>4 and dataOut.ut_Faraday<11:
10501 if numpy.nanmax(dataOut.acfs_error_to_plot[i,:])>=10:
10502 dataOut.ElecTemp_DP[i]=dataOut.EElecTemp_DP[i]=dataOut.IonTemp_DP[i]=dataOut.EIonTemp_DP[i]=missing
10503 #######################################################################################
10504
10505 if dataOut.EPhy_DP[i]<0.0 or dataOut.EPhy_DP[i]>1.0:
10506 dataOut.Phy_DP[i]=dataOut.EPhy_DP[i]=missing
10507 if dataOut.EDensity_DP[i]>0.0 and dataOut.Density_DP[i]>0.0 and dataOut.Density_DP[i]<9.9e6:
10508 dataOut.EDensity_DP[i]=max(dataOut.EDensity_DP[i],1000.0)
10509 else:
10510 dataOut.Density_DP[i]=dataOut.EDensity_DP[i]=missing
10511 if dataOut.Phy_DP[i]==0 or dataOut.Phy_DP[i]>0.4:
10512 dataOut.Phy_DP[i]=dataOut.EPhy_DP[i]=missing
10513 if dataOut.ElecTemp_DP[i]==dataOut.IonTemp_DP[i]:
10514 dataOut.EElecTemp_DP[i]=dataOut.EIonTemp_DP[i]
10515 if numpy.isnan(dataOut.ElecTemp_DP[i]):
10516 dataOut.EElecTemp_DP[i]=missing
10517 if numpy.isnan(dataOut.IonTemp_DP[i]):
10518 dataOut.EIonTemp_DP[i]=missing
10519 if numpy.isnan(dataOut.ElecTemp_DP[i]) or numpy.isnan(dataOut.EElecTemp_DP[i]):
10520 dataOut.ElecTemp_DP[i]=dataOut.EElecTemp_DP[i]=dataOut.IonTemp_DP[i]=dataOut.EIonTemp_DP[i]=missing
10521
10522
10523
10524 dataOut.Density_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10525 dataOut.EDensity_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10526 dataOut.ElecTemp_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10527 dataOut.EElecTemp_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10528 dataOut.IonTemp_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10529 dataOut.EIonTemp_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10530 dataOut.Phy_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10531 dataOut.EPhy_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10532 dataOut.Phe_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10533 dataOut.EPhe_LP=numpy.zeros(dataOut.NACF-dataOut.cut)
10534
10535 dataOut.Density_LP[:]=numpy.copy(dataOut.ne[dataOut.cut:dataOut.NACF])
10536 dataOut.EDensity_LP[:]=numpy.copy(dataOut.ene[dataOut.cut:dataOut.NACF])
10537 dataOut.ElecTemp_LP[:]=numpy.copy(dataOut.te[dataOut.cut:dataOut.NACF])
10538 dataOut.EElecTemp_LP[:]=numpy.copy(dataOut.ete[dataOut.cut:dataOut.NACF])
10539 dataOut.IonTemp_LP[:]=numpy.copy(dataOut.ti[dataOut.cut:dataOut.NACF])
10540 dataOut.EIonTemp_LP[:]=numpy.copy(dataOut.eti[dataOut.cut:dataOut.NACF])
10541 dataOut.Phy_LP[:]=numpy.copy(dataOut.ph[dataOut.cut:dataOut.NACF])
10542 dataOut.EPhy_LP[:]=numpy.copy(dataOut.eph[dataOut.cut:dataOut.NACF])
10543 dataOut.Phe_LP[:]=numpy.copy(dataOut.phe[dataOut.cut:dataOut.NACF])
10544 dataOut.EPhe_LP[:]=numpy.copy(dataOut.ephe[dataOut.cut:dataOut.NACF])
10545
10546 temp_max_lp=6000.0
10547
10548 for i in range(dataOut.NACF-dataOut.cut):
10549
10550 if dataOut.ElecTemp_LP[i]<=temp_min or dataOut.ElecTemp_LP[i]>temp_max_lp or dataOut.EElecTemp_LP[i]>temp_max_lp:
10551
10552 dataOut.ElecTemp_LP[i]=dataOut.EElecTemp_LP[i]=missing
10553
10554 if dataOut.IonTemp_LP[i]<=temp_min or dataOut.IonTemp_LP[i]>temp_max_lp or dataOut.EIonTemp_LP[i]>temp_max_lp:
10555 dataOut.IonTemp_LP[i]=dataOut.EIonTemp_LP[i]=missing
10556 if dataOut.EPhy_LP[i]<0.0 or dataOut.EPhy_LP[i]>1.0:
10557 dataOut.Phy_LP[i]=dataOut.EPhy_LP[i]=missing
10558
10559 if dataOut.EPhe_LP[i]<0.0 or dataOut.EPhe_LP[i]>1.0:
10560 dataOut.Phe_LP[i]=dataOut.EPhe_LP[i]=missing
10561 if dataOut.EDensity_LP[i]>0.0 and dataOut.Density_LP[i]>0.0 and dataOut.Density_LP[i]<9.9e6 and dataOut.EDensity_LP[i]*dataOut.Density_LP[i]<9.9e6:
10562 dataOut.EDensity_LP[i]=max(dataOut.EDensity_LP[i],1000.0/dataOut.Density_LP[i])
10563 else:
10564 dataOut.Density_LP[i]=missing
10565 dataOut.EDensity_LP[i]=1.0
10566
10567 if numpy.isnan(dataOut.Phy_LP[i]):
10568 dataOut.EPhy_LP[i]=missing
10569
10570 if numpy.isnan(dataOut.Phe_LP[i]):
10571 dataOut.EPhe_LP[i]=missing
10572
10573
10574 if dataOut.ElecTemp_LP[i]==dataOut.IonTemp_LP[i]:
10575 dataOut.EElecTemp_LP[i]=dataOut.EIonTemp_LP[i]
10576 if numpy.isnan(dataOut.ElecTemp_LP[i]):
10577 dataOut.EElecTemp_LP[i]=missing
10578 if numpy.isnan(dataOut.IonTemp_LP[i]):
10579 dataOut.EIonTemp_LP[i]=missing
10580 if numpy.isnan(dataOut.ElecTemp_LP[i]) or numpy.isnan(dataOut.EElecTemp_LP[i]):
10581 dataOut.ElecTemp_LP[i]=dataOut.EElecTemp_LP[i]=dataOut.IonTemp_LP[i]=dataOut.EIonTemp_LP[i]=missing
10582
10583
10584 dataOut.DensityFinal=numpy.reshape(numpy.concatenate((dataOut.Density_DP,dataOut.Density_LP)),(1,-1))
10585 dataOut.EDensityFinal=numpy.reshape(numpy.concatenate((dataOut.EDensity_DP,dataOut.EDensity_LP)),(1,-1))
10586 dataOut.ElecTempFinal=numpy.reshape(numpy.concatenate((dataOut.ElecTemp_DP,dataOut.ElecTemp_LP)),(1,-1))
10587 dataOut.EElecTempFinal=numpy.reshape(numpy.concatenate((dataOut.EElecTemp_DP,dataOut.EElecTemp_LP)),(1,-1))
10588 dataOut.IonTempFinal=numpy.reshape(numpy.concatenate((dataOut.IonTemp_DP,dataOut.IonTemp_LP)),(1,-1))
10589 dataOut.EIonTempFinal=numpy.reshape(numpy.concatenate((dataOut.EIonTemp_DP,dataOut.EIonTemp_LP)),(1,-1))
10590 dataOut.PhyFinal=numpy.reshape(numpy.concatenate((dataOut.Phy_DP,dataOut.Phy_LP)),(1,-1))
10591 dataOut.EPhyFinal=numpy.reshape(numpy.concatenate((dataOut.EPhy_DP,dataOut.EPhy_LP)),(1,-1))
10592 dataOut.PheFinal=numpy.reshape(numpy.concatenate((dataOut.Phe_DP,dataOut.Phe_LP)),(1,-1))
10593 dataOut.EPheFinal=numpy.reshape(numpy.concatenate((dataOut.EPhe_DP,dataOut.EPhe_LP)),(1,-1))
10594
10595 nan_array_2=numpy.empty(dataOut.NACF-dataOut.NDP)
10596 nan_array_2[:]=numpy.nan
10597
10598 dataOut.acfs_DP=numpy.zeros((dataOut.NACF,dataOut.DPL),'float32')
10599 dataOut.acfs_error_DP=numpy.zeros((dataOut.NACF,dataOut.DPL),'float32')
10600 acfs_dp_aux=dataOut.acfs_to_save.transpose()
10601 acfs_error_dp_aux=dataOut.acfs_error_to_save.transpose()
10602 for i in range(dataOut.DPL):
10603 dataOut.acfs_DP[:,i]=numpy.concatenate((acfs_dp_aux[:,i],nan_array_2))
10604 dataOut.acfs_error_DP[:,i]=numpy.concatenate((acfs_error_dp_aux[:,i],nan_array_2))
10605 dataOut.acfs_DP=dataOut.acfs_DP.transpose()
10606 dataOut.acfs_error_DP=dataOut.acfs_error_DP.transpose()
10607
10608 dataOut.acfs_LP=numpy.zeros((dataOut.NACF,dataOut.IBITS),'float32')
10609 dataOut.acfs_error_LP=numpy.zeros((dataOut.NACF,dataOut.IBITS),'float32')
10610
10611 for i in range(dataOut.NACF):
10612 for j in range(dataOut.IBITS):
10613 if numpy.abs(dataOut.errors[j,i]/dataOut.output_LP_integrated.real[0,i,0])<1.0:
10614 dataOut.acfs_LP[i,j]=dataOut.output_LP_integrated.real[j,i,0]/dataOut.output_LP_integrated.real[0,i,0]
10615 dataOut.acfs_LP[i,j]=max(min(dataOut.acfs_LP[i,j],1.0),-1.0)
10616
10617 dataOut.acfs_error_LP[i,j]=dataOut.errors[j,i]/dataOut.output_LP_integrated.real[0,i,0]
10618 else:
10619 dataOut.acfs_LP[i,j]=numpy.nan
10620
10621 dataOut.acfs_error_LP[i,j]=numpy.nan
10622
10623 dataOut.acfs_LP=dataOut.acfs_LP.transpose()
10624 dataOut.acfs_error_LP=dataOut.acfs_error_LP.transpose()
10625
10626 dataOut.DensityFinal *= 1.e6 #Convert units to m^⁻3
10627 dataOut.EDensityFinal *= 1.e6 #Convert units to m^⁻3
10628
10629 return dataOut
10630
10631 3637
10632 3638 class ACFs(Operation):
10633 3639 '''
@@ -1882,7 +1882,7 class BadHeights_Old(Operation):
1882 1882 if( (dataOut.kabxys_integrated[5][j,l,0] <= 0.) or (dataOut.kabxys_integrated[4][j,l,0] <= 0.) or (dataOut.kabxys_integrated[7][j,l,0] <= 0.) or (dataOut.kabxys_integrated[6][j,l,0] <= 0.)):
1883 1883 dataOut.ibad[j][l]=1
1884 1884 else:
1885 dataOut.ibad[j][l]=0
1885 dataOut.ibad[j][l]=1
1886 1886 #print("ibad: ",dataOut.ibad)
1887 1887
1888 1888
@@ -2157,7 +2157,6 class faraday_angle_and_power_double_pulse(Operation):
2157 2157 #print("sdp2: ",dataOut.sdp2)
2158 2158 #print("sdn2",dataOut.sdn2)
2159 2159
2160
2161 2160 return dataOut
2162 2161
2163 2162
General Comments 0
You need to be logged in to leave comments. Login now