Pydar_Draw / scripts /recolor_cli.py
nakas's picture
ok
bf55076
#!/usr/bin/env python3
import argparse
from pathlib import Path
from PIL import Image
from pydardraw.colormaps.io import load_colormap_from_json
from pydardraw.colormaps.canada_msc import CANADA_MSC_REF
from pydardraw.colormaps.nws_us import NWS_REF
from pydardraw.processing.convert import image_to_dbz, dbz_to_image
def main():
ap = argparse.ArgumentParser(description="Recolor a radar image to a target dBZ colormap")
ap.add_argument("input", type=Path, help="Input image (PNG)")
ap.add_argument("output", type=Path, help="Output image (PNG)")
ap.add_argument("--src-colormap", type=Path, help="JSON colormap for source (value, #RRGGBB)")
ap.add_argument("--dst-colormap", type=Path, help="JSON colormap for destination (value, #RRGGBB)")
ap.add_argument("--fractional", action="store_true", help="Estimate fractional dBZ (xx.xx) using LAB projection")
args = ap.parse_args()
src_map = load_colormap_from_json(args.src_colormap) if args.src_colormap else CANADA_MSC_REF
dst_map = load_colormap_from_json(args.dst_colormap) if args.dst_colormap else NWS_REF
img = Image.open(args.input).convert("RGBA")
dbz, alpha = image_to_dbz(img, src_map, fractional=args.fractional)
out = dbz_to_image(dbz, alpha, dst_map)
out.save(args.output)
print(f"Saved: {args.output}")
if __name__ == "__main__":
main()