API documentation¶
NOTE: This is Kelley’s demo
The package contains the following modules:
QC Module: Perform quality control analysis
Utils module: Includes helper functions
Wave Module: Calculate quantities of interest for wave energy converters (WEC)
River Module: Calculate quantities of interest for river energy converters (REC)
Tidal Module: Calculate quantities of interest for tidal energy converters (TEC)
QC Module¶
The QC module includes quality control functions from Pecos, see https://pecos.readthedocs.io for more details.
Functions |
Description |
|---|---|
qc_corrupt |
Check for corrupt data |
qc_delta |
Check for stagant data and/or abrupt changes in the data using the difference between max and min values within a rolling window |
qc_increment |
|
qc_missing |
Check for missing data |
qc_outlier |
Check for outliers using normalized data within a rolling window |
qc_range |
Check for data outside the expected range |
qc_timestamp |
Check time series for missing, non-monotonic, and duplicate timestamps |
Note
The names of the functions below are of the convention path.path.path.function. Only the function name is used when calling the function in MATLAB. For example, to call on “mhkit.qc.check_timestamp” simply use check_timestamp().
** Kelley - this is currently populating the python api
Wave Module¶
The wave module contains a set of functions to calculate quantities of interest for wave energy converters (WEC).
IO¶
The io
submodule contains the following function to load National Data Buoy Center (NDBC)
data file into a pandas DataFrame, including real time and historical data.
Functions |
Description |
|---|---|
read_NDBC_file |
Reads a NDBC wave buoy data file (from https://www.ndbc.noaa.gov) into a structure. |
-
mhkit.wave.io.
read_NDBC_file
(file_name, missing_values=['MM', 9999, 999, 99])[source]¶ Reads a NDBC wave buoy data file (from https://www.ndbc.noaa.gov).
Realtime and historical data files can be loaded with this function.
Note: With realtime data, missing data is denoted by “MM”. With historical data, missing data is denoted using a variable number of # 9’s, depending on the data type (for example: 9999.0 999.0 99.0). ‘N/A’ is automatically converted to missing data.
Data values are converted to float/int when possible. Column names are also converted to float/int when possible (this is useful when column names are frequency).
- Parameters
file_name (string) – Name of NDBC wave buoy data file
missing_value (list of values) – List of values that denote missing data
- Returns
data (pandas DataFrame) – Data indexed by datetime with columns named according to header row
metadata (dict or None) – Dictionary with {column name: units} key value pairs when the NDBC file contains unit information, otherwise None is returned
Resource¶
The resource
submodule contains methods to compute wave energy spectra and various metrics from the spectra.
The following options exist to compute wave energy spectra:
Functions |
Description |
|---|---|
create_spectra |
Calculates a spectra of user defined type. |
elevation_spectrum |
Calculates wave spectra from wave probe timeseries. |
The following metrics can be computed from the spectra:
Functions |
Description |
|---|---|
average_crest_period |
Calculate the average creat period from spectra. |
average_wave_period |
Calculates the average wave period from spectra |
average_zero_crossing_period |
Calculates wave average zero crossing period from spectra |
energy_flux |
Calculates the omnidirectional wave energy flux of the spectra |
energy_period |
Calculates the energy period |
frequency_moment |
Calculates the Nth frequency moment of the spectrum |
peak_period |
Calculates wave energy period from spectra |
significant_wave_height |
Calculates wave height from spectra |
spectral_bandwidth |
Calculates bandwidth from spectra |
spectral_width |
Calculates wave spectral width from spectra |
surface_elevation |
Calculates wave elevation time series from spectrum using a random phase |
wave_celerity |
Calculates wave celerity (group velocity) |
wave_number |
Calculates wave number |
-
mhkit.wave.resource.
average_crest_period
(S)[source]¶ Calculates wave average crest period from spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
- Returns
Tavg (pandas DataFrame) – Average wave period [s] indexed by S.columns
-
mhkit.wave.resource.
average_wave_period
(S)[source]¶ Calculates mean wave period from spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
- Returns
Tm (pandas DataFrame) – Mean wave period [s] indexed by S.columns
-
mhkit.wave.resource.
average_zero_crossing_period
(S)[source]¶ Calculates wave average zero crossing period from spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
- Returns
Tz (pandas DataFrame) – Average zero crossing period [s] indexed by S.columns
-
mhkit.wave.resource.
bretschneider_spectrum
(f, Tp, Hs)[source]¶ Calculates Bretschneider Sprectrum from Tucker and Pitt (2001)
- Parameters
f (numpy array) – Frequency [Hz]
Tp (float/int) – Peak period [s]
Hs (float/int) – Significant wave height [m]
- Returns
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
-
mhkit.wave.resource.
elevation_spectrum
(eta, sample_rate, nnft, window='hamming', detrend=True)[source]¶ Calculates the wave energy spectrum from wave elevation time-series
- Parameters
eta (pandas DataFrame) – Wave surface elevation [m] indexed by time [datetime or s]
sample_rate (float) – Data frequency [Hz]
nnft (integer) – Number of bins in the Fast Fourier Transform
window (string (optional)) – Signal window type. ‘hamming’ is used by default given the broadband nature of waves. See scipy.signal.get_window for more options.
detrend (bool (optional)) – Specifies if a linear trend is removed from the data before calculating the wave energy spectrum. Data is detrended by default.
- Returns
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
-
mhkit.wave.resource.
energy_flux
(S, h, rho=1025, g=9.80665)[source]¶ Calculates the omnidirectional wave energy flux of the spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
h (float) – Water depth [m]
rho (float (optional)) – Water Density [kg/m3]
g (float (optional)) – Gravitational acceleration [m/s^2]
- Returns
J (pandas DataFrame) – Omni-directional wave energy flux [W/m] indexed by S.columns
-
mhkit.wave.resource.
energy_period
(S)[source]¶ Calculates wave energy period from spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
- Returns
Te (pandas DataFrame) – Wave energy period [s] indexed by S.columns
-
mhkit.wave.resource.
frequency_moment
(S, N)[source]¶ Calculates the Nth frequency moment of the spectrum
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
N (int) – Moment (0 for 0th, 1 for 1st ….)
- Returns
m (pandas DataFrame) – Nth Frequency Moment indexed by S.columns
-
mhkit.wave.resource.
jonswap_spectrum
(f, Tp, Hs, gamma=3.3)[source]¶ Calculates JONSWAP spectrum from Hasselmann et al (1973)
- Parameters
f (numpy array) – Frequency [Hz]
Tp (float/int) – Peak period [s]
Hs (float/int) – Significant wave height [m]
gamma (float (optional)) – Gamma
- Returns
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed frequency [Hz]
-
mhkit.wave.resource.
peak_period
(S)[source]¶ Calculates wave energy period from spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
- Returns
Tp (pandas DataFrame) – Wave peak period [s] indexed by S.columns
-
mhkit.wave.resource.
pierson_moskowitz_spectrum
(f, Tp)[source]¶ Calculates Pierson-Moskowitz Spectrum from Tucker and Pitt (2001)
- Parameters
f (numpy array) – Frequency [Hz]
Tp (float/int) – Peak period [s]
- Returns
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed frequency [Hz]
-
mhkit.wave.resource.
significant_wave_height
(S)[source]¶ Calculates wave height from spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
- Returns
Hm0 (pandas DataFrame) – Significant wave height [m] index by S.columns
-
mhkit.wave.resource.
spectral_bandwidth
(S)[source]¶ Calculates bandwidth from spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
- Returns
e (pandas DataFrame) – Spectral bandwidth [s] indexed by S.columns
-
mhkit.wave.resource.
spectral_width
(S)[source]¶ Calculates wave spectral width from spectra
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
- Returns
v (pandas DataFrame) – Spectral width [m] indexed by S.columns
-
mhkit.wave.resource.
surface_elevation
(S, time_index, seed=123)[source]¶ Calculates wave elevation time-series from spectrum using a random phase
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed by frequency [Hz]
time_index (numpy array) – Time used to create the wave elevation time-series [s], for example, time = np.arange(0,100,0.01)
seed (int (optional)) – Random seed
- Returns
eta (pandas DataFrame) – Wave surface elevation [m] indexed by time [s]
-
mhkit.wave.resource.
wave_celerity
(k, h, g=9.80665)[source]¶ Calculates wave celerity (group velocity)
- Parameters
k (pandas DataFrame) – Wave number [1/m] indexed by frequency [Hz]
h (float) – Water depth [m]
g (float (optional)) – Gravitational acceleration [m/s^2]
- Returns
Cg (pandas DataFrame) – Water celerity [?] indexed by frequency [Hz]
-
mhkit.wave.resource.
wave_number
(f, h, rho=1025, g=9.80665)[source]¶ Calculates wave number
To compute wave number from angular frequency (w), convert w to f before using this function (f = w/2*pi)
- Parameters
f (numpy array) – Frequency [Hz]
h (float) – Water depth [m]
rho (float (optional)) – Water density [kg/m^3]
g (float (optional)) – Gravitational acceleration [m/s^2]
- Returns
k (pandas DataFrame) – Wave number [1/m] indexed by frequency [Hz]
Performance¶
The performance
submodule contains functions to compute capture length, statistics,
performance matrices, and mean annual energy production.
Functions |
Description |
|---|---|
dc_power |
Calculates the real power from DC voltage and current. |
ac_power_three_phase |
Calculates the real power from three phase ac voltage and current. |
capture_length |
Calculates the capture length (often called capture width). |
capture_length_matrix |
Generates a capture length matrix for a given statistic |
mean_annual_energy_production_matrix |
Calculates mean annual energy production (MAEP) from matrix data along with data frequency in each bin |
mean_annual_energy_production_timeseeries |
Calculates mean annual energy production (MAEP) from timeseries |
power_matrix |
Generates a power matrix from a capture length matrix and wave energy flux matrix |
wave_energy_flux_matrix |
Generates a wave eneergy flux matrix for a given statistic |
-
mhkit.wave.performance.
ac_power_three_phase
(voltage, current, power_factor, line_to_line=False)[source]¶ Calculates real power from line to neutral voltage and current
- Parameters
voltage (pandas DataFrame) – Time series of all three measured voltage phases [V] indexed by time
current (pandas DataFrame) – Time series of all three measured current phases [A] indexed by time
power_factor (float) – Power factor for the system
line_to_line (bool) – Set to true if the given voltage measurements are line_to_line
- Returns
P (pandas DataFrame) – Total power [W] indexed by time
-
mhkit.wave.performance.
capture_length
(P, J)[source]¶ Calculates the capture length (often called capture width).
- Parameters
P (numpy array or pandas Series) – Power [W]
J (numpy array or pandas Series) – Omnidirectional wave energy flux [W/m]
- Returns
L (numpy array or pandas Series) – Capture length [m]
-
mhkit.wave.performance.
capture_length_matrix
(Hm0, Te, L, statistic, Hm0_bins, Te_bins)[source]¶ Generates a capture length matrix for a given statistic
Note that IEC/TS 62600-100 requires capture length matrices for the mean, std, count, min, and max.
- Parameters
Hm0 (numpy array or pandas Series) – Significant wave height from spectra [m]
Te (numpy array or pandas Series) – Energy period from spectra [s]
L (numpy array or pandas Series) – Capture length [m]
statistic (string) – Statistic for each bin, options include: ‘mean’, ‘std’, ‘median’, ‘count’, ‘sum’, ‘min’, ‘max’, and ‘frequency’. Note that ‘std’ uses a degree of freedom of 1 in accordance with IEC/TS 62600-100.
Hm0_bins (numpy array) – Bin centers for Hm0 [m]
Te_bins (numpy array) – Bin centers for Te [s]
- Returns
LM (pandas DataFrames) – Capture length matrix with index equal to Hm0_bins and columns equal to Te_bins
-
mhkit.wave.performance.
dc_power
(voltage, current)[source]¶ Calculates DC power from voltage and current
- Parameters
voltage (pandas Series or DataFrame) – Measured DC voltage [V] indexed by time
current (pandas Series or DataFrame) – Measured three phase current [A] indexed by time
- Returns
P (pandas DataFrame) – DC power [W] from each channel and gross power indexed by time
-
mhkit.wave.performance.
mean_annual_energy_production_matrix
(LM, JM, frequency)[source]¶ Calculates mean annual energy production (MAEP) from matrix data along with data frequency in each bin
- Parameters
LM (pandas DataFrame) – Capture length
JM (pandas DataFrame) – Wave energy flux
frequency (pandas DataFrame) – Data frequency for each bin
- Returns
maep (float) – Mean annual energy production
-
mhkit.wave.performance.
mean_annual_energy_production_timeseries
(L, J)[source]¶ Calculates mean annual energy production (MAEP) from time-series
- Parameters
L (numpy array or pandas Series) – Capture length
J (numpy array or pandas Series) – Wave energy flux
- Returns
maep (float) – Mean annual energy production
-
mhkit.wave.performance.
power_matrix
(LM, JM)[source]¶ Generates a power matrix from a capture length matrix and wave energy flux matrix
- Parameters
LM (pandas DataFrame) – Capture length matrix
JM (pandas DataFrame) – Wave energy flux matrix
- Returns
PM (pandas DataFrames) – Power matrix
-
mhkit.wave.performance.
statistics
(X)[source]¶ Calculates statistics, including count, mean, standard deviation (std), min, percentiles (25%, 50%, 75%), and max.
Note that std uses a degree of freedom of 1 in accordance with IEC/TS 62600-100.
- Parameters
X (numpy array or pandas Series) – Data
- Returns
stats (pandas Series) – Statistics
-
mhkit.wave.performance.
wave_energy_flux_matrix
(Hm0, Te, J, statistic, Hm0_bins, Te_bins)[source]¶ Generates a wave energy flux matrix for a given statistic
- Parameters
Hm0 (numpy array or pandas Series) – Significant wave height from spectra [m]
Te (numpy array or pandas Series) – Energy period from spectra [s]
J (numpy array or pandas Series) – Wave energy flux from spectra [W/m]
statistic (string) – Statistic for each bin, options include: ‘mean’, ‘std’, ‘median’, ‘count’, ‘sum’, ‘min’, ‘max’, and ‘frequency’. Note that ‘std’ uses a degree of freedom of 1 in accordance of IEC/TS 62600-100.
Hm0_bins (numpy array) – Bin centers for Hm0 [m]
Te_bins (numpy array) – Bin centers for Te [s]
- Returns
JM (pandas DataFrames) – Wave energy flux matrix with index equal to Hm0_bins and columns equal to Te_bins
Graphics¶
The graphics
submodule contains functions to plot wave data and related metrics.
Functions |
Description |
|---|---|
plot_elevation_timeseries |
Plots wave elevation timeseries |
plot_matrix |
Plots the matrix with Hm0 and Te on the y and x axis |
plot_spectrum |
Plots wave amplitude spectrum |
-
mhkit.wave.graphics.
plot_elevation_timeseries
(eta, ax=None)[source]¶ Plot wave surface elevation time-series
- Parameters
eta (pandas DataFrame) – Wave surface elevation [m] indexed by time [datetime or s]
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure is created.
- Returns
ax (matplotlib pyplot axes)
-
mhkit.wave.graphics.
plot_matrix
(M, xlabel='Te', ylabel='Hm0', zlabel=None, show_values=True, ax=None)[source]¶ Plots values in the matrix as a scatter diagram
- Parameters
M (pandas DataFrame) – Matrix with numeric labels for x and y axis, and numeric entries. An example would be the average capture length matrix generated by mhkit.device.wave, or something similar.
xlabel (string (optional)) – Title of the x-axis
ylabel (string (optional)) – Title of the y-axis
zlabel (string (optional)) – Colorbar label
show_values (bool (optional)) – Show values on the scatter diagram
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure is created.
- Returns
ax (matplotlib pyplot axes)
-
mhkit.wave.graphics.
plot_spectrum
(S, ax=None)[source]¶ Plots wave amplitude spectrum versus omega
- Parameters
S (pandas DataFrame) – Spectral density [m^2/Hz] indexed frequency [Hz]
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure is created.
- Returns
ax (matplotlib pyplot axes)
Note
The names of the functions below are of the convention path.path.path.function. Only the function name is used when calling the function in MATLAB. For example, to call on “mhkit.wave.io.read_NDBC_file” simply use read_NDBC_file().
River Module¶
The river module contains a set of functions to calculate quantities of interest for river energy converters (REC).
IO¶
The io
submodule contains the following functions to
load USGS Discharge data into structures.
Functions |
Description |
|---|---|
read_usgs_file |
Reads a USGS JSON data file (from https://waterdata.usgs.gov/nwis) into a structure |
request_usgs_file |
Loads USGS data directly from https://waterdata.usgs.gov/nwis using a GET request into a structure |
-
mhkit.river.io.
read_usgs_file
(file_name)[source]¶ Reads a USGS JSON data file (from https://waterdata.usgs.gov/nwis)
- Parameters
file_name (str) – Name of USGS JSON data file
- Returns
data (pandas DataFrame) – Data indexed by datetime with columns named according to the parameter’s variable description
-
mhkit.river.io.
request_usgs_data
(station, parameter, start_date, end_date, data_type='Daily', proxy=None, write_json=None)[source]¶ Loads USGS data directly from https://waterdata.usgs.gov/nwis using a GET request
The request URL prints to the screen.
- Parameters
station (str) – USGS station number (e.g. ‘08313000’)
parameter (str) – USGS paramter ID (e.g. ‘00060’ for Discharge, cubic feet per second)
start_date (str) – Start date in the format ‘YYYY-MM-DD’ (e.g. ‘2018-01-01’)
end_date (str) – End date in the format ‘YYYY-MM-DD’ (e.g. ‘2018-12-31’)
data_type (str) – Data type, options include ‘Daily’ (return the mean daily value) and ‘Instantaneous’.
proxy (dict or None) – To request data from behind a firewall, define a dictionary of proxy settings, for example {“http”: ‘localhost:8080’}
write_json (str or None) – Name of json file to write data
- Returns
data (pandas DataFrame) – Data indexed by datetime with columns named according to the parameter’s variable description
Resource¶
The resource
submodule uses discharge data to compute
exeedance probability, velocity, and power. The module also contains functions
to compute the Froude number and to fit a polynomial to a series of points.
The polynomial is used to estimate the relationship between discharge and velocity
or velocity and power at an individual turbine.
Functions |
Description |
|---|---|
Froude_number |
Calculate the Froude Number of the river, channel or duct flow, to check subcritical flow assumption (if Fr <1). |
polynomial_fit |
Returns a polynomial fit for y given x of order n with an R-squared score of the fit |
exceedance_probability |
Calculates the exceedance probability |
discharge_to_velocity |
Calculates velocity given discharge data and the relationship between discharge and velocity at an individual turbine |
velocity_to_power |
Calculates power given velocity data and the relationship between velocity and power from an individual turbine |
energy_produced |
Returns the energy produced for a given time period provided exceedence probability and power. |
-
mhkit.river.resource.
Froude_number
(v, h, g=9.80665)[source]¶ Calculate the Froude Number of the river, channel or duct flow, to check subcritical flow assumption (if Fr <1).
- Parameters
v (int/float) – Average velocity [m/s].
h (int/float) – Mean hydrolic depth float [m].
g (int/float) – Gravitational acceleration [m/s2].
- Returns
Fr (float) – Froude Number of the river [unitless].
-
mhkit.river.resource.
discharge_to_velocity
(D, polynomial_coefficients)[source]¶ Calculates velocity given discharge data and the relationship between discharge and velocity at an individual turbine
- Parameters
D (pandas Series) – Discharge data [m3/s] indexed by time [datetime or s]
polynomial_coefficients (numpy polynomial) – List of polynomial coefficients that discribe the relationship between discharge and velocity at an individual turbine
- Returns
V (pandas DataFrame) – Velocity [m/s] indexed by time [datetime or s]
-
mhkit.river.resource.
energy_produced
(P, seconds)[source]¶ Returns the energy produced for a given time period provided exceedence probability and power.
- Parameters
P (pandas Series) – Power [W] indexed by time [datetime or s]
seconds (int or float) – Seconds in the time period of interest
- Returns
E (float) – Energy [J] produced in the given time frame
-
mhkit.river.resource.
exceedance_probability
(D)[source]¶ Calculates the exceedance probability
- Parameters
D (pandas Series) – Data indexed by time [datetime or s].
- Returns
F (pandas DataFrame) – Exceedance probability [unitless] indexed by time [datetime or s]
-
mhkit.river.resource.
polynomial_fit
(x, y, n)[source]¶ Returns a polynomial fit for y given x of order n with an R-squared score of the fit
- Parameters
x (numpy array) – x data for polynomial fit.
y (numpy array) – y data for polynomial fit.
n (int) – order of the polynomial fit.
- Returns
polynomial_coefficients (numpy polynomial) – List of polynomial coefficients
R2 (float) – Polynomical fit coeffcient of determination
-
mhkit.river.resource.
velocity_to_power
(V, polynomial_coefficients, cut_in, cut_out)[source]¶ Calculates power given velocity data and the relationship between velocity and power from an individual turbine
- Parameters
V (pandas Series) – Velocity [m/s] indexed by time [datetime or s]
polynomial_coefficients (numpy polynomial) – List of polynomial coefficients that discribe the relationship between velocity and power at an individual turbine
cut_in (int/float) – Velocity values below cut_in are not used to compute P
cut_out (int/float) – Velocity values above cut_out are not used to compute P
- Returns
P (pandas DataFrame) – Power [W] indexed by time [datetime or s]
Device¶
The device
submodule contains functions to compute equivalent diameter
and capture area for circular, ducted, rectangular, adn multiple circular devices.
A circular device is a vertical axis water turbine (VAWT). A
rectangular device is a horizontal axis water turbine. A ducted device
is an enclosed VAWT. A multiple-circular devices is a device with
multiple VAWTs per device.
Functions |
Description |
|---|---|
circular |
Calculates the equivalent diameter and projected capture area of a circular turbine |
ducted |
Calculates the equivalent diameter and projected capture area of a ducted turbine |
multiple_circular |
Calculates the equivalent diameter and projected capture area of a multiple circular turbine |
rectangular |
Calculates the equivalent diameter and projected capture area of a retangular turbine |
-
mhkit.river.device.
circular
(diameter)[source]¶ Calculates the equivalent diameter and projected capture area of a circular turbine
- Parameters
diameter (int/float) – Turbine diameter [m]
- Returns
equivalent_diameter (float) – Equivalent diameter [m]
projected_capture_area (float) – Projected capture area [m^2]
-
mhkit.river.device.
ducted
(duct_diameter)[source]¶ Calculates the equivalent diameter and projected capture area of a ducted turbine
- Parameters
duct_diameter (int/float) – Duct diameter [m]
- Returns
equivalent_diameter (float) – Equivalent diameter [m]
projected_capture_area (float) – Projected capture area [m^2]
-
mhkit.river.device.
multiple_circular
(diameters)[source]¶ Calculates the equivalent diameter and projected capture area of a multiple circular turbine
- Parameters
diameters (list) – List of device diameters [m]
- Returns
equivalent_diameter (float) – Equivalent diameter [m]
projected_capture_area (float) – Projected capture area [m^2]
-
mhkit.river.device.
rectangular
(h, w)[source]¶ Calculates the equivalent diameter and projected capture area of a retangular turbine
- Parameters
h (int/float) – Turbine height [m]
w (int/float) – Turbine width [m]
- Returns
equivalent_diameter (float) – Equivalent diameter [m]
projected_capture_area (float) – Projected capture area [m^2]
Graphics¶
The graphics
submodule contains functions to plot river data and related metrics.
The functions are designed to work in parallel with the resource
submodule.
Functions |
Description |
|---|---|
plot_discharge_timeseries |
Plots discharge vs time |
plot_discharge_vs_velocity |
Plots discharge vs velocity |
plot_flow_duration_curve |
Plots discharge vs exceedance probability as a Flow Duration Curve (FDC) |
plot_power_duration_curve |
Plots power vs exceedance probability as a Flow Duration Curve (FDC) |
plot_velocity_duration_curve |
Plots velocity vs exceedance probability as a Flow Duration Curve (FDC) |
plot_velocity_vs_power |
Plots velocity vs power along with a polynomial fit |
-
mhkit.river.graphics.
plot_discharge_timeseries
(Q, label=None, ax=None)[source]¶ Plots discharge time-series
- Parameters
Q (array-like) – Discharge [m3/s] indexed by time
label (string) – Label to use in the legend
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure with a single axes is used.
- Returns
ax (matplotlib pyplot axes)
-
mhkit.river.graphics.
plot_discharge_vs_velocity
(D, V, polynomial_coeff=None, label=None, ax=None)[source]¶ Plots discharge vs velocity data along with the polynomial fit
- Parameters
D (pandas Series) – Discharge [m/s] indexed by time
V (pandas Series) – Velocity [m/s] indexed by time
polynomial_coeff (numpy polynomial) – Polynomial coefficients, which can be computed using river.resource.polynomial_fit. If None, then the polynomial fit is not included int the plot.
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure with a single axes is used.
- Returns
ax (matplotlib pyplot axes)
-
mhkit.river.graphics.
plot_flow_duration_curve
(D, F, label=None, ax=None)[source]¶ Plots discharge vs exceedance probability as a Flow Duration Curve (FDC)
- Parameters
D (array-like) – Discharge [m/s] indexed by time
F (array-like) – Exceedance probability [unitless] indexed by time
label (string) – Label to use in the legend
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure with a single axes is used.
- Returns
ax (matplotlib pyplot axes)
-
mhkit.river.graphics.
plot_power_duration_curve
(P, F, label=None, ax=None)[source]¶ Plots power vs exceedance probability as a Power Duration Curve (PDC)
- Parameters
P (array-like) – Power [W] indexed by time
F (array-like) – Exceedance probability [unitless] indexed by time
label (string) – Label to use in the legend
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure with a single axes is used.
- Returns
ax (matplotlib pyplot axes)
-
mhkit.river.graphics.
plot_velocity_duration_curve
(V, F, label=None, ax=None)[source]¶ Plots velocity vs exceedance probability as a Velocity Duration Curve (VDC)
- Parameters
V (array-like) – Velocity [m/s] indexed by time
F (array-like) – Exceedance probability [unitless] indexed by time
label (string) – Label to use in the legend
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure with a single axes is used.
- Returns
ax (matplotlib pyplot axes)
-
mhkit.river.graphics.
plot_velocity_vs_power
(V, P, polynomial_coeff=None, label=None, ax=None)[source]¶ Plots velocity vs power data along with the polynomial fit
- Parameters
V (pandas Series) – Velocity [m/s] indexed by time
P (pandas Series) – Power [W] indexed by time
polynomial_coeff (numpy polynomial) – Polynomial coefficients, which can be computed using river.resource.polynomial_fit. If None, then the polynomial fit is not included int the plot.
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure with a single axes is used.
- Returns
ax (matplotlib pyplot axes)
Note
The names of the functions below are of the convention path.path.path.function. Only the function name is used when calling the function in MATLAB. For example, to call on “mhkit.river.io.request_usgs_data” simply use request_usgs_data().
Tidal Module¶
The tidal module contains a set of functions to calculate quantities of interest for tidal energy converters.
IO¶
The io
submodule contains the following functions to
load USGS Discharge data into structures.
Functions |
Description |
|---|---|
read_noaa_json |
Returns site structure from a json saved from the request_noaa_data function |
request_noaa_data |
Loads NOAA current data directly from https://tidesandcurrents.noaa.gov/api/ using a GET request into a structure |
-
mhkit.tidal.io.
read_noaa_json
(filename)[source]¶ Returns site DataFrame and metadata from a json saved from the request_noaa_data :param filename: filename with path of json file to load :type filename: string
- Returns
data (DataFrame) – Timeseries Site data of direction and speed
metadata (dictionary) – Site metadata
-
mhkit.tidal.io.
request_noaa_data
(station, parameter, start_date, end_date, proxy=None, write_json=None)[source]¶ Loads NOAA current data directly from https://tidesandcurrents.noaa.gov/api/ using a get request into a pandas DataFrame. NOAA sets max of 31 days between start and end date. See https://co-ops.nos.noaa.gov/api/ for options. All times are reported as GMT and metric units are returned for data.
The request URL prints to the screen.
- Parameters
station (str) – NOAA current station number (e.g. ‘cp0101’)
parameter (str) – NOAA paramter (e.g. ‘’ for Discharge, cubic feet per second)
start_date (str) – Start date in the format yyyyMMdd
end_date (str) – End date in the format yyyyMMdd
proxy (dict or None) – To request data from behind a firewall, define a dictionary of proxy settings, for example {“http”: ‘localhost:8080’}
write_json (str or None) – Name of json file to write data
- Returns
data (pandas DataFrame) – Data indexed by datetime with columns named according to the parameter’s variable description
Resource¶
The resource
submodule uses discharge data to compute
exeedance probability, velocity, and power. The module also contains functions
to compute the Froude number and to fit a polynomial to a series of points.
The polynomial is used to estimate the relationship between discharge and velocity
or velocity and power at an individual turbine.
Functions |
Description |
|---|---|
principal_flow_direction |
Calculates the principal flow directions of current data |
Froude_number |
Calculate the Froude Number of the river, channel or duct flow, to check subcritical flow assumption (if Fr <1). |
exceedance_probability |
Calculates the exceedance probability |
-
mhkit.tidal.resource.
principal_flow_directions
(directions, width_dir)[source]¶ Calculates principal flow directions for ebb and flood cycles
The weighted average (over the working velocity range of the TEC) should be considered to be the principal direction of the current, and should be used for both the ebb and flood cycles to determine the TEC optimum orientation.
- Parameters
directions (pd.Series or numpy array) – Directions in degrees with 0 degrees specified as true north
width_dir (float) – Width of directional bins for histogram in degrees
- Returns
ebb (float) – Principal ebb direction in degrees
flood (float) – Principal flood direction in degrees
Device¶
The device
submodule contains functions to compute equivalent diameter
and capture area for circular, ducted, rectangular, adn multiple circular devices.
A circular device is a vertical axis water turbine (VAWT). A
rectangular device is a horizontal axis water turbine. A ducted device
is an enclosed VAWT. A multiple-circular devices is a device with
multiple VAWTs per device.
Functions |
Description |
|---|---|
circular |
Calculates the equivalent diameter and projected capture area of a circular turbine |
ducted |
Calculates the equivalent diameter and projected capture area of a ducted turbine |
multiple_circular |
Calculates the equivalent diameter and projected capture area of a multiple circular turbine |
rectangular |
Calculates the equivalent diameter and projected capture area of a retangular turbine |
-
mhkit.river.device.
circular
(diameter)[source] Calculates the equivalent diameter and projected capture area of a circular turbine
- Parameters
diameter (int/float) – Turbine diameter [m]
- Returns
equivalent_diameter (float) – Equivalent diameter [m]
projected_capture_area (float) – Projected capture area [m^2]
-
mhkit.river.device.
ducted
(duct_diameter)[source] Calculates the equivalent diameter and projected capture area of a ducted turbine
- Parameters
duct_diameter (int/float) – Duct diameter [m]
- Returns
equivalent_diameter (float) – Equivalent diameter [m]
projected_capture_area (float) – Projected capture area [m^2]
-
mhkit.river.device.
multiple_circular
(diameters)[source] Calculates the equivalent diameter and projected capture area of a multiple circular turbine
- Parameters
diameters (list) – List of device diameters [m]
- Returns
equivalent_diameter (float) – Equivalent diameter [m]
projected_capture_area (float) – Projected capture area [m^2]
-
mhkit.river.device.
rectangular
(h, w)[source] Calculates the equivalent diameter and projected capture area of a retangular turbine
- Parameters
h (int/float) – Turbine height [m]
w (int/float) – Turbine width [m]
- Returns
equivalent_diameter (float) – Equivalent diameter [m]
projected_capture_area (float) – Projected capture area [m^2]
Note: Tidal device functions are the same as the River device functions
Graphics¶
The graphics
submodule contains functions to plot river data and related metrics.
The functions are designed to work in parallel with the resource
submodule.
Functions |
Description |
|---|---|
plot_velocity_duration_curve |
Plots velocity vs exceedance probability as a Flow Duration Curve (FDC) |
plot_rose |
Creates a polar histogram. Direction angles from binned histogram must be specified such that 0 degrees is north. |
plot_joint_probability_distribution |
Creates a polar histogram. Direction angles from binned histogram must be specified such that 0 is north. |
plot_current_timeseries |
Returns a plot of velocity from an array of direction and speed data in the direction of the supplied principal_direction. |
-
mhkit.tidal.graphics.
plot_current_timeseries
(directions, speeds, principal_direction, label=None, ax=None)[source]¶ Returns a plot of velocity from an array of direction and speed data in the direction of the supplied principal_direction.
- Parameters
direction (array like) – Time-series of directions [degrees]
speed (array like) – Time-series of speeds [m/s]
principal_direction (float) – Direction to compute the velocity in [degrees]
label (string) – Label to use in the legend
ax (matplotlib axes object) – Axes for plotting. If None, then a new figure with a single axes is used.
- Returns
ax (figure) – Time-series plot of current-speed velocity
-
mhkit.tidal.graphics.
plot_joint_probability_distribution
(directions, velocities, width_dir, width_vel, metadata=None, flood=None, ebb=None)[source]¶ Creates a polar histogram. Direction angles from binned histogram must be specified such that 0 is north.
- Parameters
directions (array like) – Directions in degrees with 0 degrees specified as true north
velocities (array like) – Velocities in m/s
width_dir (float) – Width of directional bins for histogram in degrees
width_vel (float) – Width of velocity bins for histogram in m/s
metadata (dictonary) – If provided needs keys [‘name’, ‘Lat’, ‘Lon’] for plot title and information box on plot
flood (float) – Direction in degrees added to theta ticks
ebb (float) – Direction in degrees added to theta ticks
- Returns
ax (figure) – Joint probability distribution
-
mhkit.tidal.graphics.
plot_rose
(directions, velocities, width_dir, width_vel, metadata=None, flood=None, ebb=None)[source]¶ Creates a polar histogram. Direction angles from binned histogram must be specified such that 0 degrees is north.
- Parameters
directions (array like) – Directions in degrees with 0 degrees specified as true north
velocities (array like) – Velocities in m/s
width_dir (float) – Width of directional bins for histogram in degrees
width_vel (float) – Width of velocity bins for histogram in m/s
metadata (dictonary) – If provided needs keys [‘name’, ‘lat’, ‘lon’] for plot title and information box on plot
flood (float) – Direction in degrees added to theta ticks
ebb (float) – Direction in degrees added to theta ticks
- Returns
ax (figure) – Water current rose plot
Note
The names of the functions below are of the convention path.path.path.function. Only the function name is used when calling the function in MATLAB. For example, to call on “mhkit.tidal.io.request_noaa_data” simply use request_noaa_data().


#include <btConvexHullComputer.h>
Definition at line 30 of file btConvexHullComputer.h.
◆ getNextEdgeOfFace()
| const Edge* btConvexHullComputer::Edge::getNextEdgeOfFace |
( |
| ) |
const |
|
inline |
◆ getNextEdgeOfVertex()
| const Edge* btConvexHullComputer::Edge::getNextEdgeOfVertex |
( |
| ) |
const |
|
inline |
◆ getReverseEdge()
| const Edge* btConvexHullComputer::Edge::getReverseEdge |
( |
| ) |
const |
|
inline |
◆ getSourceVertex()
| int btConvexHullComputer::Edge::getSourceVertex |
( |
| ) |
const |
|
inline |
◆ getTargetVertex()
| int btConvexHullComputer::Edge::getTargetVertex |
( |
| ) |
const |
|
inline |
◆ btConvexHullComputer
◆ next
| int btConvexHullComputer::Edge::next |
|
private |
◆ reverse
| int btConvexHullComputer::Edge::reverse |
|
private |
◆ targetVertex
| int btConvexHullComputer::Edge::targetVertex |
|
private |
The documentation for this class was generated from the following file:


This blog post about creating your own vagrant base boxes from an existing Virtual Box VM .Though the official vagrant site already speaks about creating linux base boxes, here are some basic steps and reqirement that will help you creating both windows and linux (ubuntu,centos) base boxes. This blogpost will include the steps that I used to create a ubuntu and a windows 7 base box in one of my personal projects.
1.We will be using vagrant-windows for creating the windows base box.We will require to install the below two gems:
$gem install vagrant-windows
$gem install winrm
2.Install windows 7 on your virtual box VM.Make sure you enable network type as NAT.
3.Enable WinRM with basic auth.Login as admin and run the following commands from cmd.
winrm quickconfig -q
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="512"}
winrm set winrm/config @{MaxTimeoutms="1800000"}
winrm set winrm/config/service @{AllowUnencrypted="true"}
winrm set winrm/config/service/auth @{Basic="true"}
4.In order to share folders you must install the “Guest Additions” from within Virtual Box:
Select the windows VM from Virtual Box ui.From the Virtual Box menu go to:
"Devices"->"CD/DVD Devices"->"Remove disk from virtual drive"
"Devices" -> "Install Guest Additions"
5.If you will be using Chef to manage the configuration then you can add this as part of the base image: Install the Windows Chef Client from:
http://wiki.opscode.com/display/chef/Installing+Chef+Client+on+Windows
6.Disable the below services in the windows VM:
*UAC (type UAC in windows explorer)
*Complex passwords.(from explorere: gpedit.msc; Computer Configuration >windows settings >security settings > Password Policy > Password Must Meet Complexity Requirement > Disabled)
7.Create a local admin account with username/password as vagrant/vagrant (set password to not expire and uncheck must change at next login).
8.Now the base box is ready for packaging.
$mkdir vagrant_repo
$vagrant init
$vagrant package --base <name of the virtual box vm> --output windows.box
9.Add the new base box.
$vagrant box add windows-7 ../vagrant_repo/windows.box
$mkdir windows
$cd windows
$vagrant init ## This will create a Vagrantfile in that directory
$vi Vagrantfile
## Add the below line in your Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant::Config.run do |config|
config.vm.define :win1 do |win1_config|
win1_config.vm.guest = :windows
win1_config.vm.box = "windows-7"
win1_config.windows.halt_timeout = 15
win1_config.winrm.max_tries = 20
win1_config.vm.forward_port 3389, 3390, :name => "rdp", :auto => true
win1_config.vm.forward_port 5985, 5985, :name => "winrm", :auto => true
$vagrant up
##For latest version of Vagrant(1.5 and latter) Please find the below configuration for winrm:
config.vm.define :win1 do |win1_config|
win1_config.vm.box = "win7_enVL"
win1_config.vm.guest = :windows
win1_config.windows.halt_timeout = 15
win1_config.winrm.max_tries = 20
win1_config.vm.communicator = "winrm"
win1_config.vm.network :forwarded_port, guest: 3389, host: 3389
win1_config.vm.network :forwarded_port, guest: 5985, host: 5985
So your windows vm is now ready.Lets move on to Linux Base box creation
1.Create new machine in Virtual Box.
2.Keep the networking type as nat.
3.Install Ubuntu 12.10 on it.The ISO can be found @:
http://www.ubuntu.com/download
4.Create a user for vagrant.For ease of distribution keep the username/password as vagrant.
5.Enable ssh_key_base authentication for the VM by copying your ssh public key to the vagrant users home directory .This can be done as below:
$echo > id_rsa.pub /home/vagrant/.ssh/authorized_keys
$chmod –R 700 .ssh
$chmod 644 .ssh/authorized_keys
6.Edit the sudoers file as below:
$visudo
##comment out the line below:
Defaults requiretty
##Add the below lines:
$vagrant ALL=(ALL:ALL) ALL
$vagrant ALL=NOPASSWD: ALL
7.Install Virtual Box Guest Additions
http://www.virtualbox.org/manual/ch04.html#idp12039536
8.Once the above steps are complete proceed with packaging the box as below,
$mkdir vagrant_repo
$cd vagrant_repo
$vagrant init ## This will create a Vagrantfile which will serve as the default vagrantfile.
##copy the id_rsa into the vagrant_repo directory
$vagrant package --base <name of the virtual box vm> --output ubuntu.box --Vagrantfile Vagrantfile --include id_rsa
9.This will create a vagrant base box ubuntu.box in the vagrant_repo directory.
10.Add the Vagrant box to your project:
$mkdir my_project
$cd my_project
$vagrant box add ubuntu ~/vagrant_repo/ubuntu.box
$vagrant init
##Add the below lines in your Vagrantfile
config.vm.define :vm1 do |vm1_config|
vm1_config.vm.box = "ubuntu"
$vagrant up
Thus the ubuntu base box is created and added to a project.


{% extends "base.html" %} {% block stylesheet %} {% endblock %} {% block javascript %} {% endblock %} {% block content %}
We can give your company superpowers to do things that they never thought possible. Let us delight your customers and empower your needs...through pure data analytics.
{#Yes that's right, you thought it was the stuff of dreams, but even bananas can be#} {# bioengineered.
#}精彩纷呈,......Instead of focusing on content creation and hard work, we have learned how to master the art of doing nothing by providing massive amounts of whitespace and generic content that can seem massive, monolithic and worth your attention 精彩纷呈,......Instead of focusing on content creation and hard work, we have learned how to master the art of doing nothing by providing massive amounts of whitespace and generic content that can seem massive, monolithic and worth your attention精彩纷呈,......Instead of focusing on content creation and hard work, we have learned how to master the art of doing nothing by providing massive amounts of whitespace and generic content that can seem massive, monolithic and worth your attention 精彩纷呈,......Instead of focusing on content creation and hard work, we have learned how to master the art of doing nothing by providing massive amounts of whitespace and generic content that can seem massive, monolithic and worth your attention
我的珍藏精品 精彩纷呈,......Instead of focusing on content creation and hard work, we have learned how to master the art of doing nothing by providing massive amounts of whitespace and generic content that can seem massive, monolithic and worth your attention


Food Depot
Alaskan/Husky Mix
Male
2 Years Old
70 Pounds
Woodbury
Another shelter was caring for me before I came to Animal Humane Society to find a home.
Affectionate dogs like me are cuddly and love snuggling and giving kisses. I might be a little shy or bashful as I adapt to a new environment, but that should be easy in a home with moderate activity.
I love to be busy, both physically and mentally. I'll enjoy seeing and doing things with my new family, and prefer an active household. Energetic dogs like me need a companion who can provide adequate mental stimulation and exercise, such as running, hiking, or playing Frisbee.


Join
Dimension is open to anyone who wants to be involved in our community, all we ask is that you follow the RULES. If you accept them then joining is easy:
All you'll need to provide is the following bits of information:
Dimension is open to anyone who wants to be involved in our community, all we ask is that you follow the RULES. If you accept them then joining is easy:
All you'll need to provide is the following bits of information:


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
siu - Chainmakers05-May-19 12:53 PM
Dont forget to vote for CHAINMAKERS!
1
mrlynch05-May-19 12:53 PM
or Pirate
siu - Chainmakers05-May-19 12:54 PM
Pirate is already winning
in multiple regfions
Chainmakers needs a bump
2
mrlynch05-May-19 12:54 PM
still a long way to go
siu - Chainmakers05-May-19 12:54 PM
only 9 days to go
mrlynch05-May-19 12:55 PM
i heard last day is the big one
siu - Chainmakers05-May-19 12:55 PM
yeah
SHossain05-May-19 12:55 PM
and, don't forget to vote me as well RT2j45r11JeJEvR426P48THDL3DgmtrDNA
1
siu - Chainmakers05-May-19 12:55 PM
millions of votes get thrown the last day
mrlynch05-May-19 12:55 PM
we only have 14.25% votes cast
Kitchen Table05-May-19 12:58 PM
Last day will be big because the whales might have more than one person they want to win. Don't want to use your vote on someone that could have won without it your vote when the other lose because they didn't get your vote.
Markus05-May-19 01:26 PM
Would of been better if there was a rule that one person/team can only have 1 node
1
peddycb05-May-19 01:32 PM
offer: 500 DEX for 9000 REVS =contact private message
1
NutellaLicka05-May-19 02:34 PM
Markus maybe that will be the case in the future, but for now, I believe the 1 per region works okay.
If you dont want to vote in people/teams that already have a node, then feel free. Have a think about the time/effort/commitment that they have shown over the year though. Maybe they deserve another node to support their income for all their hard work.
Otherwise you could see what "new blood" is out there and see what they could bring to the ecosystem :)
1
Strob05-May-19 03:08 PM
And if you want "new blood" you could vote for me!
RRREEicQXX6fkmpqF3rTSsFCWx4b9fYUk7
(edited)
Cryptoon05-May-19 03:13 PM
So far my picks are still on elected spots so I’m happy
cascrypto05-May-19 03:45 PM
I'm supporting NN that focus on chips @sui you will get some for your beautiful graphics more of that please
SHossain05-May-19 03:47 PM
I'm the only CHIPS miner who is keeping the chain alive
cascrypto05-May-19 03:49 PM
Bam votes for you
SHossain05-May-19 03:49 PM
this is only the small bit i'm doing for CHIPS. there are other candidates who are offerinng different things for CHIPS as well.
cascrypto05-May-19 03:49 PM
I know I will spread my love ;0)
1
hastrup05-May-19 05:07 PM
WTB 50 JUMBLR offer 3 KMD each
WTB 380 BOTS offer 2 KMD each
i also have offer on barterlly
Deleted User05-May-19 05:47 PM
am a chips holder too ! :p
1
jorian05-May-19 05:48 PM
no, you're a bagholder
1
Hollowman900005-May-19 06:25 PM
Spicy
Vertigo05-May-19 06:36 PM
Looks like ADA is going to heck
Markus05-May-19 06:38 PM
time for EOS to disappear aswell
SHossain05-May-19 07:32 PM
no, you're a bagholder :troll:@jorian what would Yassin be? Sackholder?
Hollowman900005-May-19 07:37 PM
What happened with ada @Vertigo
Vertigo05-May-19 07:38 PM
They are super delayed with Shelley been dumping for weeks now.
Hollowman900005-May-19 07:39 PM
What’s their selling point anyway?
Aren’t they already obsolete
Vertigo05-May-19 07:40 PM
Probably by now they are.
LocoMB05-May-19 07:42 PM
diva bitch Charles 'I_AM_A_FRICKING_GENIUS' Hoskinson didn't get his pink crab truffles in time, so he threw a tantrum and locked himself in the bathroom-
team hasn't been able to talk him into coming out again and continuing work
... team did manage to deliver his pink crab truffles, but he changed his mind and wants crisped jupiter antlers instead.. so, no such luck(edited)
binance bots seem to have gone into accumulation mode
siu - Chainmakers06-May-19 10:13 AM
The bots seem very convinced that kmd should be a stable coin
jl777c06-May-19 10:17 AM
throughout this BTC turbulence, KMD is if anything rising the CMC ranks, at least a little bit
and that is despite a constant stream of new projects that appear with high marketcaps
Tek06-May-19 10:20 AM
and despite the big KMD early birds basically selling their interests everyday
nice.
jl777c06-May-19 10:24 AM
if you think big KMD holders are selling at these prices, it seems you dont understand many are holding from BTCD days and you need to compound it to get the 5.1%
Tek06-May-19 10:25 AM
even better then.
a coin with interests usually doesn't perform this decent. take a look at ark
i dont think 10% rewards are enough reason for a coin to go down
Tek06-May-19 10:27 AM
Yeah I do, because of the name and bc its on its own address with an ERC20 I stored away ( RLC ) , might need the ETh for gas costs
jl777c06-May-19 10:27 AM
maybe ark isnt doing as much as komodo?
Tek06-May-19 10:27 AM
I'm pretty sure they aren't
jl777c06-May-19 10:27 AM
many people seem to think komodo isnt doing so well, but just to keep up with all the new projects with 50 mil+ funding and not dropping down the CMC rankings, that is not easy
2
Hollowman900006-May-19 10:27 AM
I thought ark was that shitty houseboat coin?
jl777c06-May-19 10:28 AM
look at some of the past top 50 coins, like peercoin, counterparty, blackcoin
and it doesnt matter if PoW, PoS, 10% rewards, etc.
this is a very crowded market
Tek06-May-19 10:28 AM
its just that if there is no buyers and you have 10% rewards
then it will dump hard cause most of the time rewards get sold
pretty sure that there's ARK holders that bought the ICO ( 1 dollar cent )


| eqscplot {MASS} | R Documentation |
Version of a scatterplot with scales chosen to be equal on both axes, that is 1cm represents the same units on each
eqscplot(x, y, ratio = 1, tol = 0.04, uin, ...)
x |
vector of x values, or a 2-column matrix, or a list with components
|
y |
vector of y values |
ratio |
desired ratio of units on the axes. Units on the y axis are drawn at
|
tol |
proportion of white space at the margins of plot |
uin |
desired values for the units-per-inch parameter. If of length 1, the desired units per inch on the x axis. |
... |
further arguments for |
Limits for the x and y axes are chosen so that they include the
data. One of the sets of limits is then stretched from the midpoint to
make the units in the ratio given by ratio
. Finally both are
stretched by 1 + tol
to move points away from the axes, and the
points plotted.
invisibly, the values of uin
used for the plot.
performs the plot.
Arguments ratio
and uin
were suggested by Bill Dunlap.
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Fourth edition. Springer.


Learn more
Play
Home
(current)
Challenge
How it works


Create and share car designs for Rocket League. Built by klay.
Rocket Loadout is not affiliated with Psyonix, Inc. All models and textures belong to Psyonix, Inc.
View source on GitHub.
Hitbox data provided by Trelgne.


Dalian Commodities Exchange (Code: DCE)
Agriculture and commodities futures from DCE, with history spanning almost a decade for select futures.


--- permalink: /trading/technical%20analysis/Trading-Bitcoin-post-Segwit-Activation-and-prior-to-Segwit2x-Hardfork-in-November/ ---
This page has moved to a https://oliodigest.com/trading/technical-analysis/Trading-Bitcoin-post-Segwit-Activation-and-prior-to-Segwit2x-Hardfork-in-November/.


---
title: Django and React Articles
description: How to build SaaS application with Django and React from scratch Contact us for any questions by filling a form or email.
---
{% include list-posts.html posts=paginator.posts %}
{% if paginator.total_pages > 1 %}
{% if paginator.previous_page %}
← Newer posts
{% endif %}
{{ paginator.page }} of {{ paginator.total_pages }}
{% if paginator.next_page %}
Older posts →
{% endif %}


Menu
Find Recipe
My Recipes
Add recipe
Random Recipe
Settings
=
Add Recipe
Enter the recipes ingredients...
+
Enter any optional ingredients...
+
Enter the recipes details...
Recipe Type
None
Vegetarian
Vegan
Gluten Free
ADD RECIPE
Currently in All Recipes DB:


reD3 [Reusable D3 Charts]
Day/Hour HeatMap
Demo for Heatmap with time format option (24 Hours) and click event on rect.


A template to check supplies on OKIDATA printers (you’ll need the OKIDATA MIB).
It provides items and triggers for toner, drum, fuser and belt levels as well as a simple paper count.
I’ve been using it with an OKI C5950 and an OKI C610 printer.
You’ll need to add a ‘zabbix’ snmp read community on your printer (from the Admin webpage choose Network->SNMP->Settings->Step2) or change the community to ‘public’ within the template.
Triggers will be activated at 11% for toner and 10% for drums, belt and fuser unit, which should be ample time to restack on supplies unless you’re really printing loads of pages.
EDIT: 2017-06-01 Updated this for adjusted trigger levels on toner and drums as the chosen ones were too low.
Korbinian Grote
There are no macros links in this template.
There are no template links in this template.
There are no discovery rules in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Belt max level |
-
 | SNMP agent |
usageBeltMaxLevel.1
Update: 300
 |
| Fuser max level |
-
 | SNMP agent |
usageFuserMaxLevel.1
Update: 300
 |
| Magenta Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.3
Update: 300
 |
| Cyan Drum level % |
-
 | Calculated |
cyanDrumLevelPercCalc
Update: 300
 |
| Black Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.1
Update: 300
 |
| Black Drum level % |
-
 | Calculated |
blackDrumLevelPercCalc
Update: 300
 |
| Cyan Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.2
Update: 300
 |
| Yellow Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.4
Update: 300
 |
| Black Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.1
Update: 300
 |
| Magenta Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.3
Update: 300
 |
| Total pages printed |
-
 | SNMP agent |
usagePrinterUnitCounter.1
Update: 300
 |
| Yellow Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.4
Update: 300
 |
| Black Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.1
Update: 300
 |
| Fuser count |
-
 | SNMP agent |
usageFuserCurrentLevel.1
Update: 300
 |
| Yellow Drum level % |
-
 | Calculated |
yellowDrumLevelPercCalc
Update: 300
 |
| Cyan Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.2
Update: 300
 |
| Belt count |
-
 | SNMP agent |
usageBeltCurrentLevel.1
Update: 300
 |
| Magenta Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.3
Update: 300
 |
| Cyan Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.2
Update: 300
 |
| Magenta Drum level % |
-
 | Calculated |
magentaDrumLevelPercCalc
Update: 300
 |
| Belt level % |
-
 | Calculated |
BeltLevelPercCalc
Update: 300
 |
| Fuser level % |
-
 | Calculated |
FuserLevelPercCalc
Update: 300
 |
| Yellow Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.4
Update: 300
 |
There are no triggers in this template.
A template to check supplies on OKIDATA printers (you’ll need the OKIDATA MIB).
It provides items and triggers for toner, drum, fuser and belt levels as well as a simple paper count.
I’ve been using it with an OKI C5950 and an OKI C610 printer.
You’ll need to add a ‘zabbix’ snmp read community on your printer (from the Admin webpage choose Network->SNMP->Settings->Step2) or change the community to ‘public’ within the template.
Triggers will be activated at 11% for toner and 10% for drums, belt and fuser unit, which should be ample time to restack on supplies unless you’re really printing loads of pages.
EDIT: 2017-06-01 Updated this for adjusted trigger levels on toner and drums as the chosen ones were too low.
Korbinian Grote
There are no macros links in this template.
There are no template links in this template.
There are no discovery rules in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Fuser level % |
-
 | Calculated |
FuserLevelPercCalc
Update: 300
 |
| Cyan Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.2
Update: 300
 |
| Black Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.1
Update: 300
 |
| Belt level % |
-
 | Calculated |
BeltLevelPercCalc
Update: 300
 |
| Cyan Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.2
Update: 300
 |
| Yellow Drum level % |
-
 | Calculated |
yellowDrumLevelPercCalc
Update: 300
 |
| Magenta Drum level % |
-
 | Calculated |
magentaDrumLevelPercCalc
Update: 300
 |
| Yellow Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.4
Update: 300
 |
| Fuser max level |
-
 | SNMP agent |
usageFuserMaxLevel.1
Update: 300
 |
| Black Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.1
Update: 300
 |
| Belt count |
-
 | SNMP agent |
usageBeltCurrentLevel.1
Update: 300
 |
| Magenta Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.3
Update: 300
 |
| Total pages printed |
-
 | SNMP agent |
usagePrinterUnitCounter.1
Update: 300
 |
| Yellow Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.4
Update: 300
 |
| Magenta Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.3
Update: 300
 |
| Fuser count |
-
 | SNMP agent |
usageFuserCurrentLevel.1
Update: 300
 |
| Cyan Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.2
Update: 300
 |
| Black Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.1
Update: 300
 |
| Belt max level |
-
 | SNMP agent |
usageBeltMaxLevel.1
Update: 300
 |
| Black Drum level % |
-
 | Calculated |
blackDrumLevelPercCalc
Update: 300
 |
| Magenta Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.3
Update: 300
 |
| Yellow Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.4
Update: 300
 |
| Cyan Drum level % |
-
 | Calculated |
cyanDrumLevelPercCalc
Update: 300
 |
There are no triggers in this template.
A template to check supplies on OKIDATA printers (you’ll need the OKIDATA MIB).
It provides items and triggers for toner, drum, fuser and belt levels as well as a simple paper count.
I’ve been using it with an OKI C5950 and an OKI C610 printer.
You’ll need to add a ‘zabbix’ snmp read community on your printer (from the Admin webpage choose Network->SNMP->Settings->Step2) or change the community to ‘public’ within the template.
Triggers will be activated at 11% for toner and 10% for drums, belt and fuser unit, which should be ample time to restack on supplies unless you’re really printing loads of pages.
EDIT: 2017-06-01 Updated this for adjusted trigger levels on toner and drums as the chosen ones were too low.
Korbinian Grote
There are no macros links in this template.
There are no template links in this template.
There are no discovery rules in this template.
| Name | Description | Type | Key and additional info |
|---|---|---|---|
| Fuser level % |
-
 | Calculated |
FuserLevelPercCalc
Update: 300
 |
| Cyan Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.2
Update: 300
 |
| Black Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.1
Update: 300
 |
| Belt level % |
-
 | Calculated |
BeltLevelPercCalc
Update: 300
 |
| Cyan Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.2
Update: 300
 |
| Yellow Drum level % |
-
 | Calculated |
yellowDrumLevelPercCalc
Update: 300
 |
| Magenta Drum level % |
-
 | Calculated |
magentaDrumLevelPercCalc
Update: 300
 |
| Yellow Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.4
Update: 300
 |
| Fuser max level |
-
 | SNMP agent |
usageFuserMaxLevel.1
Update: 300
 |
| Black Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.1
Update: 300
 |
| Belt count |
-
 | SNMP agent |
usageBeltCurrentLevel.1
Update: 300
 |
| Magenta Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.3
Update: 300
 |
| Total pages printed |
-
 | SNMP agent |
usagePrinterUnitCounter.1
Update: 300
 |
| Yellow Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.4
Update: 300
 |
| Magenta Drum max |
-
 | SNMP agent |
usageDrumMaxLevel.3
Update: 300
 |
| Fuser count |
-
 | SNMP agent |
usageFuserCurrentLevel.1
Update: 300
 |
| Cyan Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.2
Update: 300
 |
| Black Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.1
Update: 300
 |
| Belt max level |
-
 | SNMP agent |
usageBeltMaxLevel.1
Update: 300
 |
| Black Drum level % |
-
 | Calculated |
blackDrumLevelPercCalc
Update: 300
 |
| Magenta Toner Level % |
-
 | SNMP agent |
usageTonerCurrentLevel.3
Update: 300
 |
| Yellow Drum count |
-
 | SNMP agent |
usageDrumCurrentLevel.4
Update: 300
 |
| Cyan Drum level % |
-
 | Calculated |
cyanDrumLevelPercCalc
Update: 300
 |
There are no triggers in this template.


From:Kleb Steve To:Geaccone Tracy ; Studzinski Betty Sent:2017-01-11T04:37:37.0000000Z Subject:FW: TW Red Rock Cashflow
FYI
-----Original Message-----
From: Kalmus, Steve
Sent: Friday, September 14, 2001 3:43 PM
To: Kleb, Steve
Cc: Eisenstein, Arnold L.; Hubbard, Dave
Subject: TW Red Rock Cashflow
Steve,
Here is my updated cashflow for the TW Red Rock project. Please use this for your year end projections.
Thanks,
Steve Kalmus
***********
EDRM Enron Email Data Set has been produced in EML, PST and NSF format by ZL Technologies, Inc. This Data Set is licensed under a Creative Commons Attribution 3.0 United States License <http://creativecommons.org/licenses/by/3.0/us/> . To provide attribution, please cite to "ZL Technologies, Inc. (http://www.zlti.com)."
***********
California


>>
<<
Usr
Pri
JfC
LJ
Phr
Dic
Voc
!:
Help
Primer
Verb definition
The art of programming lies not so much in using the primitives, as in defining your own verbs, tailored to your requirements. In defining your own verbs you are extending the language to build an application that solves a particular set of problems.
Let's assume that the problem is to convert temperatures between Fahrenheit and centigrade. You need to define a verb that does that.
The following is a definition of the verb centigrade that will convert its argument from a Fahrenheit value to a centigrade value.
centigrade =. 3 : 0
t1 =. y - 32
t2 =. t1 * 5
t3 =. t2 % 9
)
At this point you want to do something that works, rather than deal with problems arising from typos, so transcribe it carefully.
In the ijx window enter the first line:
centigrade =. 3 : 0
Type it exactly as shown. There must be a blank between the 3 and the : . The 3 indicates that you are defining a verb and the 0 indicates that the definition is in the subsequent input lines.
After you enter the above line the caret is at the left margin and has not been indented the three spaces as it normally is. This indicates that the system is waiting for you to enter the rest of the definition.
Type in the lines following the definition of centigrade as shown. They are at the left margin, and so look like they might have been displayed by the system, but in fact they are your entries of the lines required to define the verb.
The final line that contains just the ) ends this special definition input mode. After you enter this final line, the system again indents the three spaces indicating that it is ready to execute a sentence.
If you entered the definition correctly, you should be able to experiment with your new verb.
centigrade 32
0
centigrade _40
_40
centigrade 212
100
Let's look at the definition to understand how it works. The y in the first sentence of the definition is the name of the argument of the verb. When you execute the verb with an argument the first line will subtract 32 from the argument and define t1. When the first line is finished, execution proceeds to the next line, which defines t2 as the result of t1 times 5. Execution proceeds to the next line and defines t3 as t2 divided by 9. There are no more lines, so the execution of the verb is finished. The result of the verb is the last result that was evaluated.
We used 3 : 0 to define the verb. The phrase verb define is equivalent and some find it easier to read. However, it hides information and we will use the 3 : 0 form.
centrigrade =. verb define
. . .
)
>>
<<
Usr
Pri
JfC
LJ
Phr
Dic
Voc
!:
Help
Primer


R Notes
Common R Stuff
Download and Install R Package
install.packages("XML", dependencies = TRUE)
Load a Module
library(XML)
Scrape an HTML Table
library(XML)
u = "http://en.wikipedia.org/wiki/World_population"
# function from XML library, downloads and parses URL for data in HTMLtables
tables = readHtmlTable(u)
names(tables)
tables[[2]]
R Tutorial
Basic R
# x is a vector with values 1 2 3 4 5
x <- 1:5
# create a function
square <- function(x) {
x^2
}
# call fuction with vector x
square(x)
: [1] 1 4 9 16 25
R help
getting help with ?
- type a ?rnorm, to pop open a manual Page on the R command rnorm
- or try ?boxplot to get a help page on the R boxplot function
- type a ?rnorm, to pop open a manual Page on the R command rnorm
- or try ?boxplot to get a help page on the R boxplot function
Using Famous Datasets
library(datasets)
data(faithful)
hist(faithful$waiting,breaks=25)
Reading Data into R from Files
dat <- read.table("thedata.txt", sep=":")
# space delimited, also first line is a header
dat2 <- read.table("thedata.txt", header=TRUE)
# csv
dat <- read.csv("thedata.csv")
print(dat)
Reading Data from STDIN
- To read data from STDIN, call the scan function with the file parameter left blank
- Enter a blank line or Ctrl D to end data input
> nums <- scan()
1: 75 48 61 48 150 49 57 39 27 51 46 50 62 51
15:
Read 14 items
Reading a Line of Space Separated Data into a vector
nums <- scan(textConnection("75 48 61 48 150 49 57 39 27 51 46 50 62 51 50 58 38 34 59 44 24 39 40 33 49 33 34 32 35 30 23 39 36 25 20 32 43 52 42 44 46 51 47 51 44 33 38"), sep=" ")
median(nums)
mean(nums)
deaths <- nums[-5]
mean(deaths)
median(deaths)
sd(deaths)
: [1] 44
: [1] 44.93617
: [1] 42.65217
: [1] 43.5
: [1] 11.48761
Generating a Histogram
# Data pasted from another document can be placed in a vector
# via the following composition of functions
# textConnection can also be used to read data from stdin
nums <- scan(textConnection("75 48 61 48 150 49 57 39 27 51 46 50 62 51 50 58 38 34 59 44 24 39 40 33 49 33 34 32 35 30 23 39 36 25 20 32 43 52 42 44 46 51 47 51 44 33 38"), sep=" ")
hist(nums, main="US Lightning Death's 1959-2005")
Trimmed Mean to the Rescue
library(datasets)
data(airmiles)
median(airmiles)
# holy right skewed!
mean(airmiles)
# same as median
mean(airmiles,trim=10)
# so its, the top 4% distorting the mean
mean(airmiles,trim=0.4)
#same as median
mean(airmiles,trim=0.5)
: [1] 6431
: [1] 10527.83
: [1] 6431
: [1] 7226.667
: [1] 6431
Drawing a Scatterplot with a Linear Regression line
library(Devore7)
plot(ex12.59)
my.reg <- lm (ex12.59$y ~ ex12.59$x)
abline(my.reg)
Putting 2 plots on 1 image
> par(mfrow=c(2,2))
> boxplot(my.p)
> boxplot(my.h)
Using Reduce and Map
Reduce(f=function,x=vector)
Reduce takes a vector of values, and a binary function and accumulates the values returned over the entire vector of values.
Map(f=function(x){..},x=vector)
Map takes a vector of values and a unary function, runs the function on each value and returns the vector of return values.
here’s how to combine them
This function returns the cumulative distribution function of P(x<4) of X~poisson(5).
Reduce("+",Map(function(u){exp(-5)*5^u/factorial(u)},0:3))
: [1] 0.2650259
ANOVA
SSTr - Sum of Square between Treatments
### my.100,m.125,m.150,m.175 are vectors we are analysing
length(m.100)*sum((m.100-mean(m.100))^2)+length(m.125)*sum((m.125-mean(m.125))^2) + length(m.150)*sum((m.150-mean(m.150))^2) + length(m.175)*sum((m.175-mean(m.175))^2)
SSE - Sum of Squares within Treatments
### b.1,b.2, b.3, b.4 are rows of values
### \Sigma (X_{ij} - X_{bar_dot})^2
m.SSE <- sum((b.1-mean(b.1))^2) + sum((b.2-mean(b.2))^2) + sum((b.3-mean(b.3))^2) + sum((b.4-mean(b.4))^2)


COVID-19 Situational Report - Sri Lanka
Instructions
e - Curfew Pass system - Sri Lanka
Sri Lanka Police
Forgot Password
Send reset link
Login
Create an account


This project is come from The Library of Babel.
"The Library of Babel" is a short story by Argentine author and librarian Jorge Luis Borges (1899–1986), conceiving of a universe in the form of a vast library containing all possible 410-page books of a certain format and character set.
The story was originally published in Spanish in Borges' 1941 collection of stories El jardín de senderos que se bifurcan (The Garden of Forking Paths). That entire book was, in turn, included within his much-reprinted Ficciones (1944). Two English-language translations appeared approximately simultaneously in 1962, one by James E. Irby in a diverse collection of Borges's works titled Labyrinths and the other by Anthony Kerrigan as part of a collaborative translation of the entirety of Ficciones.
You can read more in the Wikipedia.
This project is Open Source, this is mean you can freely contribute to the code!
Contribute to this project on GitHub


--- layout: post status: publish published: true title: "[Git] Ignoring files" author: display_name: hojunbaek login: hojunbaek email<EMAIL_ADDRESS>url: '' author_login: hojunbaek author_email<EMAIL_ADDRESS>wordpress_id: 658 wordpress_url: http://ezcocoa.com/?p=658 date: '2011-03-11 04:46:49 +0900' date_gmt: '2011-03-11 04:46:49 +0900' categories: - Repo tags: - git - repo - ignore comments: [] ---
// 각 폴더에 해당하는 무시파일
[sourcecode language="TEXT"]
.DS_Store
build
*.pbxuser
*.mode2v3
*.mode1v3
*.perspective
*.perspectivev3
[/sourcecode]
Global .gitignore
git config --global core.excludesfile ~/.gitignore_global
[sourcecode language="TEXT"]
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
*.a
*.dat
*.dep
*.hmap
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
# OS generated files #
######################
.DS_Store?
ehthumbs.db
Icon?
[/sourcecode]