2025-09-21 02:40:42 +08:00

48 lines
1.4 KiB
Go

package main
import (
"flag"
"time"
"weatherstation/internal/radarfetch"
)
func main() {
var outRoot string
var interval time.Duration
var tz int
var z, y, x int
var chinaURL, huananURL, nanningURL, cmaBase string
flag.StringVar(&outRoot, "out-root", "./radar_data", "output root directory for radar data")
flag.DurationVar(&interval, "interval", 10*time.Minute, "download interval")
flag.IntVar(&tz, "tz-offset", 8, "local tz offset to UTC (hours)")
flag.IntVar(&z, "z", 7, "tile z")
flag.IntVar(&y, "y", 40, "tile y")
flag.IntVar(&x, "x", 102, "tile x")
flag.StringVar(&chinaURL, "nmc-china-url", "https://www.nmc.cn/publish/radar/chinaall.html", "NMC China page URL")
flag.StringVar(&huananURL, "nmc-huanan-url", "https://www.nmc.cn/publish/radar/huanan.html", "NMC Huanan page URL")
flag.StringVar(&nanningURL, "nmc-nanning-url", "https://www.nmc.cn/publish/radar/guang-xi/nan-ning.htm", "NMC Nanning page URL")
flag.StringVar(&cmaBase, "cma-base", "https://image.data.cma.cn", "CMA base URL")
var once bool
flag.BoolVar(&once, "once", false, "run a single cycle and exit")
flag.Parse()
opts := radarfetch.Options{
OutRoot: outRoot,
TZOffset: tz,
Interval: interval,
NMCChinaURL: chinaURL,
NMCHuananURL: huananURL,
NMCNanningURL: nanningURL,
CMABase: cmaBase,
Z: z,
Y: y,
X: x,
}
if once {
_ = radarfetch.RunOnce(opts)
return
}
radarfetch.Run(opts)
}