Skip to content
Snippets Groups Projects
main_run_samir.py 2.66 KiB
Newer Older
# -*- coding: UTF-8 -*-
# Python
"""
08-09-2023
@author: jeremy auclair

Main script to run the SAMIR model
"""

if __name__ == '__main__':
    
    import sys, os  # system management
    currentdir = os.path.dirname(os.path.realpath(__file__))
    sys.path.insert(0, os.path.dirname(currentdir))
    
    from modspa_pixel.config.config import config  # to import config file
    from modspa_pixel.source.code_toolbox import format_duration  # to print memory requirements
    from modspa_pixel.source.modspa_samir import run_samir  # to run SAMIR
    from time import time  # to time code excecution
    
    # Get start time of script
    t0 = time()
    
    # Declare paths
    config_file = currentdir + os.sep + 'config' + os.sep + 'config_modspa.json'
    
    # Open config file and load parameters
    config_params = config(config_file)
    
    # Run parameters
    max_ram = config_params.max_ram
    max_cpu = config_params.max_cpu
    mode = config_params.mode
    run_name = config_params.run_name
    preferred_provider = config_params.preferred_provider
    start_date = config_params.start_date
    end_date = config_params.end_date
    
    # Path parameters
    param_csv_file = config_params.param_csv_file
    download_path = config_params.download_path
    era5_path = config_params.era5_path
    output_path = config_params.output_path
    
    # Input paths
    ## NDVI
    if preferred_provider == 'copernicus':
        ndvi_path = download_path + os.sep + 'SCIHUB' + os.sep + 'NDVI' + os.sep + run_name + '_NDVI_cube_' + start_date + '_' + end_date + '.nc'
    else:
        ndvi_path = download_path + os.sep + 'THEIA' + os.sep + 'NDVI' + os.sep + run_name + '_NDVI_cube_' + start_date + '_' + end_date + '.nc'
    
    ## Weather
    if mode == 'pixel':
        weather_path = era5_path + os.sep + run_name + os.sep + 'ncdailyfiles' + os.sep + start_date + '_' + end_date + '_' + run_name + '_era5-land-daily-meteo.nc'
    else:
        weather_path = era5_path + os.sep + run_name + os.sep + 'ncdailyfiles' + os.sep + start_date + '_' + end_date + '_' + run_name + '_era5-land-daily-meteo_parcel.nc'
    
    # Soil path
    soil_path = config_params.soil_path
    
    # Land Cover path
    land_cover_path = config_params.land_cover_path
    
    # Output path
    output_save_path = output_path + os.sep + run_name + os.sep + config_params.run_name + '_outputs.nc'
    
    # Run SAMIR
    run_samir(config_file, param_csv_file, ndvi_path, weather_path, soil_path, land_cover_path, output_save_path, additional_outputs = None, available_ram = max_ram, available_cpu = max_cpu)
    
    # Print formatted runtime