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