1) general
a) underscores, negatives and spaces are now removed from variable 'base'
b) all modules protected from parallel processing routines on Windows by wrapping with “if **name** == '**main**':”
c) all modules now include default values in the “def” declaration
d) file path construction using os.path.normpath with os.path.join is more reliable on Windows systems than concatenating strings of file paths and parts. Thanks to Dan Hamill for this.
e) all memory mapped files now use file pointers rather than filenames in reading and writing, which is safer way to access memory mapped files on Windows
2) _pyread.pyx:getmetadata
remove headings when gps flag 1 (gps1) is zero and when gps flag 2 (gps2) is zero, and use humutils.nan_helper to interpolate over
3) _pyhum_map:make_map (and _pyhum_map_texture)
a) when masking the gridded data, there was a bug at lower grid resolutions which caused masking of the entire grid. Fixed with the clause, if np.floor(np.sqrt(1/res))-1, distances greater than np.floor(np.sqrt(1/res))-1 are masked, otherwise, distances greater than np.sqrt(1/res) are masked
b) images loaded into kml files are better resolved with smaller bounding box
c) faster gridding routine using kd-trees rather than scipy's griddata
4) _pyhum_e1e2:e1e2
when filling nans in variables rough, hard, sv_e1 and sv_e2, this now has to be put in a try/except/continue loop to stop the program crashing occasionally
5) _pyhum_correct:correct
uses parallel processing to do radiometric corrections, for greater speed
6) New module: _pyhum_rmshadows, which is designed to remove acoustic shadows caused by shallows, shorelines and other large obstacles on the edges of scans. Shadow removal can either be either manual (user is prompted to delineate the shadows with the cursor) or automatic (image is posterized using a kmeans algorithm, with a user-specified number of means, then the portion of the image associated with the lowest mean intensity is removed)