## 3 Methodology  
### Convolutional Neural Networks  
CNNs are a powerful class of deep learning models specifically designed for the analysis of visual data. The core of the CNN lies in its use of convolutional layers, which automatically and adaptively learn the spatial hierarchies of features from raw input data [33]. A typical CNN architecture includes convolutional layers, pooling layers, and fully connected layers. Convolutional layers use filters or kernels to slide over the input data, extracting local patterns or features. Pooling layers then reduce the spatial dimensions of these feature maps, lowering the computational complexity while retaining key information. Finally, fully connected layers synthesize the learned features to perform tasks like classification or regression. One of the CNNs' key strengths is their ability to learn hierarchical representations of the features directly from raw data, enabling them to capture complex patterns and dependencies within images. This makes CNNs highly effective for tasks such as object detection, image segmentation, and facial recognition. The CNN used in this study (Figure 2) consists of a sequence of layers designed for effective feature extraction and robust training. It begins with a 2D convolutional layer with a fixed 3 \(\times\) 3 kernel size and 32 filters, followed by a max-pooling layer with a 2 \(\times\) 2 pool size. This pattern is repeated with a second 2D convolutional layer, this time with 64 filters, followed by another max-pooling layer. A flattened layer is then added to convert the 2D spatial data into a 1D vector, preparing them for the dense layers. The model includes a fully connected dense layer with 128 neurons, followed by a Monte Carlo dropout layer with a 50% dropout rate to mitigate overfitting. The final dense layer, optimized for the task, leads to a single output neuron using a linear activation function, suitable for regression tasks. The model was trained using the Adam optimizer over a maximum of 1000 epochs, with an initial learning rate of 0.001. Gradient clipping was applied to prevent exploding gradients, and early stopping with a patience of 150 epochs was employed to further reduce overfitting. The activation function for the output layer was \"linear\", while \"ReLU\" was applied to the other layers. The loss function used was the \"mean squared error\". Hyperparameters, including a batch size of 32 and \"same\" padding, were optimized using  
Figure 2: Scheme of the CNN model used for the GPP forecasts. Bayesian methods. The model was implemented in Python 3.7.13 using TensorFlow and the Keras API. All data were resampled to a 0.05\({}^{\circ}\) resolution using bilinear interpolation to match the spatial resolution of the GPP NIRv data. To avoid the risk of overestimating the model's performance [44], the monthly data from the historical period of 1982 to 2013 were segmented, with the period from 1982 to 2007 designated for training and the subsequent period from 2007 to 2013 for testing. During the prediction period, the results for each scenario represent the arithmetic mean of the seven ESMs. This study employs the bootstrap method to estimate the 95% confidence intervals for the predictions under each scenario. The bootstrap is a statistical technique that repeatedly samples with replacement from the original dataset to estimate the distribution of a statistic, allowing for the calculation of confidence intervals. To determine the relative importance of the input variables in a CNN model using feature importance scoring (i.e., permutation importance), the following steps are taken. Train the CNN on a dataset to learn the relationship between the input features and output targets. Then, evaluate the model on a test or validation set to establish the baseline performance. For each input variable, shuffle its values while keeping the others intact and re-evaluate the model's performance.