Falmouth Meteotsunami (6/13/2013)

Falmouth experienced a meteotsunami on the afternoon of Thursday, June 13, 2013. See Woods Hole gauge data, below.

Looking quickly at some other buoys and gauges you can see this from Long Island to Chatham, but Woods Hole/Falmouth appears to have been the focal point. Chuck Martinsen from Falmouth DNR has great security camera video of Falmouth Inner Harbor that shows the current ripping in and out and water level bouncing up and down about 2-3 ft over the course of an hour or so. I’ll share some out tomorrow. He also reports Cotuit marshes being flooded and exposed several times as well. The WBNERR folks see it in their Menauhant gauge, too.

Chuck is interested in learning more, including whether the currents in the local harbors might have been sufficient to mobilize (contaminated) sediments. Anybody got time to explain to him what’s going on?

The atmos pressure at various buoys and gauges is also pretty telling.

And if you look at the 24 hour radar loop you can see the frontal passage forcing.
http://www.intellicast.com/National/Radar/Yesterday.aspx


In [1]:
from datetime import datetime
import pandas as pd
from owslib.sos import SensorObservationService
from owslib.fes import FilterCapabilities
from owslib.ows import OperationsMetadata

Get water levels from CO-OPS


In [2]:
coops=SensorObservationService('http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?service=SOS&request=GetCapabilities&version=1.0.0')

In [3]:
getob = coops.get_operation_by_name('getobservation')

In [4]:
getob.parameters


Out[4]:
{'dataType': {'values': ['PreliminarySixMinute',
   'PreliminaryOneMinute',
   'VerifiedSixMinute',
   'VerifiedHourlyHeight',
   'VerifiedHighLow',
   'VerifiedDailyMean',
   'SixMinuteTidePredictions',
   'HourlyTidePredictions',
   'HighLowTidePredictions']},
 'epoch': {'values': ['Current', 'Superseded']},
 'eventTime': {'values': ['eventTime element']},
 'observedProperty': {'values': ['air_temperature',
   'air_pressure',
   'sea_water_electrical_conductivity',
   'currents',
   'sea_water_salinity',
   'water_surface_height_above_reference_datum',
   'sea_surface_height_amplitude_due_to_equilibrium_ocean_tide',
   'sea_water_temperature',
   'winds',
   'harmonic_constituents',
   'datums',
   'relative_humidity',
   'rain_fall']},
 'offering': {'values': ['urn:ioos:station:NOAA.NOS.CO-OPS:stationid',
   'urn:ioos:network:NOAA.NOS.CO-OPS:networkid']},
 'procedure': {'values': ['procedure element']},
 'responseFormat': {'values': ['text/csv',
   'text/tab-separated-values',
   'text/xml;schema="ioos/0.6.1"',
   'application/ioos+xml;version=0.6.1',
   'application/vnd.google-earth.kml+xml']},
 'result': {'values': ['VerticalDatum==urn:ioos:def:datum:noaa::MLLW',
   'VerticalDatum==urn:ioos:def:datum:noaa::MSL',
   'VerticalDatum==urn:ioos:def:datum:noaa::MHW',
   'VerticalDatum==urn:ioos:def:datum:noaa::STND',
   'VerticalDatum==urn:ioos:def:datum:noaa::IGLD',
   'VerticalDatum==urn:ioos:def:datum:noaa::NAVD']},
 'service': {'values': ['SOS']},
 'timeZone': {'values': ['GMT', 'LST']},
 'unit': {'values': ['Meters', 'Feet']},
 'version': {'values': ['1.0.0']}}

In [5]:
contents = coops.contents

In [6]:
print coops.offerings[1].name
#print contents.keys()
print contents['station-8447930']


urn:ioos:network:NOAA.NOS.CO-OPS:CurrentsActive
Offering id: station-8447930, name: urn:ioos:station:NOAA.NOS.CO-OPS:8447930

In [7]:
import urllib2
df = pd.read_csv(url,index_col='date',parse_dates=True)  # skip the units row


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-7-10d5cf36567b> in <module>()
      1 import urllib2
----> 2 df = pd.read_csv(url,index_col='date',parse_dates=True)  # skip the units row

NameError: name 'url' is not defined

In [8]:
response = coops.get_observation(offerings=['urn:ioos:station:NOAA.NOS.CO-OPS:8447930'],
                                 responseFormat='text/csv',
                                 observedProperties=['water_surface_height_above_reference_datum'],
                                 eventTime='2013-06-13T00:00:00Z/2013-06-14T00:00:00Z')


  File "<string>", line unknown
XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1

In [ ]:
df = pd.read_csv(coops.get_observation(offerings=['urn:ioos:station:NOAA.NOS.CO-OPS:8447930'],
                                 responseFormat='text/csv',
                                 observedProperties=['water_surface_height_above_reference_datum'],
                                 eventTime='2013-06-13T00:00:00Z/2013-06-14T00:00:00Z')),index_col='date',parse_dates=True)  # skip the units row

In [ ]:
url='http://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS?request=GetObservation&service=SOS&responseFormat=text/csv&version=1.0.0&offering=urn:ioos:station:NOAA.NOS.CO-OPS:8447930&observedProperty=water_surface_height_above_reference_datum&eventTime=2013-06-13T00:00:00Z/2013-06-14T00:00:00Z'
# Load the CSV data directly into Pandas
df = pd.read_csv(url,index_col='date_time',parse_dates=True)  # skip the units row 
wf=df['water_surface_height_above_reference_datum (m)']
wf.plot()

Get Air Pressure and Wind Speed from NDBC


In [ ]:
ndbc=SensorObservationService('http://sdf.ndbc.noaa.gov/sos/server.php?request=GetCapabilities&service=SOS')

In [ ]:
id=ndbc.identification
id.title

In [ ]:
contents = ndbc.contents
network = contents['network-all']
network.description

In [ ]:
id.title

In [ ]:
rfs = network.response_formats

In [ ]:
print '\n'.join(rfs)

In [ ]:
station = contents['station-46084']

In [ ]:
station.id

In [ ]:
getob = ndbc.get_operation_by_name('getobservation')

In [ ]:
getob.parameters

In [ ]:
print filter