climateGAN / utils_scripts /download_labelbox.py
vict0rsch's picture
initial commit from `vict0rsch/climateGAN`
ce190ee
raw
history blame
1.37 kB
import json
import os
from pathlib import Path
if __name__ == "__main__":
# labelbox json export path
path = "/Users/victor/Downloads/export-2021-02-27T17_15_30.291Z.json"
# where to write the downloaded images
out = Path("/Users/victor/Downloads/labelbox_test_flood-v2")
# create out dir
out.mkdir(exist_ok=True, parents=True)
# load export data
with open(path, "r") as f:
data = json.load(f)
for i, d in enumerate(data):
# find all polygons
objects = d["Label"]["objects"]
# retrieve original image name
name = d["External ID"]
stem = Path(name).stem
# output dir for current image
m_out = out / stem[:30]
m_out.mkdir(exist_ok=True, parents=True)
# save 1 png per polygon
for o, obj in enumerate(objects):
print(f"{i}/{len(data)} : {o}/{len(objects)}")
# create verbose label -> "cannotflood", "mustflood"
label = obj["value"].replace("_", "")
# unique polygon mask filename
m_path = m_out / f"{stem}_{label}_{o}.png"
# download address for curl
uri = obj["instanceURI"]
# command to download the image
command = f'curl {uri} > "{str(m_path)}"'
# execute command
os.system(command)
print("#" * 20)