TAPPY is a tidal analysis package. It breaks down a record of water levels into the component sine waves. It is written in Python and uses the least squares optimization and other functions in SciPy. The focus is to make the most accurate analysis possible. TAPPY only determines the constituents that are calculatable according to the length of the time series.
- Outputs a 'International Hydrographic Organization - Tidal and Water Level Working Group' standard XML constituent file.
- Uses the IHO standard XML constituent file to make a predicted time series. By far the most frequent request that I get.
- Calculates the node factor at each water elevation measurement. Very important for long time-series (greater than a year).
- Very accurate ephemeris calculations thanks to the Astrolabe library.
- Able to read in different input data sets without changing TAPPY or the input data set. All you have to do is create a file that defines the input data set. Thanks to Pyparsing.
- Added the capability to read compressed files and Internet data streams (actually any URL) directly into TAPPY by using filelike.
- The time-series does not need to have equal intervals. In fact any length of missing data is allowed (though too much missing will cause a poor analysis).
- Can adjust the Rayleigh factor that nearby constituents are compared against to determine what constituents can be differentiated.
- TAPPY chooses the main constituents based upon the length of the time series and infers additional constituents that are known to be specifically related to the main constituents.
- Can filter the tidal energy out of the input signal using transform (FFT), usgs (PL33), doodson, and boxcar methods. | CompareTidalFilters
- Can use the tidal filters to zero the time-series before determination of tidal constituents.
- Can pad the usgs, doodson, and boxcar filters with predicted data to minimize edge effects of the filters.
- Convenience function to fill missing values with the time series created from the tidal constituent signals. | FillMissing
There are three ways to install TAPPy. I have included an example for each method, but please read through the example to make sure it does what you want.
1. Standard Python distutils install:
# If you have wget.. wget http://downloads.sourceforge.net/tappy/tappy-0.9.0.tar.gz # Or download [tappy-0.9.0.tar.gz] cp tappy-0.9.0.tar.gz myworkdir cd myworkdir gzip -cd tappy-0.9.0.tar.gz | tar xvf - cd tappy-0.9.0 # At this point you can try TAPPY out without installing. cd example ../tappy.py mayport_florida_8720220_data.txt # OR on Unix/Linux ./example.sh cd .. # To install... python setup.py build python setup.py install #possibly as root
2. With easy_install available from PEAK. This looks like it might be the easiest, but I have had problems with easy_install before and for several reasons don't really like it. I changed TAPPy to accommodate, but use at your own discretion.
OR you could use 'pip' if you prefer.
pip install tappy
There is example data for two COOPS tide stations in Florida in the 'example' sub-directory.
Please forward any citation of TAPPY to tim at cerazone.net.
Any help is appreciated. If you want you could send a patch file to me, or if you would like to make a bunch of changes I can assign you developer privileges to the source code repository. Just contact me at tim at cerazone.net.