def METHOD_NAME(region):
    count = region.copy()
    for c in log_fields:
        count[c] = 0
    coords = {} # a dict of coordinates representing each block face
    try:
        with fiona.open('data/' + region['id'] + '_face.shp') as source:
            for x in source:
                if x['geometry']:
                    c = shape(x['geometry']).interpolate(0.5, normalized=True)
                    coords[x['properties']['CD_GEO']] = c
    except IOError as err:
        print('Warning:', err, file=sys.stderr)
    with open('data/' + region['id'] + '.TXT', 'r', errors='replace') as cnefe_file:
        for line in cnefe_file:
            count['total'] += 1
            a = parse_line(line,region)
            if a['number']:
                count['has number'] += 1
            #find coordinates
            cd_geo = a['census sector'] + a['block'] + a['face']
            if a['lon']:
                try:
                    a['lon'] = dms_to_decimal(a['lon'])
                    a['lat'] = dms_to_decimal(a['lat'])
                    count['gps'] += 1
                except Exception as err:
                    print('Warning:', err, file=sys.stderr)
                    a['lon'] = ''
                    a['lat'] = ''
            elif cd_geo in coords:
                count['has face'] += 1
                a['lon'] = str(coords[cd_geo].x)
                a['lat'] = str(coords[cd_geo].y)
            else:
                count['no coords'] += 1
            try:
                out.writerow(a)
            except Exception as err:
                print('Warning:', err, file=sys.stderr)
    for c in ['has number', 'has face', 'gps', 'no coords']:
        count[c] = '{:.1%}'.format(count[c]/count['total'])
    log.writerow(count)