Метод сопоставления CDFPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Метод сопоставления CDF

Сообщение Anonymous »

Добрый вечер!
Мне нужно применить подход сопоставления CDF к нормализованным (преобразует среднее значение временного ряда, дисперсию, асимметрию и эксцесс для приблизительной гармонизации эталонного временного ряда) данные дистанционного зондирования перед применением статистических индексов для проверки надежности и эффективности спутниковых оценок влажности почвы по сравнению с наземными измерениями. Я не знаю, как применить подход сопоставления CDF к наборам временных данных.
Большое спасибо за любую помощь.
Следующее Я сделал:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
import scipy
import math

# Lettura dei dati
data = pd.read_excel('Data.xlsx',sheet_name='l4')

data['Timestamp'] = pd.to_datetime(data['Timestamp'])
data.set_index('Timestamp', inplace=True)

def NormalizeData(value):
min_val=np.min(value)
max_val=np.max(value)
return (value - min_val)/(max_val - min_val)

P=data.P
Pn=NormalizeData(data.P)
SSM=data.SSM
SSMn=NormalizeData(data.SSM)

data= data.dropna()

Ref_data = NormalizeData(data.P)
Biased_data = NormalizeData(data.SSM)

# Funzione per calcolare la distribuzione cumulativa (CDF)

def prob_data(data):
data = data[~np.isnan(data)]
#sorted_data = np.sort(data)
n = len(data)
ret = np.arange(1, n + 1) / (n + 1)
return ret

# CDF Matching
Prob_ref = prob_data(Ref_data)
Prof_biased = prob_data(Biased_data)

# Calcolo del bias prima della correzione
bias = np.sum(Biased_data - Ref_data) / len(Biased_data)

#Interpolazione lineare 1-D
interp_func = interp1d(np.sort(Prof_biased), np.sort(Biased_data), fill_value="extrapolate")
Biased_interpolated = interp_func(np.sort(Prob_ref))

# Fit polinomiale
n = 5 # Grado del polinomio
p = np.polyfit(Biased_interpolated, np.sort(Ref_data) - Biased_interpolated, n)

# Correzione dei dati
Corrected_Data = np.polyval(p, Biased_data) + Biased_data

# Calcolo del bias dopo la correzione
bias_after = np.sum(Corrected_Data - Ref_data) / len(Corrected_Data)

# Plotting
plt.plot(np.sort(Ref_data), Prob_ref, 'k-', linewidth=1.5, label='Reference data')
plt.plot(np.sort(Biased_data), Prof_biased, 'k--', linewidth=1.5, label='Biased data')
plt.plot(np.sort(Corrected_Data), prob_data(Corrected_Data), 'k:', linewidth=1.5, label='Corrected data')

plt.xlabel('Time')
plt.ylabel('CDF')
plt.legend(loc='best')
plt.gcf().set_facecolor('white')
plt.savefig('CDF SSM PLOT.png', format='png',dpi=100)
plt.show()

data_correct=Corrected_Data.to_frame()
data_correct.reset_index(inplace=True)

date = data_correct['Timestamp']
data_correct['Timestamp']=pd.to_datetime(date)

data_correct = (data_correct.set_index('Timestamp').reindex(pd.date_range('2016-01-01','2021-12-31',freq='D')).rename_axis(['Date']).fillna('').reset_index())

data_correct.rename(columns={'SSM': 'SSM cdf'}, inplace=True)
data_correct['P'] = P.values
data_correct['Pn'] = Pn.values
data_correct['SSM'] = SSM.values
data_correct['SSMn'] =SSMn.values

data_correct.to_excel('L4_data.xlsx')


Подробнее здесь: https://stackoverflow.com/questions/787 ... g-approach
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема с установкой CDF с помощью pip: cl.exe не удалось со статусом выхода 2
    Гость » » в форуме C++
    0 Ответы
    65 Просмотры
    Последнее сообщение Гость
  • Как построить график cdf в matplotlib в Python?
    Anonymous » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Как построить эмпирический CDF (ECDF)
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Немного неправильное распределение по результатам выборки обратного преобразования CDF
    Гость » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Гость
  • CDF не достигает 1, но eCDF достигает
    Anonymous » » в форуме Python
    0 Ответы
    92 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»