[][src]Struct netcdf3::FileReader

pub struct FileReader { /* fields omitted */ }

Allows to parse headers and read data from NetCDF-3 files.

Example

use netcdf3::{FileReader, DataSet, Variable, Version, DataType};

let (data_set, version): (DataSet, Version) = {
    let mut file_reader: FileReader = FileReader::open(input_file_path).unwrap();
    assert_eq!(Version::Classic, file_reader.version());
    file_reader.read_all_vars().unwrap();
    file_reader.close()
};

// The header has been parsed
assert_eq!(Version::Classic, version);
assert_eq!(3, data_set.num_dims());
assert_eq!(1, data_set.num_global_attrs());
assert_eq!(9, data_set.num_vars());

// And all the variables of the data set have been loaded
let latitude: &Variable = data_set.get_var("latitude").unwrap();
let data: &[f32] = latitude.get_f32().unwrap();
assert_eq!(vec![0.0, 0.5, 1.0], data);

// ...

Methods

impl FileReader[src]

pub fn data_set(&self) -> &DataSet[src]

Returns the data set managed by the reader.

pub fn version(&self) -> Version[src]

pub fn file_path(&self) -> &Path[src]

Returns the data set managed by the reader.

pub fn open<P: AsRef<Path>>(input_file_path: P) -> Result<Self, IOError>[src]

Opens the file and parses the header of the NetCDF-3.

The header is parsed but no variable data is loaded.

Example

use netcdf3::{FileReader, DataSet, Version, Variable, DataType};

let (data_set, version): (DataSet, Version) = {
    let mut file_reader: FileReader = FileReader::open(input_file_path).unwrap();
    assert_eq!(Version::Classic, file_reader.version());
    file_reader.close()
};

// Header information bave been read by the method `FileReader::open`
assert_eq!(Version::Classic,         version);
assert_eq!(true,                     data_set.has_var("latitude"));
assert_eq!(Some(DataType::F32),      data_set.get_var_data_type("latitude"));

// The variable `latitude` exists but its data have not been read by the method `FileReader::open`
let latitude: &Variable = data_set.get_var("latitude").unwrap();

assert_eq!(DataType::F32,           latitude.data_type());
assert_eq!(None,                    latitude.get_f32());

pub fn close(self) -> (DataSet, Version)[src]

Closes the file and releases the data set and the file version.

pub fn read_all_vars(&mut self) -> Result<(), IOError>[src]

Reads all variables from the file and stored them into the data set.

Example

use netcdf3::{FileReader, DataSet, Variable, DataType};

let data_set: DataSet = {
    let mut file_reader: FileReader = FileReader::open(input_file_path).unwrap();
    file_reader.read_all_vars().unwrap();
    file_reader.close().0
};

// The variable latitude exists and has been loaded
let latitude: &Variable = data_set.get_var("latitude").unwrap();
let data: &[f32] = latitude.get_f32().unwrap();
assert_eq!(vec![0.0, 0.5, 1.0], data);

// ...

pub fn read_vars<T: AsRef<str>>(
    &mut self,
    var_names: &[T]
) -> Result<(), IOError>
[src]

Reads some variables from the file and stored them into the data set.

Example

use netcdf3::{FileReader, DataSet, Variable, DataType};

let data_set: DataSet = {
    let mut file_reader: FileReader = FileReader::open(input_file_path).unwrap();
    file_reader.read_vars(&["latitude", "time"]).unwrap();
    file_reader.close().0
};

// Test that not all data have been loaded
// ---------------------------------------
// The variable latitude exists and has been loaded
assert!(data_set.has_var("latitude"));
let latitude: &Variable = data_set.get_var("latitude").unwrap();
let data: &[f32] = latitude.get_f32().unwrap();
assert_eq!(vec![0.0, 0.5, 1.0], data);

// The variable time exists and has been loaded
assert!(data_set.has_var("time"));
let time: &Variable = data_set.get_var("time").unwrap();
let data: &[f32] = time.get_f32().unwrap();
assert_eq!(vec![438300.0, 438324.0], data);

// The variable longitude exists but has not been loaded
assert!(data_set.has_var("longitude"));
let longitude: &Variable = data_set.get_var("longitude").unwrap();
assert_eq!(DataType::F32, longitude.data_type());
assert!(longitude.get_f32().is_none());

pub fn read_var(&mut self, var_name: &str) -> Result<(), IOError>[src]

Reads one variable from the file and stored it into the data set.

See the method read_vars.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.