@@ -10,6 +10,7 import traceback | |||
|
10 | 10 | import math |
|
11 | 11 | import time |
|
12 | 12 | from multiprocessing import Process, Queue, cpu_count |
|
13 | from profilehooks import profile, coverage | |
|
13 | 14 | |
|
14 | 15 | import schainpy |
|
15 | 16 | import schainpy.admin |
@@ -20,6 +21,8 from xml.dom import minidom | |||
|
20 | 21 | from schainpy.model import * |
|
21 | 22 | from time import sleep |
|
22 | 23 | |
|
24 | ||
|
25 | ||
|
23 | 26 | def prettify(elem): |
|
24 | 27 | """Return a pretty-printed XML string for the Element. |
|
25 | 28 | """ |
@@ -258,7 +261,7 class ParameterConf(): | |||
|
258 | 261 | |
|
259 | 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 | 266 | id = None |
|
264 | 267 | name = None |
@@ -327,8 +330,8 class OperationConf(): | |||
|
327 | 330 | |
|
328 | 331 | parameterObj = self.getParameterObj(parameterName) |
|
329 | 332 | |
|
330 | # if not parameterObj: | |
|
331 | # return None | |
|
333 | # if not parameterObj: | |
|
334 | # return None | |
|
332 | 335 | |
|
333 | 336 | value = parameterObj.getValue() |
|
334 | 337 | |
@@ -687,6 +690,7 class ProcUnitConf(): | |||
|
687 | 690 | |
|
688 | 691 | return procUnitObj |
|
689 | 692 | |
|
693 | ## @profile | |
|
690 | 694 | def run(self): |
|
691 | 695 | |
|
692 | 696 | is_ok = False |
@@ -708,10 +712,10 class ProcUnitConf(): | |||
|
708 | 712 | opId = opConfObj.id, |
|
709 | 713 | ) |
|
710 | 714 | |
|
711 | # total_time = time.time() - ini | |
|
712 | # | |
|
713 | # if total_time > 0.002: | |
|
714 | # print "%s::%s took %f seconds" %(self.name, opConfObj.name, total_time) | |
|
715 | # total_time = time.time() - ini | |
|
716 | # | |
|
717 | # if total_time > 0.002: | |
|
718 | # print "%s::%s took %f seconds" %(self.name, opConfObj.name, total_time) | |
|
715 | 719 | |
|
716 | 720 | is_ok = is_ok or sts |
|
717 | 721 | |
@@ -859,16 +863,16 class ReadUnitConf(ProcUnitConf): | |||
|
859 | 863 | |
|
860 | 864 | return opObj |
|
861 | 865 | |
|
862 | # def makeXml(self, projectElement): | |
|
863 | # | |
|
864 | # procUnitElement = SubElement(projectElement, self.ELEMENTNAME) | |
|
865 | # procUnitElement.set('id', str(self.id)) | |
|
866 | # procUnitElement.set('name', self.name) | |
|
867 | # procUnitElement.set('datatype', self.datatype) | |
|
868 | # procUnitElement.set('inputId', str(self.inputId)) | |
|
869 | # | |
|
870 | # for opConfObj in self.opConfObjList: | |
|
871 | # opConfObj.makeXml(procUnitElement) | |
|
866 | # def makeXml(self, projectElement): | |
|
867 | # | |
|
868 | # procUnitElement = SubElement(projectElement, self.ELEMENTNAME) | |
|
869 | # procUnitElement.set('id', str(self.id)) | |
|
870 | # procUnitElement.set('name', self.name) | |
|
871 | # procUnitElement.set('datatype', self.datatype) | |
|
872 | # procUnitElement.set('inputId', str(self.inputId)) | |
|
873 | # | |
|
874 | # for opConfObj in self.opConfObjList: | |
|
875 | # opConfObj.makeXml(procUnitElement) | |
|
872 | 876 | |
|
873 | 877 | def readXml(self, upElement): |
|
874 | 878 | |
@@ -1264,6 +1268,7 class Project(): | |||
|
1264 | 1268 | |
|
1265 | 1269 | raise NotImplementedError, "Use schainpy.controller_api.ControllerThread instead Project class" |
|
1266 | 1270 | |
|
1271 | ||
|
1267 | 1272 | def run(self): |
|
1268 | 1273 | |
|
1269 | 1274 |
@@ -8,5 +8,5 | |||
|
8 | 8 | from data import * |
|
9 | 9 | from io import * |
|
10 | 10 | from proc import * |
|
11 | from graphics import * | |
|
11 | #from graphics import * | |
|
12 | 12 | from utils import * |
@@ -17,6 +17,8 from schainpy.model.proc.jroproc_base import Operation | |||
|
17 | 17 | plt.ion() |
|
18 | 18 | |
|
19 | 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 | 23 | d1970 = datetime.datetime(1970,1,1) |
|
22 | 24 | |
@@ -54,7 +56,7 class PlotData(Operation, Process): | |||
|
54 | 56 | self.xrange = kwargs.get('xrange', 24) |
|
55 | 57 | self.ymin = kwargs.get('ymin', None) |
|
56 | 58 | self.ymax = kwargs.get('ymax', None) |
|
57 |
self.__MAXNUMY = kwargs.get('decimation', |
|
|
59 | self.__MAXNUMY = kwargs.get('decimation', 5000) | |
|
58 | 60 | self.throttle_value = 5 |
|
59 | 61 | self.times = [] |
|
60 | 62 | #self.interactive = self.kwargs['parent'] |
@@ -493,8 +495,14 class PlotRTIData(PlotData): | |||
|
493 | 495 | self.z = np.array(self.z) |
|
494 | 496 | for n, ax in enumerate(self.axes): |
|
495 | 497 | x, y, z = self.fill_gaps(*self.decimate()) |
|
496 |
|
|
|
497 |
|
|
|
498 | if self.xmin is None: | |
|
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 | 506 | self.zmin = self.zmin if self.zmin else np.min(self.z) |
|
499 | 507 | self.zmax = self.zmax if self.zmax else np.max(self.z) |
|
500 | 508 | if ax.firsttime: |
@@ -999,8 +999,7 class JRODataReader(JRODataIO): | |||
|
999 | 999 | return 0 |
|
1000 | 1000 | |
|
1001 | 1001 | # if self.online: |
|
1002 | # self.__jumpToLastBlock() | |
|
1003 | print 'xxxx' | |
|
1002 | # self.__jumpToLastBlock() | |
|
1004 | 1003 | |
|
1005 | 1004 | if self.flagIsNewFile: |
|
1006 | 1005 | self.lastUTTime = self.basicHeaderObj.utc |
@@ -1011,8 +1010,7 class JRODataReader(JRODataIO): | |||
|
1011 | 1010 | if not(self.setNextFile()): |
|
1012 | 1011 | return 0 |
|
1013 | 1012 | else: |
|
1014 | return 1 | |
|
1015 | print 'xxxx' | |
|
1013 | return 1 | |
|
1016 | 1014 | #if self.server is None: |
|
1017 | 1015 | currentSize = self.fileSize - self.fp.tell() |
|
1018 | 1016 | neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize |
@@ -1044,12 +1042,11 class JRODataReader(JRODataIO): | |||
|
1044 | 1042 | def readNextBlock(self): |
|
1045 | 1043 | |
|
1046 | 1044 | #Skip block out of startTime and endTime |
|
1047 | while True: | |
|
1048 | print 'cxxxx' | |
|
1045 | while True: | |
|
1049 | 1046 | if not(self.__setNewBlock()): |
|
1050 | 1047 | print 'returning' |
|
1051 | 1048 | return 0 |
|
1052 |
|
|
|
1049 | ||
|
1053 | 1050 | if not(self.readBlock()): |
|
1054 | 1051 | return 0 |
|
1055 | 1052 |
@@ -217,7 +217,6 class VoltageReader(JRODataReader, ProcessingUnit): | |||
|
217 | 217 | Si un bloque leido no es un bloque valido |
|
218 | 218 | """ |
|
219 | 219 | |
|
220 | print 'READ BLOCK' | |
|
221 | 220 | # if self.server is not None: |
|
222 | 221 | # self.zBlock = self.receiver.recv() |
|
223 | 222 | # self.zHeader = self.zBlock[:24] |
@@ -232,7 +231,6 class VoltageReader(JRODataReader, ProcessingUnit): | |||
|
232 | 231 | |
|
233 | 232 | try: |
|
234 | 233 | junk = junk.reshape( (self.processingHeaderObj.profilesPerBlock, self.processingHeaderObj.nHeights, self.systemHeaderObj.nChannels) ) |
|
235 | print'junked' | |
|
236 | 234 | except: |
|
237 | 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 | 3 | #include <Python.h> |
|
2 | 4 | #include <numpy/arrayobject.h> |
|
3 | 5 | #include <math.h> |
|
6 | #include <complex.h> | |
|
7 | #include <time.h> | |
|
4 | 8 | |
|
9 | // void printArr(int *array); | |
|
5 | 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 | 16 | static PyMethodDef extensionsMethods[] = { |
|
8 | { "hildebrand_sekhon", (PyCFunction)hildebrand_sekhon, METH_VARARGS, "get noise with" }, | |
|
9 | { NULL, NULL, 0, NULL } | |
|
17 | { "correlateByBlock", (PyCFunction)correlateByBlock, METH_VARARGS, "get correlation by block" }, | |
|
18 | { "hildebrand_sekhon", (PyCFunction)hildebrand_sekhon, METH_VARARGS, "get noise with hildebrand_sekhon" }, | |
|
19 | { NULL, NULL, 0, NULL } | |
|
10 | 20 | }; |
|
11 | 21 | |
|
12 | 22 | PyMODINIT_FUNC initcSchain() { |
@@ -14,13 +24,83 PyMODINIT_FUNC initcSchain() { | |||
|
14 | 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 | 98 | static PyObject *hildebrand_sekhon(PyObject *self, PyObject *args) { |
|
18 | /* Do your stuff here. */ | |
|
19 | 99 | double navg; |
|
20 | 100 | PyObject *data_obj, *data_array; |
|
21 | 101 | |
|
22 | 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 | 104 | if (data_array == NULL) { |
|
25 | 105 | Py_XDECREF(data_array); |
|
26 | 106 | Py_XDECREF(data_obj); |
@@ -56,3 +136,4 static PyObject *hildebrand_sekhon(PyObject *self, PyObject *args) { | |||
|
56 | 136 | |
|
57 | 137 | return Py_BuildValue("d", lnoise); |
|
58 | 138 | } |
|
139 |
@@ -1,9 +1,11 | |||
|
1 | 1 | import sys |
|
2 | 2 | import numpy |
|
3 | from profilehooks import profile | |
|
3 | 4 | from scipy import interpolate |
|
4 | ||
|
5 | from schainpy import cSchain | |
|
5 | 6 | from jroproc_base import ProcessingUnit, Operation |
|
6 | 7 | from schainpy.model.data.jrodata import Voltage |
|
8 | from time import time | |
|
7 | 9 | |
|
8 | 10 | class VoltageProc(ProcessingUnit): |
|
9 | 11 | |
@@ -555,7 +557,7 class Decoder(Operation): | |||
|
555 | 557 | |
|
556 | 558 | self.times = None |
|
557 | 559 | self.osamp = None |
|
558 | # self.__setValues = False | |
|
560 | # self.__setValues = False | |
|
559 | 561 | self.isConfig = False |
|
560 | 562 | |
|
561 | 563 | def setup(self, code, osamp, dataOut): |
@@ -624,21 +626,43 class Decoder(Operation): | |||
|
624 | 626 | |
|
625 | 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 | 636 | def __convolutionByBlockInTime(self, data): |
|
628 | 637 | |
|
629 | 638 | repetitions = self.__nProfiles / self.nCode |
|
630 | ||
|
639 | ||
|
631 | 640 | junk = numpy.lib.stride_tricks.as_strided(self.code, (repetitions, self.code.size), (0, self.code.itemsize)) |
|
632 | 641 | junk = junk.flatten() |
|
633 | 642 | code_block = numpy.reshape(junk, (self.nCode*repetitions, self.nBaud)) |
|
634 | 643 | |
|
635 | for i in range(self.__nChannels): | |
|
636 | for j in range(self.__nProfiles): | |
|
637 | print self.datadecTime[i,j,:].shape | |
|
638 | print numpy.correlate(data[i,j,:], code_block[j,:], mode='full')[self.nBaud-1:].shape | |
|
639 | self.datadecTime[i,j,:] = numpy.correlate(data[i,j,:], code_block[j,:], mode='full')[self.nBaud-1:] | |
|
640 | ||
|
644 | ||
|
645 | # def toVectorize(a,b): | |
|
646 | # return numpy.correlate(a,b, mode='full') | |
|
647 | # vectorized = numpy.vectorize(toVectorize, signature='(n),(m)->(k)') | |
|
648 | a = time() | |
|
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 | 664 | return self.datadecTime |
|
665 | ||
|
642 | 666 | |
|
643 | 667 | def __convolutionByBlockInFreq(self, data): |
|
644 | 668 | |
@@ -655,6 +679,7 class Decoder(Operation): | |||
|
655 | 679 | |
|
656 | 680 | return data |
|
657 | 681 | |
|
682 | ||
|
658 | 683 | def run(self, dataOut, code=None, nCode=None, nBaud=None, mode = 0, osamp=None, times=None): |
|
659 | 684 | |
|
660 | 685 | if dataOut.flagDecodeData: |
@@ -684,7 +709,9 class Decoder(Operation): | |||
|
684 | 709 | print "Fail decoding: Code is not defined." |
|
685 | 710 | return |
|
686 | 711 | |
|
712 | self.__nProfiles = dataOut.nProfiles | |
|
687 | 713 | datadec = None |
|
714 | ||
|
688 | 715 | if mode == 3: |
|
689 | 716 | mode = 0 |
|
690 | 717 |
@@ -13,7 +13,7 controllerObj.setup(id = '002', name='script02', description="JASMET Meteor Dete | |||
|
13 | 13 | # path = '/mnt/jars/2016_08/NOCHE' |
|
14 | 14 | # path = '/media/joscanoa/DATA_JASMET/JASMET/2016_08/DIA' |
|
15 | 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 | 18 | #Path para los graficos |
|
19 | 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 | 22 | pathfile = os.path.join(os.environ['HOME'],'Pictures/JASMET30/201608/meteor') |
|
23 | 23 | |
|
24 | 24 | #Fechas para busqueda de archivos |
|
25 |
startDate = '201 |
|
|
26 |
endDate = '201 |
|
|
25 | startDate = '2010/08/29' | |
|
26 | endDate = '2017/09/11' | |
|
27 | 27 | #Horas para busqueda de archivos |
|
28 | 28 | startTime = '00:00:00' |
|
29 | 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 | 8 | from schainpy import __version__ |
|
9 | 9 | from setuptools import setup, Extension |
|
10 | import numpy | |
|
10 | 11 | |
|
11 | 12 | setup(name="schainpy", |
|
12 | 13 | version=__version__, |
@@ -39,7 +40,13 setup(name="schainpy", | |||
|
39 | 40 | ], |
|
40 | 41 | }, |
|
41 | 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 | 50 | install_requires=[ |
|
44 | 51 | "scipy >= 0.14.0", |
|
45 | 52 | "h5py >= 2.2.1", |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now