ANSI-C program: pixel_area.c
NAME
pixel_area - Calculate terrain-based sigma/gamma nought
normalization area in slant-range geometry.
SYNOPSIS
pixel_area <MLI_par> <DEM_par> <DEM>
<lookup_table> <ls_map> <inc_map>
<pix_sigma0> [pix_gamma0]
<MLI_par> | (input) ISP MLI or SLC image parameter file (slant-range geometry) |
<DEM_par> | (input) DEM/MAP parameter file |
<DEM> | (input) DEM data file (or constant height value) |
<lookup_table> | (input) geocoding look-up table (fcomplex) |
<ls_map> | (input) layover and shadow map (in map projection) (float) |
<inc_map> | (input) local incidence angle map (in map projection) (float) |
<pix_sigma0> | (output) sigma nought normalization area (float, enter
- for none) |
[pix_gamma0] | (output) gamma nought normalization area (float,
enter - for none) |
[nstep] |
number steps to divide
each dimension of the map pixels (default: 10) |
EXAMPLE
pixel_area 19960421.mli.par dv.dem_par dv.dem dv.utm_to_rdc
ls_map linc pix_sigma0 pix_gamma0
Calculates the sigma nought and gamma nought normalization area based on the effectively illuminated terrain surface using a digital elevation model.
DESCRIPTION
pixel_area calculates the
illuminated area contributing to each individual pixel in
slant-range geometry using a digital elevation model. The total
illuminated area is determined by proceeding, pixel by pixel,
through the given DEM whereby small surface patches are
distributed and integrated according to their corresponding
range/azimuth pixel values as obtained from the geocoding look-up
table. In this way, improved sigma nought and gamma nought
normalization areas are obtained for scenes exhibiting strong
foreshortening and layover. This is useful for highly precise
terrain-corrected georeferencing of SAR images, where a refined
geocoding look-up table is obtained in an iterative way.
Furthermore, the improved normalization area estimation leads to
improved radiometric normalization of the terrain-induced
variation of the backscatter values in areas with strong
foreshortening and layover.
Normally each pixel of the map is divided into two triangles.
Each of these triangles is then subdivided in to a number of
facets. The number of facets is controlled by the nstep command line parameter. The
total number of facets is nstep**2 and strongly influences the
time required to calculate the pixel normalizaton maps. If
the lookup table is on a fine grid relative to the slant-range
resolution, the value of nstep can be reduced to 8 or 6. In
the case were the map pixels are larger, then nstep should be increased. When the
number of facets is insufficient, pix_sigma0 will have a rough texture
due to sampling errors. The value of nstep should be sufficient
such that pix_sigma0
appears smooth.
pixel_area is called after gc_map, or gc_map_grd, respectively, since it requires three output products provided by these programs: the geocoding look-up table, a layover/shadow mask, and a map of local incidence angles, all given in map geometry of the map projection of the given digital elevation model.
It is important to note that pixel_area requires that gc_map, or gc_map_grd was run with layover/shadow mode ls_mode = 2: actual value (and not the default ls_mode = 1: linear interpolation across these regions).
After a refinement of the look-up table pixel_area is typically called again in order to calculate a refined version of the illuminated pixel area based on the refined versions of the geocoding look-up table, the layover/shadow mask, and the map of local incidence angles.
pixel_area calculates the maps of sigma nought and gamma nought normalization area, which represents a simulation of the terrain-induced variation of radar brightness, directly in slant-range coordinates.
By using the terrain-based normalization areas obtained from
pixel_area in combination with the ellipsoid-based ground-range
sigma/gamma nought pixel reference areas obtained from radcal_SLC or radcal_MLI an optimized
calibration of the SAR data to sigma nought and gamma nought
values is possible.
SEE ALSO
gc_map, gc_map_grd, geocode,
geocode_back, init_offsetm, offset_pwrm, gc_map_inversion, typedef_ISP.h, typedef_DIFF.h, radcal_SLC.