chrpa.main package

Submodules

chrpa.main.processing module

chrpa: climate hazards return period analysis

chrpa.main.processing.combined_boxplots(plotDF, wflag, site_name, savedir)

Generates boxplots of weather data. Takes in a pandas data frame for annual extreme weather as captured by multiple weather models. Requires categorical column for weather model and for the data time period (i.e, whether the data is currently/historically measured, or if the data is predicted by a weather model). Function then generates a boxplot for the data in the input data frame, capturing the different models in the x-axis, and where the time period is captured by the plot hues.

Parameters
  • plotDF (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:

    Name: model, dtype: string object, description: climate model names Name: period, dtype: string object, description: label for ‘current’

    or ‘future’ time period since data frame has combined ‘current’ and ‘future’ data.

    Name: year, dtype: int, description: year for Name: MaxPrecip or MaxWind, dtype: float64, description: any

    annual-max weather parameter (e.g., precipitation or wind)

  • wflag (str) – flag that determines wich weather variable is being plotted (i.e., ‘precip’ or ‘wind’)

  • site_name (str) – Name of site being analyzed

  • savedir (str) – Relative or absolute path of where to save generated boxplots

Return type

None

chrpa.main.processing.convert_preciprate_to_mm(precip_df, tint, wvar)

Converts precipitation rate (in [kg/m^2 s]) to total depth (in mm) when time interval in between timestamps is provided.

Parameters
  • precip_df (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: time,

    dtype: datetime64[ns], description: time stamps

    Name: precip,

    dtype: float64, description: precipitation rate in (kg/m^2-s)

  • tint (float) – Time interval in between the timestamps in precipDF

  • wvar (str) – Name given to preciptation column in precipitation data frame

Returns

  • Pandas DataFrame similar to input but with precipitation rate

  • converted to total depth in mm. Time stamps with NaNs in

  • precipitation column are dropped from the data frame.

chrpa.main.processing.convert_to_daily(w_df, tvar, aggfun)

Converts a weather data frame with hourly time stamps to daily time stamps based on a user defined aggregation method.

Parameters
  • w_df (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: time,

    dtype: datetime64[ns], description: time stamps

    Name: any weather variable,

    dtype: float64, description: can be either precipitation (in mm) or

    wind speed (in m/s)

  • tvar (str) – Name given to time column in weather data frame

  • aggfun (string) – Aggregation function that is read in by the ‘aggregate’ method for pandas groupby objects (e.g., ‘sum’, ‘mean’, etc.)

Returns

  • Pandas DataFrame similar to input but with daily time intervals

  • instead of more frequent time intervals (e.g., hourly)

chrpa.main.processing.convert_to_mm_daily(precip_df, tint, tvar, wvar, aggfun)

Converts precipitation rate (in [kg/m^2 s]) to daily total depth (in mm) when time interval in between timestamps is provided.

Parameters
  • precip_df (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: time,

    dtype: datetime64[ns], description: time stamps

    Name: precip,

    dtype: float64, description: precipitation rate in (kg/m^2-s)

  • tint (float) – Time interval in between the timestamps in precipDF

  • tvar (str) – Name given to time column in weather data frame

  • wvar (str) – Name given to preciptation column in precipitation data frame

  • aggfun (string) – Aggregation function that is read in by the ‘aggregate’ method for pandas groupby objects (e.g., ‘sum’, ‘mean’, etc.)

Returns

  • Pandas DataFrame similar to input but with precipitation rate

  • converted to daily total depth (in mm)

chrpa.main.processing.convert_uasvas_to_wind(uas_df, vas_df, ucol, vcol, tvar, wndvar)

Converts u and v (east/west and north/south) components of surface wind into wind speed (in m/s). Any time stamps that result in NaNs for the output wind speed column are dropped from the output data frame.

Parameters
  • uas_df (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: time,

    dtype: datetime64[ns], description: time stamps

    Name: uas,

    dtype: float64, description: u-component of surface wind (in m/s)

  • vas_df (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: time,

    dtype: datetime64[ns], description: time stamps

    Name: uas,

    dtype: float64, description: v-component of surface wind (in m/s)

  • ucol (str) – Name given to wind column in uasDF

  • ucol – Name given to wind column in vasDF

  • tvar (str) – Name given to time column in uasDF

  • wndvar (str) – Name to be given to wind speed column in output data frame

Returns

  • Pandas DataFrame with u and v components of wind converted to wind

  • speed (in m/s)

chrpa.main.processing.find_rl_location(future_df, rt_lv)

Finds a return period corresponding to a specified return level in a data frame of return-periods/return-levels as output by pyextremes.

Parameters
  • future_df (pandas.DataFrame) –

    Index:

    return periods

    Columns:
    Name: return value,

    dtype: float64, description: return values of specified return

    period (index)

    Name: lower ci,

    dtype: float64, description: lower confidence interval for return

    values of specified return period (index)

    Name: upper ci,

    dtype: float64, description: lower confidence interval for return values of specified return period (index)

  • rt_lv (float) – Return level of interest for which a corresponding return period should be identified.

Returns

  • Return period in future_df that most closely approximates the

  • specified return level

chrpa.main.processing.get_annual_max(daily_df, max_dict_rename, wmodel, period)

Takes in a pandas data frame for daily weather and outputs annual maximum for the years covered in the input data. Function also renames new data frame columns to user-defined preference.

Parameters
  • daily_df (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: date,

    dtype: datetime.date object, description: historical dates

    Name: precip or wind,

    dtype: float64, description: any daily weather parameter (e.g., precipitation or wind)

  • max_dict_rename (dict) – Dictionary used to rename weather data column in output data frame so as to distinguish from input data (e.g., from ‘precip’ in dailyDF to ‘MaxPrecip’ in output data frame).

  • wmodel (str) – Name for the climate model used for weather data sets

  • period (str) – Name for time period being considered (e.g., ‘current’ or ‘future’)

Returns

  • pandas.DataFrames with annual maximum weather for years covered in

  • input data

chrpa.main.processing.get_closest_point(site_loc, ncfilepath, offset)

Finds the closest data point between location of interest (site_loc) and weather stations captured by .nc files (ncfilepath).

Parameters
  • site_loc (tuple) – Latitude and longitude in the form of (lat, lon) for location of interest

  • ncfilepath (str) – A filepath in the form of a string that points to the location of the netCDF file of interest

  • offset (list) – Contains the lattitude and longitude offest in the form of [lat, lon]

Returns

  • Dictionary containing lat/lon, distance to, and corresponding x/y

  • indices in the netCDF file (climate data) to the weather station

  • that is closest to the input site_loc

chrpa.main.processing.line_plot(site_name, period, singleDF, wflag, savedir, hue=None)

Generates boxplots of weather data. Takes in a pandas data frame for annual extreme weather as captured by multiple weather models. Requires categorical column for weather model and for the data time period (i.e, whether the data is currently/historically measured, or if the data is predicted by a weather model). Function then generates a boxplot for the data in the input data frame, capturing the different models in the x-axis, and where the time period is captured by the plot hues.

Parameters
  • site_name (str) – Name of site being analyzed

  • period (str) – label for time period being analyzed (e.g., ‘current’ or ‘future’)

  • singleDF (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:

    Name: model, dtype: string object, description: climate model names Name: period, dtype: string object, description: label for ‘current’

    or ‘future’ time period since data frame has isolated ‘current’ or ‘future’ data.

    Name: year, dtype: int, description: year for Name: MaxPrecip or MaxWind, dtype: float64, description: any

    annual-max weather parameter (e.g., precipitation or wind)

  • wflag (str) – flag that determines wich weather variable is being plotted (i.e., ‘precip’ or ‘wind’)

  • savedir (str) – Relative or absolute path of where to save generated boxplots

  • hue (str) – column name for the corresponding to the different models to generate line plots of different colors based on the different models considred

Return type

None

chrpa.main.processing.make_ordered_time_weather_lists(nc_files, wstat_indices, ncwvar)

Takes a list of .nc files corresponding to different time frames for a specific weather model and produces an ordered list of time and weather numpy arrays for an identified weather station location (wstat_loc).

Parameters
  • nc_files (list) – A list of strings, where each string is a filepath that points to the locations of the netCDF files corresponding to different years of a climate model

  • wstat_indices (tuple) – xc and yc indices corresponding to specified location (weather station of interest) in the form of (xc,yc)

  • ncwvar (str) – Weather variable of interest to be extracted from you .nc file (e.g., ‘pr’, ‘uas’, or ‘vas’)

Returns

  • time_list (list) – List of numpy arrays corresponding to time data

  • weather_list (list) – List of numpy arrays corresponding to weather data

chrpa.main.processing.myextremes(ann_df, rp_array, wvar, alpha=None)

Uses pyextremes to fit extreme (maximum annual) weather data to a generalized extreme value distribution (GEVD). The GEVD fit is then used to calculate return values for user-defined return period and user-defined confidence intervals. Takes the output of get_annual_max for annDF.

Parameters
  • ann_df (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: year,

    dtype: string, float, or int description: historical dates

    Name: precip or wind,

    dtype: float64, description: any daily weather parameter (e.g., precipitation or wind)

  • rp_array (numpy.ndarray) – Numpy array with return periods for which return values should be calculated with pyextremes

  • wvar (str) – Column name given to weather variable of interest in annDF (e.g., ‘MaxPrecip’, ‘MaxWind’, etc)

  • alpha (float) – Width of confidence interval (0,1). If None (default), return None for upper and lower confidence interval bounds.

Returns

  • pandas.DataFrame providing return values for user-requested return

  • periods. Upper and lower confidence bounds are also output if

  • alpha is non-zero.

chrpa.main.processing.parse_data_orig(ncfilepath, offset)

Extracts latitude and longitude from a netCDF (network Common Data Form) format and returns them in a data frame.

Parameters
  • ncfilepath (str) – A filepath in the form of a string that points to the location of the netCDF file of interest

  • offset (list) – Contains the lattitude and longitude offest in the form of [lat, lon]

Returns

Dictionary with latitude and longitude components corresponding to the input file

Return type

Dictionary

chrpa.main.processing.rp_plots(site_name, period, weathDF, baseline, plot_dict)

Generates return period plots from fitted model. Takes in a pandas data frame as output from myextremes for a GEVD model fitted to extreme weather data. Requires data to have upper and lower confidence intervals.

Parameters
  • site_name (str) – Name of site being analyzed

  • period (str) – label for time period being analyzed (e.g., ‘current’ or ‘future’)

  • weathDF (pandas.DataFrame) –

    Index:

    return periods for which a GEVD model was fitted to

    Columns:
    Name: return values, dtype: float, description: 1D-array of return

    values for requested return periods in fitted model

    Name: lower ci, dtype: float, description: 1D-array of lower

    confidence invertval bounds for requested return periods in fitted model

    Name: upper ci, dtype: float, description: 1D-array of upper

    confidence invertval bounds for requested return periods in fitted model

  • baseline (dict) – Dictionary mapping baseline return periods (usually historical return periods) of interest to their corresponding return level

  • plot_dict (dict) –

    Dictionary containing the desired values for the following plot

    parameters: title (plot title), xlabel (x-axis label), ylabel (y-axis label), legendloc(legend location), savedir (relative or absolute path to

  • period – String that denotes which period is being analyzed, either “baseline” or “future”

Return type

None

chrpa.main.processing.summary_stat_fun(daily_df_current, daily_df_future, wmodel, site)

Takes in a pandas data frame for daily weather and outputs statstical summaries for that data set (min, max, mean, and standard deviation).

Parameters
  • daily_df_current (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: date,

    dtype: datetime.date object, description: historical dates

    Name: precip or wind,

    dtype: float64, description: any daily weather parameter

    (e.g., precipitation or wind)

  • daily_df_future (pandas.DataFrame) –

    Index:

    RangeIndex

    Columns:
    Name: date,

    dtype: datetime.date object, description: future dates

    Name: precip or wind,

    dtype: float64, description: any daily weather parameter (e.g., precipitation or wind)

  • wmodel (str) – Name for the climate model used for weather data sets

  • site (str) – Name for the specific site whose weather being analyzed

Returns

  • pandas.DataFrames with statistical summaries

  • (min, max, mean, and std. dev.)

chrpa.main.processing.timedelta_to_continuous_w_weather(time_data_list, weather_data_list, wvar, start_time, start_time_format='%Y-%m-%d %H:%M:%S', td_unit='days')

Takes a list of time and weather numpy arrays that correspond to a specific location from a single climate model. Concatenates the time and weather lists into a single pandas data frame with continuous time and weather data as two separate columns of the data frame.

Parameters
  • time_data_list (list) – List of numpy arrays corresponding to time data for a specific climate model

  • weather_data_list (list) – List of numpy arrays corresponding to weather data for a specific climate model

  • wvar (str) – Column name given to weather variable of interest in weather data frame (e.g., ‘precip’, ‘uas’, or ‘vas’)

  • start_time (str) – Time stamp corresponding to the start time of the arrays in time_data_list (e.g., ‘1968-01-01 00:00:00’)

  • start_time_format (str) – Format in which the start_time is input (Default is ‘%Y-%m-%d %H:%M:%S’)

  • td_unit (str) – Unit in which the arrays in time_data_list are provided (e.g., ‘days’)

Returns

  • Pandas DataFrame with continuous time and weather data as two

  • separate columns of the data frame

chrpa.main.processing.weather_data_calcs(nc_filepath, wstat_indices, ncwvar)

Extracts the weather and time data from a .nc file (nc_filepath) for specified location (wstat_coords).

Parameters
  • ncfilepath (str) – A filepath in the form of a string that points to the location of the netCDF file of interest

  • wstat_indices (tuple) – xc and yc indices corresponding to specified location (weather station of interest) in the form of (xc,yc)

  • ncwvar (str) – Weather variable of interest to be extracted from you .nc file (e.g., ‘pr’, ‘uas’, or ‘vas’)

Returns

  • time_data (Numpy array) – Numpy array corresponding to time data

  • weather_data (Numpy array) – Numpy array corresponding to weather data

Module contents

main module