fix error due to corrupted image, error due to empty pot
fixed plotting on top of image
Merge remote-tracking branch 'upstream/next' into next
Merge remote-tracking branch 'upstream/next' into next
Add script to process experiment BVZ0036
Fix bug 120

* util/derandui.py (_addTS): Fix typos.
Make sure we ignore all utf-8 errors from csv file.

* util/derandui.py (_createDerandStruct, _addCsv): Use unicode(...,
errors="ignore") to make sure we can use str() on all strings. In the future we
might want to change all the str() into unicode()
The last numbers in timestream are always zero.

* timestream/manipulate/pipecomponents.py (ResultingFeatureWriter.argNames):
self.timestamp format changed to %Y_%m_%d_%H_%M_%S_00
(ResultingFeatureWriter._guessTimeStamp): Now uses self.timestamp for the
default output.
Indexes of csv cols shall also be unicode utf-8

* util/derandui.py (DerandomizeGUI._addCsv): Subject.
Make sure everything is a primitive type for JSON.

* scripts/run-pipeline.py (genConfig, genInputTimestream): datetime.datetime and
datetime.time are not handled correctly by JSON. make sure they are all
dictionaries.
Include a way to clean the ts and csv tables.

* util/derandui.py (_createDerandStruct, onClickTimeStreamList)
(onClickCsvList): When all the ts or csv rows are eliminated from the left
lists, we remove all elements from the respective tables.
Make sure that all items not none in master list.

* util/derandui.py (_genMaster): When we encounter a none value in one of the
lists (csv or ts), we translate it into " "
When csv or ts lists are empty, empty comboboxs.

* util/derandui.py (onClickTimeStreamList, onClickCsvList): We clear three
comboboxes (timestream, csv and derand) and we clear master list.
Fix audit file timestamp.

* timestream/manipulate/pipecomponents.py
(ResultingFeatureWriter.__chkExcept__): We write the correct timestamp instead
of NaN.
Propagate Corrupt Image Error.

* timestream/manipulate/__init__.py (PCExCorruptImage): New error. Should be
triggered when image.pixels throws an exception.
* timestream/manipulate/pipecomponents.py: Enclose all first pixel references in
a "try..catch" so we can throw the correct PCExCorruptImage exception.
* timestream/parse/__init__.py (read_image, RIException): Propagate the
corrupt image error from read_image. We should find a better place for both the
error class and the read_image method.