ifnotnp.logical_and(np.ceil(float(num_sto))>=num_sto_lower[k],np.ceil(float(num_sto))<=num_sto_upper[k]):# np.ceil(float), not int, because there are OSM buildings with non-integer number of storeys (ceiling needed bec if e.g. num_sto='4.5' and the bdg classes I am comparing against have H:4 and H:5, the code would not assign it to any of the two classes otherwise)
ifnotnp.logical_and(np.ceil(float(num_sto))>=num_sto_lower[k],np.ceil(float(num_sto))<=num_sto_upper[k]):# np.ceil(float), not int, because there are OSM buildings with non-integer number of storeys (ceiling needed bec if e.g. num_sto='4.5' and the bdg classes I am comparing against have H:4 and H:5, the code would not assign it to any of the two classes otherwise)
keep_class[k]=False# remove class
keep_class_sto[k]=False# remove class
# Narrowing down the distribution based on commercial occupancies: