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