GithubHelp home page GithubHelp logo

coffeenode-tides's Introduction

Table of Contents generated with DocToc

CoffeeNode Tides

CoffeeNode Tides is a (Xe)(La)TeX source generator to produce typographically appealing and moderately complex tidal calendars. I started this project a while ago for fun, so it's not fully usable as yet, but maybe someone can make use of it. Curves shown are for an arbitrary place in the Netherlands; the aim is to present a tidal calendar for part of the year with a selection of places.

For starters, here's what the current output looks like:

And this is the output from an earlier incarnation of my code:

To see the latest and greatest, have a look at calendar-latest-good.pdf (file calendar.pdf, in contrast, always shows the latest test output).

I've lately concentrated my efforts on getting those curves right, and the way i'm doing that may be summarized as follows:

  • I've switched from using the hobby package (which does all its calculations inside of TeX and is quite slow) to using gm, which is GraphicsMagick for NodeJS. It's much faster, and since images are stored in the filesystem, you get a chance to cache those images so TeX test runs get faster. Be warned tho that including a lot of hi-rez bitmaps makes TeX quite slow, too, so you may want to go with lo-rez images or else cut down to a few sample pages depending on your pre-flight objectives.

  • Where i initially had planned to use 'lean' images that are only wide enough to display the curves and then get arcanely positioned on the page, i now build images the size of the printing area of each page, which i then position in the top-left corner of the printing area. This change means that i can now—in tandem with CXLTX Style: Position Absolute—use the same coördinate system for both typesetting and graphics (all lengths are in mm relative to the top-left corner of the printing area); also, it will be possible to generate all the rulers (to separate individual dates, mark week and month boundaries and so on) in the image generation code, which should be easier and more flexible to do than in TeX.

You'll immediately notice some flaws here:

  • most obviously, the lines in the low tide column strike through the times given; this is a result of the trick i used to shift those times to their offset positions.

  • I actually want those lines to separate dates by enclosing them in boxes, so people don't have to guess which times belongs to which date; however, with the current table setting strategy his will almost be impossible to do. As a next step, i want to typeset in twice the number of rows and use multirows so that the visual rows can be offset by a half row's height (still with me?).

  • There are lines missing in the low tide column; this is due to a flaw in the data reader.

  • There is no column and page breaking implemented as yet, so the table will just run off the page.

  • I plan to include curves to visualize tidal levels; i already have this output (which is planned to appear to the right of the times columns):

    The left line symbolizes the heights of the high water, the right one the heights of the low water point. I hope i got the figures right. Maybe i add another line in the middle that shows the actual water level at all times.

    Incidentally, you can see how tides do not only change the water levels as such, but also cause a similar change in the minima and maxima of the level—in other words, its a wave within a wave within wave, from maybe centennial trends down to tides proper and then on to waves big and small and again on to tiny ripples on the water's surface. That's truly turtles all the way down, and very amazing. It may also be interesting and helpful for people using the calender.

    While this output does not look so grand when seen in isolation, i want to add a grid for height orientation with references to Normaal Amsterdams Peil (NAP, Amsterdam Ordnance Datum) and Lowest Astronomical Tide (LAT) as well as horizontal lines to link to the respective time.

    Currently i use the hobby package to draw the curves; it is reasonably simple to use, but takes a considerable time to get each curve drawn, so maybe i'll look for a way to do this outside of TeX.

Observations

There are always 54, 58, or 62 HL-times between a day with a new or full moon and the following day with a full or new moon.

License (Must Read)

The use of this software and any included files is free for anyone. Please consider attribution if you want to base your own stuff on this project. Thanks.

Disclaimer (Must Read)

Users of this software must have read, understood, and agreed to the below three disclaimers in order for the License of this product to become valid.

Disclaimer for CoffeeNode Tides

Please note that this Tidal Calender can not, does not, and will not display actual water levels; all it does is to attempt and deliver tidal predictions that enthusiasts may find interesting. Any data given here is without any claim explicit or implicit of fitness for any particular purpose; it is definitely not suitable for navigation, simply because all actual water levels will differ considerably from the figures given here with near-certainty (that's the fine difference between astronomical tides projected into the future and actual tides as known from direct observation or past measurements. Also there may be faults in the data and / or data processing).

Disclaimer from Rijkswaterstaat

In case you don't believe me, you will perhaps believe Rijkswaterstaat, the world's leading agency on coastal protection. These guys have managed to keep the Netherlands dry for several hundred years, so they probably know what they're talking about when it comes to estimating the value of tidal predictions:

Gebruik van de informatie op deze data is voor eigen risico. De getoonde gegevens zijn gebaseerd op de best beschikbare kennis en informatie van Rijkswaterstaat. Desondanks kunnen de werkelijke gegevens door verschillende oorzaken afwijken van de hier getoonde actuele gegevens. Een afwijking kan bijvoorbeeld zitten in de getoonde verwachtingen.

from http://www.rijkswaterstaat.nl/geotool/astronomisch_getij.aspx?cookieload=true

Disclaimer from XTide

Note while currently no use of xtide has been made to produce the current software, this may change in the future. The disclaimer still applies to CoffeeNode Tides.

If Rijkswaterstaat is not nerdy enough for you, XTide certainly is. Again, from someone who knows what they're talking about:

NOT FOR NAVIGATION

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The author assumes no liability for damages arising from use of this program OR of any 'harmonics data' that might be distributed with it. For details, see the appended GNU General Public License.

(Accurate tide predictions can only be made if the 'harmonics data' for the relevant location are good. Unfortunately, the only way the maintainer of those data has of knowing when they are bad is when someone with access to authoritative tide predictions or observations reports a problem. You should not use this program or any data files that might be distributed with it if anyone or anything could come to harm as a result of an incorrect tide prediction.

XTide's predictions do not incorporate the effects of tropical storms, El Niño, seismic events, subsidence, uplift, or changes in global sea level.

from http://www.flaterco.com/xtide/disclaimer.html

coffeenode-tides's People

Contributors

loveencounterflow avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.