|
@@
-6,33
+6,29
Signal Chain (SCh) is a radar data processing library developed using [Python](w
|
|
6
|
|
|
6
|
|
|
7
|
## Installation
|
|
7
|
## Installation
|
|
8
|
|
|
8
|
|
|
9
|
Install system dependencies, clone the latest version from [here](http://jro-dev.igp.gob.pe/rhodecode/schain/) and install it as a normal python package.
|
|
9
|
Install system dependencies, clone the latest version from [here](http://jro-dev.igp.gob.pe/rhodecode/schain/) and install it as a normal python package, we strongly recommend to use Anaconda or a virtual environment for the installation.
|
|
10
|
|
|
10
|
|
|
11
|
### Linux based system
|
|
11
|
### Dependencies
|
|
|
|
|
12
|
- GCC (gcc or gfortran)
|
|
|
|
|
13
|
- Python.h (python-dev or python-devel)
|
|
|
|
|
14
|
- Python-TK (python-tk)
|
|
|
|
|
15
|
- HDF5 libraries (libhdf5-dev)
|
|
|
|
|
16
|
|
|
|
|
|
17
|
### Linux based system (e.g. ubuntu)
|
|
12
|
```
|
|
18
|
```
|
|
13
|
$ sudo apt-get install python-pip python-dev gfortran libpng-dev freetype* libblas-dev liblapack-dev libatlas-base-dev python-qt4 python-tk libssl-dev libhdf5-dev
|
|
|
|
|
14
|
$ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
|
|
19
|
$ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
|
|
15
|
$ cd schain
|
|
20
|
$ cd schain
|
|
|
|
|
21
|
$ git checkout `schain-branch` (optional)
|
|
16
|
$ sudo pip install ./
|
|
22
|
$ sudo pip install ./
|
|
17
|
|
|
|
|
|
18
|
```
|
|
23
|
```
|
|
19
|
|
|
24
|
|
|
20
|
### MAC Os
|
|
25
|
### MAC Os
|
|
21
|
```
|
|
26
|
```
|
|
22
|
$ brew install python
|
|
27
|
$ brew install python
|
|
23
|
$ brew install cartr/qt4/pyqt
|
|
|
|
|
24
|
$ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
|
|
28
|
$ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
|
|
25
|
$ cd schain
|
|
29
|
$ cd schain
|
|
26
|
$ pip install ./
|
|
30
|
$ git checkout `schain-branch` (optional)
|
|
27
|
```
|
|
31
|
$ sudo pip install ./
|
|
28
|
|
|
|
|
|
29
|
**It is recommended to install schain in a virtual environment**
|
|
|
|
|
30
|
```
|
|
|
|
|
31
|
$ virtualenv /path/to/virtual
|
|
|
|
|
32
|
$ source /path/to/virtual/bin/activate
|
|
|
|
|
33
|
(virtual) $ cd schain
|
|
|
|
|
34
|
(virtual) $ pip install ./
|
|
|
|
|
35
|
(virtual) $ bash link_PyQt4.sh
|
|
|
|
|
36
|
```
|
|
32
|
```
|
|
37
|
|
|
33
|
|
|
38
|
### Docker
|
|
34
|
### Docker
|
|
@@
-49,63
+45,72
$ docker run -it --rm --volume /path/to/host/data:/data schain xml /data/test.xm
|
|
49
|
$ docker run -it --rm --volume /path/to/host/data:/data --entrypoint /urs/local/bin/python schain /data/test.py
|
|
45
|
$ docker run -it --rm --volume /path/to/host/data:/data --entrypoint /urs/local/bin/python schain /data/test.py
|
|
50
|
```
|
|
46
|
```
|
|
51
|
|
|
47
|
|
|
|
|
|
48
|
## CLI (command line interface)
|
|
|
|
|
49
|
|
|
|
|
|
50
|
Signal Chain provides the following commands:
|
|
|
|
|
51
|
|
|
|
|
|
52
|
- schainGUI: Open the GUI
|
|
|
|
|
53
|
- schain: Signal chain command line
|
|
|
|
|
54
|
|
|
|
|
|
55
|
|
|
52
|
## First Script
|
|
56
|
## First Script
|
|
53
|
|
|
57
|
|
|
54
|
Read Spectra data (.pdata) - remove dc - plot spectra & RTI
|
|
58
|
Here you can find an script to read Spectra data (.pdata), remove dc and plot spectra & RTI
|
|
55
|
|
|
59
|
|
|
56
|
Import SCh and creating a project
|
|
60
|
First import SCh and creating a project
|
|
57
|
|
|
61
|
|
|
58
|
```python
|
|
62
|
```python
|
|
59
|
#!/usr/bin/python
|
|
63
|
#!/usr/bin/python
|
|
60
|
|
|
64
|
|
|
61
|
from schainpy.controller import Project
|
|
65
|
from schainpy.controller import Project
|
|
62
|
|
|
66
|
|
|
63
|
controller = Project()
|
|
67
|
prj = Project()
|
|
64
|
controller.setup(id = '100',
|
|
68
|
prj.setup(
|
|
65
|
name='test',
|
|
69
|
id = '100',
|
|
66
|
description='Basic experiment')
|
|
70
|
name='test',
|
|
67
|
|
|
71
|
description='Basic experiment'
|
|
68
|
|
|
72
|
)
|
|
69
|
```
|
|
73
|
```
|
|
70
|
|
|
74
|
|
|
71
|
Adding read unit and operations
|
|
75
|
Add read unit and operations
|
|
72
|
|
|
76
|
|
|
73
|
```python
|
|
77
|
```python
|
|
74
|
read_unit = controller.addReadUnit(datatype='Spectra',
|
|
78
|
read_unit = prj.addReadUnit(
|
|
75
|
path='/path/to/pdata/',
|
|
79
|
datatype='Spectra',
|
|
76
|
startDate='2014/01/31',
|
|
80
|
path='/path/to/pdata/',
|
|
77
|
endDate='2014/03/31',
|
|
81
|
startDate='2014/01/31',
|
|
78
|
startTime='00:00:00',
|
|
82
|
endDate='2014/03/31',
|
|
79
|
endTime='23:59:59',
|
|
83
|
startTime='00:00:00',
|
|
80
|
online=0,
|
|
84
|
endTime='23:59:59',
|
|
81
|
walk=0)
|
|
85
|
online=0,
|
|
82
|
|
|
86
|
walk=0
|
|
83
|
proc_unit = controller.addProcUnit(datatype='Spectra',
|
|
87
|
)
|
|
84
|
inputId=read_unit.getId())
|
|
88
|
|
|
|
|
|
89
|
proc_unit = prj.addProcUnit(datatype='Spectra', inputId=read_unit.getId())
|
|
85
|
|
|
90
|
|
|
86
|
op = proc_unit.addOperation(name='selectChannels')
|
|
91
|
op = proc_unit.addOperation(name='selectChannels')
|
|
87
|
op.addParameter(name='channelList', value='0,1', format='intlist')
|
|
92
|
op.addParameter(name='channelList', value='0,1')
|
|
88
|
|
|
93
|
|
|
89
|
op = proc_unit.addOperation(name='selectHeights')
|
|
94
|
op = proc_unit.addOperation(name='selectHeights')
|
|
90
|
op.addParameter(name='minHei', value='80', format='float')
|
|
95
|
op.addParameter(name='minHei', value='80')
|
|
91
|
op.addParameter(name='maxHei', value='200', format='float')
|
|
96
|
op.addParameter(name='maxHei', value='200')
|
|
92
|
|
|
97
|
|
|
93
|
op = proc_unit.addOperation(name='removeDC')
|
|
98
|
op = proc_unit.addOperation(name='removeDC')
|
|
94
|
|
|
99
|
|
|
95
|
```
|
|
100
|
```
|
|
96
|
|
|
101
|
|
|
97
|
Plotting data & start project
|
|
102
|
Plot data & start project
|
|
98
|
|
|
103
|
|
|
99
|
```python
|
|
104
|
```python
|
|
100
|
op = proc_unit.addOperation(name='SpectraPlot', optype='other')
|
|
105
|
op = proc_unit.addOperation(name='SpectraPlot')
|
|
101
|
op.addParameter(name='id', value='1', format='int')
|
|
106
|
op.addParameter(name='id', value='1')
|
|
102
|
op.addParameter(name='wintitle', value='Spectra', format='str')
|
|
107
|
op.addParameter(name='wintitle', value='Spectra')
|
|
103
|
|
|
108
|
|
|
104
|
op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
|
|
109
|
op = procUnitConfObj1.addOperation(name='RTIPlot')
|
|
105
|
op.addParameter(name='id', value='2', format='int')
|
|
110
|
op.addParameter(name='id', value='2')
|
|
106
|
op.addParameter(name='wintitle', value='RTI', format='str')
|
|
111
|
op.addParameter(name='wintitle', value='RTI')
|
|
107
|
|
|
112
|
|
|
108
|
controller.start()
|
|
113
|
prj.start()
|
|
109
|
|
|
114
|
|
|
110
|
```
|
|
115
|
```
|
|
111
|
|
|
116
|
|
|
@@
-115,13
+120,13
Full script
|
|
115
|
```python
|
|
120
|
```python
|
|
116
|
#!/usr/bin/python
|
|
121
|
#!/usr/bin/python
|
|
117
|
|
|
122
|
|
|
118
|
from schainpy.controller import Project
|
|
123
|
from schainpy.prj import Project
|
|
119
|
|
|
124
|
|
|
120
|
controller = Project()
|
|
125
|
prj = Project()
|
|
121
|
controller.setup(id = '100',
|
|
126
|
prj.setup(id = '100',
|
|
122
|
name='test',
|
|
127
|
name='test',
|
|
123
|
description='Basic experiment')
|
|
128
|
description='Basic experiment')
|
|
124
|
read_unit = controller.addReadUnit(datatype='Spectra',
|
|
129
|
read_unit = prj.addReadUnit(datatype='Spectra',
|
|
125
|
path='/path/to/pdata/',
|
|
130
|
path='/path/to/pdata/',
|
|
126
|
startDate='2014/01/31',
|
|
131
|
startDate='2014/01/31',
|
|
127
|
endDate='2014/03/31',
|
|
132
|
endDate='2014/03/31',
|
|
@@
-130,26
+135,24
read_unit = controller.addReadUnit(datatype='Spectra',
|
|
130
|
online=0,
|
|
135
|
online=0,
|
|
131
|
walk=0)
|
|
136
|
walk=0)
|
|
132
|
|
|
137
|
|
|
133
|
proc_unit = controller.addProcUnit(datatype='Spectra',
|
|
138
|
proc_unit = prj.addProcUnit(datatype='Spectra',
|
|
134
|
inputId=read_unit.getId())
|
|
139
|
inputId=read_unit.getId())
|
|
135
|
|
|
140
|
|
|
136
|
op = proc_unit.addOperation(name='selectChannels')
|
|
141
|
op = proc_unit.addOperation(name='selectChannels')
|
|
137
|
op.addParameter(name='channelList', value='0,1', format='intlist')
|
|
142
|
op.addParameter(name='channelList', value='0,1')
|
|
138
|
|
|
143
|
|
|
139
|
op = proc_unit.addOperation(name='selectHeights')
|
|
144
|
op = proc_unit.addOperation(name='selectHeights')
|
|
140
|
op.addParameter(name='minHei', value='80', format='float')
|
|
145
|
op.addParameter(name='minHei', value='80')
|
|
141
|
op.addParameter(name='maxHei', value='200', format='float')
|
|
146
|
op.addParameter(name='maxHei', value='200')
|
|
142
|
|
|
147
|
|
|
143
|
op = proc_unit.addOperation(name='removeDC')
|
|
148
|
op = proc_unit.addOperation(name='removeDC')
|
|
144
|
|
|
149
|
|
|
145
|
op = proc_unit.addOperation(name='SpectraPlot', optype='other')
|
|
150
|
op = proc_unit.addOperation(name='SpectraPlot')
|
|
146
|
op.addParameter(name='id', value='6', format='int')
|
|
|
|
|
147
|
op.addParameter(name='wintitle', value='Spectra', format='str')
|
|
151
|
op.addParameter(name='wintitle', value='Spectra', format='str')
|
|
148
|
|
|
152
|
|
|
149
|
op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
|
|
153
|
op = procUnitConfObj1.addOperation(name='RTIPlot')
|
|
150
|
op.addParameter(name='id', value='2', format='int')
|
|
|
|
|
151
|
op.addParameter(name='wintitle', value='RTI', format='str')
|
|
154
|
op.addParameter(name='wintitle', value='RTI', format='str')
|
|
152
|
|
|
155
|
|
|
153
|
controller.start()
|
|
156
|
prj.start()
|
|
154
|
|
|
157
|
|
|
155
|
```
No newline at end of file
|
|
158
|
```
|