18
18
import json
19
19
import os
20
20
import shutil
21
+ import subprocess
21
22
import tarfile
22
23
import zipfile
23
24
from dataclasses import dataclass
@@ -143,10 +144,10 @@ def download_capture_name(save_dir: Path, dataset_name: str, capture_name: str,
143
144
file_id_or_zip_url = capture_name_to_file_id [capture_name ]
144
145
if file_id_or_zip_url .endswith (".zip" ):
145
146
url = file_id_or_zip_url # zip url
146
- target_path = str (save_dir / f"{ dataset_name } / { capture_name } " )
147
+ target_path = str (save_dir / f"{ dataset_name } " / f" { capture_name } " )
147
148
os .makedirs (target_path , exist_ok = True )
148
149
download_path = Path (f"{ target_path } .zip" )
149
- tmp_path = str (save_dir / ".temp " )
150
+ tmp_path = str (save_dir / f" { dataset_name } " / f".temp_ { capture_name } " )
150
151
shutil .rmtree (tmp_path , ignore_errors = True )
151
152
os .makedirs (tmp_path , exist_ok = True )
152
153
try :
@@ -156,10 +157,10 @@ def download_capture_name(save_dir: Path, dataset_name: str, capture_name: str,
156
157
run_command (f"wget { url } -O { download_path } " , verbose = True )
157
158
else :
158
159
url = f"https://drive.google.com/uc?id={ file_id_or_zip_url } " # file id
159
- target_path = str (save_dir / f"{ dataset_name } / { capture_name } " )
160
+ target_path = str (save_dir / f"{ dataset_name } " / f" { capture_name } " )
160
161
os .makedirs (target_path , exist_ok = True )
161
162
download_path = Path (f"{ target_path } .zip" )
162
- tmp_path = str (save_dir / ".temp " )
163
+ tmp_path = str (save_dir / f" { dataset_name } " / f".temp_ { capture_name } " )
163
164
shutil .rmtree (tmp_path , ignore_errors = True )
164
165
os .makedirs (tmp_path , exist_ok = True )
165
166
try :
@@ -170,7 +171,7 @@ def download_capture_name(save_dir: Path, dataset_name: str, capture_name: str,
170
171
with zipfile .ZipFile (download_path , "r" ) as zip_ref :
171
172
zip_ref .extractall (tmp_path )
172
173
inner_folders = os .listdir (tmp_path )
173
- assert len (inner_folders ) == 1 , "There is more than one folder inside this zip file. "
174
+ assert len (inner_folders ) == 1 , f "There is more than one folder inside this zip file: { inner_folders } "
174
175
folder = os .path .join (tmp_path , inner_folders [0 ])
175
176
shutil .rmtree (target_path )
176
177
shutil .move (folder , target_path )
@@ -239,7 +240,9 @@ def download(self, save_dir: Path):
239
240
if os .path .exists (final_path ):
240
241
shutil .rmtree (str (final_path ))
241
242
download_path = save_dir / "dnerf_data.zip"
242
- os .system (f"curl -L https://www.dropbox.com/s/raw/0bf6fl0ye2vz3vr/data.zip > { download_path } " )
243
+ subprocess .run (
244
+ ["curl" , "-L" , "https://www.dropbox.com/s/raw/0bf6fl0ye2vz3vr/data.zip" , "-o" , download_path ], check = True
245
+ )
243
246
with zipfile .ZipFile (download_path , "r" ) as zip_ref :
244
247
zip_ref .extractall (str (save_dir ))
245
248
unzip_path = save_dir / Path ("data" )
@@ -289,20 +292,20 @@ def download(self, save_dir: Path):
289
292
self .capture_name in phototourism_downloads
290
293
), f"Capture name { self .capture_name } not found in { phototourism_downloads .keys ()} "
291
294
url = phototourism_downloads [self .capture_name ]
292
- target_path = str (save_dir / f "phototourism/ { self .capture_name } " )
295
+ target_path = str (save_dir / "phototourism" / f" { self .capture_name } " )
293
296
os .makedirs (target_path , exist_ok = True )
294
297
download_path = Path (f"{ target_path } .tar.gz" )
295
- tmp_path = str (save_dir / ".temp " )
298
+ tmp_path = str (save_dir / "phototourism" / f".temp_ { self . capture_name } " )
296
299
shutil .rmtree (tmp_path , ignore_errors = True )
297
300
os .makedirs (tmp_path , exist_ok = True )
298
301
299
- os . system ( f "curl -L { url } > { download_path } " )
302
+ subprocess . run ([ "curl" , "-L" , url , "-o" , download_path ], check = True )
300
303
301
304
with tarfile .open (download_path , "r:gz" ) as tar_ref :
302
305
tar_ref .extractall (str (tmp_path ))
303
306
304
307
inner_folders = os .listdir (tmp_path )
305
- assert len (inner_folders ) == 1 , "There is more than one folder inside this zip file. "
308
+ assert len (inner_folders ) == 1 , f "There is more than one folder inside this zip file: { inner_folders } "
306
309
folder = os .path .join (tmp_path , inner_folders [0 ])
307
310
shutil .rmtree (target_path )
308
311
shutil .move (folder , target_path )
@@ -337,7 +340,7 @@ class SDFstudioDemoDownload(DatasetDownload):
337
340
dataset_name : SDFstudioCaptureName = "sdfstudio-demo-data"
338
341
339
342
def download (self , save_dir : Path ):
340
- """Download the D-NeRF dataset (https://github.com/albertpumarola/D-NeRF )."""
343
+ """Download the sdfstudio dataset (https://autonomousvision. github.io/sdfstudio/ )."""
341
344
# TODO: give this code the same structure as download_nerfstudio
342
345
343
346
if self .dataset_name == "all" :
@@ -352,17 +355,17 @@ def download(self, save_dir: Path):
352
355
353
356
url = sdfstudio_downloads [self .dataset_name ]
354
357
355
- target_path = str (save_dir / self .dataset_name )
358
+ target_path = str (save_dir / "sdfstudio" / self .dataset_name )
356
359
os .makedirs (target_path , exist_ok = True )
357
360
358
361
file_format = url [- 4 :]
359
362
360
363
download_path = Path (f"{ target_path } { file_format } " )
361
- tmp_path = str (save_dir / ".temp " )
364
+ tmp_path = str (save_dir / "sdfstudio" / f".temp_ { self . dataset_name } " )
362
365
shutil .rmtree (tmp_path , ignore_errors = True )
363
366
os .makedirs (tmp_path , exist_ok = True )
364
367
365
- os . system ( f "curl -L { url } > { download_path } " )
368
+ subprocess . run ([ "curl" , "-L" , url , "-o" , download_path ], check = True )
366
369
if file_format == ".tar" :
367
370
with tarfile .open (download_path , "r" ) as tar_ref :
368
371
tar_ref .extractall (str (tmp_path ))
@@ -374,7 +377,7 @@ def download(self, save_dir: Path):
374
377
raise NotImplementedError
375
378
376
379
inner_folders = os .listdir (tmp_path )
377
- assert len (inner_folders ) == 1 , "There is more than one folder inside this zip file. "
380
+ assert len (inner_folders ) == 1 , f "There is more than one folder inside this zip file: { inner_folders } "
378
381
folder = os .path .join (tmp_path , inner_folders [0 ])
379
382
shutil .rmtree (target_path )
380
383
shutil .move (folder , target_path )
@@ -421,21 +424,21 @@ def download(self, save_dir: Path):
421
424
self .capture_name in nerfosr_downloads
422
425
), f"Capture name { self .capture_name } not found in { nerfosr_downloads .keys ()} "
423
426
url = nerfosr_downloads [self .capture_name ]
424
- target_path = str (save_dir / f"NeRF-OSR/Data/ { self .capture_name } " )
427
+ target_path = str (save_dir / "nerfosr" / f" { self .capture_name } " )
425
428
os .makedirs (target_path , exist_ok = True )
426
429
download_path = Path (f"{ target_path } .zip" )
427
- tmp_path = str (save_dir / ".temp " )
430
+ tmp_path = str (save_dir / "nerfosr" / f".temp_ { self . capture_name } " )
428
431
shutil .rmtree (tmp_path , ignore_errors = True )
429
432
os .makedirs (tmp_path , exist_ok = True )
430
433
431
- os . system ( f "curl -L ' { url } ' > { download_path } " )
434
+ subprocess . run ([ "curl" , "-L" , url , "-o" , download_path ], check = True )
432
435
433
436
# Extract the zip file
434
437
with zipfile .ZipFile (download_path , "r" ) as zip_ref :
435
438
zip_ref .extractall (tmp_path )
436
439
437
440
inner_folders = os .listdir (tmp_path )
438
- assert len (inner_folders ) == 1 , "There is more than one folder inside this zip file. "
441
+ assert len (inner_folders ) == 1 , f "There is more than one folder inside this zip file: { inner_folders } "
439
442
folder = os .path .join (tmp_path , inner_folders [0 ])
440
443
shutil .rmtree (target_path )
441
444
shutil .move (folder , target_path )
@@ -475,20 +478,20 @@ def download(self, save_dir: Path) -> None:
475
478
self .capture_name in mill19_downloads
476
479
), f"Capture name { self .capture_name } not found in { mill19_downloads .keys ()} "
477
480
url = mill19_downloads [self .capture_name ]
478
- target_path = save_dir / f "mill19/ { self .capture_name } "
481
+ target_path = save_dir / "mill19" / f" { self .capture_name } "
479
482
target_path .mkdir (parents = True , exist_ok = True )
480
483
download_path = Path (f"{ target_path } .tgz" )
481
- tmp_path = save_dir / ".temp "
484
+ tmp_path = save_dir / "mill19" / f".temp_ { self . capture_name } "
482
485
shutil .rmtree (tmp_path , ignore_errors = True )
483
486
tmp_path .mkdir (parents = True , exist_ok = True )
484
487
485
- os . system ( f "curl -L { url } > { download_path } " )
488
+ subprocess . run ([ "curl" , "-L" , url , "-o" , download_path ], check = True )
486
489
487
490
with tarfile .open (download_path , "r:gz" ) as tar_ref :
488
491
tar_ref .extractall (tmp_path )
489
492
490
493
inner_folders = list (tmp_path .iterdir ())
491
- assert len (inner_folders ) == 1 , "There is more than one folder inside this zip file. "
494
+ assert len (inner_folders ) == 1 , f "There is more than one folder inside this zip file: { inner_folders } "
492
495
folder = inner_folders [0 ]
493
496
shutil .rmtree (target_path )
494
497
folder .rename (target_path )
0 commit comments