From 303db73c0c9dd533a8b3fd3ddac2ea55708f7255 2020-05-26 22:13:44 From: Juan C. Espinoza Date: 2020-05-26 22:13:44 Subject: [PATCH] Update README --- diff --git a/README.md b/README.md index 2640d1f..6d25e2d 100644 --- a/README.md +++ b/README.md @@ -6,33 +6,29 @@ Signal Chain (SCh) is a radar data processing library developed using [Python](w ## Installation -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. +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. -### Linux based system +### Dependencies +- GCC (gcc or gfortran) +- Python.h (python-dev or python-devel) +- Python-TK (python-tk) +- HDF5 libraries (libhdf5-dev) + +### Linux based system (e.g. ubuntu) ``` -$ 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 $ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/ $ cd schain +$ git checkout `schain-branch` (optional) $ sudo pip install ./ - ``` ### MAC Os ``` $ brew install python -$ brew install cartr/qt4/pyqt $ git clone http://jro-dev.igp.gob.pe/rhodecode/schain/ $ cd schain -$ pip install ./ -``` - -**It is recommended to install schain in a virtual environment** -``` -$ virtualenv /path/to/virtual -$ source /path/to/virtual/bin/activate -(virtual) $ cd schain -(virtual) $ pip install ./ -(virtual) $ bash link_PyQt4.sh +$ git checkout `schain-branch` (optional) +$ sudo pip install ./ ``` ### Docker @@ -49,63 +45,72 @@ $ docker run -it --rm --volume /path/to/host/data:/data schain xml /data/test.xm $ docker run -it --rm --volume /path/to/host/data:/data --entrypoint /urs/local/bin/python schain /data/test.py ``` +## CLI (command line interface) + +Signal Chain provides the following commands: + +- schainGUI: Open the GUI +- schain: Signal chain command line + + ## First Script -Read Spectra data (.pdata) - remove dc - plot spectra & RTI +Here you can find an script to read Spectra data (.pdata), remove dc and plot spectra & RTI -Import SCh and creating a project +First import SCh and creating a project ```python #!/usr/bin/python from schainpy.controller import Project -controller = Project() -controller.setup(id = '100', - name='test', - description='Basic experiment') - - +prj = Project() +prj.setup( + id = '100', + name='test', + description='Basic experiment' + ) ``` -Adding read unit and operations +Add read unit and operations ```python -read_unit = controller.addReadUnit(datatype='Spectra', - path='/path/to/pdata/', - startDate='2014/01/31', - endDate='2014/03/31', - startTime='00:00:00', - endTime='23:59:59', - online=0, - walk=0) - -proc_unit = controller.addProcUnit(datatype='Spectra', - inputId=read_unit.getId()) +read_unit = prj.addReadUnit( + datatype='Spectra', + path='/path/to/pdata/', + startDate='2014/01/31', + endDate='2014/03/31', + startTime='00:00:00', + endTime='23:59:59', + online=0, + walk=0 + ) + +proc_unit = prj.addProcUnit(datatype='Spectra', inputId=read_unit.getId()) op = proc_unit.addOperation(name='selectChannels') -op.addParameter(name='channelList', value='0,1', format='intlist') +op.addParameter(name='channelList', value='0,1') op = proc_unit.addOperation(name='selectHeights') -op.addParameter(name='minHei', value='80', format='float') -op.addParameter(name='maxHei', value='200', format='float') +op.addParameter(name='minHei', value='80') +op.addParameter(name='maxHei', value='200') op = proc_unit.addOperation(name='removeDC') ``` -Plotting data & start project +Plot data & start project ```python -op = proc_unit.addOperation(name='SpectraPlot', optype='other') -op.addParameter(name='id', value='1', format='int') -op.addParameter(name='wintitle', value='Spectra', format='str') +op = proc_unit.addOperation(name='SpectraPlot') +op.addParameter(name='id', value='1') +op.addParameter(name='wintitle', value='Spectra') -op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other') -op.addParameter(name='id', value='2', format='int') -op.addParameter(name='wintitle', value='RTI', format='str') +op = procUnitConfObj1.addOperation(name='RTIPlot') +op.addParameter(name='id', value='2') +op.addParameter(name='wintitle', value='RTI') -controller.start() +prj.start() ``` @@ -115,13 +120,13 @@ Full script ```python #!/usr/bin/python -from schainpy.controller import Project +from schainpy.prj import Project -controller = Project() -controller.setup(id = '100', +prj = Project() +prj.setup(id = '100', name='test', description='Basic experiment') -read_unit = controller.addReadUnit(datatype='Spectra', +read_unit = prj.addReadUnit(datatype='Spectra', path='/path/to/pdata/', startDate='2014/01/31', endDate='2014/03/31', @@ -130,26 +135,24 @@ read_unit = controller.addReadUnit(datatype='Spectra', online=0, walk=0) -proc_unit = controller.addProcUnit(datatype='Spectra', +proc_unit = prj.addProcUnit(datatype='Spectra', inputId=read_unit.getId()) op = proc_unit.addOperation(name='selectChannels') -op.addParameter(name='channelList', value='0,1', format='intlist') +op.addParameter(name='channelList', value='0,1') op = proc_unit.addOperation(name='selectHeights') -op.addParameter(name='minHei', value='80', format='float') -op.addParameter(name='maxHei', value='200', format='float') +op.addParameter(name='minHei', value='80') +op.addParameter(name='maxHei', value='200') op = proc_unit.addOperation(name='removeDC') -op = proc_unit.addOperation(name='SpectraPlot', optype='other') -op.addParameter(name='id', value='6', format='int') +op = proc_unit.addOperation(name='SpectraPlot') op.addParameter(name='wintitle', value='Spectra', format='str') -op = procUnitConfObj1.addOperation(name='RTIPlot', optype='other') -op.addParameter(name='id', value='2', format='int') +op = procUnitConfObj1.addOperation(name='RTIPlot') op.addParameter(name='wintitle', value='RTI', format='str') -controller.start() +prj.start() ``` \ No newline at end of file diff --git a/schainpy/model/graphics/jroplot_base.py b/schainpy/model/graphics/jroplot_base.py index e66e0e4..fedbd3c 100644 --- a/schainpy/model/graphics/jroplot_base.py +++ b/schainpy/model/graphics/jroplot_base.py @@ -692,9 +692,9 @@ class Plot(Operation): def close(self): - if not self.data.flagNoData: + if self.data and not self.data.flagNoData: self.save_counter = self.save_period self.__plot() - if not self.data.flagNoData and self.pause: + if self.data and not self.data.flagNoData and self.pause: figpause(10) diff --git a/schainpy/model/proc/jroproc_base.py b/schainpy/model/proc/jroproc_base.py index 9d85238..c359084 100644 --- a/schainpy/model/proc/jroproc_base.py +++ b/schainpy/model/proc/jroproc_base.py @@ -74,7 +74,7 @@ class ProcessingUnit(object): elif 'SchainError' in err: log.error(err.split('SchainError:')[-1].split('\n')[0].strip(), self.name) else: - log.error(err, self.name) + log.error(err.split('\n')[-2], self.name) self.dataOut.error = True for op, optype, opkwargs in self.operations: