use super::gribtool;
use std::fs;
const YEAR_T: u32 = 2023;
const MONTH_T: u32 = 3;
const DAY_T: u32 = 4;
const HOUR_T: u32 = 20;
const DATE_HOUR: u32 = YEAR_T * 1000000 + MONTH_T * 10000 + DAY_T * 100 + HOUR_T;
const OUT_DIR: &str = "/shuju/gribout";
pub fn mi4text_dir(hour: u32) -> String {
return format!(
"/shuju/griddata/{:04}-{:02}-{:02}-{:02}/",
YEAR_T, MONTH_T, DAY_T, hour,
);
}
pub fn test_mi4text_gribs(hour: u32, elmtype: &str, no: i8) -> i32 {
let mi4path = mi4text_dir(hour);
let date_hour = DATE_HOUR - HOUR_T + hour;
let gribf = "";
let dirs = fs::read_dir(&mi4path)
.expect(format!("Error list mi4text directory - {}", &mi4path).as_str());
let untypes = ["WIU", "WIV"];
let mut count = 0;
for d in dirs {
let d = d.unwrap();
let path = d.path();
if !path.is_dir() {
continue;
}
let etype = path.file_name().unwrap().to_str().unwrap();
if !elmtype.is_empty() {
if elmtype.cmp(etype).is_ne() {
continue;
}
}
if untypes.contains(&etype) {
continue;
}
let mi4dir = format!("{}{}/", mi4path, &etype);
let outf = format!("{}/{}-{}-out.GRB2", OUT_DIR, no, &etype);
let num = gribtool::mi4text_grib(mi4dir.as_str(), gribf, etype, date_hour, outf.as_str());
count += num;
}
count
}