# radiation tagger exif_rad.py is a simple unix-style cross-platform Python 3 tool which can write certain tags to an image file. It can scan a couple of images, extract their Exif-tags, and compare the `DateTimeOriginal` with other sources. By now it can parse a .his (CSV) file from a [GeigerLog](https://sourceforge.net/projects/Geigerlog/) file export and calculate the radiation in µS/h using the factor in `SIFACTOR`. It then creates a `UserComment` Exif tag with the actual measured radiation at the time the photo has been taken. ## Dependencies Right now it depends on the following non-core Python 3 libraries: * [piexif](https://pypi.org/project/pyexif/): Python module for working with EXIF image data. ## Requirements * GeigerCounter log file in csv format as it is being exported by the software GeigerLog. Such files look like this: `# ID , time in isoformat , CP/M, CP/S` `149654, 2020-02-27 05:12:42, 13.0, 0.0` * A bunch of images (jpg, cr2, etc.) with its time of creation stored in `DateTimeOriginal` All sources are matched by their timestamp, so all sources have to be recorded during the same time (and timezone). The Geiger counter has to log a value every second, as the script compares the timestamps exactly. ## Usage ```usage: exif_rad.py [-h] [-si SIFACTOR] [-o OUTDIR] CSV Photo [Photo ...] A tool that writes radiation levels (and optionally geocoordinates) to image files and extracts the infos from external sources. positional arguments: CSV Geiger counter history file in CSV format. Photo One or multiple photo image files to process. optional arguments: -h, --help show this help message and exit -si SIFACTOR, --sifactor SIFACTOR Factor to multiply recorded CPM with. (default: 0.0065) -o OUTDIR, --outdir OUTDIR Directory to output processed photos (default: .) ``` ## GeigerLog setup The Software is Open-Source and can be downloaded from [Sourceforge](https://sourceforge.net/projects/Geigerlog/). ### Configure GeigerLog to use the GMC-Geiger counter The GMC device has to be enabled in the `geigerlog.cfg` which is located in the main program directory. Because GS (GammaScout) is preactivated, it can be disabled, while you want to enable GMC ``` GSActivation = no GMCActivation = yes ``` The GMC* defaults are quite sane, but you might want to set the correct serial port: `usbport = /dev/ttyUSB0` ### Using GeigerLog to download history Now the program can be started by double-clicking `geigerlog` or by executing `./geigerlog` on the command prompt. Once connected to the device (in any power state) by pressing 'Ctrl+C' , you can download the history ('History' -> 'GMC Series' -> 'Get History from Device'). You will be asked to choose a filename for the hisdb-file (SQLITE format). GeigerLog now presents you a rendering of the radiation over time in its main window: ![alt text][main_window] [main_window]: images/geigerlog_main_window.png "GeigerLog Main Window with graph" Once imported, you can export the history into a hisdb.his-file, which is basically the CSV-file `exif_rad.py` can process. Choose 'History' -> Save History Data into .his file (CSV)'. ## future possibilities * In the future it should also be able to do the same with a gpx-file to extract geolocations and to write them into the appropiate Exif-fields. * It might get a setup.py if I want to waste my time on it. * I might want to get rid of the requirement to use a bloated GUI application to download the history data off the Geigercounter. There must be a neat working command line tool. Maybe I'll write it myself.