# Unit group of $\mathbb{F}_{p^{k}}\textup{SL}(3,2),p\geq 11$

Namrata Arvind, Saikat Panja<EMAIL_ADDRESS><EMAIL_ADDRESS>IISER Pune, Dr. Homi Bhabha Road, Pashan, Pune 411 008, India

###### Abstract.

We provide the structure of the unit group of
$\mathbb{F}_{p^{k}}(\textup{SL}(3,2))$, where $p\geq 11$ is a prime and
$\textup{SL}(3,2)$ denotes the $3\times 3$ invertible matrices over
$\mathbb{F}_{2}$.

###### Key words and phrases:

Unit group; Group algebra; Finite field; Wedderburn decomposition

###### 2020 Mathematics Subject Classification:

Primary 16S34, Secondary 16U60, 20C05

∗The first named author is partially supported by the IISER Pune research
fellowship where as the second author has been partially supported by
supported by NBHM fellowship.

##  1\. Introduction

Let $q=p^{k}$ for some prime $p$ and $k\in\mathbb{N}$. Let $\mathbb{F}_{q}$
denote the finite field of cardinality $q$. For any group $G$, let
$\mathbb{F}_{q}G$ denotes the group algebra of $G$ over $\mathbb{F}_{q}$. For
basic notations and results on the subject of study, we refer the readers to
the classic by Milies and Sehgal [MS1]. The group of units of
$\mathbb{F}_{q}G$ has many applications. As an application of the unit groups
of matrix rings, Hurley has proposed the constructions of convolutional codes
(See [H1],[H2],[HH1],[HH2]). The structure of unit group can also be used to
deal with some problems in combinatorial number theory as well (See [GGK]).
This has encouraged a lot of researchers to find out the explicit structure of
the group of units of $\mathbb{F}_{q}G$.

A substantial amount of work has been done to find the structure of the
algebra $\mathbb{F}_{q}G$, and also of the group of units of these algebras.
For example in [S], the author has described units of $\mathbb{F}_{q}G$, where
$G$ is a $p$-group. In a recent paper [BLP] the authors have discussed the
groups of units for the group algebras over abelian groups of order $17$ to
$20$. Howerver the complexity of the problem increases with increase in the
size of the group and the number of conjugacy classes it has. For more, one
can check [MSS2], [MA],[TG] et cetera.

Very little is known for $\mathbb{F}_{q}G$, when $G$ is a non-Abelian simple
group. For the case $G=A_{5}$, this has been discussed in [MSS1]. The next
group in the family of non-Abelian simple groups is the group
$\textup{SL}(3,2)$. In Theorem 4.4 of this article we give a complete
description of the unit group of $\mathbb{F}_{q}\textup{SL}(3,2)$ for $p\geq
11$.

Rest of the article is organized as follows. In section $2$, we give the known
results which we will be using in subsequent sections. In section $3$ we
discuss about some simple components of the Artin-Wedderburn decomposition of
the group algebra. Next in section $4$, we deduce the main result. We discuss
some observations and conclude the paper by mentioning some remarks, in
section $5$.

##  2\. Preliminaries

First we fix some notations. We adopt already mentioned notations from section
$1$. For an extension field $E/\mathbb{F}_{q}$,
$\textup{Gal}(E/\mathbb{F}_{q})$ denotes the Galois group of the extension.
For $n\in\mathbb{N}$ the notation $\textup{M}(n,R)$ denotes the full matrix
ring of $n\times n$ matrices over $R$ where as $\textup{GL}(n,R)$ will denote
the set of all invertible matrices in $\textup{M}(n,R)$. For a ring $R$, the
set of units of $R$ will be denoted as $R^{\times}$. The center of a ring $R$
will be denoted as $Z(R)$. If $G$ is a group and $g\in G$, then $[g]$ will
denote the conjugacy class of $g$ in $G$. For the group ring
$\mathbb{F}_{q}G$, the group of units will be denoted as
$\mathcal{U}(\mathbb{F}_{q}G)$. For the notations on projective spaces, we
follow [HI].

We say an element $g$ $\in$ $G$ is a $p^{\prime}$-element if the order of $g$
is not divisible by $p$. Let $e$ be the exponent of the group $G$ and $\eta$
be a primitive $r$th root of unity, where $e=p^{f}r$ and $p\nmid r$. Let

$I_{\mathbb{F}_{q}}=\left\\{l~{}(\text{mod }e):\text{ there exists
}\sigma\in\textup{Gal}(\mathbb{F}_{q}(\eta)/\mathbb{F}_{q})\text{ satisfying
}\sigma(\eta)=\eta^{l}\right\\}.$

######  Definition 2.1.

For a $p^{\prime}$-element $g\in G$, the cyclotomic $\mathbb{F}_{q}$-class of
$g$, denoted by $S_{\mathbb{F}_{q}}(\gamma_{g})$ is defined as
$\left\\{\gamma_{g^{l}}:l\in I_{\mathbb{F}_{q}}\right\\}$ where
$\gamma_{g^{l}}\in\mathbb{F}_{q}G$ is the sum of all conjugates of $g^{l}$ in
$G$.

Then we have the following results which are crucial in determining the Artin-
Wedderburn decomposition of $\mathbb{F}_{q}G$.

######  Lemma 2.2.

[F, Proposition 1.2] The number of simple components of
$\mathbb{F}_{q}G/J(\mathbb{F}_{q}G)$ is equal to the number of cyclotomic
$\mathbb{F}_{q}$-classes in $G$.

######  Lemma 2.3.

[F, Theorem 1.3] Let $n$ be the number of cyclotomic $\mathbb{F}_{q}$-classes
in $G$. If $L_{1},L_{2},\cdots,L_{n}$ are the simple components of
$Z(\mathbb{F}_{q}G/J(\mathbb{F}_{q}G))$ and $S_{1},S_{2},\cdots,S_{n}$ are the
cyclotomic $\mathbb{F}_{q}$-classes of $G$, then with a suitable reordering of
the indices,

$|S_{i}|=[L_{i}:\mathbb{F}_{q}].$

######  Lemma 2.4.

[MS2, Lemma 2.5] Let $K$ be a field of charecteristic $p$ and let $A_{1}$,
$A_{2}$ be two finite dimensional $K$-algebras. Assume $A_{1}$ to be
semisimple. If $h$ : $A_{2}$ $\longrightarrow$ $A_{1}$ is a surjective
homomorphism of $K$-algebras, then there exists a semisimple $K$-algebra $l$
such that $A_{2}/J(A_{2})$ $=$ $l\oplus A_{1}$.

We will be using various descriptions of $\textup{SL}(3,2)$ in the sequel,
which are well known. From [CCNPW], it is known that

$\displaystyle\textup{SL}(3,2)=\textup{GL}(3,2)\cong\textup{PGL}(2,7)\cong\textup{PSL}(2,7).$

We have an embedding of $\textup{SL}(3,2)$ inside $S_{8}$ as follows:

$\displaystyle\textup{SL}(3,2)\cong\langle(3,7,5)(4,8,6),(1,2,6)(3,4,8)\rangle.$

This group has $7$ conjugacy classes and using [GAP2021], we have the
following table:

$\displaystyle\begin{tabular}[]{|c|c|c|c|}\hline\cr\text{Class}&\text{Representative}&\text{Order}&\text{No.
of elements}\\\ \hline\cr$\mathcal{C}_{1}$&$\alpha_{1}=$ $(1)$&$1$&$1$\\\
\hline\cr$\mathcal{C}_{2}$&$\alpha_{2}=$ $(1,2)(3,4)(5,8)(6,7)$&$2$&$21$\\\
\hline\cr$\mathcal{C}_{3}$&$\alpha_{3}=$ $(3,5,7)(4,6,8)$&$3$&$56$\\\
\hline\cr$\mathcal{C}_{4}$&$\alpha_{4}=$ $(1,2,3,5)(4,8,7,6)$&$4$&$42$\\\
\hline\cr$\mathcal{C}_{5}$&$\alpha_{5}=$ $(2,3,5,4,7,8,6)$&$7$&$24$\\\
\hline\cr$\mathcal{C}_{6}$&$\alpha_{6}=$ $(2,4,6,5,8,3,7)$&$7$&$24$\\\
\hline\cr\end{tabular}.$

We note down the following relations

(2.1) $[\alpha_{5}]=[\alpha_{5}^{2}]=[\alpha_{5}^{4}].$

and

(2.2)
$[\alpha_{6}]=[\alpha_{5}^{3}]=[\alpha_{5}^{5}]=[\alpha_{5}^{6}]=[\alpha_{6}].$

##  3\. On some simple components of $\mathbb{F}_{q}G$

The next few lemmas are crucial for determining the different $n_{i}$’s
occurring in the Artin-Wedderburn decomposition of
$\mathbb{F}_{q}\textup{SL}(3,2)$.

######  Lemma 3.1.

Let $G$ be a group of order $n$ and $\mathbb{F}$ be a field of characteristic
$p>0$. Let $G$ acts on a finite set $X=\\{1,2,\cdots,k\\}$ doubly
transitively. Set $G_{i}=\\{g\in G:g\cdot i=i\\}$ and $G_{i,j}=\\{g\in
G:g\cdot i=i,g\cdot j=j\\}$. Then the $\mathbb{F}G$ module

$\displaystyle
W=\left\\{x\in\mathbb{F}^{k}:\displaystyle\sum\limits_{i=1}^{k}x_{i}=0,i\in
X\right\\}$

is an irreducible $\mathbb{F}G$ module if $p\nmid k,p\nmid|G_{1,2}|$.

###### Proof.

Let $U\subseteq W$ be a non-zero invariant space under the action of $G$.
Since the action is doubly transitive, it is enough to show that we have
$(1,-1,\underbrace{0,\ldots,0}_{(k-2)\text{ times}})\in U$.

Let $x=(x_{1},x_{2},\ldots,x_{n})\in U$ be nonzero. Then we can assume that
$x_{1}\neq 0$, since $G$ acts transitively on $X$. Considering the element
$y=\displaystyle\sum\limits_{g\in G_{1}}gx\in U$, we see that

$\displaystyle y_{1}$ $\displaystyle=|G_{1}|x_{1}$ $\displaystyle y_{2}$
$\displaystyle=y_{3}=\cdots=y_{n}$
$\displaystyle=|G_{1,2}|\displaystyle\sum\limits_{i=2}^{n}x_{i},$

since $G$ permutes $X$. Note that $y_{i}\neq 0$ for all $1\leq i\leq k$. Next
taking a $g\in G$, which permutes $1,2$ (this exists since the action is
doubly transitive) we see that $(y_{1}-y_{2})(1,-1,0,\ldots,0)\in U$, which
finishes the proof. ∎

######  Corollary 3.2.

The representation induced by the action of
$\textup{GL}(3,2)=\textup{PGL}(3,2)$ on $\textbf{P}^{2}(\mathbb{F}_{2})$ has
an irreducible degree $6$ component over $\mathbb{F}_{p^{k}}$, for $p\geq 11$.

###### Proof.

We know that the action of $\textup{GL}(3,2)$ on
$\textbf{P}^{2}(\mathbb{F}_{2})$ is doubly transitive (see [HI, pp. 124]).
Since $G_{1,2}$ is a subgroup of $\textup{GL}(3,2)$ and $p\nmid|G|$, the
result follows from Lemma 3.1. ∎

######  Corollary 3.3.

The representation induced by the action of
$\textup{GL}(3,2)\cong\textup{PGL}(2,7)$ on $\textbf{P}^{1}(\mathbb{F}_{7})$
has an irreducible degree $7$ component over $\mathbb{F}_{p^{k}}$, for $p\geq
11$.

###### Proof.

The action of the group $\textup{PGL}(2,7)$ on
$\textbf{P}^{1}(\mathbb{F}_{7})$, is transitive, as well as doubly transitive
(see [HI, pp. 157]). We see that $p\nmid|G_{1,2}|$, as $G_{1,2}$ is a subgroup
of $\textup{PGL}(3,2)$ and $p\nmid 168$. ∎

######  Remark 3.4.

Note that in Corollaries 3.2 and 3.3 the prime $p$ can be chosen lesser than
$11$.

######  Remark 3.5.

Using Lemma 3.1, it can be seen that the regular representation of the
symmetric group $S_{n}$, decomposes into the trivial representation and an
irreducible representation of degree $n-1$ over the field
$\mathbb{F}_{p^{k}}$, whenever $p>n$.

######  Lemma 3.6.

Let $A_{i}$, $1\leq i\leq n$ be a family of unital algebra with unit $1_{i}$
and $\mathcal{D}_{i}$ be the set of representatives of simple $A_{i}$-modules.
Then any simple $\bigoplus\limits_{i=1}^{n}A_{i}$-module is of the form
$\bigoplus\limits_{i=1}^{n}M_{i}$, where not all $M_{i}$’s are zero and
$M_{i}\in\mathcal{D}_{i}$.

###### Proof.

Since
$1_{\bigoplus\limits_{i=1}^{n}A_{i}}=\displaystyle\sum\limits_{i=1}^{n}1_{A_{i}}$
and hence for any $\bigoplus\limits_{i=1}^{n}A_{i}$-module $M$, we have

$\displaystyle M$ $\displaystyle=M\cdot
1_{\bigoplus\limits_{i=1}^{n}A_{i}}\bigoplus\limits_{i=1}^{n}A_{i}$
$\displaystyle=\bigoplus_{i=1}^{n}MA_{i}.$

∎

######  Lemma 3.7.

[P, Example 3.3] For any division algebra (in particular field) $D$, the only
simple $M(n,D)$ module is $D^{n}$ upto isomorphism.

######  Corollary 3.8.

Let $G$ be a finite group, $k$ be a finite field of characteristic $p>0$,
$p\nmid|G|$. Then if there exists an irreducible representations of degree $n$
over $k$, then one of the component of $kG$ is of the form $M(n,k)$.

###### Proof.

Since $p\nmid|G|$, by Maschke’s theorem $kG$ is semisimple. Hence by
Artin–Wedderburn theorem we have that

$\displaystyle kG=\bigoplus\limits_{i=1}^{n}M({n_{i}},k_{i}),$

where $k_{i}$’s are finite extensions of $k$ (hence a field). It follows from
Lemma 3.6 and Lemma 3.7 that for some $i$, we have $n_{i}=n,k_{i}=k$. Hence
the result follows. ∎

######  Corollary 3.9.

Two of the components of the group algebra $\mathbb{F}_{q}\textup{SL}(3,2)$
are $\textup{M}(6,\mathbb{F}_{q}),\textup{M}(7,\mathbb{F}_{q})$.

###### Proof.

This follows immediately from Corollaries 3.2, 3.3 and 3.8. ∎

##  4\. Units in $\mathbb{F}_{q}\textup{SL}(3,2)$

######  Proposition 4.1.

Let $\mathbb{F}_{q}$ be a field of characteristic $p$ and $p$ $\geq$ $11$ and
$q=p^{k}$. Let $G$ be the group $\textup{SL}(3,2)$. Then the Artin-Wedderburn
decomposition of $\mathbb{F}_{q}G$ is one of the following:

$\mathbb{F}_{q}\oplus\bigoplus\limits_{i=1}^{5}M(n_{i},\mathbb{F}_{q})$,

$\mathbb{F}_{q}\oplus\bigoplus\limits_{i=1}^{3}M(n_{i},\mathbb{F}_{q})\oplus
M(n_{4},\mathbb{F}_{q^{2}})$

###### Proof.

Since $p\nmid|G|$, by Maschke’s theorem we have $\mathbb{F}_{q}G$ is
semisimple and hence $J(\mathbb{F}_{q}G)$ is zero. By its Wedderburn
decomposition we have $\mathbb{F}_{q}G$ is isomorphic to
$\bigoplus\limits_{i=1}^{n}M({n_{i}},K_{i})$, where $n_{i}>0$ and $K_{i}$ is a
finite extension of $\mathbb{F}_{q}$, for all $1\leq i\leq n$.

Firstly from Lemma 2.4, we have

(4.1)
$\mathbb{F}_{q}G\cong\mathbb{F}_{q}\bigoplus\limits_{i=1}^{n-1}M({n_{i}},K_{i}),$

taking $h$ to be the augmentation map. Now to compute these $n_{i}$’s and
$K_{i}$’s we calculate the cyclotomic $\mathbb{F}_{q}$ classes of $G$. We do
this in $6$ cases, for $k=6l+i$ , $0\leq i\leq 5$. Note that $p$ can have the
following possibilities, being a prime

$\displaystyle p\in\\{\pm 1\\}$ $\displaystyle\mod 4,$ $\displaystyle
p\in\\{\pm 1\\}$ $\displaystyle\mod 3,$ $\displaystyle p\in\\{\pm 1,\pm 2,\pm
3\\}$ $\displaystyle\mod 7.$

  1. (1)

The case $(k=6l)$: In this case $p^{k}\equiv 1\mod 7,p^{k}\equiv 1\mod 4\text{
and }p^{k}\equiv 1\mod 3$, hence $p^{k}\equiv 1\mod 84$ (using Chinese
Remainder theorem). Thus $I_{\mathbb{F}_{q}}=\\{1\\}$ and
$S_{\mathbb{F}_{q}}(\gamma_{g})=\\{\gamma_{g}\\}$ for all $g\in G$. Thus by
Lemma 2.2, Lemma 2.3 and Equation 4.1

$\displaystyle\mathbb{F}_{q}G\cong\mathbb{F}_{q}\oplus\bigoplus\limits_{i=1}^{5}M(n_{i},\mathbb{F}_{q}).$

When such a decomposition arises, we say that $(p,k)$ is of type $1$.

  2. (2)

The case $(k=6l+1)$: In this case if $p\equiv\pm 1\mod 3,p\equiv\pm 1\mod 4$
and $p\equiv 1,2,-3\mod 7$, $S_{\mathbb{F}_{q}}(\gamma_{g})$ =
$\\{\gamma_{g}\\}$ for all $g\in G$, because we have

$\displaystyle[\alpha_{2}]=[\alpha_{2}^{-1}],[\alpha_{3}]=[\alpha_{3}^{-1}],[\alpha_{4}]=[\alpha_{4}^{-1}].$

Once again by Lemma 2.2 and Lemma 2.3 and Equation 4.1

$\displaystyle\mathbb{F}_{q}G\cong\mathbb{F}_{q}\oplus\bigoplus\limits_{i=1}^{5}M(n_{i},\mathbb{F}_{q}).$

i.e $(p,k)$ is of type $1$. Now if $p\equiv-1,-2,3\mod 7$, then we get that
$S_{\mathbb{F}_{q}}(\gamma_{g})=\\{\gamma_{g}\\}$ for
$g\in\\{\alpha_{1},\alpha_{2},\alpha_{3},\alpha_{4}\\}$ and
$S_{\mathbb{F}_{q}}(\gamma_{g})=(\gamma_{g},\gamma_{g^{-1}})$ when
$g\in\\{\alpha_{5},\alpha_{6}\\}$ since $[\alpha_{5}]$ $\neq$
$[\alpha_{5}^{-1}]$. Hence in this case we have

$\displaystyle\mathbb{F}_{q}G\cong\mathbb{F}_{q}\oplus\bigoplus\limits_{i=1}^{3}M(n_{i},\mathbb{F}_{q})\oplus
M(n_{4},\mathbb{F}_{q^{2}}).$

When such a decomposition arises, we say that $(p,k)$ is of type $2$.

It can be further shown using Equation 2.1 and Equation 2.2 that $(p,k)$ is
either of type $1$ or $2$. The possibilities are listed in the table below.

$p\mod 7$ | $k$ | Type of $(p,k)$
---|---|---
$\pm 1,\pm 2,\pm 3$ | $6l$ | $1$
$1,2,-3$ | $6l+1$ | $1$
$-1,-2,3$ | $6l+1$ | $2$
$\pm 1,\pm 2,\pm 3$ | $6l+2$ | $1$
$1,2,-3$ | $6l+3$ | $1$
$-1,-2,3$ | $6l+3$ | $2$
$\pm 1,\pm 2,\pm 3$ | $6l+4$ | $1$
$1,2,-3$ | $6l+5$ | $1$
$-1,-2,3$ | $6l+5$ | $2$

∎

######  Proposition 4.2.

We have $(n_{1},n_{2},n_{3},n_{4},n_{5},n_{6})=(1,6,7,8,3,3)$ up to some
permutation.

###### Proof.

By Corollary 3.9, we have that for some $n_{i}=6,n_{j}=7$ for some
$i,j\in\\{1,2,\ldots,6\\}$. Let us assume $n_{2}=6,n_{3}=7$. Since $n_{1}=1$,
we are left with the equation $n_{4}^{2}+n_{5}^{2}+n_{6}^{2}=82$, with all
$n_{i}>0$. Since the only possibility is $8^{2}+3^{2}+3^{2}$, we are done. ∎

######  Proposition 4.3.

Let $\mathbb{F}_{q}$ be a field of characteristic $p$ and $p$ $\geq$ $11$ and
$q=p^{k}$. Let $G$ be the group $\textup{SL}(3,2)$. Then the Wedderburn
decomposition of $\mathbb{F}_{q}G$ is as follows :

$\displaystyle\mathbb{F}_{q}\oplus\textup{M}(6,\mathbb{F}_{q})\oplus\textup{M}(7,\mathbb{F}_{q})\oplus\textup{M}(8,\mathbb{F}_{q})\oplus\textup{M}(3,\mathbb{F}_{q})^{2}$
$\displaystyle\text{ if $(p,k)$ is of type $1$},$
$\displaystyle\mathbb{F}_{q}\oplus\textup{M}(6,\mathbb{F}_{q})\oplus\textup{M}(7,\mathbb{F}_{q})\oplus\textup{M}(8,\mathbb{F}_{q})\oplus\textup{M}(3,\mathbb{F}_{q^{2}})$
$\displaystyle\text{ if $(p,k)$ is of type $2$}.$

###### Proof.

Follows immediately from Proposition 4.1 and Proposition 4.2. ∎

######  Theorem 4.4.

Let $\mathbb{F}_{q}$ be a field of characteristic $p$ and $p$ $\geq$ $11$. Let
$G$ be the group $\textup{SL}(3,2)$. Then the unit group
$\mathcal{U}(\mathbb{F}_{q}G)$ is as listed in the following table:

$p\mod 7$ | $k$ | $\mathcal{U}(\mathbb{F}_{q}\textup{SL}(3,2))$
---|---|---
$\pm 1,\pm 2,\pm 3$ | $6l$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q})^{2}$
$1,2,-3$ | $6l+1$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q})^{2}$
$-1,-2,3$ | $6l+1$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q^{2}})$
$\pm 1,\pm 2,\pm 3$ | $6l+2$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q})^{2}$
$1,2,-3$ | $6l+3$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q})^{2}$
$-1,-2,3$ | $6l+3$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q^{2}})$
$\pm 1,\pm 2,\pm 3$ | $6l+4$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q})^{2}$
$1,2,-3$ | $6l+5$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q})^{2}$
$-1,-2,3$ | $6l+5$ | $\mathbb{F}_{q}^{\times}\oplus\textup{GL}(6,\mathbb{F}_{q})\oplus\textup{GL}(7,\mathbb{F}_{q})\oplus\textup{GL}(8,\mathbb{F}_{q})\oplus\textup{GL}(3,\mathbb{F}_{q^{2}})$

.

###### Proof.

This follows immediately from Proposition 4.3 and the fact that given two
rings $R_{1},R_{2}$, we have $(R_{1}\times
R_{2})^{\times}=R_{1}^{\times}\times R_{2}^{\times}$. ∎

######  Remark 4.5.

Theorem 4.4 holds for $p=5$ as well.

##  5\. Concluding remarks

We have used some techniques of character theory to reduce the number of
possibilities for $n_{i}$’s. The book [DL] deals a good portion of ordinary
representation theory over finite field. From exercise at the end of §$4$, we
have

######  Remark 5.1.

Let $G$ be a finite group and $k$ is a field such that
$\textup{char}k\nmid|G|$. Assume $\\{V_{i}:1\leq i\leq r\\}$ to be full set of
representatives of non-isomorphic irreducible $kG$-modules. Then $k$ is a
splitting field of $G$ if and only if

$\displaystyle|G|=\displaystyle\sum\limits_{i=1}^{r}\dim_{k}(V_{i})^{2}.$

.

Using this we conclude that

######  Remark 5.2.

For $G=\textup{GL}(3,2)$, the field $\mathbb{F}_{q}$, where $q=p^{k}$, where
either $p=5$ or $p\geq 11$ is a splitting field of $G$ if and only if $(p,k)$
is of type $1$.

## References

  * [BLP] Y. Bai, Y. Li, J. Peng, _“Unit groups of finite group algebras of Abelian groups of order 17 to 20”_ , AIMS Mathematics, 2021, 6(7): 7305-7317.
  * [CCNPW] J. H. Conway, R. T. Curtis, S. P. Norton, R. A. Parker, R. A. Wilson _“ $\mathbb{ATLAS}$ of finite groups. Maximal subgroups and ordinary characters for simple groups With computational assistance from J. G. Thackray”_ Oxford University Press, Eynsham, 1985. xxxiv+252 pp. ISBN: 0-19-853199-0.
  * [DL] L. Dornhoff, _“Group representation theory: Part A: Ordinary representation theory”_ , Pure and Applied Mathematics, 7. Marcel Dekker, Inc., New York, 1971. vii+pp. 1–254.
  * [F] R. A. Ferraz, _“Simple components of the center of $FG/J(FG)$”_, Comm. Algebra 36 (2008), no. 9, 3191–3199.
  * [GAP2021] The GAP Group, GAP – Groups, Algorithms, and Programming, Version 4.11.1; 2021. (https://www.gap-system.org)
  * [GGK] W. D. Gao, A. Geroldinger, F. Halter-Koch, _“Group algebras of finite abelian groups and their applications to combinatorial problems”_ , Rocky Mountain J. Math., 39 (2008), 805–823.
  * [GKTY] J. Gildea, A. Kaya, R. Taylor, B. Yildiz, _“Constructions for self-dual codes induced from group rings”_ , Finite Fields Th. App., 51 (2018), 71–92.
  * [H1] T. Hurley, _“Group rings and rings of matrices”_ , Int. J. Pure Appl. Math. 31 (2006), no. 3, 319–335. 20C05.
  * [H2] T. Hurley, _“Convolutional codes from units in matrix and group rings”_ , Int. J. Pure Appl. Math. 50 (2009), no. 3, 431–463.
  * [HH1] P. Hurley, T. Hurley _“Codes from zero-divisors and units in group rings”_ , International Journal of Information and Coding Theory (IJICOT), Vol. 1, No. 1, 20.
  * [HH2] B. Hurley, T. Hurley, _“Systems of MDS codes from units and idempotents”_ , Discrete Math., 335 (2014), 81–91.
  * [HH3] P. Hurley, T. Hurley, _“Block codes from matrix and group rings”_ , In: I. Woungang, S. Misra, S. C. Misra, (Eds), Selected topics in information and coding theory, Hackensack: World Scientific Publication, 2010,159–194.
  * [MA] M. Sahai, S. F. Ansari (2021) _“Unit groups of group algebras of groups of order 18”_ , Communications in Algebra, DOI: 10.1080/00927872.2021.1893740.
  * [HI] J. W. P. Hirschfeld, _“Projective geometries over finite fields”_ , Oxford Mathematical Monographs. The Clarendon Press, Oxford University Press, New York, 1979. xii+474 pp. ISBN: 0198535260.
  * [MS1] P. C. Milies, S. Sudarshan, _“An Introduction to Group Rings”_ , ISBN: 978-1-4020-0238-0, Springer Science and Business Media, 31-Jan-2002 - Mathematics - 371 pages.
  * [MS2] S. Maheshwari, R. Sharma. _“The unit group of group algebra $F_{q}SL(2;Z_{3})$”_, (2016).
  * [MSS1] N. Makhijani, R. K. Sharma, J. B. Srivastava, _“A note on the structure of $\mathbb{F}_{p^{k}}A_{5}/J(\mathbb{F}_{p^{k}}A_{5})$”_, Acta Sci. Math. (Szeged) 82 (2016), no. 1-2, 29–43.
  * [MSS2] N. Makhijani, R. K. Sharma, J. B. Srivastava, _“The unit group of some special semi-simple group algebras.”_ Quaest. Math. 39 (2016), no. 1, 9–28.
  * [P] R.S. Pierce, _“Associative Algebras”_ , Graduate Texts in Mathematics, Springer-Verlag, New York (1982).
  * [S] R. Sandling, _“Units in the modular group algebra of a finite abelian $p$-group”_, J. Pure Appl. Algebra, 33 (1984), 337–346.
  * [TG] G. H. Tang, Y. Y. Gao, _“The unit group of FG of group with order $12$”_, Int. J. Pure Appl. Math., 73 (2011), 143–158.


# Object Delineation in Satellite Images

Zhuocheng Shang
Computer Science and Engineering
University of California, Riverside
<EMAIL_ADDRESS>
Ahmed Eldawy
Computer Science and Engineering
University of California, Riverside
<EMAIL_ADDRESS>

###### Abstract

Machine learning is being widely applied to analyze satellite data with
problems such as classification and feature detection. Unlike traditional
image processing algorithms, geospatial applications need to convert the
detected objects from a raster form to a geospatial vector form to further
analyze it. This gem delivers a simple and light-weight algorithm for
delineating the pixels that are marked by ML algorithms to extract geospatial
objects from satellite images. The proposed algorithm is exact and users can
further apply simplification and approximation based on the application needs.

##  1 Introduction

There has been a recent increase in machine learning algorithms and
applications that operate on high-resolution satellite data such as land use
classification and object detection [1, 2]. This increase has been driven by
the public availability of satellite data and the recent advancements in
machine learning. Many of these algorithms, such as object detection, produce
their output by marking pixels on the satellite data. This output can be
enough for regular image processing, such as land field classification.
However, it is desirable to delineate pixels corresponding to one object for
geospatial applications to form a geospatial polygon that can be further
processed in GIS applications. GIS applications generally demand vectorization
representations, not individual pixels with geospatial locations. Further, [3]
mentions that machine learning model trained based on OSM data is not accurate
due to low quality of vectorial building footprints in the dataset. This
drawback motivate the requirement of methods that can delineate pixels into
exact rural buildings segments.

Work has been done on a similar challenge that transforms pixels into vector
representations [4], but the drawback is with approximated boundaries. This
gem introduces a light-weight algorithm that delineates marked pixels on a
satellite image to produce a valid geospatial polygon, i.e., closed and not
self-intersecting. The proposed algorithm is exact in the sense that it
exactly delineates all marked pixels with no approximation. Based on its
needs, an application can further apply simplification algorithms to produce
the desired output. This approach also provides more accurate labeled data in
the form of training sets for machine learning models, reducing the
misalignment issue [3].

In the graphics field, image tracing algorithms are widely used to vectorize
raster images [5, 6]. These algorithms usually aim to produce basic geometric
shapes, e.g., circles and lines, which might entail simplification that is not
always desirable for geospatial applications. Vectorized shapes in graphics
lack geospatial information, such as latitude and longitute, required in GIS
applications. The proposed algorithm is based on the idea of image tracing but
is tailored for geospatial data.

Figure 1 gives an overview of the object delineation problem. The gray pixels
are the ones marked by the ML algorithm and our goal is to produce the polygon
marked by the arrows. To provide an exact answer on satellite data, the output
polygons must consist only of orthogonal lines. The key idea is to scan the
image once with a $2\times 2$ window to find all the polygon vertices and
connect them in the correct order as shown on the figure. The sliding window
scans row by row from top-left corner until the bottom right of the canvas.

##  2 Extracting Objects

Figure 1: Example of occupied pixels with orthogonal lines

This section describes two steps in the proposed approach that delineates
objects from satellite data, orthogonal lines detection and ring formation.
The detection step locates all orthogonal lines from occupied pixels in a
single scan over the image. The ring formation step combines orthogonal lines
into geospatial linear rings.

Figure 1 gives an overview of what the algorithm does. Given a raster image
with marked pixels, it creates an orthogonal polygon that surrounds all marked
pixels. The vertices that make polygons are all located at pixel corners as
shown in figure. By convention, the vertices of a polygon is ordered in
counter clock-wise order (CCW). In case of a polygon with a hole, the vertices
of the hole are ordered in clock-wise order (CW).

Figure 2: Different pixel occupied cases within one 2 by 2 block

###  2.1 Orthogonal Lines Detection

This step takes the marked raster as input and produces all the orthogonal
lines that comprise all the polygons. The lines are grouped in rings, i.e., a
circular linked list of vertices, as shown in Figure 1. The key observation is
that each vertex on the polygon connects a horizontal edge to a vertical edge.
Thus, to find all vertices, we need to locate the parts of the image where a
horizontal edge meets a vertical edge. Then, we should connect these vertices
in the correct order to create a closed polygon. The problem becomes
particularly challenging when dealing with many polygons and high-resolution
satellite images where a group of few pixels could form one ring. In such a
situation, the naive image-tracing algorithm needs to track many small
polygons which complicates the algorithm. Therefore, this gem intends to
deliver a light-weight algorithm that efficiently finds all polygon segments
as orthogonal lines on the high-resolution image through a single scan.

In order to overcome the issue of tracking all orthogonal lines, we observe
that a vertex can be detected by checking the $2\times 2$ window where the
vertex is at the center. This is sufficient to detect that a horizontal and
vertical edges meet. Figure 1 illustrates an example $2\times 2$ window. This
step simply runs a sliding window over the entire raster to create all the
vertices and arrange them in the correct order as further detailed below. The
sliding window starts from the top-left and slides over each row from left to
right.

Since a $2\times 2$ window contains only four pixels, and each pixel can
either be marked or unmarked, there are a total of 16 possible cases that can
happen. If we handle all of them correctly, then we know that we have all
possible cases covered. Figure 2 illustrates all the 16 cases. For
formalization, we identify these cases by assigning a bit position to each of
the four pixels as show in the figure. We can immediately see that cases 0, 3,
5, 10, 12, and 15 do not result in any detected vertices. Cases 1, 2, 4, 7, 8,
11, 13, and 14, each result in creating one vertex at the center of the
window. Cases 6 and 9 are special cases that result in two coinciding
vertices, both at the center. We chose to create these two vertices to ensure
that we create non-intersecting and non-overlapping polygons. If our goal is
to only find the location of the vertices without caring about their
connection and order, then it is enough to scan all $2\times 2$ windows and
emit a vertex for each of the above cases. However, we also want to connect
them in the correct order which we describe below.

We notice that each vertex must connect a horizontal edge to a vertical edge.
The horizontal edge must be at the same row, and the vertical edge must be at
the same column. Following our convention, the direction of the created edges
is shown in Figure 2. However, we notice that we cannot always create the edge
when we create a vertex. For example, Case 1 creates a vertex that connects
another vertex to the left to a vertex to the top. This is an easy case
because both vertices must have been already created following our sliding
window order, i.e., left-to-right and top-to-bottom. However, Case 2 is harder
since it connects a vertex to the top to a vertex to the right that is not yet
created. Hence, while handling Case 2, we can only create the vertical edge
and not the horizontal edge because we do not know the position of its next
vertex. In Case 7, we cannot create any edge since the end points of both
edges are not known yet. In Figure 2, solid arrows indicate the edges that can
be created in each case while dotted arrows indicate edges that cannot be
created at that point.

To resolve the issue of incomplete edges, we define the notion of an open
vertex. An open vertex is part of an edge that is not yet created, i.e., the
other end point is not detected yet. Since all edges are orthogonal, each open
vertex can only be paired with another vertex at the same row or the same
column. In addition, given the order at which the $2\times 2$ window slides, a
vertical edge can only have an open vertex at the top and a horizontal edge
can only have an open vertex to the left. Therefore, as we scan, we keep at
most one open vertex to the left and at most $w+1$ open vertices at the top,
one for each column, assuming the raster data has a width of $w$ pixels.

Given these open vertices, all edges can be created efficiently in one scan.
If a vertex is the top vertex of a vertical edge or a left vertex of a
horizontal edge, it is stored as an open vertex. On the other hand, if it is
the bottom vertex of a vertical edge or a right vertex of a horizontal edge,
it is paired with the corresponding open vertex. During this scanning, each
vertex is stored in one circular linked list, and multiple such linked lists
could exist on one raster image, as shown in Figure 1 which contains four
circular linked lists. The following content gives more details about forming
all circular linked lists connecting all vertices in the correct order.

In Figure 2, Case 1 creates a vertex that connects the left vertex to the top
vertex. Both left and top vertices must be open vertices that have been
created before reaching that case but without knowing the other end point.
Thus, we will update the next link of the left open vertex to point to the
newly created vertex and update the next link of the new vertex to point to
the top vertex. On the other hand, Case 2 connects the top vertex to a vertex
to the right that is not reached yet. Therefore, we updated the next link of
the vertex at the top to point to the new vertex. Then, we keep this new
vertex as an open vertex to the left to be paired later. In Case 7, the newly
created vertex is both an open left vertex and an open top vertex so it will
be stored as that.

Cases 6 and 9 are more interesting. It indicates two pixels meeting at a
corner. To keep the created polygons valid, we create two coinciding vertices
at the center. In other words, Case 6 does the work of Cases 2&4 together and
Case 9 combines Cases 1&8 together.

Algorithm 1 gives the pseudo-code of detecting orthogonal lines. The input is
a two-dimensional bit array of width $w$ and height $h$. The output is a set
of circular linked lists of vertices. Each vertex has an integer coordinate
$(x,y)$, a pointer to the next vertex, and Boolean visited flag that will be
used in the next algorithm. The output is stored in a list of corners that
contains at least one pointer for each linked list.

We keep a list of open vertices at the top and a single pointer to the left
open vertex. All these are initialized to null. We run a loop over all pixels
that slides a window at the center of each intersection $(x,y)$ on the raster
grid. Then, it computes the pixel type $[0,15]$ by inspecting the four pixels
in the window. Any pixel that falls outside the raster grid is assumed to be
non-marked. After that, it runs a single switch statement that efficiently
handles all the cases. To keep track of all linked lists, we need to store at
least one pointer in each circular linked list, and we define this pointer as
_start corner_. This preserved _start corner_ list is used in the next phase
to help with ring formation. We chose to record the top-left corner only which
is handled by Cases 7,8, and 9. There is no necessity to record all vertices,
because the top-left vertex is enough for pixel location representation.
Further, all polygons contain one top-left vertex, and this gives the reason
selecting case 8 and 9 is presentable. The necessity of storing case 7 is to
correctly handle polygon with holes. For example, if we intend to output the
polygon holds a hole in Figure 1 labeled 3, we also need to keep the top-left
corner for the pixel illustrated as one hole. Therefore, one polygon requires
multiple start corners so that ensures formatting boundaries correctly.

To analyze the time complexity of this algorithm, we note that the cost is
mainly in the for loop that iterates over each pixel. The switch statement has
a constant-time cost. Thus, the time complexity is $O(w\cdot h)$ which is
linear in terms of number of pixels. For space complexity, we observe that, in
addition to the input, we need to keep track of open vertices at the top which
requires $O(w)$ space. Also, we need to keep track of all the vertices which
requires $O(|V|)$. So, the space complexity is $O(|V|+w)$ which is output-
sensitive.

Input : R: Two-dimensional bit array [$w$][$h$] for marked pixels

Output : Linked List of vertices $\langle
x:Int,y:Int,next:Vertex,visited=false\rangle$

List of start Corners $\langle vertices\rangle$

1 topVertices: Array of open vertices at each column of size $w+1$

2 leftVertex: The open vertex to the left or null

3 Corners: List of start corners

4 for  _$y\in[0,h]$ , $x\in[0,w]$_ do

5 block 0 $\leftarrow$ 1 if R[x-1][y-1] not empty, otherwise 0

6 block 1 $\leftarrow$ 2 if R[x][y-1] not empty, otherwise 0

7 block 2 $\leftarrow$ 4 if R[x-1][y] not empty, otherwise 0

8 block 3 $\leftarrow$ 8 if R[x][y] not empty, otherwise 0

9 pixelType $\leftarrow$ (block 0 + block 1 + block 2 + block 3)

10 switch  _pixelType_ do

11 case 0,3,5,10,12,15 do nothing

12 case 1 do leftVertex.next $\leftarrow$ V$\langle x,y,topVertices(x)\rangle$

13 case 2 do leftVertex $\leftarrow$ topVertices(x).next $\leftarrow$
V$\langle x,y,null\rangle$

14 case 4 do topVertices(x) $\leftarrow$ V$\langle x,y,leftVertex\rangle$

15 case  _6_ do

16 v1 $\leftarrow$ topVertices(x).next $\leftarrow$ V$\langle x,y,null\rangle$

17 topVertices(x) $\leftarrow$ V$\langle x,y,leftVertex\rangle$

18 leftVertex $\leftarrow$ v1

19 end case

20 case 7,8 do Corners $\ll$ topVertices(x) $\leftarrow$ leftVertex
$\leftarrow$ V$\langle x,y,null\rangle$

21 case  _9_ do

22 leftVertex.next $\leftarrow$ V$\langle x,y,topVertices(x)\rangle$

23 Corners $\ll$ topVertices(x) $\leftarrow$ leftVertex $\leftarrow$ V$\langle
x,y,null\rangle$

24

25 end case

26 case 11 do topVertices(x) $\leftarrow$ leftVertex.next $\leftarrow$
V$\langle x,y,null\rangle$

27 case 13 do leftVertex $\leftarrow$ V$\langle x,y,topVertices(x)\rangle$

28 case 14 do topVertices(x).next $\leftarrow$ V$\langle
x,y,leftVertex\rangle$

29 end switch

30

31 end for

Algorithm 1 Orthogonal Lines Detection

###  2.2 Ring Formation

This step takes as input the circular linked lists created by the first step
and combines each one into a single ring through one start corner list
generated in the previous step. Based on how the rings were formed, outer
rings and inner holes are ordered in CCW and CW order, respectively. To
complete merging in one round, the implemented algorithm activates by picking
one start corner from a preserved list, shown as dots in Figure 1, and then
goes over the entire list. Each vertex in the list is converted to a
geospatial coordinate $(longitude,latitude)$ and is combined to produce the
geospatial ring. To convert integer raster coordinates $(x,y)$ to geospatial
coordinates $(longitude,latitude)$, we use an affine transformation, termed
grid-to-world, and this is a standard method to encode geospatial coordinates
of raster datasets [7]. While iterating over the vertices, they are marked as
visited by setting the flag in each vertex. This ensures that each ring is
converted only once since one ring can contain multiple corners, e.g., ring 1
in Figure 1. After one ring is formed, it is appended to a list of rings which
are then returned by the algorithm.

Algorithm 2 provides the pseudo-code of the ring formation process. The input
is the list of start corners created by the first step. It loops over all
start corners that are not yet visited. For each start corner, it follows the
linked list until it goes back to the start since it is a circular linked
list. It converts each vertex to geospatial coordinates using the grid-to-
world transformation. Finally, it appends the first point again to close the
ring and appends it to the list of rings.

To analyze the time complexity of this algorithm, we observe that the major
part is going through all vertices stored in all the linked lists. The time
complexity is linear in term of number of vertices stored, which is $O(|V|)$.
Thus, the time complexity is output-sensitive. Both the input and output sizes
are equal to number of vertices so the space complexity is also $O(|V|)$.

Input : Corners: List of start Corners;

Output : Rings: List of Geometry Linear Rings

1 for  _corner $\leftarrow$ Corners_ do

2 if  _not corner.visited_ then

3 p $\leftarrow$ corner;

4 Coordinates$\leftarrow\langle\rangle$: List of geospatial coordinates

5 do

6 (longitude,latitude) $\leftarrow$ grid_to_world($p.x,p.y$)

7 Coordinates $\ll$ ($longitude$, $latitude$)

8 p.visited $\leftarrow$ true

9 p $\leftarrow$ p.next

10

11 while  _p != corner_ ;

12 (longitude,latitude) $\leftarrow$ grid_to_world($p.x,p.y$)

13 Coordinates $\ll$ ($longitude$, $latitude$)

14 Rings $\ll$ Coordinates

15 end if

16 return Rings

17 end for

Algorithm 2 Ring Formation

##  3 Experimental Result

Table 1: Experimental test cases setup Raster W$\times$H | Probability of marked pixel ($p$)
---|---
1000 $\times$ 1000 | [ 0.0 , 1.0 ]
2000 $\times$ 2000 | [ 0.0 , 1.0 ]
4000 $\times$ 4000 | [ 0.0 , 1.0 ]

0.00.10.20.30.40.50.60.70.80.91.0$0$$5\cdot 10^{-2}$$0.1$$0.15$$p$Normalized
running time (seconds)1000 (a) Raster size 1000 $\times$ 1000

0.00.10.20.30.40.50.60.70.80.91.0$0$$0.2$$0.4$$0.6$$p$Normalized running time
(seconds)2000 (b) Raster size 2000 $\times$ 2000

0.00.10.20.30.40.50.60.70.80.91.0$0$$0.5$$1$$1.5$$2$$2.5$$p$Normalized running
time (seconds)4000 (c) Raster size 4000 $\times$ 4000

Figure 3: Running time with different raster and occupied pixels size
100020004000$0$$0.5$$1$$1.5$$2$$2.5$Raster sizePeak running time (seconds)
Figure 4: Peak running time with different occupied raster size

We run all experiments on a single machine with Intel Xeon E3-1220 v5 3.00GHz
quadcore processor, 64GB RAM, and 2TB HDD on Ubuntu 16.04.2 applied Java
1.8.0_102.

In this part, we run some basic experiments to confirm the scalability of the
proposed algorithm. We generate random marked rasters of resolutions
$1000\times 1000$ up-to $4000\times 4000$ as shown in Table 1. For each raster
size, we mark each pixel with an independent Bernoulli distribution with
parameter $p$. In other words, we scan over all the pixels and randomly mark
each pixel with a probability $p\in[0,1]$. The higher the value of $p$, the
more pixels will be marked in the raster. In this experiment, we vary $p$ from
0.0 to 1.0 in increments of 0.1. For each value of $p$, we generate 100 random
rasters and compute the average running time.

Figure 3 shows the average running time of the proposed algorithm. In each
figure, the running time shows a bitonic, bell-shaped, behavior where it
starts very small, peaks around the range $[0.4,0.6]$ and then starts to fall
down again. This can be explained by the output-sensitivity of the algorithm.
For both very small and very large values of $p$, there are only a very few
vertices to be detected since the entropy is low. Thus, the ring formation
step of the algorithm finishes very quickly since it will have a few vertices
to trace. When the entropy peaks at 0.5, the algorithm takes the longest
running time since it will detect the largest number of vertices. This
behavior confirms our analysis of output-sensitivity. In reality, when there
are real objects to be detected in an image, the entropy will be low and hence
the algorithm will run much faster than the peak running time in the figure.
The entropy is the highest when the image is purely random which is not
expected in real scenarios.

To further evaluate the scalability of the algorithm, Figure 4 shows the
maximum running time, i.e., at $p=0.5$, as the raster size increases from
$1000\times 1000$ to $4000\times 4000$. As expected, the largest running time
on the $y$-axis increases linearly with the resolution. For example, when the
number of pixels increases from one million to 16 million, the running time
increases from 0.14 seconds to 2.28 seconds, i.e., 16 fold.

## References

  * [1] Anju Asokan and J Anitha.  Machine learning based image processing techniques for satellite image analysis -a survey.  In 2019 International Conference on Machine Learning, Big Data, Cloud and Parallel Computing (COMITCon), pages 119–124, 2019.
  * [2] Gong Cheng and Junwei Han.  A survey on object detection in optical remote sensing images.  ISPRS Journal of Photogrammetry and Remote sensing, 117:11–28, 2016\.
  * [3] John E Vargas Munoz, Devis Tuia, and Alexandre X Falcão.  Deploying machine learning to assist digital humanitarians: making image annotation in openstreetmap more efficient.  International Journal of Geographical Information Science, 35(9):1725–1745, 2021.
  * [4] Onur Tasar, Emmanuel Maggiori, Pierre Alliez, and Yuliya Tarabalka.  Polygonization of binary classification maps using mesh approximation with right angle regularity.  In IGARSS 2018-2018 IEEE International Geoscience and Remote Sensing Symposium, pages 6404–6407. IEEE, 2018.
  * [5] Peter Selinger.  Potrace: a polygon-based tracing algorithm.  Potrace (online), http://potrace. sourceforge. net/potrace. pdf (2009-07-01), 2, 2003.
  * [6] Edoardo Alberto Dominici, Nico Schertler, Jonathan Griffin, Shayan Hoshyari, Leonid Sigal, and Alla Sheffer.  Polyfit: Perception-aligned vectorization of raster clip-art via intermediate polygonal fitting.  39(4), jul 2020.
  * [7] Ahmed Eldawy, Lyuye Niu, David Haynes, and Zhiba Su.  Large scale analytics of vector+raster big spatial data.  In Proceedings of the 25th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems, SIGSPATIAL ’17, New York, NY, USA, 2017. Association for Computing Machinery.