Download scripts/write_prediction_tif.py from RAI-Lab/Wildfire-FM: direct link, hf CLI and curl.
- Browser
- Download file 1.21 kB
-
https://huggingface.co/RAI-Lab/Wildfire-FM/resolve/refs%2Fpr%2F3/scripts/write_prediction_tif.py
- Command line
-
hf download hf://RAI-Lab/Wildfire-FM@refs/pr/3/scripts/write_prediction_tif.py
-
curl -L -o write_prediction_tif.py https://huggingface.co/RAI-Lab/Wildfire-FM/resolve/refs%2Fpr%2F3/scripts/write_prediction_tif.py
1.21 kB
| #!/usr/bin/env python3 | |
| """Write a FireWx-FM probability NPY to a georeferenced GeoTIFF.""" | |
| from __future__ import annotations | |
| import argparse | |
| from pathlib import Path | |
| import numpy as np | |
| import rasterio | |
| def main() -> int: | |
| parser = argparse.ArgumentParser(description=__doc__) | |
| parser.add_argument("--reference-stack", type=Path, required=True) | |
| parser.add_argument("--prediction-npy", type=Path, required=True) | |
| parser.add_argument("--output-tif", type=Path, required=True) | |
| args = parser.parse_args() | |
| pred = np.load(args.prediction_npy).astype(np.float32) | |
| with rasterio.open(args.reference_stack) as src: | |
| if (src.height, src.width) != pred.shape: | |
| raise ValueError(f"reference grid {(src.height, src.width)} does not match prediction {pred.shape}") | |
| profile = src.profile.copy() | |
| profile.update(count=1, dtype="float32", nodata=0.0, compress="deflate", predictor=2) | |
| args.output_tif.parent.mkdir(parents=True, exist_ok=True) | |
| with rasterio.open(args.output_tif, "w", **profile) as dst: | |
| dst.write(pred.astype(np.float32), 1) | |
| print(f"wrote {args.output_tif}") | |
| return 0 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |