Make TAPPy importable into other Python scripts
Add new function to perform the harmonic analysis of time series but rather than call TAPPy externally and parse the output files, the functions and classes in TAPPy are imported. This required only a minor modification to TAPPy (if __name__ == '__main__' before the baker commands) and then adapting the method used in the baker commands to the data I have. Limited testing has shown that the results are the same
Add new function to parse the rivers name list into a dictionary of the parameter pairs
Rename the rivers function to something more appropriate and update the docstring to better match what the function actually does
Fix the calculation of the Julian Day. Use the formula in the MATLAB greg2julian.m function in the fvcom-toolbox
Function to extract the river discharge data and positions from the modified POLCOMS positions and the original POLCOMS flow data
Add flush() after each verbose call when listing variables in the NetCDF files
Change the format of the locations output to be a dict rather than an array. This makes finding the location for a given river more straightforward
Fix comment formatting
Add test for duplicate river names when parsing POLCOMS river files. Also correctly pull the flux data (or at least do so more robustly) by storing the order in which we have iterated through the input river data position data. Finally, fix a bug in the way the final rivers dict keys were created (instead of using the last letter, use the whole name!)
New function to resample an unstructured grid onto a regular grid. Does so by finding the nearest unstructured node to each regular grid node
Update the list of functions which the fvcom-py toolbox provides (including new TAPPy routines as well as the converted Tidal Ellipse MATLAB toolbox. Also updates the python module versions against which this has been tested
Fix some bugs in the findNearestPoint function (related to the verbose output). Also change the way the minimum and maximum values are calculated (to use the methods associated with the objects rather than calling them from numpy). Finally, add a function which aims to sample an unstructured grid along a specified line to find the nodes which fall along it. At the moment it seems to work OK for shortish lines (or ones which run through fairly consistent element sizes), but it seems to have trouble with long lines or lines with varying element sizes
Fix a couple of less-than-optimal bits of coding
Add a few refinements to the line sampling algorithm.

- checks to stop the sampling from moving back towards the start point.
- checks on the order of the points given as the start and end of the sampling line.

Also tidied up the comments and noisy statements so that they're grouped sensibly.
Remove the temporary plotting function
Remove old commented line (no longer needed)
Fix a number of problems, mostly related to the way I was selecting the subset nodes. Fixed by creating new variables which describe the lower left and upper right coordinates. Those variables are then used to find the nodes in the subset. Also added better support for the end of line detection. This is now achieved by using a distance from origin. If this exceeds the lenfth of the profile, we stop. This is probably not bulletproof, but it should work OK most of the time. Also remove unnecessary figure from the regular interval section. Finally, add percentage completion (where the percentage is the distance between the start and end points)
Fix wandering away from the end of the line when finding the points at the very beginning.

This was occurring because the check for the distance to the end of the sample line was not being activated until two points had been found. It was those two points which sometimes moved away from the end rather than towards it.

By changing the way the previous iteration's distance to the end of the line was calculated, then the first couple of points were included in the check, avoiding the possibility of moving away from the target position.
Remove temporary print statement I had inserted