Repository navigation
Releases: openwatersio/slackwater
Release list
@slackwater/engine@1.0.0-beta.7
Minor Changes
-
#435
212f15eThanks @clarkbw! - AddchsCurrentFitandprojectChsCurrent, the recipe every Slackwater client uses to fit a Canadian Hydrographic Service current gate: IWLSwcsp1speed andwcdp1direction projected onto the gate's flood axis, fitted withfit(samples, chsCurrentFit.basis)over one ofchsCurrentFit.days. SlackwaterKit and the Kotlin engine export the same asChsCurrentFit, and the Kotlin engine addsHarmonicSample. -
#429
4a061ebThanks @clarkbw! - AddchsTideFit, the recipe every Slackwater client uses to fit a Canadian Hydrographic Service tide port:fit(samples, chsTideFit.basis)overchsTideFit.daysof IWLSwlppredictions on achsTideFit.sampleMinutesgrid. SlackwaterKit and the Kotlin engine export the same values asChsTideFit. -
#448
9a1c16bThanks @clarkbw! - A harmonic station's tide extremes and current maxima no longer depend on the window asked for: once windows are widened to whole 10-minute steps, the extremes of any window are exactly the extremes of a longer window that fall inside it. Each UTC day is searched from its own midnight, and each extreme is kept by its persistence, judged from the turning points around it (up to 32 days away at micro-tidal stations) rather than from the window's edges. Highs and lows now alternate at every station in the database over 2025–2026. A threshold of zero returns every turning point, unfiltered. Turning points move by up to about half a second, and 84 of 6,135 stations report a few more or fewer extremes in a year. The Swift and Kotlin engines change the same way.Node corrections now follow a timeline whose steps are longer than a day. They had fallen one day further behind with each such step, so a year of two-day steps ended with node factors about six months old. TypeScript and Swift now match Kotlin here.
-
#448
246cf14Thanks @clarkbw! - Eight constituents with no numerical Doodson number in the IHO list (3(SM)N2, (SK)K5, 5MSN10, 4M2SN10, 3N2MS12, MA12, 4ML12 and 5MSN12) now take their equilibrium argument from IHO's alphabetical code, except that 3N2MS12 follows its listed speed where its code disagrees. Their phases had advanced at a different rate from their listed speeds, so a prediction using them depended on when it started.fitnow accepts 3(SM)N2, (SK)K5, 4ML12 and 5MSN12, which it rejected asrankDeficientfor want of an equilibrium argument. No station in the database uses any of the eight.
Patch Changes
- #449
6ee44d4Thanks @clarkbw! - A tide turn that falls on 00:00 UTC is no longer lost. Each UTC day's search used its own parameters at midnight, so a turn that the two days' parameters placed a second apart on either side of midnight changed sign in neither day; the filter then dropped the opposite turn next to it as well, and a real high and low disappeared together. Each day's first bracket now opens on the previous day's slope at midnight, so the turn is found once. The Swift and Kotlin engines change the same way.
@slackwater/cli@1.0.0-beta.4
Minor Changes
-
#391
2b1711bThanks @bkeepers! - Add tidal currents withslackwater currents.currents(orcurrents events) shows slack water, max flood, and max ebb with speed in knots and direction in degrees true;currents timelineshows speed over time;currents slack --threshold <knots>shows the windows around each turn when the current runs below that speed; andcurrents stationssearches current stations by name or location. Pick a station with--station,--near, or--ip. A bare station ID is the primary depth bin and@Nselects bin N (noaa/EPT0003@11); an unknown bin lists the bins that exist. Canadian Hydrographic Service stations, whose terms don't allow redistributing their predictions, and stations with no model fail with the reason.--format jsonforcurrents eventsandcurrents timelinereturns the same shape as the matching@slackwater/apiendpoints.stations --allnow lists every match with--nearor a query, instead of stopping at 10 or 20, andstations <query> --nearranks every station matching the query by distance instead of only the top 20 text matches.--limitmust be a positive whole number.
slackwater@1.0.0-beta.3
Minor Changes
- #347
d5f2c5eThanks @bkeepers! - Add tidal current prediction: harmonic current stations (createCurrentPredictor,useCurrentStation), NOAA subordinate reductions (createSubordinateCurrentPredictor), slack/max flood/max ebb events, signed speed timelines in knots, and theslackWindowshelper. Theslackwaterpackage gainsgetCurrentEventsPrediction,getCurrentTimelinePrediction,nearestCurrentStation,currentStationsNear,findCurrentStation,currentStationUnavailable, andparseCurrentBin. Location lookups skip secondary depth bins and stations that can't be predicted, such as Canadian Hydrographic Service stations. Flood and ebb directions are optional, and events leave out a direction the station doesn't publish.
Patch Changes
@slackwater/react@1.0.0-beta.2
Patch Changes
- #383
63efbadThanks @bkeepers! - Package descriptions, keywords, and homepages present each package as part of the Slackwater family, with the docs at https://openwaters.io/tides/slackwater/.slackwaterships a README on npm.
@slackwater/engine@1.0.0-beta.6
Minor Changes
- #347
d5f2c5eThanks @bkeepers! - Add tidal current prediction: harmonic current stations (createCurrentPredictor,useCurrentStation), NOAA subordinate reductions (createSubordinateCurrentPredictor), slack/max flood/max ebb events, signed speed timelines in knots, and theslackWindowshelper. Theslackwaterpackage gainsgetCurrentEventsPrediction,getCurrentTimelinePrediction,nearestCurrentStation,currentStationsNear,findCurrentStation,currentStationUnavailable, andparseCurrentBin. Location lookups skip secondary depth bins and stations that can't be predicted, such as Canadian Hydrographic Service stations. Flood and ebb directions are optional, and events leave out a direction the station doesn't publish.
Patch Changes
- #383
63efbadThanks @bkeepers! - Package descriptions, keywords, and homepages present each package as part of the Slackwater family, with the docs at https://openwaters.io/tides/slackwater/.slackwaterships a README on npm.
@slackwater/cli@1.0.0-beta.3
Patch Changes
-
#383
63efbadThanks @bkeepers! - Package descriptions, keywords, and homepages present each package as part of the Slackwater family, with the docs at https://openwaters.io/tides/slackwater/.slackwaterships a README on npm. -
Updated dependencies [
20a2a34,d5f2c5e,63efbad]:- @slackwater/api@1.0.0-beta.3
- slackwater@1.0.0-beta.3
@slackwater/cli@1.0.0-beta.2
@slackwater/api@1.0.0-beta.3
Minor Changes
-
#386
20a2a34Thanks @bkeepers! - Serve tidal current predictions as a sibling route group at/currents(set withcreateApp({ currentsPrefix }), or mountcreateCurrentRoutes()yourself):eventsandtimelinenear a location,stationssearch, and per-stationeventsandtimeline, with their own OpenAPI document.createRoutes()still returns only the tide routes, at the same paths. Speeds are signed knots along the flood axis, and events areslack,maxFlood, ormaxEbbwith flood and ebb directions. A station ID with no bin is the primary bin and@Nselects bin N (noaa/EPT0003@11). Listings show each station once with itsbins. Canadian Hydrographic Service stations are listed but flagged, because CHS terms don't allow its predictions to be redistributed, and their prediction endpoints return 451. The location endpoints refuse the same way when the nearest station is a CHS station, instead of answering for a station farther away.createAppthrows ifcurrentsPrefixequals or containsprefix. Prediction spans are limited to 366 days.Station search by
querynow honorsmaxResultsabove 20, and a repeatedqueryparameter returns 400, on both/stationsand/currents/stations./extremesand/timelineskip tide stations with no harmonic constituents or offsets (the CHS ports), which returned no extremes and a flat zero timeline.
Patch Changes
@slackwater/engine@1.0.0-beta.5
@slackwater/engine@1.0.0-beta.4
Patch Changes
-
#373
b70f1c6Thanks @clarkbw! - Filter spurious extremes with a heap instead of rescanning the list after every removal, so a multi-year search over a station with many small turns no longer slows quadratically. -
#373
8faa6a8Thanks @clarkbw! - Find extremes without building the prediction timeline, so a 19-year extremes search no longer allocates a million unused timestamps.