Index: src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py
===================================================================
--- src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py	(revision be880765648278fd07d2d8b28d75b9ca7b238527)
+++ src/sas/sascalc/dataloader/readers/cansas_reader_HDF5.py	(revision 5e9062071eef0080f51c5de4c3cfb3bb129ebab6)
@@ -23,4 +23,6 @@
 
     Any number of SASdata sets may be present in a SASentry and the data within can be either 1D I(Q) or 2D I(Qx, Qy).
+
+    Also supports reading NXcanSAS formatted HDF5 files
 
     :Dependencies:
@@ -205,4 +207,16 @@
                     elif key == u'temperature' and self.parent_class == u'SASsample':
                         self.current_datainfo.sample.temperature = data_point
+                    elif key == u'transmission' and self.parent_class == u'SASsample':
+                        self.current_datainfo.sample.transmission = data_point
+                    elif key == u'x_position' and self.parent_class == u'SASsample':
+                        self.current_datainfo.sample.position.x = data_point
+                    elif key == u'y_position' and self.parent_class == u'SASsample':
+                        self.current_datainfo.sample.position.y = data_point
+                    elif key == u'polar_angle' and self.parent_class == u'SASsample':
+                        self.current_datainfo.sample.orientation.x = data_point
+                    elif key == u'azimuthal_angle' and self.parent_class == u'SASsample':
+                        self.current_datainfo.sample.orientation.z = data_point
+                    elif key == u'details' and self.parent_class == u'SASsample':
+                        self.current_datainfo.sample.details.append(data_point)
 
                     ## Instrumental Information
@@ -214,4 +228,31 @@
                         self.detector.distance = float(data_point)
                         self.detector.distance_unit = unit
+                    elif key == u'slit_length' and self.parent_class == u'SASdetector':
+                        self.detector.slit_length = float(data_point)
+                        self.detector.slit_length_unit = unit
+                    elif key == u'x_position' and self.parent_class == u'SASdetector':
+                        self.detector.offset.x = float(data_point)
+                        self.detector.offset_unit = unit
+                    elif key == u'y_position' and self.parent_class == u'SASdetector':
+                        self.detector.offset.y = float(data_point)
+                        self.detector.offset_unit = unit
+                    elif key == u'polar_angle' and self.parent_class == u'SASdetector':
+                        self.detector.orientation.x = float(data_point)
+                        self.detector.orientation_unit = unit
+                    elif key == u'azimuthal_angle' and self.parent_class == u'SASdetector':
+                        self.detector.orientation.z = float(data_point)
+                        self.detector.orientation_unit = unit
+                    elif key == u'beam_center_x' and self.parent_class == u'SASdetector':
+                        self.detector.beam_center.x = float(data_point)
+                        self.detector.beam_center_unit = unit
+                    elif key == u'beam_center_y' and self.parent_class == u'SASdetector':
+                        self.detector.beam_center.y = float(data_point)
+                        self.detector.beam_center_unit = unit
+                    elif key == u'x_pixel_size' and self.parent_class == u'SASdetector':
+                        self.detector.pixel_size.x = float(data_point)
+                        self.detector.pixel_size_unit = unit
+                    elif key == u'y_pixel_size' and self.parent_class == u'SASdetector':
+                        self.detector.pixel_size.y = float(data_point)
+                        self.detector.pixel_size_unit = unit
                     elif key == u'SSD' and self.parent_class == u'SAScollimation':
                         self.collimation.length = data_point
@@ -242,8 +283,28 @@
                         self.trans_spectrum.wavelength.append(data_point)
 
-                    ## Other Information
+                    ## Source
                     elif key == u'wavelength' and self.parent_class == u'SASdata':
                         self.current_datainfo.source.wavelength = data_point
-                        self.current_datainfo.source.wavelength.unit = unit
+                        self.current_datainfo.source.wavelength_unit = unit
+                    elif key == u'incident_wavelength' and self.parent_class == u'SASsource':
+                        self.current_datainfo.source.wavelength = data_point
+                        self.current_datainfo.source.wavelength_unit = unit
+                    elif key == u'wavelength_max' and self.parent_class == u'SASsource':
+                        self.current_datainfo.source.wavelength_max = data_point
+                        self.current_datainfo.source.wavelength_max_unit = unit
+                    elif key == u'wavelength_min' and self.parent_class == u'SASsource':
+                        self.current_datainfo.source.wavelength_min = data_point
+                        self.current_datainfo.source.wavelength_min_unit = unit
+                    elif key == u'wavelength_spread' and self.parent_class == u'SASsource':
+                        self.current_datainfo.source.wavelength_spread = data_point
+                        self.current_datainfo.source.wavelength_spread_unit = unit
+                    elif key == u'beam_size_x' and self.parent_class == u'SASsource':
+                        self.current_datainfo.source.beam_size.x = data_point
+                        self.current_datainfo.source.beam_size_unit = unit
+                    elif key == u'beam_size_y' and self.parent_class == u'SASsource':
+                        self.current_datainfo.source.beam_size.y = data_point
+                        self.current_datainfo.source.beam_size_unit = unit
+                    elif key == u'beam_shape' and self.parent_class == u'SASsource':
+                        self.current_datainfo.source.beam_shape = data_point
                     elif key == u'radiation' and self.parent_class == u'SASsource':
                         self.current_datainfo.source.radiation = data_point
