------------ The README describes the Python code for extracting defined parameters from MODIS data (NetCDF4 format) and gives an overview of the relevant input/output files. Additional information Hannes Keernik hannes.keernik@ut.ee Velle Toll velle.toll@ut.ee This work is funded by the Estonian Research Council grant PRG1726. ------------ DATASET ------------ The given python code is used to analyse anthropogenic glaciation of supercooled liquid-water clouds downwind of strong industrial point sources of air pollution using Terra MODIS satellite data. Creators: Hannes Keernik, Velle Toll Organisation: University of Tartu Rights-holder: University of Tartu ------------ TERMS OF USE ------------ Copyright 2024 University of Tartu. This dataset is licensed by the rights-holder under a Creative Commons Attribution 4.0 International Licence: https://creativecommons.org/licenses/by/4.0/. ------------ CONTENTS ------------ 1) scripts.zip Here, two Python scripts, config.py and process_modis.py, are provided. The first is used to define paths to the input/output files. The latter is the main script for data processing. The data processing script calculates the average values for glaciation-affected and unaffected polygons (case by case) together with the differences between glaciation-affected and unaffected polygons. The output tables are written out as CSV files. 2) input.zip The input folder includes three subfolders: a) modis_data - MODIS data (NetCDF4 format) for each studied location. It includes data for two glaciation cases: one case for the metallurgical plant in Cherepovets (Latitude 59.1442°, Longitude 37.8482°), Russia, and one case for the cement plant in Fokino (Latitude 53.4445°, Longitude 34.4092°), Russia. The MODIS data is placed in product-specific subfolders which reside in location-specific subfolders (e.g. python_code_for_processing_glaciation_events_MODIS/input/modis_data/Cherepovets/MOD021KM/MOD021KM.A2019006.0930.061.2019006193214.hdf.dap.nc4); b) polluted_polygons - JSON files with manually logged glaciation-affected area, placed in location-specific subfolders (e.g. python_code_for_processing_glaciation_events_MODIS/input/polluted_polygons/Cherepovets/20190106 20093500.json); c) variable_lists The function read_params() in process_modis.py is used for reading in parameter lists that are used as a basis for selecting data from the MODIS NetCDF4 files The parameter lists contain the following files: - extract_averages_variables.txt - MODIS cloud product data variables, used for calculating average values for glaciation-affected and unaffected polygons - extract_averages_variables_radiance.txt - MODIS radiance product variables, used for calculating average values for glaciation-affected and unaffected polygons - extract_fractions_variables.txt - MODIS cloud product variables, used for calculating fractions for glaciation-affected and unaffected polygons (filtered pixels / all pixels) - extract_properties_ice.txt - MODIS cloud product variables, used for calculating average values for glaciation-affected and unaffected polygons based on pixels with ice clouds - extract_properties_liquid.txt - MODIS cloud product variables, used for calculating average values for glaciation-affected and unaffected polygons based on pixels with liquid-water clouds In addition, filelist.txt links together three input files for the identified case: polluted_poly_path - path to the JSON file with manually logged glaciation-affected area, relative to config.polygon_dir MOD06_L2_path - path to the NetCDF4 file of the MODIS cloud product, relative to config.modis_dir MOD021KM_path - path to the NetCDF4 file of the MODIS Calibrated Radiances file, relative to config.modis_dir 3) output.zip The average cloud properties of glaciation-affected and unaffected areas (case by case) are saved into a CSV file called modis_polygons.csv, where: site - location of the emission source; dt - datetime of the identified event of glaciation of supercooled liquid-water clouds; json - manually logged glaciation-affected area, saved as a JSON file under input/polluted_polygons; pol_area - the extent of the glaciation-affected area; pol_area_unit - the unit of the pol_area; MOD06_L2 - path to the NetCDF4 file of the MODIS cloud product, relative to the config.main_path; MOD06_L2 - path to the NetCDF4 file of the MODIS Calibrated Radiances file, relative to the config.main_path; All other columns denote the average ("avg" in the column name) and standard deviation ("std") of cloud properties for the unaffected ("unpol") and glaciation-affected ("pol") polygons. The units of the MODIS variables represented in modis_polygons.csv were written into modis_units_polygons.csv, where: param - variable name unit - the unit of the given variable 4) requirements.txt The list of Python modules used by the code. ------------ METHOD and PROCESSING ------------ We first identified glaciation events using Terra MODIS data via NASA Worldview https://worldview.earthdata.nasa.gov/. We manually selected the glaciation-affected polygons using the NASA Worldview measure area tool https://www.youtube.com/watch?v=uMkuiRJr_-E. We use manually saved GeoJSON files to search and download MODIS data, using the X/Y centroid values of the glaciation-affected polygon in earthaccess, https://earthaccess.readthedocs.io/en/latest/. We found coordinates of the glaciation-affected and unaffected polygons; see process_modis.get_polluted_polygon() and process_modis.get_unpolluted_polygon(). We found 1-km and 5-km lat/lon masks for a polygon (glaciation-affected and unaffected) using process_modis.find_masks(). We created masked variable arrays for glaciation-affected and unaffected polygons and calculated averages for both polygons; see functions process_modis.add_param_avg_and_std() and process_modis.add_param_avg_and_std_radiance(). The average cloud properties of glaciation-affected and unaffected areas were saved into a CSV file. ------------