@@ -10,6 +10,7 import traceback | |||||
10 | import math |
|
10 | import math | |
11 | import time |
|
11 | import time | |
12 | from multiprocessing import Process, Queue, cpu_count |
|
12 | from multiprocessing import Process, Queue, cpu_count | |
|
13 | from profilehooks import profile, coverage | |||
13 |
|
14 | |||
14 | import schainpy |
|
15 | import schainpy | |
15 | import schainpy.admin |
|
16 | import schainpy.admin | |
@@ -20,6 +21,8 from xml.dom import minidom | |||||
20 | from schainpy.model import * |
|
21 | from schainpy.model import * | |
21 | from time import sleep |
|
22 | from time import sleep | |
22 |
|
23 | |||
|
24 | ||||
|
25 | ||||
23 | def prettify(elem): |
|
26 | def prettify(elem): | |
24 | """Return a pretty-printed XML string for the Element. |
|
27 | """Return a pretty-printed XML string for the Element. | |
25 | """ |
|
28 | """ | |
@@ -258,7 +261,7 class ParameterConf(): | |||||
258 |
|
261 | |||
259 | print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format) |
|
262 | print "Parameter[%s]: name = %s, value = %s, format = %s" %(self.id, self.name, self.value, self.format) | |
260 |
|
263 | |||
261 | class OperationConf(): |
|
264 | class OperationConf(): | |
262 |
|
265 | |||
263 | id = None |
|
266 | id = None | |
264 | name = None |
|
267 | name = None | |
@@ -327,8 +330,8 class OperationConf(): | |||||
327 |
|
330 | |||
328 | parameterObj = self.getParameterObj(parameterName) |
|
331 | parameterObj = self.getParameterObj(parameterName) | |
329 |
|
332 | |||
330 | # if not parameterObj: |
|
333 | # if not parameterObj: | |
331 | # return None |
|
334 | # return None | |
332 |
|
335 | |||
333 | value = parameterObj.getValue() |
|
336 | value = parameterObj.getValue() | |
334 |
|
337 | |||
@@ -687,6 +690,7 class ProcUnitConf(): | |||||
687 |
|
690 | |||
688 | return procUnitObj |
|
691 | return procUnitObj | |
689 |
|
692 | |||
|
693 | ## @profile | |||
690 | def run(self): |
|
694 | def run(self): | |
691 |
|
695 | |||
692 | is_ok = False |
|
696 | is_ok = False | |
@@ -708,10 +712,10 class ProcUnitConf(): | |||||
708 | opId = opConfObj.id, |
|
712 | opId = opConfObj.id, | |
709 | ) |
|
713 | ) | |
710 |
|
714 | |||
711 | # total_time = time.time() - ini |
|
715 | # total_time = time.time() - ini | |
712 | # |
|
716 | # | |
713 | # if total_time > 0.002: |
|
717 | # if total_time > 0.002: | |
714 | # print "%s::%s took %f seconds" %(self.name, opConfObj.name, total_time) |
|
718 | # print "%s::%s took %f seconds" %(self.name, opConfObj.name, total_time) | |
715 |
|
719 | |||
716 | is_ok = is_ok or sts |
|
720 | is_ok = is_ok or sts | |
717 |
|
721 | |||
@@ -859,16 +863,16 class ReadUnitConf(ProcUnitConf): | |||||
859 |
|
863 | |||
860 | return opObj |
|
864 | return opObj | |
861 |
|
865 | |||
862 | # def makeXml(self, projectElement): |
|
866 | # def makeXml(self, projectElement): | |
863 | # |
|
867 | # | |
864 | # procUnitElement = SubElement(projectElement, self.ELEMENTNAME) |
|
868 | # procUnitElement = SubElement(projectElement, self.ELEMENTNAME) | |
865 | # procUnitElement.set('id', str(self.id)) |
|
869 | # procUnitElement.set('id', str(self.id)) | |
866 | # procUnitElement.set('name', self.name) |
|
870 | # procUnitElement.set('name', self.name) | |
867 | # procUnitElement.set('datatype', self.datatype) |
|
871 | # procUnitElement.set('datatype', self.datatype) | |
868 | # procUnitElement.set('inputId', str(self.inputId)) |
|
872 | # procUnitElement.set('inputId', str(self.inputId)) | |
869 | # |
|
873 | # | |
870 | # for opConfObj in self.opConfObjList: |
|
874 | # for opConfObj in self.opConfObjList: | |
871 | # opConfObj.makeXml(procUnitElement) |
|
875 | # opConfObj.makeXml(procUnitElement) | |
872 |
|
876 | |||
873 | def readXml(self, upElement): |
|
877 | def readXml(self, upElement): | |
874 |
|
878 | |||
@@ -1264,6 +1268,7 class Project(): | |||||
1264 |
|
1268 | |||
1265 | raise NotImplementedError, "Use schainpy.controller_api.ControllerThread instead Project class" |
|
1269 | raise NotImplementedError, "Use schainpy.controller_api.ControllerThread instead Project class" | |
1266 |
|
1270 | |||
|
1271 | ||||
1267 | def run(self): |
|
1272 | def run(self): | |
1268 |
|
1273 | |||
1269 |
|
1274 |
@@ -8,5 +8,5 | |||||
8 | from data import * |
|
8 | from data import * | |
9 | from io import * |
|
9 | from io import * | |
10 | from proc import * |
|
10 | from proc import * | |
11 | from graphics import * |
|
11 | #from graphics import * | |
12 | from utils import * |
|
12 | from utils import * |
@@ -17,6 +17,8 from schainpy.model.proc.jroproc_base import Operation | |||||
17 | plt.ion() |
|
17 | plt.ion() | |
18 |
|
18 | |||
19 | func = lambda x, pos: ('%s') %(datetime.datetime.fromtimestamp(x).strftime('%H:%M')) |
|
19 | func = lambda x, pos: ('%s') %(datetime.datetime.fromtimestamp(x).strftime('%H:%M')) | |
|
20 | fromtimestamp = lambda x, mintime : (datetime.datetime.utcfromtimestamp(mintime).replace(hour=(x + 5), minute=0) - d1970).total_seconds() | |||
|
21 | ||||
20 |
|
22 | |||
21 | d1970 = datetime.datetime(1970,1,1) |
|
23 | d1970 = datetime.datetime(1970,1,1) | |
22 |
|
24 | |||
@@ -54,7 +56,7 class PlotData(Operation, Process): | |||||
54 | self.xrange = kwargs.get('xrange', 24) |
|
56 | self.xrange = kwargs.get('xrange', 24) | |
55 | self.ymin = kwargs.get('ymin', None) |
|
57 | self.ymin = kwargs.get('ymin', None) | |
56 | self.ymax = kwargs.get('ymax', None) |
|
58 | self.ymax = kwargs.get('ymax', None) | |
57 |
self.__MAXNUMY = kwargs.get('decimation', |
|
59 | self.__MAXNUMY = kwargs.get('decimation', 5000) | |
58 | self.throttle_value = 5 |
|
60 | self.throttle_value = 5 | |
59 | self.times = [] |
|
61 | self.times = [] | |
60 | #self.interactive = self.kwargs['parent'] |
|
62 | #self.interactive = self.kwargs['parent'] | |
@@ -493,8 +495,14 class PlotRTIData(PlotData): | |||||
493 | self.z = np.array(self.z) |
|
495 | self.z = np.array(self.z) | |
494 | for n, ax in enumerate(self.axes): |
|
496 | for n, ax in enumerate(self.axes): | |
495 | x, y, z = self.fill_gaps(*self.decimate()) |
|
497 | x, y, z = self.fill_gaps(*self.decimate()) | |
496 |
|
|
498 | if self.xmin is None: | |
497 |
|
|
499 | xmin = self.min_time | |
|
500 | else: | |||
|
501 | xmin = fromtimestamp(int(self.xmin), self.min_time) | |||
|
502 | if self.xmax is None: | |||
|
503 | xmax = xmin + self.xrange*60*60 | |||
|
504 | else: | |||
|
505 | xmax = xmin + (self.xmax - self.xmin) * 60 * 60 | |||
498 | self.zmin = self.zmin if self.zmin else np.min(self.z) |
|
506 | self.zmin = self.zmin if self.zmin else np.min(self.z) | |
499 | self.zmax = self.zmax if self.zmax else np.max(self.z) |
|
507 | self.zmax = self.zmax if self.zmax else np.max(self.z) | |
500 | if ax.firsttime: |
|
508 | if ax.firsttime: |
@@ -999,8 +999,7 class JRODataReader(JRODataIO): | |||||
999 | return 0 |
|
999 | return 0 | |
1000 |
|
1000 | |||
1001 | # if self.online: |
|
1001 | # if self.online: | |
1002 | # self.__jumpToLastBlock() |
|
1002 | # self.__jumpToLastBlock() | |
1003 | print 'xxxx' |
|
|||
1004 |
|
1003 | |||
1005 | if self.flagIsNewFile: |
|
1004 | if self.flagIsNewFile: | |
1006 | self.lastUTTime = self.basicHeaderObj.utc |
|
1005 | self.lastUTTime = self.basicHeaderObj.utc | |
@@ -1011,8 +1010,7 class JRODataReader(JRODataIO): | |||||
1011 | if not(self.setNextFile()): |
|
1010 | if not(self.setNextFile()): | |
1012 | return 0 |
|
1011 | return 0 | |
1013 | else: |
|
1012 | else: | |
1014 | return 1 |
|
1013 | return 1 | |
1015 | print 'xxxx' |
|
|||
1016 | #if self.server is None: |
|
1014 | #if self.server is None: | |
1017 | currentSize = self.fileSize - self.fp.tell() |
|
1015 | currentSize = self.fileSize - self.fp.tell() | |
1018 | neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize |
|
1016 | neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize | |
@@ -1044,12 +1042,11 class JRODataReader(JRODataIO): | |||||
1044 | def readNextBlock(self): |
|
1042 | def readNextBlock(self): | |
1045 |
|
1043 | |||
1046 | #Skip block out of startTime and endTime |
|
1044 | #Skip block out of startTime and endTime | |
1047 | while True: |
|
1045 | while True: | |
1048 | print 'cxxxx' |
|
|||
1049 | if not(self.__setNewBlock()): |
|
1046 | if not(self.__setNewBlock()): | |
1050 | print 'returning' |
|
1047 | print 'returning' | |
1051 | return 0 |
|
1048 | return 0 | |
1052 |
|
|
1049 | ||
1053 | if not(self.readBlock()): |
|
1050 | if not(self.readBlock()): | |
1054 | return 0 |
|
1051 | return 0 | |
1055 |
|
1052 |
@@ -217,7 +217,6 class VoltageReader(JRODataReader, ProcessingUnit): | |||||
217 | Si un bloque leido no es un bloque valido |
|
217 | Si un bloque leido no es un bloque valido | |
218 | """ |
|
218 | """ | |
219 |
|
219 | |||
220 | print 'READ BLOCK' |
|
|||
221 | # if self.server is not None: |
|
220 | # if self.server is not None: | |
222 | # self.zBlock = self.receiver.recv() |
|
221 | # self.zBlock = self.receiver.recv() | |
223 | # self.zHeader = self.zBlock[:24] |
|
222 | # self.zHeader = self.zBlock[:24] | |
@@ -232,7 +231,6 class VoltageReader(JRODataReader, ProcessingUnit): | |||||
232 |
|
231 | |||
233 | try: |
|
232 | try: | |
234 | junk = junk.reshape( (self.processingHeaderObj.profilesPerBlock, self.processingHeaderObj.nHeights, self.systemHeaderObj.nChannels) ) |
|
233 | junk = junk.reshape( (self.processingHeaderObj.profilesPerBlock, self.processingHeaderObj.nHeights, self.systemHeaderObj.nChannels) ) | |
235 | print'junked' |
|
|||
236 | except: |
|
234 | except: | |
237 | #print "The read block (%3d) has not enough data" %self.nReadBlocks |
|
235 | #print "The read block (%3d) has not enough data" %self.nReadBlocks | |
238 |
|
236 |
@@ -1,12 +1,22 | |||||
|
1 | #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION | |||
|
2 | #define NUM_CPY_THREADS 8 | |||
1 | #include <Python.h> |
|
3 | #include <Python.h> | |
2 | #include <numpy/arrayobject.h> |
|
4 | #include <numpy/arrayobject.h> | |
3 | #include <math.h> |
|
5 | #include <math.h> | |
|
6 | #include <complex.h> | |||
|
7 | #include <time.h> | |||
4 |
|
8 | |||
|
9 | // void printArr(int *array); | |||
5 | static PyObject *hildebrand_sekhon(PyObject *self, PyObject *args); |
|
10 | static PyObject *hildebrand_sekhon(PyObject *self, PyObject *args); | |
|
11 | static PyObject *correlateByBlock(PyObject *self, PyObject *args); | |||
|
12 | #ifndef PyMODINIT_FUNC /* declarations for DLL import/export */ | |||
|
13 | #define PyMODINIT_FUNC void | |||
|
14 | #endif | |||
6 |
|
15 | |||
7 | static PyMethodDef extensionsMethods[] = { |
|
16 | static PyMethodDef extensionsMethods[] = { | |
8 | { "hildebrand_sekhon", (PyCFunction)hildebrand_sekhon, METH_VARARGS, "get noise with" }, |
|
17 | { "correlateByBlock", (PyCFunction)correlateByBlock, METH_VARARGS, "get correlation by block" }, | |
9 | { NULL, NULL, 0, NULL } |
|
18 | { "hildebrand_sekhon", (PyCFunction)hildebrand_sekhon, METH_VARARGS, "get noise with hildebrand_sekhon" }, | |
|
19 | { NULL, NULL, 0, NULL } | |||
10 | }; |
|
20 | }; | |
11 |
|
21 | |||
12 | PyMODINIT_FUNC initcSchain() { |
|
22 | PyMODINIT_FUNC initcSchain() { | |
@@ -14,13 +24,83 PyMODINIT_FUNC initcSchain() { | |||||
14 | import_array(); |
|
24 | import_array(); | |
15 | } |
|
25 | } | |
16 |
|
26 | |||
|
27 | static PyObject *correlateByBlock(PyObject *self, PyObject *args) { | |||
|
28 | ||||
|
29 | // int *x = (int*) malloc(4000000 * 216 * sizeof(int));; | |||
|
30 | // int a = 5; | |||
|
31 | // x = &a; | |||
|
32 | // int b = 6; | |||
|
33 | // x = &b; | |||
|
34 | // printf("Antes de imprimir x \n"); | |||
|
35 | // printf("%d \n", x[0]); | |||
|
36 | ||||
|
37 | PyObject *data_obj1, *data_obj2; | |||
|
38 | PyArrayObject *data_array1, *data_array2, *correlateRow, *out, *dataRow, *codeRow; //, , | |||
|
39 | int mode; | |||
|
40 | ||||
|
41 | if (!PyArg_ParseTuple(args, "OOi", &data_obj1, &data_obj2, &mode)) return NULL; | |||
|
42 | ||||
|
43 | data_array1 = (PyArrayObject *) PyArray_FROM_OTF(data_obj1, NPY_COMPLEX128, NPY_ARRAY_DEFAULT); | |||
|
44 | data_array2 = (PyArrayObject *) PyArray_FROM_OTF(data_obj2, NPY_FLOAT64, NPY_ARRAY_DEFAULT); | |||
|
45 | ||||
|
46 | npy_intp dims[1]; | |||
|
47 | dims[0] = 200; | |||
|
48 | npy_intp dims_code[1]; | |||
|
49 | dims_code[0] = 16; | |||
|
50 | ||||
|
51 | double complex * dataRaw; | |||
|
52 | double * codeRaw; | |||
|
53 | dataRaw = (double complex*) PyArray_DATA(data_array1); | |||
|
54 | codeRaw = (double *) PyArray_DATA(data_array2); | |||
|
55 | double complex ** outC = malloc(40000*200*sizeof(double complex)); | |||
|
56 | int i; | |||
|
57 | ||||
|
58 | clock_t start = clock(); | |||
|
59 | for(i=0; i<40000; i++){ | |||
|
60 | // codeRow = PyArray_SimpleNewFromData(1, dims_code, NPY_FLOAT64, codeRaw + 16 * i); | |||
|
61 | // dataRow = PyArray_SimpleNewFromData(1, dims, NPY_COMPLEX128, dataRaw + 200 * i); | |||
|
62 | // Py_INCREF(codeRow); | |||
|
63 | // Py_INCREF(dataRow); | |||
|
64 | // PyArray_ENABLEFLAGS(codeRow, NPY_ARRAY_OWNDATA); | |||
|
65 | // PyArray_ENABLEFLAGS(dataRow, NPY_ARRAY_OWNDATA); | |||
|
66 | correlateRow = (PyArrayObject *) PyArray_Correlate2(PyArray_SimpleNewFromData(1, dims_code, NPY_FLOAT64, codeRaw + 16 * i), PyArray_SimpleNewFromData(1, dims, NPY_COMPLEX128, dataRaw + 200 * i), (npy_intp) 2); | |||
|
67 | //Py_INCREF(correlateRow); | |||
|
68 | // PyArray_ENABLEFLAGS(correlateRow, NPY_ARRAY_OWNDATA); | |||
|
69 | memcpy(outC + 200*i, (double complex*) PyArray_DATA(correlateRow), 200 * sizeof(double complex)); | |||
|
70 | ||||
|
71 | Py_DECREF(correlateRow); | |||
|
72 | // Py_DECREF(codeRow); | |||
|
73 | // Py_DECREF(dataRow); | |||
|
74 | } | |||
|
75 | clock_t end = clock(); | |||
|
76 | float seconds = (float)(end - start) / CLOCKS_PER_SEC; | |||
|
77 | printf("%f", seconds); | |||
|
78 | // | |||
|
79 | npy_intp dimsret[2]; | |||
|
80 | dimsret[0] = 40000; | |||
|
81 | dimsret[1] = 200; | |||
|
82 | out = PyArray_SimpleNewFromData(2, dimsret, NPY_COMPLEX128, outC); | |||
|
83 | PyArray_ENABLEFLAGS(out, NPY_ARRAY_OWNDATA); | |||
|
84 | //Py_INCREF(out); | |||
|
85 | Py_DECREF(data_array1); | |||
|
86 | Py_DECREF(data_array2); | |||
|
87 | // PyArray_DebugPrint(out); | |||
|
88 | // Py_DECREF(data_obj2); | |||
|
89 | // Py_DECREF(data_obj1); | |||
|
90 | // Py_DECREF(codeRow); | |||
|
91 | // Py_DECREF(dataRow); | |||
|
92 | // free(dataRaw); | |||
|
93 | // free(codeRaw); | |||
|
94 | ||||
|
95 | return PyArray_Return(out); | |||
|
96 | } | |||
|
97 | ||||
17 | static PyObject *hildebrand_sekhon(PyObject *self, PyObject *args) { |
|
98 | static PyObject *hildebrand_sekhon(PyObject *self, PyObject *args) { | |
18 | /* Do your stuff here. */ |
|
|||
19 | double navg; |
|
99 | double navg; | |
20 | PyObject *data_obj, *data_array; |
|
100 | PyObject *data_obj, *data_array; | |
21 |
|
101 | |||
22 | if (!PyArg_ParseTuple(args, "Od", &data_obj, &navg)) return NULL; |
|
102 | if (!PyArg_ParseTuple(args, "Od", &data_obj, &navg)) return NULL; | |
23 |
data_array = PyArray_FROM_OTF(data_obj, NPY_FLOAT64, NPY_ |
|
103 | data_array = PyArray_FROM_OTF(data_obj, NPY_FLOAT64, NPY_ARRAY_DEFAULT); | |
24 | if (data_array == NULL) { |
|
104 | if (data_array == NULL) { | |
25 | Py_XDECREF(data_array); |
|
105 | Py_XDECREF(data_array); | |
26 | Py_XDECREF(data_obj); |
|
106 | Py_XDECREF(data_obj); | |
@@ -56,3 +136,4 static PyObject *hildebrand_sekhon(PyObject *self, PyObject *args) { | |||||
56 |
|
136 | |||
57 | return Py_BuildValue("d", lnoise); |
|
137 | return Py_BuildValue("d", lnoise); | |
58 | } |
|
138 | } | |
|
139 |
@@ -1,9 +1,11 | |||||
1 | import sys |
|
1 | import sys | |
2 | import numpy |
|
2 | import numpy | |
|
3 | from profilehooks import profile | |||
3 | from scipy import interpolate |
|
4 | from scipy import interpolate | |
4 |
|
5 | from schainpy import cSchain | ||
5 | from jroproc_base import ProcessingUnit, Operation |
|
6 | from jroproc_base import ProcessingUnit, Operation | |
6 | from schainpy.model.data.jrodata import Voltage |
|
7 | from schainpy.model.data.jrodata import Voltage | |
|
8 | from time import time | |||
7 |
|
9 | |||
8 | class VoltageProc(ProcessingUnit): |
|
10 | class VoltageProc(ProcessingUnit): | |
9 |
|
11 | |||
@@ -555,7 +557,7 class Decoder(Operation): | |||||
555 |
|
557 | |||
556 | self.times = None |
|
558 | self.times = None | |
557 | self.osamp = None |
|
559 | self.osamp = None | |
558 | # self.__setValues = False |
|
560 | # self.__setValues = False | |
559 | self.isConfig = False |
|
561 | self.isConfig = False | |
560 |
|
562 | |||
561 | def setup(self, code, osamp, dataOut): |
|
563 | def setup(self, code, osamp, dataOut): | |
@@ -624,21 +626,43 class Decoder(Operation): | |||||
624 |
|
626 | |||
625 | return self.datadecTime |
|
627 | return self.datadecTime | |
626 |
|
628 | |||
|
629 | #@profile | |||
|
630 | def oldCorrelate(self, i, data, code_block): | |||
|
631 | profilesList = xrange(self.__nProfiles) | |||
|
632 | for j in profilesList: | |||
|
633 | self.datadecTime[i,j,:] = numpy.correlate(data[i,j,:], code_block[j,:], mode='full')[self.nBaud-1:] | |||
|
634 | ||||
|
635 | @profile | |||
627 | def __convolutionByBlockInTime(self, data): |
|
636 | def __convolutionByBlockInTime(self, data): | |
628 |
|
637 | |||
629 | repetitions = self.__nProfiles / self.nCode |
|
638 | repetitions = self.__nProfiles / self.nCode | |
630 |
|
639 | |||
631 | junk = numpy.lib.stride_tricks.as_strided(self.code, (repetitions, self.code.size), (0, self.code.itemsize)) |
|
640 | junk = numpy.lib.stride_tricks.as_strided(self.code, (repetitions, self.code.size), (0, self.code.itemsize)) | |
632 | junk = junk.flatten() |
|
641 | junk = junk.flatten() | |
633 | code_block = numpy.reshape(junk, (self.nCode*repetitions, self.nBaud)) |
|
642 | code_block = numpy.reshape(junk, (self.nCode*repetitions, self.nBaud)) | |
634 |
|
643 | |||
635 | for i in range(self.__nChannels): |
|
644 | ||
636 | for j in range(self.__nProfiles): |
|
645 | # def toVectorize(a,b): | |
637 | print self.datadecTime[i,j,:].shape |
|
646 | # return numpy.correlate(a,b, mode='full') | |
638 | print numpy.correlate(data[i,j,:], code_block[j,:], mode='full')[self.nBaud-1:].shape |
|
647 | # vectorized = numpy.vectorize(toVectorize, signature='(n),(m)->(k)') | |
639 | self.datadecTime[i,j,:] = numpy.correlate(data[i,j,:], code_block[j,:], mode='full')[self.nBaud-1:] |
|
648 | a = time() | |
640 |
|
649 | for i in range(self.__nChannels): | ||
|
650 | # self.datadecTime[i,:,:] = numpy.array([numpy.correlate(data[i,j,:], code_block[j,:], mode='full')[self.nBaud-1:] for j in profilesList ]) | |||
|
651 | # def func(i, j): | |||
|
652 | # self.datadecTime[i,j,:] = numpy.correlate(data[i,j,:], code_block[j,:], mode='full')[self.nBaud-1:] | |||
|
653 | # map(lambda j: func(i, j), range(self.__nProfiles)) | |||
|
654 | #print data[i,:,:].shape | |||
|
655 | # self.datadecTime[i,:,:] = vectorized(data[i,:,:], code_block[:,:])[:,self.nBaud-1:] | |||
|
656 | self.oldCorrelate(i, data, code_block) | |||
|
657 | print self.datadecTime[i,:,:] | |||
|
658 | # print data[i,:,:] | |||
|
659 | # print cSchain.correlateByBlock(data[i,:,:], code_block, 2) | |||
|
660 | self.datadecTime[i,:,:] = cSchain.correlateByBlock(data[i,:,:], code_block, 2) | |||
|
661 | print self.datadecTime[i,:,:] | |||
|
662 | #print self.datadecTime[i,:,:].shape | |||
|
663 | print time() - a | |||
641 | return self.datadecTime |
|
664 | return self.datadecTime | |
|
665 | ||||
642 |
|
666 | |||
643 | def __convolutionByBlockInFreq(self, data): |
|
667 | def __convolutionByBlockInFreq(self, data): | |
644 |
|
668 | |||
@@ -655,6 +679,7 class Decoder(Operation): | |||||
655 |
|
679 | |||
656 | return data |
|
680 | return data | |
657 |
|
681 | |||
|
682 | ||||
658 | def run(self, dataOut, code=None, nCode=None, nBaud=None, mode = 0, osamp=None, times=None): |
|
683 | def run(self, dataOut, code=None, nCode=None, nBaud=None, mode = 0, osamp=None, times=None): | |
659 |
|
684 | |||
660 | if dataOut.flagDecodeData: |
|
685 | if dataOut.flagDecodeData: | |
@@ -684,7 +709,9 class Decoder(Operation): | |||||
684 | print "Fail decoding: Code is not defined." |
|
709 | print "Fail decoding: Code is not defined." | |
685 | return |
|
710 | return | |
686 |
|
711 | |||
|
712 | self.__nProfiles = dataOut.nProfiles | |||
687 | datadec = None |
|
713 | datadec = None | |
|
714 | ||||
688 | if mode == 3: |
|
715 | if mode == 3: | |
689 | mode = 0 |
|
716 | mode = 0 | |
690 |
|
717 |
@@ -13,7 +13,7 controllerObj.setup(id = '002', name='script02', description="JASMET Meteor Dete | |||||
13 | # path = '/mnt/jars/2016_08/NOCHE' |
|
13 | # path = '/mnt/jars/2016_08/NOCHE' | |
14 | # path = '/media/joscanoa/DATA_JASMET/JASMET/2016_08/DIA' |
|
14 | # path = '/media/joscanoa/DATA_JASMET/JASMET/2016_08/DIA' | |
15 | # path = '/media/joscanoa/DATA_JASMET/JASMET/2016_08/NOCHE' |
|
15 | # path = '/media/joscanoa/DATA_JASMET/JASMET/2016_08/NOCHE' | |
16 | path = '/media/nanosat/NewVolumen/JASMET/2016_08/DIA' |
|
16 | path = '/home/nanosat/data/jasmet' | |
17 |
|
17 | |||
18 | #Path para los graficos |
|
18 | #Path para los graficos | |
19 | pathfig = os.path.join(os.environ['HOME'],'Pictures/JASMET30/201608/graphics') |
|
19 | pathfig = os.path.join(os.environ['HOME'],'Pictures/JASMET30/201608/graphics') | |
@@ -22,8 +22,8 pathfig = os.path.join(os.environ['HOME'],'Pictures/JASMET30/201608/graphics') | |||||
22 | pathfile = os.path.join(os.environ['HOME'],'Pictures/JASMET30/201608/meteor') |
|
22 | pathfile = os.path.join(os.environ['HOME'],'Pictures/JASMET30/201608/meteor') | |
23 |
|
23 | |||
24 | #Fechas para busqueda de archivos |
|
24 | #Fechas para busqueda de archivos | |
25 |
startDate = '201 |
|
25 | startDate = '2010/08/29' | |
26 |
endDate = '201 |
|
26 | endDate = '2017/09/11' | |
27 | #Horas para busqueda de archivos |
|
27 | #Horas para busqueda de archivos | |
28 | startTime = '00:00:00' |
|
28 | startTime = '00:00:00' | |
29 | endTime = '23:59:59' |
|
29 | endTime = '23:59:59' |
@@ -1,1 +1,1 | |||||
1 | <Project description="JASMET Wind Estimation" id="005" name="script05"><ReadUnit datatype="ParamReader" id="51" inputId="0" name="ParamReader"><Operation id="511" name="run" priority="1" type="self"><Parameter format="str" id="5111" name="datatype" value="ParamReader" /><Parameter format="str" id="5112" name="path" value="/home/nanosat/Pictures/JASMET30_mp/201608/meteor" /><Parameter format="date" id="5113" name="startDate" value="2016/08/29" /><Parameter format="date" id="5114" name="endDate" value="2016/09/11" /><Parameter format="time" id="5115" name="startTime" value="00:00:00" /><Parameter format="time" id="5116" name="endTime" value="23:59:59" /><Parameter format="int" id="5118" name="walk" value="1" /></Operation></ReadUnit><ProcUnit datatype="ParametersProc" id="52" inputId="51" name="ParametersProc"><Operation id="521" name="run" priority="1" type="self" /><Operation id="522" name="CorrectSMPhases" priority="2" type="other"><Parameter format="floatlist" id="5221" name="phaseOffsets" value="-5.86, -0.93, -7.29, 23.35" /></Operation><Operation id="523" name="SkyMapPlot" priority="3" type="other"><Parameter format="int" id="5231" name="id" value="1" /><Parameter format="str" id="5232" name="wintitle" value="Sky Map" /><Parameter format="bool" id="5233" name="save" value="1" /><Parameter format="str" id="5234" name="figpath" value="/home/nanosat/Pictures/JASMET30_mp/201608/graphics" /><Parameter format="int" id="5235" name="ftp" value="1" /><Parameter format="int" id="5236" name="exp_code" value="15" /><Parameter format="int" id="5237" name="sub_exp_code" value="1" /><Parameter format="int" id="5238" name="tmin" value="0" /><Parameter format="int" id="5239" name="tmax" value="24" /></Operation><Operation id="524" name="WindProfiler" priority="4" type="other"><Parameter format="str" id="5241" name="technique" value="Meteors" /><Parameter format="float" id="5242" name="nHours" value="1" /><Parameter format="float" id="5243" name="hmin" value="70" /><Parameter format="float" id="5244" name="hmax" value="120" /></Operation><Operation id="525" name="WindProfilerPlot" priority="5" type="other"><Parameter format="int" id="5251" name="id" value="2" /><Parameter format="str" id="5252" name="wintitle" value="Wind Profiler" /><Parameter format="bool" id="5253" name="save" value="1" /><Parameter format="str" id="5254" name="figpath" value="/home/nanosat/Pictures/JASMET30_mp/201608/graphics" /><Parameter format="int" id="5255" name="zmin" value="-140" /><Parameter format="int" id="5256" name="zmax" value="140" /><Parameter format="float" id="5257" name="xmin" value="0" /><Parameter format="float" id="5258" name="xmax" value="24" /><Parameter format="float" id="5259" name="ymin" value="70" /><Parameter format="float" id="5260" name="ymax" value="110" /></Operation><Operation id="526" name="ParamWriter" priority="6" type="other"><Parameter format="str" id="5261" name="path" value="/home/nanosat/Pictures/JASMET30_mp/201608/phase" /><Parameter format="int" id="5262" name="blocksPerFile" value="1000" /><Parameter format="list" id="5263" name="metadataList" value="type,outputInterval,timeZone" /><Parameter format="list" id="5264" name="dataList" value="data_output,utctime" /></Operation></ProcUnit></Project> No newline at end of file |
|
1 | <Project description="JASMET Meteor Detection" id="002" name="script02"><ReadUnit datatype="VoltageReader" id="21" inputId="0" name="VoltageReader"><Operation id="211" name="run" priority="1" type="self"><Parameter format="str" id="2111" name="datatype" value="VoltageReader" /><Parameter format="str" id="2112" name="path" value="/home/nanosat/data/jasmet" /><Parameter format="date" id="2113" name="startDate" value="2010/08/29" /><Parameter format="date" id="2114" name="endDate" value="2017/09/11" /><Parameter format="time" id="2115" name="startTime" value="00:00:00" /><Parameter format="time" id="2116" name="endTime" value="23:59:59" /><Parameter format="int" id="2118" name="delay" value="30" /><Parameter format="int" id="2119" name="blocktime" value="100" /><Parameter format="int" id="2120" name="getblock" value="1" /><Parameter format="int" id="2121" name="walk" value="1" /><Parameter format="int" id="2122" name="online" value="0" /></Operation><Operation id="212" name="printNumberOfBlock" priority="2" type="self" /></ReadUnit><ProcUnit datatype="VoltageProc" id="22" inputId="21" name="VoltageProc"><Operation id="221" name="run" priority="1" type="self" /><Operation id="222" name="selectChannels" priority="2" type="self"><Parameter format="intlist" id="2221" name="channelList" value="0,1,2,3,4" /></Operation><Operation id="223" name="setRadarFrequency" priority="3" type="self"><Parameter format="float" id="2231" name="frequency" value="30.e6" /></Operation><Operation id="224" name="interpolateHeights" priority="4" type="self"><Parameter format="int" id="2241" name="topLim" value="73" /><Parameter format="int" id="2242" name="botLim" value="71" /></Operation><Operation id="225" name="Decoder" priority="5" type="other" /><Operation id="226" name="CohInt" priority="6" type="other"><Parameter format="int" id="2261" name="n" value="2" /></Operation></ProcUnit><ProcUnit datatype="ParametersProc" id="23" inputId="22" name="ParametersProc"><Operation id="231" name="run" priority="1" type="self" /><Operation id="232" name="SMDetection" priority="2" type="other"><Parameter format="float" id="2321" name="azimuth" value="45" /><Parameter format="float" id="2322" name="hmin" value="60" /><Parameter format="float" id="2323" name="hmax" value="120" /></Operation><Operation id="233" name="ParamWriter" priority="3" type="other"><Parameter format="str" id="2331" name="path" value="/home/nanosat/Pictures/JASMET30/201608/meteor" /><Parameter format="int" id="2332" name="blocksPerFile" value="1000" /><Parameter format="list" id="2333" name="metadataList" value="type,heightList,paramInterval,timeZone" /><Parameter format="list" id="2334" name="dataList" value="data_param,utctime" /><Parameter format="int" id="2335" name="mode" value="2" /></Operation></ProcUnit></Project> No newline at end of file |
@@ -7,6 +7,7 Created on Jul 16, 2014 | |||||
7 |
|
7 | |||
8 | from schainpy import __version__ |
|
8 | from schainpy import __version__ | |
9 | from setuptools import setup, Extension |
|
9 | from setuptools import setup, Extension | |
|
10 | import numpy | |||
10 |
|
11 | |||
11 | setup(name="schainpy", |
|
12 | setup(name="schainpy", | |
12 | version=__version__, |
|
13 | version=__version__, | |
@@ -39,7 +40,13 setup(name="schainpy", | |||||
39 | ], |
|
40 | ], | |
40 | }, |
|
41 | }, | |
41 | scripts=['schainpy/gui/schainGUI'], |
|
42 | scripts=['schainpy/gui/schainGUI'], | |
42 | ext_modules=[Extension("cSchain", ["schainpy/model/proc/extensions.c"], include_dirs=[numpy.get_include()])], |
|
43 | ext_modules=[ | |
|
44 | Extension("cSchain", | |||
|
45 | ["schainpy/model/proc/extensions.c"], | |||
|
46 | include_dirs=[numpy.get_include()], | |||
|
47 | #extra_compile_args=['-Werror'], | |||
|
48 | ) | |||
|
49 | ], | |||
43 | install_requires=[ |
|
50 | install_requires=[ | |
44 | "scipy >= 0.14.0", |
|
51 | "scipy >= 0.14.0", | |
45 | "h5py >= 2.2.1", |
|
52 | "h5py >= 2.2.1", |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now