lather 0.0.0

A Rust crate and Python extension for modeling starspot effects on radial velocity and photometric observations, inspired by complaints about the SOAP project of similar goals.
extern crate png;
extern crate lather;
use lather::{Simulation, linspace};

fn main() {
    let mut sim = Simulation::new("sun.cfg");
    let mut pix_image = vec![0; 1000 * 1000 * 4];

    sim.star.draw_rgba(&mut pix_image);
    for time in linspace(6.0, 8.0, 30) {
        sim.draw_rgba(time, &mut pix_image);
        save_png(&pix_image, &format!("{:.2}.png", time));
        sim.undraw_rgba(time, &mut pix_image);
    }
}

fn save_png(image: &[u8], filename: &str) {
    use std::path::Path;
    use std::fs::File;
    use std::io::BufWriter;
    use png::HasParameters;

    let path = Path::new(filename);
    let file = File::create(path).unwrap();
    let ref mut w = BufWriter::new(file);

    let mut encoder = png::Encoder::new(w, 1000, 1000);
    encoder.set(png::ColorType::RGBA).set(png::BitDepth::Eight);
    let mut writer = encoder.write_header().unwrap();

    writer.write_image_data(&image).unwrap();
}