48 lines
1.4 KiB
Go
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)
|
|
}
|