## 2 Materials and Methods
### Conditional Generative Adversarial Network  
The deep learning architecture is based on the conditional generative adversarial network (CGAN) proposed by [33]. The task of the generator is to generate samples belonging to the target distribution (e.g., an S2-like spectral band) from the source distribution (L8 spectral bands), while the task of the discriminator is to help improve the transformative ability of the generator by learning to differentiate between S2-like bands (estimated from L8 bands) and original S2 bands. Figure 3 shows our generator architecture, which consists of two networks--an encoder and a decoder network. The encoder and the decoder networks progressively upscale and downscale the images, respectively, to learn the representations between the image pairs at multiple scales. Spatial information is preserved through identity connections at each scale before upscaling/downscaling operations. We implemented U-Net based architecture [46] with a ResNet-34 as our encoder and added a self-attention layer [47] similar to [48] to preserve the global dependencies during the reconstruction of the target image. The loss function of the generator was mean average error or L1.  
The discriminator is based on the architecture PatchGAN, as defined by [PERSON] et al. [33]. This architecture divides the input image from the generator into smaller patches. The discriminator receives S2 images from two distributions--original S2 images and the translated S2-like images by the generator one at a time. The network then assesses each patch to determine if it is more similar to the original S2 distribution or the S2-like distribution generated by the generator. The loss function of the discriminator, which is the mean average error or L1, learns to differentiate between the two sets, helping the network to classify the image generated by the generator into these two categories.  
The objectives of the generator and the discriminator networks are adversarial. For example, the generator aims to generate S2-like images that are ideally indistinguishable from original S2 images, while the discriminator learns to effectively distinguish the generated S2-like images from the original S2 images, participating in a minimax game [29]. The objective function V(G, D) in Equation (1) defines the performance metrics for the generator (G) and discriminator (D) within a GAN framework. The D maximizes V(G, D) through accurate classification of real versus synthetic images. The G minimizes V(G, D), creating images from a latent distribution z that mimics the real data distribution x from Sentinel-2 (S2). The D evaluates the input images to assign probabilities that identify their source (original S2 or S2-like from G). Equilibrium is attained when the D probability assessment for both image types converges to 0.5, indicating the G's effectiveness in generating from the real S2 image distribution.  
\[V(G,D)=E_{x\sim\cap\mathrm{I}_{\mathrm{ Sentinel-2}(x)}}[\log D(x)]+E_{z\sim \cap\mathrm{I}_{\mathrm{Landstst}(z)}}[\log(1-D(G(z)))] \tag{1}\]  
CGANs can be difficult to train; therefore, we followed [PERSON]'s [49] NoGAN training process to improve network training stability. Following this strategy, we pre-trained our G for 10 epochs separately and then we trained our D for 10 epochs on the generated images by the pre-trained generator. Next, we trained both G and D for 80 epochs switching between the networks with multiple learning rates. We used a loss threshold for our discriminator to make sure that it does not improve significantly relative to the generator. If the discriminator becomes significantly better than the generator, the overall training accuracy of our CGAN will not improve any further. Figure 4 shows an overview of our network setup.  
Figure 4: Experimental setup of our image translation task.  
Figure 3: Encoder–decoder-based generator network architecture.