##// 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 1 # Signal Chain
2 2
3 3 ## Introduction
4 4
5 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 7 ## Installation
8 8
9 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 11 ### Linux based system
12 12 ```
13 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 14 $ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
15 15 $ cd schain
16 16 $ sudo pip install ./
17 17
18 18 ```
19 19
20 20 ### MAC Os
21 21 ```
22 22 $ brew install python
23 23 $ brew install cartr/qt4/pyqt
24 24 $ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/
25 25 $ cd schain
26 26 $ pip install ./
27 27 ```
28 28
29 29 **It is recommended to install schain in a virtual environment**
30 30 ```
31 31 $ virtualenv /path/to/virtual
32 32 $ source /path/to/virtual/bin/activate
33 33 (virtual) $ cd schain
34 34 (virtual) $ pip install ./
35 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 52 ## First Script
39 53
40 54 Read Spectra data (.pdata) - remove dc - plot spectra & RTI
41 55
42 56 Import SCh and creating a project
43 57
44 58 ```python
45 59 #!/usr/bin/python
46 60
47 61 from schainpy.controller import Project
48 62
49 63 controller = Project()
50 64 controller.setup(id = '100',
51 65 name='test',
52 66 description='Basic experiment')
53 67
54 68
55 69 ```
56 70
57 71 Adding read unit and operations
58 72
59 73 ```python
60 74 read_unit = controller.addReadUnit(datatype='Spectra',
61 75 path='/path/to/pdata/',
62 76 startDate='2014/01/31',
63 77 endDate='2014/03/31',
64 78 startTime='00:00:00',
65 79 endTime='23:59:59',
66 80 online=0,
67 81 walk=0)
68 82
69 83 proc_unit = controller.addProcUnit(datatype='Spectra',
70 84 inputId=read_unit.getId())
71 85
72 86 op = proc_unit.addOperation(name='selectChannels')
73 87 op.addParameter(name='channelList', value='0,1', format='intlist')
74 88
75 89 op = proc_unit.addOperation(name='selectHeights')
76 90 op.addParameter(name='minHei', value='80', format='float')
77 91 op.addParameter(name='maxHei', value='200', format='float')
78 92
79 93 op = proc_unit.addOperation(name='removeDC')
80 94
81 95 ```
82 96
83 97 Plotting data & start project
84 98
85 99 ```python
86 100 op = proc_unit.addOperation(name='SpectraPlot', optype='other')
87 101 op.addParameter(name='id', value='1', format='int')
88 102 op.addParameter(name='wintitle', value='Spectra', format='str')
89 103
90 104 op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
91 105 op.addParameter(name='id', value='2', format='int')
92 106 op.addParameter(name='wintitle', value='RTI', format='str')
93 107
94 108 controller.start()
95 109
96 110 ```
97 111
98 112 Full script
99 113
100 114
101 115 ```python
102 116 #!/usr/bin/python
103 117
104 118 from schainpy.controller import Project
105 119
106 120 controller = Project()
107 121 controller.setup(id = '100',
108 122 name='test',
109 123 description='Basic experiment')
110 124 read_unit = controller.addReadUnit(datatype='Spectra',
111 125 path='/path/to/pdata/',
112 126 startDate='2014/01/31',
113 127 endDate='2014/03/31',
114 128 startTime='00:00:00',
115 129 endTime='23:59:59',
116 130 online=0,
117 131 walk=0)
118 132
119 133 proc_unit = controller.addProcUnit(datatype='Spectra',
120 134 inputId=read_unit.getId())
121 135
122 136 op = proc_unit.addOperation(name='selectChannels')
123 137 op.addParameter(name='channelList', value='0,1', format='intlist')
124 138
125 139 op = proc_unit.addOperation(name='selectHeights')
126 140 op.addParameter(name='minHei', value='80', format='float')
127 141 op.addParameter(name='maxHei', value='200', format='float')
128 142
129 143 op = proc_unit.addOperation(name='removeDC')
130 144
131 145 op = proc_unit.addOperation(name='SpectraPlot', optype='other')
132 146 op.addParameter(name='id', value='6', format='int')
133 147 op.addParameter(name='wintitle', value='Spectra', format='str')
134 148
135 149 op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other')
136 150 op.addParameter(name='id', value='2', format='int')
137 151 op.addParameter(name='wintitle', value='RTI', format='str')
138 152
139 153 controller.start()
140 154
141 155 ``` No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now