I have been using NECOFS data because it gives water current predictions in netcdf format. It is easy to use netcdf in Python. This data is fine more testing the mission planning in simulation, but for the actual boat I need local data.

The boat under construction is intended for the local bays and lagoon. (Such as Laguna Madre, Oso Bay, Corpus Christi Bay, etc). I found another good netcdf data source with world-wide ocean currents: Global RTOFS. This would be perfect for the gulf (of Mexico), but does not include inshore regions. I may use this a bit just for testing the water current aware path planning component, but I still need some data source for the inshore areas of interest.

One idea was to use the monitoring stations that are located at various points in the local waters. While they only give point recordings, I could at least estimate higher current and lower current regions that could provide some guidance for the planning. Unfortunately, TCOON has been unfunded since 2014 and the stations that I have tried all had missing data for water velocity.

For later reference, Python code for getting the water velocity components from RTOFS. Adapted from Global RTOFS Data Analysis with Python.

# Sometimes the 'forecast' is not yet available

casttype = 'nowcast'
#casttype = 'forecast'

date = '20180808';

url_uvel ='http://nomads.ncep.noaa.gov:9090/dods/'+ \
    'rtofs/rtofs_global'+date+ \
    '/rtofs_glo_3dz_'+casttype+'_daily_uvel'
url_vvel ='http://nomads.ncep.noaa.gov:9090/dods/'+ \
    'rtofs/rtofs_global'+date+ \
    '/rtofs_glo_3dz_'+casttype+'_daily_vvel'

nc_uvel = netCDF4.Dataset(url_uvel)
nc_vvel = netCDF4.Dataset(url_vvel)

lat_uvel = nc_uvel['lat'][:]
lon_uvel = nc_uvel['lon'][:]
lat_vvel = nc_vvel['lat'][:]
lon_vvel = nc_vvel['lon'][:]

data_uvel = nc_uvel.variables['u'][1,1,:,:]
data_vvel = nc_vvel.variables['v'][1,1,:,:]



m=Basemap(projection='mill',lat_ts=10, \
  llcrnrlon=lon_uvel.min(),urcrnrlon=lon_uvel.max(), \
  llcrnrlat=lat_uvel.min(),urcrnrlat=lat_uvel.max(), \
  resolution='c')

Lon, Lat = meshgrid(lon_uvel,lat_uvel)
x, y = m(Lon,Lat)

cs = m.pcolormesh(x,y,data_vvel,shading='flat', \
  cmap=plt.cm.jet)

plt.show()