Script to compare Textract output to OCR-weatherrescue benchmark for a monthΒΆ

#!/usr/bin/env python

# Make a comparison figure showing Textract performance against a month's
#  data from the weatherrescue OCR benchmark.

import argparse
import sys
import subprocess
from calendar import monthrange

parser = argparse.ArgumentParser()
parser.add_argument("--year", help="Year to compare",
                    type=int,required=True)
parser.add_argument("--month", help="Month to compare",
                    type=int,required=True)
parser.add_argument("--colour", help="Colour scale factor",
                    type=float,default=1.0)
parser.add_argument("--contrast", help="Contrast scale factor",
                    type=float,default=1.0)
parser.add_argument("--brightness", help="Brightness scale factor",
                    type=float,default=1.0)
parser.add_argument("--sharpness", help="Sharpness scale factor",
                    type=float,default=1.0)
parser.add_argument("--opimg", help="Image output file name",
                    default="oplot.png",
                    type=str,required=False)
parser.add_argument("--opstats", help="Statistics output file name",
                    default="stats.pkl",
                    type=str,required=False)
args = parser.parse_args()

source="../../../OCR-weatherrescue/images/%04d-%02d.jpg" % (
                      args.year,args.month)

benchmark="../../../OCR-weatherrescue/data/%04d-%02d.csv" % (
                      args.year,args.month)

# Make the modified image
proc = subprocess.Popen("./scripts/modify.py " +
                        "--source=%s "     % source +
                        "--colour=%f "     % args.colour +
                        "--contrast=%f "   % args.contrast +
                        "--brightness=%f " % args.brightness +
                        "--sharpness=%f "  % args.sharpness,
                    stdout=subprocess.PIPE, 
                    stderr=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
if len(err)>0: sys.exit(0)

# Run Textract
proc = subprocess.Popen("./scripts/run_textract.py",                    
                        stdout=subprocess.PIPE, 
                        stderr=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
if len(err)>0: sys.exit(0)

# Make the validation plot
ndays=monthrange(args.year,args.month)[1]
proc = subprocess.Popen("./scripts/oplot_cluster.py " +
                        "--source=%s "     % source +
                        "--benchmark=%s "  % benchmark +
                        "--opimg=%s "      % args.opimg +
                        "--opstats=%s "    % args.opstats +
                        "--ndays=%d "      % ndays,
                    stdout=subprocess.PIPE, 
                    stderr=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
print(err)
print(out)