Intro
A “batea” is a kind of raft/floating structure made up of a lattice of wood beams combined with floats from which ropes, perpendicular to the raft iself, sink into the water allowing seafood, mostly mussels to grow.
Detecting these in visible Earth Observation (EO) images is relatively simple (given appropriate resolution) except for the fact that Galicia is notably cloudy. Thus, trying to monitor these with, for instance Sentinel 2, would mean staring the whole winter at a white wall of clouds. To build an observation system that works year-round, you have to drop the camera and pick up a microwave (only partially metaphorically). The tool for the job would be a Synthetic Aperture Radar (SAR) much like the one on Sentinel 1. Radar doesn’t care about clouds, in fact it goes through them. _What it does care about, a lot, is geometry.
Under normal circumstances, with calm water, a phenomenon called Specular reflection comes into play. SAR instruments cast microwaves from orbit to earth and then try to pick back what the terrain reflected. The smooth ocean surface deflects the radar pulse away from the satellite, causing calm water to appear dark. This easily contrasts with the bateas which are, essentially in this setting, corner reflectors. The pulse hits the flat water next to the raft, bounces upward into the vertical side of a beam and then shoots straight back at the satellite. This double bounce creates a strong signal that, despite the size of the bateas themselves and the low resolution of Sentinel 1, should be easily visible in the images.
The data
def normalize_band(data, vmin, vmax):
clipped = np.clip(data, vmin, vmax)
return ((clipped - vmin) / (vmax - vmin) * 255.0).astype(np.uint8)
vv_db = 10 * np.log10(vv_raw)
vh_db = 10 * np.log10(vh_raw)
diff_db = vv_db - vh_db
R_channel = normalize_band(vv_db, -25, 0)
G_channel = normalize_band(vh_db, -30, -5)
B_channel = normalize_band(diff_db, 0, 15)
The output
Upon visualizing the images it became clear the bateas were visible despite their size (notice the little dots on the black sea in the images below).
Calm sea fake-color composite RGB
Calm sea VV Polarization
Calm sea VH Polarization
Choppy sea fake-color composite RGB
VV Polarization
VH Polarization