Ocean Module

The ocean module defines the ocean object, which loads physical characteristics and defines functions relevant to the emission by and reflection of microwave radiation by the ocean surface. The ocean module contains several different flavors of specular and wind-roughened ocean surface models.

The ocean.ocean base class returns a specular surface if mode='flat' and returns a wind-roughened surface approximation if mode='rough'. The wind-roughened model function is an interpolation of geophysical model functions developed by Remote Sensing Systems (Meissner and Wentz 2012, 2014). These model functions were developed at 1.4, 6.8, 10.7, 18.7, and 37 GHz from satellite microwave radiometer measurements, and they are extrapolated to lower frequencies assuming a zero intercept.

The ocean.fastem class implements the FASTEM-5 and FASTEM-6 ocean emissivity models developed by the European Centre for Medium-Range Weather Forecasts (Liu et al 2011, Kazumori and English 2016), which are numerical approximations to a two-scale emissivity model. These model are applicable at frequencies from 1.4 to 410 GHz, and are preferred for high-frequency sensing.

The ocean.two_scale implements a full two-scale model emissivity model originally developed by Simon Yueh at JPL in his 1997 paper. The default ocean surface roughness spectrum is that of Durden and Vesecky, but several parameterizations are included from the work of Paul Hwang at the Naval Research Laboratory. This surface emissivity model is the most computationally expensive.

Development note: The current implementation of the two-scale model is relatively computationally inefficient, and its use is not recommended for large simulations. Future versions of the software should implement a revised two-scale model with improved performance

Ocean ancillary data sources are discussed in the utils.reader module documentation. The ocean object can also be specified using different dielectric constant modules, as discussed in the dielectric module.

Setting Up an Ocean object

ocean objects can be initialized using different ancillary data sources and dielectric constant modules, as discussed in the utils.reader and dielectric module documentation. An example initialization is shown below.

 1from foam.ocean import ocean
 2import foam.dielectric as dielectric
 3
 4# Pull data from online
 5oc = ocean(datetime='2015-01-01', mode='rough', online=True,
 6           sst_reader=reader.GHRSSTReader, sst_reader_kwargs={'version': 'MUR'},
 7           sss_reader=reader.OISSSReader, dielectric=dielectric.h2o_liquid_KleinSwift)
 8
 9# Use data from cache
10# or provide your own file using sst_file and sss_file
11oc = ocean(datetime='2018-01-01', mode='rough', online=False
12           dielectric=dielectric.h2o_liquid_Boutin)

After initializing an ocean object, you can compute ocean surface emissivity ocean.get_ocean_emissivity and brightness temperature ocean.get_ocean_TB

API