[−][src]Struct netcdf3::FileReader
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]
&mut self,
var_names: &[T]
) -> Result<(), IOError>
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
impl !RefUnwindSafe for FileReader
impl !Send for FileReader
impl !Sync for FileReader
impl Unpin for FileReader
impl !UnwindSafe for FileReader
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,