Download Results#
This example demonstrates how to retrieve simulation results from the Flow360 platform using a specified Case ID. It facilitates the download of surface and volume data to a local directory and subsequently extracts the compressed files.
import os
import tarfile
import timeit
import click
import flow360 as fl
# Enter case specific settings here.
case_id = "ENTER CASE ID HERE"
download_surfaces = True
download_volumes = True
case = fl.Case.from_cloud(case_id)
destination = os.path.join(os.getcwd(), case.name)
results = case.results
if os.path.exists(destination):
overwrite_bool = click.confirm(
f"Directory '{destination}' already exists, downloading might overwrite some of its content, do you want to continue?",
default=True,
abort=True,
)
print("Beginning downloading")
# Download only specific data sets
results.download(
surface=download_surfaces, volume=download_volumes, destination=destination, overwrite=True
)
# Extract tar.gz files
tar_gz_files = [f for f in os.listdir(destination) if f.endswith(".tar.gz")]
for tar_gz_file in tar_gz_files:
start = timeit.default_timer()
file_path = os.path.join(destination, tar_gz_file)
print(f"Processing: {file_path}")
with tarfile.open(file_path, "r:gz") as tar:
result_name = tar_gz_file[:-7]
tar.extractall(path=os.path.join(destination, result_name))
os.remove(file_path)
print(f" Removed: {file_path}")
print(f"Extracting files for {tar_gz_file} done")
print("Downloading successful")
Notes#
Boolean flags (
download_surfaces,download_volumes) control which result types are retrieved.Downloaded
.tar.gzarchives are automatically extracted into subdirectories, and the original archives are removed.