Files
pbf/weather_pipeline.py
2026-03-17 19:48:15 +08:00

57 lines
1.2 KiB
Python

import os
import subprocess
import time
DOWNLOADER = "gfs_downloader.py"
GRID_BUILDER = "grid/grid_builder_v2.py"
TILE_GENERATOR = "tiles/vector_tile_generator.py"
def run_step(name, script):
print("\n==========================")
print("Running:", name)
print("==========================\n")
start = time.time()
result = subprocess.run(
["python", script],
capture_output=True,
text=True
)
print(result.stdout)
if result.returncode != 0:
print("ERROR:", result.stderr)
raise RuntimeError(name + " failed")
end = time.time()
print("\nFinished:", name)
print("Time:", round(end-start,2),"seconds")
def main():
print("Weather Pipeline Starting...")
print("Date:", time.strftime("%Y-%m-%d %H:%M:%S"))
try:
run_step("GFS Downloader", DOWNLOADER)
run_step("Grid Builder v2", GRID_BUILDER)
run_step("Vector Tile Generator", TILE_GENERATOR)
print("\n" + "="*50)
print("Weather Pipeline Completed Successfully!")
print("="*50)
except RuntimeError as e:
print("\n" + "!"*50)
print("Pipeline Failed:", str(e))
print("!"*50)
exit(1)
if __name__ == "__main__":
main()