Python functions for audit Verify if the script actually does the right job and there is no manual error introduced

In [85]:
import csv
import json
import JobsMapResultsFilesToContainerObjs as ImageMap
import importlib
importlib.reload(ImageMap)


Out[85]:
<module 'JobsMapResultsFilesToContainerObjs' from '/Users/sreejithmenon/Google Drive/PythonCode/AnimalPhotoBias/script/JobsMapResultsFilesToContainerObjs.py'>

In [6]:
jsonObj = json.load(open("../data/experiment2_gid_aid_features.json"))

In [7]:
gidSpeciesList = []
for gid in jsonObj.keys():
    if jsonObj[gid] != None:
        gidSpecies = {}
        for dct in jsonObj[gid]:
            for aid in dct.keys():
                gidSpecies[gid] = gidSpecies.get(gid,[]) + [dct[aid][2][0]]
        gidSpeciesList.append(gidSpecies)

In [12]:
for dct in gidSpeciesList:
    for speciesLst in dct.values():
        firstEle = speciesLst[0]
        for ele in speciesLst:
            if ele != firstEle:
                print(dct.keys())


dict_keys(['1041'])
dict_keys(['6962'])
dict_keys(['6962'])
dict_keys(['978'])
dict_keys(['978'])
dict_keys(['978'])
dict_keys(['1332'])
dict_keys(['1332'])
dict_keys(['5470'])

In [69]:
def extractImageFeaturesFromMap(gidAidMapFl,aidFtrMapFl,feature):    
    aidFeatureDict = ImageMap.genAidFeatureDictDict(aidFtrMapFl)
    
    gidAidDict = ImageMap.genAidGidDictFromMap(gidAidMapFl)

    gidFeatureLst = []
    for gid in gidAidDict:
        if gidAidJson[gid]!= None:
            gidFtr = {}
            for aid in gidAidJson[gid]:
                gidFtr[gid] = gidFtr.get(gid,[]) + [aidFeatureDict[str(aid)][feature]]
        gidFeatureLst.append(gidFtr)
    
    return gidFeatureLst

In [95]:
aidFeatureDict = ImageMap.genAidFeatureDictDict("../data/experiment2_aid_features.json")
gidAidJson = ImageMap.genAidGidDictFromMap("../data/experiment2_gid_aid_map.json")

featuresPerImg = ImageMap.extractImageFeaturesFromMap("../data/experiment2_gid_aid_map.json","../data/experiment2_aid_features.json","SPECIES")

In [96]:
shareCountLogic = {}
for gid in featuresPerImg.keys():
    numInds = len(featuresPerImg[ele])
    isHomogeneous = True
    firstEle = featuresPerImg[ele][0]
    for species in featuresPerImg[ele]:
        if species != firstEle:
            isHomogeneous = False
    if isHomogeneous:
        countFor = firstEle
    else:
        countFor = None
    shareCountLogic[gid] = [numInds,isHomogeneous,countFor]

In [97]:
list(filter(lambda x: not x[2],l))


Out[97]:
[('1041', 2, False, None),
 ('1332', 6, False, None),
 ('6962', 4, False, None),
 ('978', 4, False, None),
 ('5470', 2, False, None)]

In [ ]: