We address the simpler question of estimating the coverage of a given set of GCPs, $\gcps$ within an AOI $\aoi.$ The region covered by a single point $p \in \aoi$ upto radius $R$ is $\ball(p, R).$ Thus, the total region covered by the GCPs upto radius R, gives the “heatmap” of the GCPs at radius R:

This provides a ready-to-compute formula for generating heatmap vizualizations. To compute the coverage radius of a set of GCPs, we perform a binary-search using the above formula. As the coverage radius may be an arbitrary real number, we estimate it upto an error $\epsilon.$

**Input.** The AOI, $\aoi$; a set of GCPs, $\gcps$; and an
error threshold $\epsilon.$

**Output.** The coverage radius $R$, upto error $\pm
\epsilon.$

**set**$l = 0, h = 2\operatorname{\mathsf{diam}}(\aoi).$**set**$m = (l+h)/2.$**while**$h - l > \epsilon$:**set**$\aoi' = \aoi \setminus \bigcup_{g \in \gcps} \ball(g, m).$- if $\aoi'$ is empty:
**set**$h = m$, otherwise**set**$l = m.$ **set**$m = (l+h)/2.$

**return**m