%% ёлегчпт ХрпиЭуещт ФхчбЯпх Чщсйкпэ Узмейбкпэ Рспфэрпх
% *ЦбЯдщн КхсйбкЯдзт* 
%
% ФмЮмб ГещгсбцЯбт РбнерйуфзмЯпх БйгбЯпх

%% ЕйубгщгЮ дедпмЭнщн
load simEvents.mat
who
evInfo

%% Брейкьнйуз иЭуещн уфп бсчеЯп evRand
plot(evRand(:,1),evRand(:,2),'*');
axis square
title('Рбсбфзспэменп чщсйкь узмейбкь рсьфхрп');

%% Псйумьт ресйпчЮт мелЭфзт, ухнфефбгмЭнет кпсхцюн кбй емвбдь
BoundBox = [0 100; 0 100]; % [xmin xmax; ymin ymax] 2 узмеЯб мьнп
CoordsD = boundbox2poly(BoundBox) % ухнфефбгмЭнет кпсхцюн рбсбллзлпгсЬммпх
plot(CoordsD(:,1),CoordsD(:,2),'*-');
axis([-10 110 -10 110]);
areaD = polyarea(CoordsD(:,1),CoordsD(:,2)) % емвбдьн рплхгюнпх

%% Бсйимьт ухмвЬнфщн кбй мЭуз Энфбуз
nEvents = size(evRand,1)  % бсйимьт гсбммюн фпх рЯнбкб
lambda = nEvents/areaD

%% РспупмпЯщуз рспфэрщн брь мйб дйесгбуЯб Poisson
nPatt2Sim = 500;     % бсйимьт рспфэрщн рпх иб рспупмпйщипэн
meanCount = nEvents; % мЭупт бсйимьт ухмвЬнфщн
% РспупчЮ: п бсйимьт бхфьт еЯнбй п мЭупт ьспт ухмвЬнфщн 
%          ьлщн (ьчй уе кЬие) фщн рспупмпйщмЭнщн рспфэрщн
seedNumber = 1234; % фхчбЯпт бсйимьт гйб ербнблзшймьфзфб
evSimPoiss = simpointscsr(CoordsD,meanCount,'poisson',nPatt2Sim,seedNumber);
whos evSimPoiss    % cell array
size(evSimPoiss)   % tosa kelia osa kai o arithmos promoiwmenwn protypwn
evSimPoiss(1:5)    % ta prwta 5 kelia
%evSimPoiss{1}      % stoixeia toy 1ou kelioy
%evSimPoiss{1}(:,2) % 2h sthlh toy pinaka poy brisketai sto 2o keli

%% Брейкьнйуз месйкюн (2) рспупмпйщмЭнщн рспфэрщн
figure
subplot(1,2,1)
plot(evSimPoiss{1}(:,1),evSimPoiss{1}(:,2),'*');
axis square
title('1o рспупмпйщмЭнп рсьфхрп');
subplot(1,2,2)
plot(evSimPoiss{30}(:,1),evSimPoiss{30}(:,2),'*');
axis square
title('30o рспупмпйщмЭнп рсьфхрп');

%% Рплэгщнп ме мз рбсбллзльгсбммп учЮмб
figure
disp(CoordsPoly)
plot(CoordsPoly(:,1),CoordsPoly(:,2),'k-');
axis square
title('Рплэгщнп рпх псЯжей фзн ресйпчЮ мелЭфзт');

%% РспупмпЯщуз рспфэрщн брь мйб дйесгбуЯб Poisson (рплэгщнп)
% РспупчЮ: {CoordsPoly} бнфЯ фпх CoordsPoly
%          фп деэфесп хрплпгЯжей фйт ухнфефбгмЭнет фпх ресйгегсбммЭнпх
%          рплхгюнпх рпх еЯнбй пй Ядйет ме фп CoordsD
evSimPoissPoly = simpointscsr({CoordsPoly},meanCount,'poisson',nPatt2Sim,seedNumber);
size(evSimPoissPoly)
evSimPoissPoly(1:5)

%% Брейкьнйуз месйкюн (2) рспупмпйщмЭнщн рспфэрщн (рплэгщнп)
figure
subplot(1,2,1)
plot(evSimPoissPoly{1}(:,1),evSimPoissPoly{1}(:,2),'*');
axis square
title('1o рспупмпйщмЭнп рсьфхрп');
subplot(1,2,2)
plot(evSimPoissPoly{30}(:,1),evSimPoissPoly{30}(:,2),'*');
axis square
title('30o рспупмпйщмЭнп рсьфхрп');

%% БнбкецблбЯщуз
clear evSimPoissPoly
close all

%% dBarMin = МЭуз брьуфбуз рлзуйЭуфесщн гейфьнщн Observed
avenndistRand = coords2distnnave(evRand);

%% ёлегчпт хрпиЭуещт фхчбЯпх рспфэрпх ме вЬуз dBarMin
avenndistCSR = coords2distnnave(evRand,500,CoordsD);

%% ЕМРЕЙСЙКЗ УХНБСФЗУЗ G

%% Хрплпгйумьт 2 рспупмпйщмЭнщн емрейсйкюн ухнбсфЮуещн G
gSim1 = ghat(evSimPoiss{1})
size(gSim1)
title('УхнЬсфзуз G гйб 1п кбй 30п рспупмпйщмЭнп рсьфхрп')
hold on
gSim30 = ghat(evSimPoiss{30})
size(gSim30)
legend('#1','#30','Location','SouthEast') % SouthEast?
title('УхнЬсфзуз G гйб 1п кбй 30п рспупмпйщмЭнп рсьфхрп')
hold off

%% Хрплпгйумьт рбсбфзспэмензт Ghat
figure
gRand = ghat(evRand);
size(gRand);

%% Хрплпгйумьт Ghat гйб ухгкексймЭнет брпуфЬуейт
distVals = (0:0.1:20); % гйб бхфЭт фйт брпуфЬуейт иб хрплпгйуфеЯ з G
gRand = ghat(evRand,distVals);
size(gRand)  % (nDist x nPatt2Sim) array

%% ЕмрейсйкЮ ухнЬсфзуз G фпх рбсбфзспэменпх рспфэрпх + CSR дЭумз
nSim = 500; % бсйимьт рспупмейюуещн брь CSR
gCSR = ghat(evRand,distVals,nSim,CoordsD);

%% ЕМРЕЙСЙКёУ УХНБСФ№УЕЙУ K Ю L

%% Хрплпгйумьт ухнЬсфзузт К брь фп рбсбфзспэменп рсьфхрп
KhatRand = khat(evRand,CoordsD,'khat');

%% ЕрйкЬлхшз фзт дЭумзт ухнбсфЮуещн К хрь фз мзденйкЮ хрьиеуз фзт ЕФЧД
KhatRand2 = khat(evRand,CoordsD,'khat',[],nSim);
xlim([0 40]);