griblib_rust 0.1.1

A collection of utilities to convert GRIB2 data file
Documentation
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
}