##// END OF EJS Templates
Create Dockerfile
Juan C. Espinoza -
r1118:b9a9b35be35d
parent child
Show More
@@ -0,0 +1,26
1 FROM python:2.7-slim
2
3 RUN apt-get clean && apt-get update && apt-get install -y --no-install-recommends \
4 git \
5 gcc \
6 libpng-dev \
7 libfreetype6-dev \
8 libopenblas-dev \
9 liblapack-dev \
10 libatlas-base-dev \
11 libssl-dev \
12 libhdf5-dev \
13 && git clone --branch v2.3 --depth 1 \
14 http://jro-dev.igp.gob.pe/rhodecode/schain \
15 && pip install numpy \
16 && cd schain \
17 && pip install . \
18 && rm -rf * \
19 && apt-get purge -y --auto-remove git gcc \
20 && rm -rf /var/lib/apt/lists/*
21
22 ENV BACKEND="Agg"
23
24 VOLUME /data
25
26 ENTRYPOINT ["schain"]
@@ -1,141 +1,155
1 # Signal Chain
1 # Signal Chain
2
2
3 ## Introduction
3 ## Introduction
4
4
5 Signal Chain (SCh) is a radar data processing library developed using [Python](www.python.org) at JRO. SCh provides modules to read, write, process and plot data.
5 Signal Chain (SCh) is a radar data processing library developed using [Python](www.python.org) at JRO. SCh provides modules to read, write, process and plot data.
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.
10
10
11 ### Linux based system
11 ### Linux based system
12 ```
12 ```
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
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/
14 $ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
15 $ cd schain
15 $ cd schain
16 $ sudo pip install ./
16 $ sudo pip install ./
17
17
18 ```
18 ```
19
19
20 ### MAC Os
20 ### MAC Os
21 ```
21 ```
22 $ brew install python
22 $ brew install python
23 $ brew install cartr/qt4/pyqt
23 $ brew install cartr/qt4/pyqt
24 $ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
24 $ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
25 $ cd schain
25 $ cd schain
26 $ pip install ./
26 $ pip install ./
27 ```
27 ```
28
28
29 **It is recommended to install schain in a virtual environment**
29 **It is recommended to install schain in a virtual environment**
30 ```
30 ```
31 $ virtualenv /path/to/virtual
31 $ virtualenv /path/to/virtual
32 $ source /path/to/virtual/bin/activate
32 $ source /path/to/virtual/bin/activate
33 (virtual) $ cd schain
33 (virtual) $ cd schain
34 (virtual) $ pip install ./
34 (virtual) $ pip install ./
35 (virtual) $ bash link_PyQt4.sh
35 (virtual) $ bash link_PyQt4.sh
36 ```
36 ```
37
37
38 ### Docker
39
40 Download Dockerfile from the repository, and create a docker image
41
42 ```
43 $ docker build -t schain .
44 ```
45
46 You can run a container using an xml file or a schain script also you need to mount a volume for the data input and for the output files/plots
47 ```
48 $ docker run -it --rm --volume /path/to/host/data:/data schain xml /data/test.xml
49 $ docker run -it --rm --volume /path/to/host/data:/data --entrypoint=/bin/python schain /data/test.py
50 ```
51
38 ## First Script
52 ## First Script
39
53
40 Read Spectra data (.pdata) - remove dc - plot spectra & RTI
54 Read Spectra data (.pdata) - remove dc - plot spectra & RTI
41
55
42 Import SCh and creating a project
56 Import SCh and creating a project
43
57
44 ```python
58 ```python
45 #!/usr/bin/python
59 #!/usr/bin/python
46
60
47 from schainpy.controller import Project
61 from schainpy.controller import Project
48
62
49 controller = Project()
63 controller = Project()
50 controller.setup(id = '100',
64 controller.setup(id = '100',
51 name='test',
65 name='test',
52 description='Basic experiment')
66 description='Basic experiment')
53
67
54
68
55 ```
69 ```
56
70
57 Adding read unit and operations
71 Adding read unit and operations
58
72
59 ```python
73 ```python
60 read_unit = controller.addReadUnit(datatype='Spectra',
74 read_unit = controller.addReadUnit(datatype='Spectra',
61 path='/path/to/pdata/',
75 path='/path/to/pdata/',
62 startDate='2014/01/31',
76 startDate='2014/01/31',
63 endDate='2014/03/31',
77 endDate='2014/03/31',
64 startTime='00:00:00',
78 startTime='00:00:00',
65 endTime='23:59:59',
79 endTime='23:59:59',
66 online=0,
80 online=0,
67 walk=0)
81 walk=0)
68
82
69 proc_unit = controller.addProcUnit(datatype='Spectra',
83 proc_unit = controller.addProcUnit(datatype='Spectra',
70 inputId=read_unit.getId())
84 inputId=read_unit.getId())
71
85
72 op = proc_unit.addOperation(name='selectChannels')
86 op = proc_unit.addOperation(name='selectChannels')
73 op.addParameter(name='channelList', value='0,1', format='intlist')
87 op.addParameter(name='channelList', value='0,1', format='intlist')
74
88
75 op = proc_unit.addOperation(name='selectHeights')
89 op = proc_unit.addOperation(name='selectHeights')
76 op.addParameter(name='minHei', value='80', format='float')
90 op.addParameter(name='minHei', value='80', format='float')
77 op.addParameter(name='maxHei', value='200', format='float')
91 op.addParameter(name='maxHei', value='200', format='float')
78
92
79 op = proc_unit.addOperation(name='removeDC')
93 op = proc_unit.addOperation(name='removeDC')
80
94
81 ```
95 ```
82
96
83 Plotting data & start project
97 Plotting data & start project
84
98
85 ```python
99 ```python
86 op = proc_unit.addOperation(name='SpectraPlot', optype='other')
100 op = proc_unit.addOperation(name='SpectraPlot', optype='other')
87 op.addParameter(name='id', value='1', format='int')
101 op.addParameter(name='id', value='1', format='int')
88 op.addParameter(name='wintitle', value='Spectra', format='str')
102 op.addParameter(name='wintitle', value='Spectra', format='str')
89
103
90 op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
104 op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
91 op.addParameter(name='id', value='2', format='int')
105 op.addParameter(name='id', value='2', format='int')
92 op.addParameter(name='wintitle', value='RTI', format='str')
106 op.addParameter(name='wintitle', value='RTI', format='str')
93
107
94 controller.start()
108 controller.start()
95
109
96 ```
110 ```
97
111
98 Full script
112 Full script
99
113
100
114
101 ```python
115 ```python
102 #!/usr/bin/python
116 #!/usr/bin/python
103
117
104 from schainpy.controller import Project
118 from schainpy.controller import Project
105
119
106 controller = Project()
120 controller = Project()
107 controller.setup(id = '100',
121 controller.setup(id = '100',
108 name='test',
122 name='test',
109 description='Basic experiment')
123 description='Basic experiment')
110 read_unit = controller.addReadUnit(datatype='Spectra',
124 read_unit = controller.addReadUnit(datatype='Spectra',
111 path='/path/to/pdata/',
125 path='/path/to/pdata/',
112 startDate='2014/01/31',
126 startDate='2014/01/31',
113 endDate='2014/03/31',
127 endDate='2014/03/31',
114 startTime='00:00:00',
128 startTime='00:00:00',
115 endTime='23:59:59',
129 endTime='23:59:59',
116 online=0,
130 online=0,
117 walk=0)
131 walk=0)
118
132
119 proc_unit = controller.addProcUnit(datatype='Spectra',
133 proc_unit = controller.addProcUnit(datatype='Spectra',
120 inputId=read_unit.getId())
134 inputId=read_unit.getId())
121
135
122 op = proc_unit.addOperation(name='selectChannels')
136 op = proc_unit.addOperation(name='selectChannels')
123 op.addParameter(name='channelList', value='0,1', format='intlist')
137 op.addParameter(name='channelList', value='0,1', format='intlist')
124
138
125 op = proc_unit.addOperation(name='selectHeights')
139 op = proc_unit.addOperation(name='selectHeights')
126 op.addParameter(name='minHei', value='80', format='float')
140 op.addParameter(name='minHei', value='80', format='float')
127 op.addParameter(name='maxHei', value='200', format='float')
141 op.addParameter(name='maxHei', value='200', format='float')
128
142
129 op = proc_unit.addOperation(name='removeDC')
143 op = proc_unit.addOperation(name='removeDC')
130
144
131 op = proc_unit.addOperation(name='SpectraPlot', optype='other')
145 op = proc_unit.addOperation(name='SpectraPlot', optype='other')
132 op.addParameter(name='id', value='6', format='int')
146 op.addParameter(name='id', value='6', format='int')
133 op.addParameter(name='wintitle', value='Spectra', format='str')
147 op.addParameter(name='wintitle', value='Spectra', format='str')
134
148
135 op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
149 op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
136 op.addParameter(name='id', value='2', format='int')
150 op.addParameter(name='id', value='2', format='int')
137 op.addParameter(name='wintitle', value='RTI', format='str')
151 op.addParameter(name='wintitle', value='RTI', format='str')
138
152
139 controller.start()
153 controller.start()
140
154
141 ``` No newline at end of file
155 ```
General Comments 0
You need to be logged in to leave comments. Login now