This dataset (images.rar) contains a collection of radar images acquired by the Sentinel-1 satellite constellation, part of the Copernicus Earth observation program of the European Union. The images are suitable for remote sensing applications such as surface change detection, land classification, or geophysical analysis.
You can access the data directly through this link: Copernicus Data Browser.
This MATLAB dataset contains simulated Normalized Radar Cross Section (NRCS) values generated using a numerical method based on second-order Small Slope Approximation (SSA2). The simulations account for variations in the dielectric permittivity of statistically described rough surfaces, using an advanced electromagnetic modeling approach.
The output file includes labeled data fields for clarity and ease of use, making it suitable for inversion studies or electromagnetic surface scattering analysis.
The processed images are stored in GeoTiff format with two bands: VV and VH.
To view the images in Python, ensure you have "numpy", "rasterio", and "matplotlib" installed. Images are viewable by clipping the bands by minimum and maximum threshold values of the pixels intensity.
Python Code:
# Print the number of bands
print(f'Number of bands: {num_bands}')
# Optionally, print additional information
print(f'Width: {dataset.width}')
print(f'Height: {dataset.height}')
print(f'CRS: {dataset.crs}') # Coordinate Reference System (CRS)
print(f'Bounds: {dataset.bounds}')
# BAND STATISTICS
with rasterio.open(file_path) as dataset:
band1 = dataset.read(1)
band2 = dataset.read(2)
def print_stats(band, band_name):
print(f"{band_name} statistics:")
print(f" Min: {np.min(band)}")
print(f" Max: {np.max(band)}")
print(f" Mean: {np.mean(band)}")
print(f" Std: {np.std(band)}")
print_stats(band1, "Band 1")
print_stats(band2, "Band 2")
# Function to clip pixel values
def clip_array(array, min_percentile=2, max_percentile=98):
min_val = np.percentile(array, min_percentile)
max_val = np.percentile(array, max_percentile)
array_clipped = np.clip(array, min_val, max_val) # We keep the values of the array between min and max percentile
return array_clipped
# Clipping the bands
band1_clipped = clip_array(band1)
band2_clipped = clip_array(band2)
# Normalizing the clipped bands
band1_normalized = (band1_clipped - np.min(band1_clipped)) / (np.max(band1_clipped) - np.min(band1_clipped))
band2_normalized = (band2_clipped - np.min(band2_clipped)) / (np.max(band2_clipped) - np.min(band2_clipped))
plt.figure(figsize=(10, 10))
plt.title("Band 1 (Clipped and Normalized)")
plt.imshow(band1_normalized, cmap='gray')
plt.show()
plt.figure(figsize=(10, 10))
plt.title("Band 2 (Clipped and Normalized)")
plt.imshow(band2_normalized, cmap='gray')
plt.show()
To view the images in MATLAB, ensure you have Mapping Toolbox installed.
MATLAB Code:
>> filename_read = 'filenameread.tif';
>> filename_write = 'filenamewrite.tif';
>> [A,R] = readgeoraster(filename_read,'OutputType','double');
>> info = georasterinfo(filename_read);
>> im1 = A(:,:,1);
>> im1db = 10*log10(im1);
>> max_im1db = max(im1db(:));
>> min_im1db = min(im1db(:));
>> im2 = A(:,:,2);
>> im2db = 10*log10(im2);
>> max_im2db = max(im2db(:));
>> min_im2db = min(im2db(:));
>> figure, imagesc(im1db)
>> colormap('gray'), colorbar, axis image
>> clim([max_im1db-60, max_im1db])
>> print(filename_write,'-dtiff','-r600')
Website Builder Software