Data calibration and uncertainty

Climate data harmonization

In the context of remote sensing data, data harmonization refers to the process of ensuring consistency and compatibility among diverse datasets. It involves the integration of information from different sources, sensors, or time periods, often with variations in resolution, format, or calibration, to create a seamless and standardized dataset. The goal is to overcome disparities and make the data interoperable for more effective analysis and decision-making.

Key Aspects of Data Harmonization in Remote Sensing:

  1. Spatial and Temporal Alignment: Harmonizing data involves aligning datasets in both space and time. This may include adjusting spatial resolutions, projections, and time intervals to ensure they match.
  2. Radiometric Consistency: Ensuring consistent radiometric properties across different datasets is crucial. This involves calibrating and normalizing radiometric values to account for differences in sensor characteristics.
  3. Spectral Compatibility: Harmonizing spectral information involves standardizing the bands or channels of different sensors. This is essential for accurate comparison and analysis of remote sensing data.
  4. Geometric Corrections: Geometric errors, such as distortions or misalignments, need to be corrected to ensure accurate spatial representation. This may involve geometric transformations or corrections.
  5. Data Format Standardization: Harmonizing data formats and structures is important for seamless integration. Converting datasets into a common format or structure facilitates interoperability.

Example of Data Harmonization:

Consider a scenario where you want to analyze land cover changes over a specific region using satellite imagery. You have access to datasets from different satellites, each with its own characteristics:
  • Dataset A: Landsat 8 imagery with 30-meter spatial resolution.
  • Dataset B: Sentinel-2 imagery with 10-meter spatial resolution.

To harmonize the data:

  • Spatial Alignment: Resample the Sentinel-2 imagery to a 30-meter resolution to match Landsat 8.

    This can be done using rasterio python library. It can be installed using:

    pip install rasterio
    Now can use the following python script to perform the resampling:
    
    import rasterio
    from rasterio.enums import Resampling
    
    def resample(input_path, output_path, target_resolution):
        with rasterio.open(input_path) as src:
            # Calculate the new dimensions based on the target resolution
            new_width = int(src.width * src.res[0] / target_resolution)
            new_height = int(src.height * src.res[1] / target_resolution)
    
            # Perform the resampling
            data = src.read(
                out_shape=(src.count, new_height, new_width),
                resampling=Resampling.bilinear
            )
    
            # Update the metadata with the new resolution
            transform = src.transform * src.transform.scale(
                (src.width / data.shape[-1]),
                (src.height / data.shape[-2])
            )
    
            # Create a new profile for the output raster
            profile = src.profile
            profile.update({
                'width': new_width,
                'height': new_height,
                'transform': transform,
                'nodata': None  # You can specify a nodata value if needed
            })
    
            # Write the resampled data to the output raster
            with rasterio.open(output_path, 'w', **profile) as dst:
                dst.write(data)
    
    # Example usage
    landsat_path = 'path/to/landsat_image.tif'
    output_path = 'path/to/resampled_landsat.tif'
    target_resolution = 60.0  # Set the target resolution in meters (a multiple of 30 meters)
    
    resample(landsat_path, output_path, target_resolution)                                
                
    In this example, the target_resolution is set to 60 meters, which is a multiple of Landsat 8's native resolution (30 meters). This is done to match Sentinel-2's higher resolution of 10 meters. Replace the path/to/landsat_image.tif with the with the path to your Landsat 8 image file and `path/to/resampled_landsat.tif' with the desired path for the resampled output. Adjust the target_resolution variable to the resolution you want to achieve.

    This script uses bilinear interpolation (Resampling.bilinear) during the resampling process. Depending on your specific use case, you may choose a different resampling method from the Resampling enumeration.

  • Temporal Alignment: Adjust the acquisition dates of the datasets to a common time period for comparative analysis.
  • Radiometric and Spectral Consistency: Calibrate both datasets to ensure consistent radiometric values and spectral bands.
  • Geometric Corrections: Apply geometric corrections to remove distortions and align features accurately.
  • Data Format Standardization: Convert both datasets to a common format or structure for ease of integration.
By harmonizing the Landsat 8 and Sentinel-2 datasets, you create a unified dataset that allows for meaningful comparison and analysis of land cover changes over time with consistent and compatible information. This process enhances the reliability and accuracy of your remote sensing analysis.

References

  1. Intergovernmental Panel on Climate Change
  2. United Nations Framework Convention on Climate Change
  3. Climate Action Tracker
  4. The Climate Reality Project
  5. 350.org
  6. Glossary: Random, systematic, Structured random, and correlated data; Harmonisation, Traceability and Uncertainity, Georectification

Some other interesting things to know: