def outputs_plotting(thres, outputs): """Plotting of fire season statistics. Args: thres (float): Threshold used to generate the data. outputs: Output of `wildfires.analysis.thres_fire_season_stats`. """ enable_logging() FigureSaver.debug = True FigureSaver.directory = os.path.join(os.path.expanduser("~"), "tmp", "fire_season") os.makedirs(FigureSaver.directory, exist_ok=True) for dataset_outputs in outputs: name = dataset_outputs[0] starts = dataset_outputs[1] ends = dataset_outputs[2] sizes = dataset_outputs[3] fractions = dataset_outputs[5] for plot_type, data, cmap, boundaries in zip( ("start (month)", "end (month)", "length (months)", "fraction (1)"), (starts, ends, sizes, fractions), (*("twilight", ) * 2, *("brewer_RdYlBu_11_r", ) * 2), (*(np.arange(0, 12), ) * 3, None), ): with FigureSaver( f"{name}_thres_{str(thres).replace('.', '_')}_{plot_type}" ): mpl.rc("figure", figsize=(7.4, 3.3)) cube_plotting( data, coastline_kwargs=dict(linewidth=0.5), cmap=cmap, label=plot_type, title=name, boundaries=boundaries, ) # Close all figures after saving. plt.close("all")
def outputs_plotting(thres, outputs): """Plotting of fire season fractions in South Africa. Args: thres (float): Threshold used to generate the data. outputs: Output of `wildfires.analysis.thres_fire_season_stats`. """ enable_logging() FigureSaver.debug = True FigureSaver.directory = os.path.join(os.path.expanduser("~"), "tmp", "south_africa_fire_season_fraction") os.makedirs(FigureSaver.directory, exist_ok=True) for dataset_outputs in outputs: name = dataset_outputs[0] # if name != "GFEDv4": # continue fractions = dataset_outputs[5] for plot_type, data, cmap, boundaries in zip( ("fraction (1)", ), (fractions, ), (*("brewer_RdYlBu_11_r", ) * 1, ), (None, )): data.mask |= get_south_africa_mask() with FigureSaver( f"{name}_thres_{str(thres).replace('.', '_')}_{plot_type}" ): mpl.rc("figure", figsize=(7.4, 3.3)) cube_plotting( data, coastline_kwargs=dict(linewidth=0.5), cmap=cmap, label=plot_type, title=name, boundaries=boundaries, select_valid=True, ) # Close all figures after saving. plt.close("all")
import logging import os import warnings import matplotlib as mpl import numpy as np import pandas as pd from wildfires.analysis import * from wildfires.data import * from wildfires.joblib.cloudpickle_backend import register_backend from wildfires.logging_config import enable_logging from wildfires.utils import * logger = logging.getLogger(__name__) enable_logging() register_backend() warnings.filterwarnings("ignore", ".*Collapsing a non-contiguous coordinate.*") warnings.filterwarnings("ignore", ".*DEFAULT_SPHERICAL_EARTH_RADIUS*") warnings.filterwarnings("ignore", ".*guessing contiguous bounds*") memory = get_memory( "analysis_correlation_12_month_shift", backend="cloudpickle", verbose=100 ) FigureSaver.debug = True FigureSaver.directory = os.path.expanduser( os.path.join("~", "tmp", "correlation_12_month_shift") )
replace_cube_coord, shorten_columns, shorten_features, ) if "TQDMAUTO" in os.environ: from tqdm.auto import tqdm else: from tqdm import tqdm loguru_logger.enable("alepython") loguru_logger.remove() loguru_logger.add(sys.stderr, level="WARNING") logger = logging.getLogger(__name__) enable_logging("jupyter") warnings.filterwarnings("ignore", ".*Collapsing a non-contiguous coordinate.*") warnings.filterwarnings("ignore", ".*DEFAULT_SPHERICAL_EARTH_RADIUS.*") warnings.filterwarnings("ignore", ".*guessing contiguous bounds.*") warnings.filterwarnings( "ignore", 'Setting feature_perturbation = "tree_path_dependent".*') normal_coast_linewidth = 0.3 mpl.rc("figure", figsize=(14, 6)) mpl.rc("font", size=9.0) register_cl_backend() PAPER_DIR = Path(__file__).resolve().parent data_memory = get_memory(PAPER_DIR.name, backend="cloudpickle", verbose=2)
import logging import os import shutil import threading from concurrent.futures import ProcessPoolExecutor, as_completed from datetime import datetime from pathlib import Path import requests from configuration import data_dir, download_file, processed_file, temporary_data_dir from pymodis.downmodis import modisHtmlParser from tqdm import tqdm from wildfires.logging_config import enable_logging enable_logging(level="INFO") logger = logging.getLogger(__name__) base_url = "https://e4ftl01.cr.usgs.gov/MOLT/MOD15A2H.006/" def urljoin(*args): return "/".join(args).replace("//", "/").replace(":/", "://") def worker_log(log_file, msg): with log_file.open("a") as f: f.write(f"{datetime.now()}: {msg}" + "\n") def safe_write(content, filename):