From db8ed2142dd691edd4a253aef47b331454faf1c1 Mon Sep 17 00:00:00 2001 From: XANTRONIX Industrial Date: Fri, 14 Feb 2025 17:16:34 -0500 Subject: [PATCH] Initial commit of nexrad-archive-report-ingest --- bin/nexrad-archive-report-ingest | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 bin/nexrad-archive-report-ingest diff --git a/bin/nexrad-archive-report-ingest b/bin/nexrad-archive-report-ingest new file mode 100755 index 0000000..32d7dd4 --- /dev/null +++ b/bin/nexrad-archive-report-ingest @@ -0,0 +1,35 @@ +#! /usr/bin/env python3 + +import argparse + +from nexrad.db import Database +from nexrad.storm import StormReport + +parser = argparse.ArgumentParser( + description = 'Ingest reports from StormEvent_details_*.csv.gz files' +) + +parser.add_argument('--quiet', action='store_true', help='Suppress output') +parser.add_argument('--dry-run', action='store_true', help='Do not actually ingest reports') +parser.add_argument('db', help='SQLite3 NEXRAD radar site database') +parser.add_argument('csv-report-details', nargs='+', help='Compressed storm report details CSV file') + +args = parser.parse_args() + +db = Database.connect(args.db) + +if not args.dry_run: + db.execute('begin transaction') + +for path in getattr(args, 'csv-report-details'): + for report in StormReport.each_from_csv_file(path): + print(f"Report ID {report.id}") + + if not args.dry_run: + db.add(report) + + if not args.quiet: + print(f"Finished ingesting file {path}") + +if not args.dry_run: + db.commit()