コード例 #1
0
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")
コード例 #2
0
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")
コード例 #3
0
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")
)
コード例 #4
0
    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)
コード例 #5
0
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):