({{, (RefLink[TideData, paclet:ref/TideData])[spec] 
returns the tidal properties for a location or a set of tidal parameters.}, {, (RefLink[TideData, paclet:ref/TideData])[spec,prop]
returns the specified property for the location or tidal parameters indicated.}, {, (RefLink[TideData, paclet:ref/TideData])[spec,prop,datespec]
returns the value of a specified property for a date or set of dates.}})

OpenersNotesSection(Spacer1)Details and Options

spec can be a location, tide station, a (RefLink[TimeSeries, paclet:ref/TimeSeries]) of tidal heights or an association with keys corresponding to the tidal modes, mean tide level and elevation.

For spec that encompass regions, the center of that region is used to determine the tide station.

Tide stations include both physical tide stations along the coast and tidal information for a grid of points derived from satellite data.

(RefLink[TimeSeries, paclet:ref/TimeSeries]) input is analyzed to determine the best-fit values for tidal modes, which are then used for further calculations.

Tidal modes should be specified as an ordered pair of amplitude and phase. If not specified, they are assumed not to contribute.

Amplitudes and heights can be specified as (RefLink[Quantity, paclet:ref/Quantity]) objects. If numbers, they are presumed to be in feet.

Phases should be (RefLink[Quantity, paclet:ref/Quantity]) objects or numbers specifying angular degrees.

The tidal constituents and their symbols are:

A location can be specified by latitude/longitude pairs, assuming degrees as units, a (RefLink[GeoPosition, paclet:ref/GeoPosition]) specification or (RefLink[Entity, paclet:ref/Entity]) objects, assuming they represent objects with geographic coordinates.

Location-specific properties include:

Calculated properties include:

General properties include:

Universal harmonic constituent properties include:

All heights are measured relative to the tide station datum or fixed-base elevation, often the zero of the first tide staff installed.

datespec should be specified as a specific time using a date list, a (RefLink[DateObject, paclet:ref/DateObject]) or as a string in (RefLink[DateString, paclet:ref/DateString]) format.

datespec can also be specified as {start,end,increment} for compatibility with (RefLink[DateRange, paclet:ref/DateRange]) specifications. increment can be any valid (RefLink[DateRange, paclet:ref/DateRange]) increment. A datespec of {start, end} uses an increment of "Minute".

Times are returned in either the local time zone or the time zone of the location specified.

The option (RefLink[UnitSystem, paclet:ref/UnitSystem]) is available for controlling the units of the results. The following settings can be used:

OpenersPrimaryExamplesSection(Spacer1)Examples  (17)

OpenersExampleSection0(Spacer1)Basic Examples  (3)

Learn the time and predicted height for the next high tide:

TideData[(Entity["Benicia", Entity["City",{"Benicia","California","UnitedStates"}], "Entity[\"City\", {\"Benicia\", \"California\", \"UnitedStates\"}]", "city"]),"HighTide"]

Discover the first high spring tide of a month:

TideData[(Entity["San Diego", Entity["City",{"SanDiego","California","UnitedStates"}], "Entity[\"City\", {\"SanDiego\", \"California\", \"UnitedStates\"}]", "city"]),"HighSpringTide",DateObject[{2017,5,1}]]

Plot the change in water levels over time:

data=TideData[(Entity["New York City", Entity["City",{"NewYork","NewYork","UnitedStates"}], "Entity[\"City\", {\"NewYork\", \"NewYork\", \"UnitedStates\"}]", "city"]),"WaterLevel",DateRange[DateObject[{2017,6,1,0,0}],DateObject[{2017,6,3,0,0}],"Minute"]]

DateListPlot[data,FrameLabel->Automatic]

OpenersExampleSection1(Spacer1)Scope  (6)

Examine all available properties:

TideData["Properties"]

Find the tide station used for a particular location:

TideData[(Entity["Norfolk", Entity["City",{"Norfolk","Virginia","UnitedStates"}], "Entity[\"City\", {\"Norfolk\", \"Virginia\", \"UnitedStates\"}]", "city"]),"Station"]

Examine when the station was established:

TideData[(Entity["Norfolk", Entity["City",{"Norfolk","Virginia","UnitedStates"}], "Entity[\"City\", {\"Norfolk\", \"Virginia\", \"UnitedStates\"}]", "city"]),"DateEstablished"]

Calculate how far the station is from the location:

TideData[(Entity["Norfolk", Entity["City",{"Norfolk","Virginia","UnitedStates"}], "Entity[\"City\", {\"Norfolk\", \"Virginia\", \"UnitedStates\"}]", "city"]),"StationDistance"]

Uncover the range between the mean high and low tides:

TideData[(Entity["Norfolk", Entity["City",{"Norfolk","Virginia","UnitedStates"}], "Entity[\"City\", {\"Norfolk\", \"Virginia\", \"UnitedStates\"}]", "city"]),"GreatDiurnalRange"]

Compute the properties of a tide station:

TideData[Entity["TideStation","Iceland::288"]]//Short

Determine the properties of the next low tide based on a (RefLink[GeoPosition, paclet:ref/GeoPosition]):

TideData[GeoPosition[{40.6,-74.2}],"LowTide"]

Examine the harmonic amplitudes and phases used to determine the tides at a particular location:

TideData[(Entity["Boston", Entity["City",{"Boston","Massachusetts","UnitedStates"}], "Entity[\"City\", {\"Boston\", \"Massachusetts\", \"UnitedStates\"}]", "city"]),"HarmonicAmplitudes"]

TideData[(Entity["Boston", Entity["City",{"Boston","Massachusetts","UnitedStates"}], "Entity[\"City\", {\"Boston\", \"Massachusetts\", \"UnitedStates\"}]", "city"]),"HarmonicPhases"]

Calculate the next low tide based on a set of tidal constituents:

assoc=\[LeftAssociation]"M2"->{(Quantity[0.164, "ft", feet, "Feet"]),(QuantityPostfix[10.8, "°", degrees, "AngularDegrees"])},"S2"->{(Quantity[0.148, "ft", feet, "Feet"]),(QuantityPostfix[11.2, "°", degrees, "AngularDegrees"])},"N2"->{(Quantity[0.059, "ft", feet, "Feet"]),(QuantityPostfix[38.9, "°", degrees, "AngularDegrees"])},"K1"->{(Quantity[0.994, "ft", feet, "Feet"]),(QuantityPostfix[237.2, "°", degrees, "AngularDegrees"])},"M4"->{(Quantity[0.2, "ft", feet, "Feet"]),(QuantityPostfix[337.2, "°", degrees, "AngularDegrees"])},"O1"->{(Quantity[0.696, "ft", feet, "Feet"]),(QuantityPostfix[232.4, "°", degrees, "AngularDegrees"])},"M6"->{(Quantity[0.02, "ft", feet, "Feet"]),(QuantityPostfix[106.4, "°", degrees, "AngularDegrees"])},"S4"->{(Quantity[0.039, "ft", feet, "Feet"]),(QuantityPostfix[110.5, "°", degrees, "AngularDegrees"])},"NU2"->{(Quantity[0.013, "ft", feet, "Feet"]),(QuantityPostfix[35.1, "°", degrees, "AngularDegrees"])},"S6"->{(Quantity[0.013, "ft", feet, "Feet"]),(QuantityPostfix[240.6, "°", degrees, "AngularDegrees"])},"MU2"->{(Quantity[0.003, "ft", feet, "Feet"]),(QuantityPostfix[234.5, "°", degrees, "AngularDegrees"])},"2N2"->{(Quantity[0.007, "ft", feet, "Feet"]),(QuantityPostfix[67, "°", degrees, "AngularDegrees"])},"OO1"->{(Quantity[0.03, "ft", feet, "Feet"]),(QuantityPostfix[242, "°", degrees, "AngularDegrees"])},"M1"->{(Quantity[0.049, "ft", feet, "Feet"]),(QuantityPostfix[234.8, "°", degrees, "AngularDegrees"])},"J1"->{(Quantity[0.056, "ft", feet, "Feet"]),(QuantityPostfix[239.6, "°", degrees, "AngularDegrees"])},"RHO"->{(Quantity[0.026, "ft", feet, "Feet"]),(QuantityPostfix[230.3, "°", degrees, "AngularDegrees"])},"Q1"->{(Quantity[0.135, "ft", feet, "Feet"]),(QuantityPostfix[230, "°", degrees, "AngularDegrees"])},"T2"->{(Quantity[0.01, "ft", feet, "Feet"]),(QuantityPostfix[11.2, "°", degrees, "AngularDegrees"])},"2Q1"->{(Quantity[0.02, "ft", feet, "Feet"]),(QuantityPostfix[227.6, "°", degrees, "AngularDegrees"])},"P1"->{(Quantity[0.328, "ft", feet, "Feet"]),(QuantityPostfix[236.8, "°", degrees, "AngularDegrees"])},"L2"->{(Quantity[0.003, "ft", feet, "Feet"]),(QuantityPostfix[342.7, "°", degrees, "AngularDegrees"])},"K3"->{(Quantity[0.039, "ft", feet, "Feet"]),(QuantityPostfix[11.3, "°", degrees, "AngularDegrees"])},"M8"->{(Quantity[0.01, "ft", feet, "Feet"]),(QuantityPostfix[311.4, "°", degrees, "AngularDegrees"])},"MeanTideLevel"->(Quantity[0.128, "m", meters, "Meters"])\[RightAssociation];

TideData[assoc,"LowTide"]

OpenersExampleSection2(Spacer1)Options  (1)

OpenersExampleSubsection0(Spacer1)UnitSystem  (1)

Control whether results are returned in metric or imperial units:

TideData[(Entity["Benicia", Entity["City",{"Benicia","California","UnitedStates"}], "Entity[\"City\", {\"Benicia\", \"California\", \"UnitedStates\"}]", "city"]),"LowTide",UnitSystem->"Imperial"]

TideData[(Entity["Benicia", Entity["City",{"Benicia","California","UnitedStates"}], "Entity[\"City\", {\"Benicia\", \"California\", \"UnitedStates\"}]", "city"]),"LowTide",UnitSystem->"Metric"]

Changing units can also be accomplished with (RefLink[UnitConvert, paclet:ref/UnitConvert]):

UnitConvert[%["Height"],"Inches"]

OpenersExampleSection3(Spacer1)Applications  (5)

Examine how the monthly oscillations compare to historic and average high and low tides:

data=TideData[Entity["TideStation","Brazil::202"]];

Find the most extreme tide levels on record and the averages for a particular station:

data/@{"LowestWaterLevelOnStationDatum","MeanLowerLowWater","MeanLowWater","MeanHighWater","MeanHigherHighWater","HighestWaterLevelOnStationDatum"}

waterlevel=TideData[Entity["TideStation","Brazil::202"],"WaterLevel",{DateObject[{2015,10,1,0}],DateObject[{2015,10,31,0}],"Hour"}];

Compare these with the monthly oscillations:

DateListPlot[waterlevel,FrameLabel->Automatic,PlotRange->{Automatic,{data["LowestWaterLevelOnStationDatum"]-(Quantity[1, "ft", feet, "Feet"]),data["HighestWaterLevelOnStationDatum"]+(Quantity[1, "ft", feet, "Feet"])}},GridLines->{None,data/@{"LowestWaterLevelOnStationDatum","MeanLowerLowWater","MeanLowWater","MeanHighWater","MeanHigherHighWater","HighestWaterLevelOnStationDatum"}}]

Explore how tidal constituents contribute to the overall tide:

assoc=\[LeftAssociation]"M2"->{(Quantity[0.164`, "ft", feet, "Feet"]),(QuantityPostfix[10.8`, "°", degrees, "AngularDegrees"])},"S2"->{(Quantity[0.148`, "ft", feet, "Feet"]),(QuantityPostfix[11.2`, "°", degrees, "AngularDegrees"])},"N2"->{(Quantity[0.059`, "ft", feet, "Feet"]),(QuantityPostfix[38.9`, "°", degrees, "AngularDegrees"])},"K1"->{(Quantity[0.994`, "ft", feet, "Feet"]),(QuantityPostfix[237.2`, "°", degrees, "AngularDegrees"])},"M4"->{(Quantity[0.2`, "ft", feet, "Feet"]),(QuantityPostfix[337.2`, "°", degrees, "AngularDegrees"])},"O1"->{(Quantity[0.696`, "ft", feet, "Feet"]),(QuantityPostfix[232.4`, "°", degrees, "AngularDegrees"])},"M6"->{(Quantity[0.02`, "ft", feet, "Feet"]),(QuantityPostfix[106.4`, "°", degrees, "AngularDegrees"])},"S4"->{(Quantity[0.039`, "ft", feet, "Feet"]),(QuantityPostfix[110.5`, "°", degrees, "AngularDegrees"])},"NU2"->{(Quantity[0.013`, "ft", feet, "Feet"]),(QuantityPostfix[35.1`, "°", degrees, "AngularDegrees"])},"S6"->{(Quantity[0.013`, "ft", feet, "Feet"]),(QuantityPostfix[240.6`, "°", degrees, "AngularDegrees"])},"MU2"->{(Quantity[0.003`, "ft", feet, "Feet"]),(QuantityPostfix[234.5`, "°", degrees, "AngularDegrees"])},"2N2"->{(Quantity[0.007`, "ft", feet, "Feet"]),(QuantityPostfix[67, "°", degrees, "AngularDegrees"])},"OO1"->{(Quantity[0.03`, "ft", feet, "Feet"]),(QuantityPostfix[242, "°", degrees, "AngularDegrees"])},"M1"->{(Quantity[0.049`, "ft", feet, "Feet"]),(QuantityPostfix[234.8`, "°", degrees, "AngularDegrees"])},"J1"->{(Quantity[0.056`, "ft", feet, "Feet"]),(QuantityPostfix[239.6`, "°", degrees, "AngularDegrees"])},"RHO"->{(Quantity[0.026`, "ft", feet, "Feet"]),(QuantityPostfix[230.3`, "°", degrees, "AngularDegrees"])},"Q1"->{(Quantity[0.135`, "ft", feet, "Feet"]),(QuantityPostfix[230, "°", degrees, "AngularDegrees"])},"T2"->{(Quantity[0.01`, "ft", feet, "Feet"]),(QuantityPostfix[11.2`, "°", degrees, "AngularDegrees"])},"2Q1"->{(Quantity[0.02`, "ft", feet, "Feet"]),(QuantityPostfix[227.6`, "°", degrees, "AngularDegrees"])},"P1"->{(Quantity[0.328`, "ft", feet, "Feet"]),(QuantityPostfix[236.8`, "°", degrees, "AngularDegrees"])},"L2"->{(Quantity[0.003`, "ft", feet, "Feet"]),(QuantityPostfix[342.7`, "°", degrees, "AngularDegrees"])},"K2"->{(Quantity[0.039`, "ft", feet, "Feet"]),(QuantityPostfix[11.3`, "°", degrees, "AngularDegrees"])},"M8"->{(Quantity[0.01`, "ft", feet, "Feet"]),(QuantityPostfix[311.4`, "°", degrees, "AngularDegrees"])},"MeanTideLevel"->(Quantity[0.128`, "m", meters, "Meters"])\[RightAssociation];
keys=Keys[assoc];

fulldata=TideData[assoc,"WaterLevel",{DateObject[{2016,1,1,0,0}],DateObject[{2016,1,2,0,0}],"Minute"}];

components=Prepend[Table[TideData[<|i->assoc[i]|>,"WaterLevel",{DateObject[{2016,1,1,0,0}],DateObject[{2016,1,2,0,0}],"Minute"}],{i,keys[[2;;-2]]}],TideData[<|"M2"->assoc["M2"], "MeanTideLevel"->(Quantity[0.128, "m", meters, "Meters"])|>,"WaterLevel",{DateObject[{2016,1,1,0,0}],DateObject[{2016,1,2,0,0}],"Minute"}]];

Show[DateListPlot[Accumulate[components],PlotStyle->Table[GrayLevel[i],{i,0.9,0.5,-0.4/Length[keys]}]],DateListPlot[fulldata]]

Explore how high tides adjust with the phase of the Moon:

hightides=TideData[(Entity["New York City", Entity["City",{"NewYork","NewYork","UnitedStates"}], "Entity[\"City\", {\"NewYork\", \"NewYork\", \"UnitedStates\"}]", "city"]),"HighTide",{DateObject[{2017,6,1,0,0}],DateObject[{2017,6,30,0,0}]}];

phase=MoonPhase[{DateObject[{2017,6,1}],DateObject[{2017,6,30}],"Day"},"Icon"]["Path"][[;;;;2]];

phaseplot=DateListPlot[{{#[[1]],3.5}}&/@phase,Joined->False,PlotMarkers->({#[[2]],0.1}&/@phase),AspectRatio->1/8,FrameTicks->{Automatic,None}];

Show[DateListPlot[hightides,Joined->False,Filling->0],phaseplot,PlotRange->{3.3,7}]

Observe the progression of high tides along the Eastern Seaboard:

times=Labeled[TideData[#,"HighTide"]["Time"],#]&/@{(Entity["Portland", Entity["City",{"Portland","Maine","UnitedStates"}], "Entity[\"City\", {\"Portland\", \"Maine\", \"UnitedStates\"}]", "city"]),(Entity["Boston", Entity["City",{"Boston","Massachusetts","UnitedStates"}], "Entity[\"City\", {\"Boston\", \"Massachusetts\", \"UnitedStates\"}]", "city"]),(Entity["Nantucket", Entity["Island","Nantucket"], "Entity[\"Island\", \"Nantucket\"]", "island"]),(Entity["Montauk", Entity["City",{"Montauk","NewYork","UnitedStates"}], "Entity[\"City\", {\"Montauk\", \"NewYork\", \"UnitedStates\"}]", "city"]),(Entity["New York City", Entity["City",{"NewYork","NewYork","UnitedStates"}], "Entity[\"City\", {\"NewYork\", \"NewYork\", \"UnitedStates\"}]", "city"]),(Entity["Atlantic City", Entity["City",{"AtlanticCity","NewJersey","UnitedStates"}], "Entity[\"City\", {\"AtlanticCity\", \"NewJersey\", \"UnitedStates\"}]", "city"]), (Entity["Virginia Beach", Entity["City",{"VirginiaBeach","Virginia","UnitedStates"}], "Entity[\"City\", {\"VirginiaBeach\", \"Virginia\", \"UnitedStates\"}]", "city"]),(Entity["Nags Head", Entity["City",{"NagsHead","NorthCarolina","UnitedStates"}], "Entity[\"City\", {\"NagsHead\", \"NorthCarolina\", \"UnitedStates\"}]", "city"]),(Entity["Myrtle Beach", Entity["City",{"MyrtleBeach","SouthCarolina","UnitedStates"}], "Entity[\"City\", {\"MyrtleBeach\", \"SouthCarolina\", \"UnitedStates\"}]", "city"]),(Entity["Charleston", Entity["City",{"Charleston","SouthCarolina","UnitedStates"}], "Entity[\"City\", {\"Charleston\", \"SouthCarolina\", \"UnitedStates\"}]", "city"]),(Entity["Savannah", Entity["City",{"Savannah","Georgia","UnitedStates"}], "Entity[\"City\", {\"Savannah\", \"Georgia\", \"UnitedStates\"}]", "city"]),(Entity["Daytona Beach", Entity["City",{"DaytonaBeach","Florida","UnitedStates"}], "Entity[\"City\", {\"DaytonaBeach\", \"Florida\", \"UnitedStates\"}]", "city"])};

TimelinePlot[times]

Discover the range of the tides in the San Francisco Bay Area:

cities={(Entity["Vallejo", Entity["City",{"Vallejo","California","UnitedStates"}], "Entity[\"City\", {\"Vallejo\", \"California\", \"UnitedStates\"}]", "city"]),(Entity["San Rafael", Entity["City",{"SanRafael","California","UnitedStates"}], "Entity[\"City\", {\"SanRafael\", \"California\", \"UnitedStates\"}]", "city"]),(Entity["San Francisco", Entity["City",{"SanFrancisco","California","UnitedStates"}], "Entity[\"City\", {\"SanFrancisco\", \"California\", \"UnitedStates\"}]", "city"]),(Entity["Richmond", Entity["City",{"Richmond","California","UnitedStates"}], "Entity[\"City\", {\"Richmond\", \"California\", \"UnitedStates\"}]", "city"]),(Entity["Alameda", Entity["City",{"Alameda","California","UnitedStates"}], "Entity[\"City\", {\"Alameda\", \"California\", \"UnitedStates\"}]", "city"]), (Entity["Palo Alto", Entity["City",{"PaloAlto","California","UnitedStates"}], "Entity[\"City\", {\"PaloAlto\", \"California\", \"UnitedStates\"}]", "city"]), (Entity["San Jose", Entity["City",{"SanJose","California","UnitedStates"}], "Entity[\"City\", {\"SanJose\", \"California\", \"UnitedStates\"}]", "city"])};

GeoGraphics[{Red,PointSize[Large],Point[TideData[#,"Position"]&/@cities]}]

Grid[{#,TideData[#,"GreatDiurnalRange"]}&/@cities]

OpenersExampleSection4(Spacer1)Neat Examples  (2)

Visualize the harmonic periods of the tidal constituents:

ListPlot[Callout@@@Sort[EntityValue["TidalConstituent",{EntityProperty["TidalConstituent","HarmonicPeriod"],"Entity"}]],AxesLabel->Automatic]

Examine the amplitudes for each of the harmonic constituents for Daytona Beach versus their periods:

ListLogPlot[Callout@@@(Sort[{{#1[EntityProperty["TidalConstituent","HarmonicPeriod"]],#2},#1}&@@@Normal[TideData[Entity["City",{"DaytonaBeach","Florida","UnitedStates"}],"HarmonicAmplitudes"]]]),Filling->Axis,PlotRange->All,AxesLabel->Automatic]

Examine the distribution of water levels at noon across a 19-year period:

data=TideData[(Entity["New York City", Entity["City",{"NewYork","NewYork","UnitedStates"}], "Entity[\"City\", {\"NewYork\", \"NewYork\", \"UnitedStates\"}]", "city"]),"WaterLevel",{DateObject[{1997,1,1,12,0}],DateObject[{2016,12,31,12,0}],"Day"}]

Histogram[data]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[StandardOceanData, paclet:ref/StandardOceanData])  ▪  (RefLink[MoonPosition, paclet:ref/MoonPosition])  ▪  (RefLink[MoonPhase, paclet:ref/MoonPhase])  ▪  (RefLink[SunPosition, paclet:ref/SunPosition])  ▪  (RefLink[WeatherData, paclet:ref/WeatherData])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Earth Sciences: Data & Computation, paclet:guide/EarthSciencesDataAndComputation])}, {▪(RefLinkPlain[Weather Data, paclet:guide/WeatherData])}})}})

({{(Spacer1), ({{(Spacer1)Related Links}, {(Spacer1)▪(WebLink[(Spacer1)TideData Source Information, http://reference.wolfram.com/language/note/TideDataSourceInformation.html])}})}})