Ejemplo n.º 1
0
    def __init__(self, x_data, y_data, paramters=None):
        self.log = logging.getLogger('RockPy.FITTING.log_normal')
        super(Log_Normal, self).__init__(x_data, y_data, paramters=None, log=self.log)
        self.log.info('FITTING\t log normal distribution to data')
        self.fit_x = np.linspace(min(self.x), max(self.x), 1000)
        self.parameters.add('B', value=0.01)
        self.parameters.add('E', value=1.0)
        self.parameters.add('G', value=0.5)

        ''' Fitting '''
        errfunc = lambda p, x, y: functions.log_normal(self.parameters, x) - y
        fitout = minimize(errfunc, self.parameters, args=(self.x, self.y))

        self.fit_y = functions.log_normal(self.parameters, self.fit_x)
Ejemplo n.º 2
0
# =============================================================================
# Import data
# =============================================================================
no2, nox, pm10, meteo, time = import_data.import_data()

# =============================================================================
# Pre-processing
# =============================================================================
no2 = np.array(no2).reshape(5, -1)

# Replace zeros with average
no2 = functions.replace_zero_with_average(no2)

# Log-normal transform
no2_transformed = functions.log_normal(no2)

# =============================================================================
# Configuration
# =============================================================================
time_test = np.arange('2014-03-11', '2014-03-12', dtype='datetime64[h]')

time_train = np.arange('2006-01-01', '2013-01-01', dtype='datetime64[h]')

index_test = np.arange(
    np.where(time == time_test[0])[0],
    np.where(time == time_test[-1])[0] + 1)
index_train = np.arange(
    np.where(time == time_train[0])[0],
    np.where(time == time_train[-1])[0] + 1)
# =============================================================================
# Import data
# =============================================================================
no2, nox, pm10, meteo, time = import_data.import_data()

# =============================================================================
# Pre-processing
# =============================================================================
pm10 = np.array(pm10).reshape(5, -1)
meteo = np.array(meteo).reshape(5, -1)

# Replace zeros with average
pm10 = functions.replace_zero_with_average(pm10)

# Log-normal transform
pm10_transformed = functions.log_normal(pm10)

# =============================================================================
# Configuration
# =============================================================================
time_test_output = np.arange('2014-03-15', '2014-03-16', dtype='datetime64[h]')
time_test_input = np.arange('2014-03-14', '2014-03-15', dtype='datetime64[h]')

time_train_output = np.arange('2006-01-02',
                              '2013-01-01',
                              dtype='datetime64[h]')
time_train_input = np.arange('2006-01-01', '2012-12-31', dtype='datetime64[h]')

index_test_output = np.arange(
    np.where(time == time_test_output[0])[0],
    np.where(time == time_test_output[-1])[0] + 1)
Ejemplo n.º 4
0
 def calc(self, x_value):
     out = functions.log_normal(self.parameters, x_value)
     return out