Source code for opendrift.models.openoil.adios.csv_to_json

#! /usr/bin/env python
#
# Author: Gaute Hope (gauteh@met.no) / 2022
#
# Converts oils from old CSV format to JSON format using `adios_db` (make sure it is installed from adios_oil_database).
#
# Usage:
#
#   csv_to_json.py CSVFILE outdir/

import sys
import logging
import coloredlogs
from pathlib import Path

[docs] def main(): from adios_db.data_sources.noaa_fm import OilLibraryCsvFile, OilLibraryRecordParser, OilLibraryAttributeMapper from adios_db.models.oil.validation.validate import validate_json from adios_db.models.oil.completeness import set_completeness logger = logging.getLogger(__name__) coloredlogs.install('debug') CSV = sys.argv[1] OUT = sys.argv[2] logger.info(f"Reading input file: {CSV}") logger.info(f"Saving JSON files to: {OUT}") config = None reader = OilLibraryCsvFile parser = OilLibraryRecordParser mapper = OilLibraryAttributeMapper for record in reader(CSV).get_records(): oil_map = mapper(parser(*record)) oil_json = oil_map.py_json() oil = validate_json(oil_json) set_completeness(oil) outf = Path(OUT).joinpath(f"{oil.oil_id}.json") logger.info(f"Writing {outf}..") with open(outf, 'w') as fd: oil.to_file(outf)
if __name__ == '__main__': main()